AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

Asterisk при отправке REFER

Asterisk-Dev 4 сообщений -
#1

Asterisk при отправке REFER


Есть ли вообще на форуме те, кто разбираются в работе протокола SIP?

Ситуация следующая: Asterisk выполняет переадресацию SIP вызова при уже установленной сессии. Переадресация ведёт себя достаточно интересно, вот график пакетов на астериске:

Код:

Asterisk Server
------ REFER ------>
------ BYE -------->
(6 раз)
#2

поидее должно быть так

Код:
A B
Refer(1)
----------------->
202(2)

любой абонент
#3

По стандарту оно понятно, но проблема в том что астериск может отправить BYE раньше получения какого-либо ответа на REFER. В стандарте я не нашёл ничего противоречащего такому поведению. Хочу разобраться и исправить.

Если идей нет, то буду писать в sip-implementors, результаты отпишу здесь.

PS. Насчёт построения графиков уже подсказали: BreakPoint SIP Workbench

_________________
OpenSUSE 11.2 / Asterisk-trunk / Celeron 1100 (512mb) / chan_lcr / Linksys / Aastra 9112i
http://igorg.ru
#4

В общем в чём проблема вполне понятно:
1. В RFC5057 описано поведение в подобных случаях. В данном случае отправка BYE после REFER не завершает диалог, а только обозначает нежелание переводящей звонок стороны (Asterisk) продолжить диалог в случае неудачной переадресации.
2. Asterisk ошибочно считает что передача пакета с REFER неудалась. Это вызвано с одной стороны ошибкой в коде заставляющей игнорировать ответы на REFER, а с другой тем, что не отслеживается состояние SIP диалога.

Первое будет исправить достаточно просто, второе - не уверен. Так же второе обстоятельство мешает добавить поддержку PRACK и UPDATE запросов в Asterisk. Sad

_________________
OpenSUSE 11.2 / Asterisk-trunk / Celeron 1100 (512mb) / chan_lcr / Linksys / Aastra 9112i
http://igorg.ru