Jump to content
Калькуляторы

VoIP SIP: IP телефон отвечает 183 вместо 180

Доброго времени суток !

 

Борюсь с проблемой странного поведения видео-телефона Grandstream GXV3140 в публичной сети оператора IP-телефонии. Сессия SIP проходит (примерно) по следующей цепочке :

 

 

[некий видео-телефон (5963050)] ----> [sBC (ip: xxx.xxx.xxx.xxx)] ----> [softSwitch : Cisco BTS10200 (ip: yyy.yyy.yyy.yyy)] -----> [Grandstream GXV3140 (121) (ip:zzz.zzz.zzz.zzz)]

 

Звонок инициируется удаленным видео-телефоном, проходит по вышеуказанной цепочке и достигает видеотелефон Grandstream. Последний не звонит, но на его мониторе отображается информация о входящем звонке. Однако в трубке - тишина и видео-поток не поднимается.

 

Если телефон Grandstream , без изменения конфигурации, переносится на лабораторный стенд, где нет SBC, а роль софтсвича играет Астериск - все работает как часы, включая видео.

 

К сожалению тяжеловато получить трассировку на каждом участке перехода схемы, но под рукой есть трассер порта телефона GXV (у него свой собственный, вмонтированный, трассировщик). Из этого трасера видно следующее :

1. Верхний уровень (формат pcap) :

 

21 6.414179 yyy.yyy.yyy.yyy zzz.zzz.zzz.zzz SIP/SDP Request: INVITE sip:121@zzz.zzz.zzz.zzz;user=phone, with session description

22 6.452196 zzz.zzz.zzz.zzz yyy.yyy.yyy.yyy SIP Status: 100 Trying

26 7.234596 zzz.zzz.zzz.zzz yyy.yyy.yyy.yyy SIP/SDP Status: 183 Session Progress, with session description

27 7.235827 zzz.zzz.zzz.zzz yyy.yyy.yyy.yyy SIP/SDP Status: 183 Session Progress, with session description

32 7.492277 zzz.zzz.zzz.zzz yyy.yyy.yyy.yyy SIP/SDP Status: 200 OK, with session description (здесь входящий звонок увидели, а не услышали, и подняли трубку)

35 7.536628 yyy.yyy.yyy.yyy zzz.zzz.zzz.zzz SIP Request: ACK sip:121@zzz.zzz.zzz.zzz:5060;transport=udp

 

Трассировка RTP показывает, что поток идет только в одну сторону : от телефона GXV к софтсвичу. Ответнов - не следует.

 

2. Уровень раскрытия SIP & SDP - шаги сессии, указанные в п.1, смотреть в приатаченном файле

раскройку черепа сессии выложить здесь в читабельном виде не удалось, поэтому смотрите вордовский файл

 

Из трассировки видно, что телефон вместо "традиционного" ответа 180 Ringing, отвечает : 183 Session Progress. При этом этого не происходит в лаборатории, там, как говорится. все согласно протокола. Это наталкивает меня на мысль, что причина такого поведения телефона кроется не в его настройках, а в "общении" с окружением.

 

Может я слишком долго смотрю на этот трассер, но я не вижу практически ничего крамольного. На уровне UDP и IP - все Ок.

 

Возможно кто-нибудь сталкивался с подобным демоном и победил его ?

GXV3140_issue.doc

Share this post


Link to post
Share on other sites

См. "early media"

С kamailio лечится ring_insert_callid()

 

Share this post


Link to post
Share on other sites

См. по всей цепочке.

SIP responce 183 это именно early media.

 

Share this post


Link to post
Share on other sites

Вы правы, ответ 183 - обычно это ответ на, к примеру, INVITE при включенном early media. Но при early media UAC-инициатор звонка шлет на UAS каждый набранный диджит в отдельном пакете INVITE. Если бы где то по цепочке эта опция и пропускалась бы, то на принимающей стороне в трейсе это было бы видно. Диалог, который я привел в первом посте - не усечен, он так и выглядит.

 

Более того, SBC early media не пропускает - обычная практика превентивной защиты.

 

Может ли на это влиять видео-поток ?

Edited by Yehuda_Panzer

Share this post


Link to post
Share on other sites
Доброго времени суток !

[некий видео-телефон (5963050)] ----> [sBC (ip: xxx.xxx.xxx.xxx)] ----> [softSwitch : Cisco BTS10200 (ip: yyy.yyy.yyy.yyy)] -----> [Grandstream GXV3140 (121) (ip:zzz.zzz.zzz.zzz)]

 

Звонок инициируется удаленным видео-телефоном, проходит по вышеуказанной цепочке и достигает видеотелефон Grandstream. Последний не звонит, но на его мониторе отображается информация о входящем звонке. Однако в трубке - тишина и видео-поток не поднимается.

Посмотрел ваш диалог. Во-1, он снят на порте телефона 5963050, а не на порте 121. Во-2, где и какой видеопоток вы ждете? Пока early media идет? Такого не будет. На 5963050 гудок при исходящем вызове есть? Если 121 не звенит когда на него вызов приходит, у него просто громкость звонка нулевая. Видео должно подниматься только после того, как на 121 ответит. У вас этого не происходит потому, что БТС (или сбц, что менее вероятно) блокирует видео, либо на 121 видео выключено - посмотрите на sdp в 200ок - там нет описания видеопотока.

 

