Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Архив форумов ЦИТФорума
Море(!) вопросов - Море(!) ответов
 
 FAQFAQ   ПоискПоиск   ПользователиПользователи   ГруппыГруппы   РегистрацияРегистрация 
 ПрофильПрофиль   Войти и проверить личные сообщенияВойти и проверить личные сообщения   ВходВход 
Как правильно задавать вопросы

Опрос: Разрешим противоречие в реализации (SIP протокол)

 
Перейти:  
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование
Предыдущая тема :: Следующая тема  
Автор Сообщение
ilyakud



Зарегистрирован: 24.04.2005
Сообщения: 14

СообщениеДобавлено: Чт Июл 21 2005 11:40    Заголовок сообщения: Опрос: Разрешим противоречие в реализации (SIP протокол) Ответить с цитатой

Доброго времени суток.
Ребята помогите, просто с точки зрения здравого смысла, если не имете представления, что такое SIP.
Так вот проблема очень не проста .Чтобы ввести в курс дела. SIP это протокол по которому общаются продвинутые телефоны, прям с компа, все это функционипует в системе MCS. Если грубо, этот протокол чем-то похож на HTML, да собственно и развитие свое получил именно от туда. У него существуют различные методы, я опишу некоторые из них, чтобы было понятно, и Вы могли понять суть вопроса.
INVATE - для начала соединения, его посылает вызывающая сторона, т.е та которая инициирует звонок
ASC - Запрос ACK подтверждает прием ответа на запрос INVITE. Сле,
дует отметить, что запрос АСК используется только совместно с за,
просом INVITE, т.е. этим сообщением оборудование вызывающего
пользователя показывает, что оно получило окончательный ответ на
свой запрос INVITE.
200 ok ответ, котоый подверждает успешное выполнение чего ни было
BYE - Запросом BYE оборудование вызываемого или вызывающего
пользователя завершает соединение. Сторона, получившая запрос
BYE, должна прекратить передачу речевой (мультимедийной) инфор,
мации и подтвердить его выполнение ответом 200 ОК.

Так вот теперь и начинается самое интрересное,

Допустим что у нас два BYE отправились одновременно (т.е две разговаривающие стороны одновременно повесили трубку), тогда на первый из BYE , прокся отправит ему 200 ok и прибьет сессию, клиент получит этот ответ и благополучно закончит сеанс связи. А вот с другим такого не произойдет, он отправит свой BYE, но ответа не получит, поскольку сессия прибита, тогда он начнет форвардить свои BYE, до тех пор пока time out Не издохнет..., свои 200Ok он все равно не получит. Так вот в этом собственно и суть вопроса,
исходя их спецификации SIP, когда сессия прибита никакие сообщения, относящиеся к этой сессии форвардиться не должны... С другой стороны каждый BYE , должен получить свой 200ok это тоже по спецификации. Так вот как ВЫ считаете, что в данном случае стоит сделать: не закрывать сессию, форвардить 200ok или вообще что-то еще, я затрудняюсь ответить... Пожалуйста. Присылайте свои версии, сюда или мне на ящик ikudr@mera.ru, буду ждат, от этого зависит дальнейшая реализация SIP, в этом вопросе. Если кому-то интересно, можно посмотреть RFC, это спецификация SIP протокола правда на английском. Заранее благодарю!
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
kolobok0



Зарегистрирован: 22.04.2005
Сообщения: 253
Откуда: Мсква

СообщениеДобавлено: Чт Июл 21 2005 12:41    Заголовок сообщения: Отвечу тут... (+) Ответить с цитатой

В принцепе проблеме сто лет в обед. HTTP (на базе которого реализован SIP) сам юзает TCP. У TCP есть такие понятий как подтверждение приёма команды (грубо говоря). Это правило действует как и при установлении конекшенна, так и при закрытии. Т.е. мало послать команду типа бай... Надо ОБЯЗАТЕЛЬНО дождаться ответа, либо тайм аут. Тайм аут выбираеться с учётом времени жизни пакета. Грубо говоря - информация о соединении сохраняеться (должна сохраняться) несколько минут. Тем самым исключаеться возможность ошибиться при приёме "запоздалых" пакетов по данному соединению.

НО (!) У Вас НЕТ вышеописанных проблем (если в цепочке протоколов присутствует TCP). Потому как TCP (и выше) ГАРАНТИРУЕТ доставку данных. В том числе и ваших команд BYE. Т.е. я так понимаю, что в Вашем случае будет достаточно дождаться "подтверждения" с другой стороны (либо падежа канала).


с уважением
(круглый)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
ilyakud



Зарегистрирован: 24.04.2005
Сообщения: 14

СообщениеДобавлено: Чт Июл 21 2005 13:33    Заголовок сообщения: Ответить с цитатой

Мы вообще UDP пользуем, но дело не в этом... как я уже говорил, тут ситуация двоякая. Два бая одновременно, кто первый тот и прибивает сессию, а на второй подтверждение не идет. а если пересылать, то это противоречит RFC главного документа, сессии, то уже нет. А если не пересылать, то получается такая вот фигня, что вылетаем по тайм ауту, что тоже не есть хорошо (из-за этого трафик поганиться)...
В любом случае спасибо.

С уважением Илья
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
kolobok0



Зарегистрирован: 22.04.2005
Сообщения: 253
Откуда: Мсква

СообщениеДобавлено: Пт Июл 22 2005 13:55    Заголовок сообщения: возможно этопоможет...(+) Ответить с цитатой

это протоколы (UDP, TCP и иже с ними)...
в прошлый раз забыл запостить...

http://www.helloworld.ru/show.php?curraz=50
_________________
(круглый)
Вернуться к началу
Посмотреть профиль Отправить личное сообщение
Показать сообщения:   
Этот форум закрыт, вы не можете писать новые сообщения и редактировать старые.   Эта тема закрыта, вы не можете писать ответы и редактировать сообщения.    Список форумов Архив форумов ЦИТФорума -> Программирование Часовой пояс: GMT + 3
Страница 1 из 1

 
Перейти:  
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах


Powered by phpBB © 2001, 2002 phpBB Group
Русская поддержка phpBB

 

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 6608306, ICQ 232284597
Пресс-релизы — pr@citforum.ru
Послать комментарий
Информация для авторов
This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2006 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...