Early media - disabled на обоих энд-поинтах.
Ну и зря. Неаккуратненько это...
Более того, SBC early media не пропускает - обычная практика превентивной защиты.
Ничего обычного в такой практике нет. О какой защите может идти речь, если диалог уже авторизован, выбраны корректные кодеки и полоса им соответствует? Не надо блокировать early media - пользователи могут быть очень недовольны.

 

Edited by Aleck_K

Share this post


Link to post
Share on other sites

Гм ... Как бы перепутал early media с другим механизмом. Пардон, бывает в конце трудного трудового будня. Ничто в цепочке не блокирует early media, конечно же.

 

Однако, картину это не меняет. Не знаю, что дало уважаемому Aleck_K повод решить, что трейс был снят со стороны "некий видео-телефон", но я то знаю откуда я его снимал :))) Трейс был снят вмонтированным снифером телефона GXV3140 (№ 121).

 

Скажите мне другое, коллеги. Я перерыл кучу информации и нигде не нашел иных примеров возникновения ответа 183, кроме как в примерах звонков VoIP ---> PSTN (к примеру RFC3666). Да в своей практике я только там и встречал этот ответ. Здесь же, по отношению к телефону GXV :

 

-- сессия входящая

-- телефон эту сессию никуда форвардить не настроен. Он должен просто ее терминировать.

-- сессия VoIP-VoIP

 

Буду благодарен, если поделитесь еще какими-нибудь примерами, когда этот ответ появляется.

Edited by Yehuda_Panzer

Share this post


Link to post
Share on other sites
Однако, картину это не меняет. Не знаю, что дало уважаемому Aleck_K повод решить, что трейс был снят со стороны "некий видео-телефон", но я то знаю откуда я его снимал :))) Трейс был снят вмонтированным снифером телефона GXV3140 (№ 121).
Да, посмотрел на диалог еще раз - действительно в инвайте есть Via с адресом СБЦ, так что был не прав - трейс взят точно после SBC, видимо на 121. Смущает, что в User-Agent инвайта Grandstream GXV3140 1.0.5.4, т.е. 5963050 - грандстрим, но в юзер-аджент 200ОК написано BTS10200/900-06.00.01.V02 (SIA). Так что либо вы напутали с маскировкой адресов либо с направлением вызова в схеме. Выгрузите pcap в wireshark и сделайте statistic-voip call-graph, на графике будет сразу наглядно видно что и куда бегает. В таком случае, диагноз - в 200 ок нет описания для видеопотока.

 

Буду благодарен, если поделитесь еще какими-нибудь примерами, когда этот ответ появляется
Пара примеров из практики:

- музыка вместо гудков для вызывающего абонента, актуально в том числе и для voip-voip.

- на входящем вызове хочется проиграть некое приветствие ("у нас в офисе никого нет, все ушли на фронт") и отбить вызов. Если вызов платный для вызывающей стороны, она будет недовольна тем, что ее заставляют платить за такой вот вызов, а с early media и овцы целы и волки сыты

Edited by Aleck_K

Share this post


Link to post
Share on other sites

А мне вот почему-то кажется, что абонент А в данном случае - Грандстрим.

Ибо:

1. есть заголовок Authorization;

2. в заголовке User-Agent указана модель устройства;

3. в сообщениях 183 есть заголовок "Server: BTS10200/900-06.00.01.V02 (SIA)".

 

Про видео вам сказали - его описания нет в ответных SDP.

Смущают два абсолютно идентичных 183 Session Progress и отсутствие 180 Ringing (об этом уже говорили выше).

 

Можете выложить схему "когда всё работает" для сверки и приложить дамп к ней.

 

Кстати, местонахождение не Киев случаем? )

Share this post


Link to post
Share on other sites

2Aleck_K : Спасибо за примеры.

 

2leveler : Киев, это видно из "подписи" софтсвича в трейсе.

 

Еще раз повторю, что трейс снимался с телефона. который и является проблемой/темой данной темы. Вызов приходит именно на него :

GXV3140, ip address : zzz.zzz.zzz.zzz:5060

 

Схема, приведенная ранее, сейчас уточняется : исходя из трейса, я не совсем уверен, что Softswitch и SBC (Session Border Controller) не надо бы поменять местами. Я этот момент сейчас уточняю.

 

Видео, в данном случае - не первоочередная задача. Каюсь, когда снимался дамп - камера была отключена (есть отдельная кнопка). Включение камеры - не вносит изменений в поведение телефона. Естественно, в 200 Ок добавляется описание видео-сессии в SDP.

 

Вопрос этого топика : почему телефон, на нормальную, с точки зрения протокола, сессию отвечает не 180 + звонок, а НЕ звенит и отвечает 183 (это не шлюз между сетями). Или я чего-то аномального не вижу в конфигурации, что лежит у меня перед носом.

Share this post


Link to post
Share on other sites

С early media проблемой является шлюз оригинатор, если он не умеет с ней работать.

А такого г. на рынке полно и выражается самым неожиданным способом.

Кардинальное решение - аналог "ring_insert_callid()" для имеющегося SBC или для BTS.

Share this post


Link to post
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
Sign in to follow this