denzz Posted November 1, 2007 Posted November 1, 2007 Добрый день. схемка такая: sip ua -> SER ->(sip trunk)-> CCM5 -> AS5350->PSTN при исходящем звонке с sip ua после 16 мин 3 сек в трубке тишина. другой конец (PSTN) получает дисконнект. в АТАшке тишина, RTP она шлет все также, как будто все в норме. tcpdump на sip транке показывает следующую картину. после 16:03, когда реально PSTN уже отвалилось, CCM не шлет никаких sip сообщений. когда жмакаешь отбой у себя на ua видим такую картину: АТАшка шлет BYE, а в ответ получает 481 Call Leg/Transaction Does Not Exist то есть CCM втихаря рвет сессию и привет. на звонках меньше 16 минут проблем нет. на входящих с PSTN тоже проблемы нет. Вставить ник Quote
Andrei Posted November 1, 2007 Posted November 1, 2007 В адпаках есть такая настройка как timeout tterm 1800 Вроде как устанавливаем макс.длительность разговора в секундах. Мож и на кошке что-то похожее в конфиг затесалось? Вставить ник Quote
denzz Posted November 1, 2007 Author Posted November 1, 2007 кошкорулитель говорит, что нет. и на других sip транках нет проблемы. sip ua пробовал разные, эффект тот же. даже не знаю, где копать :( Вставить ник Quote
Andrei Posted November 2, 2007 Posted November 2, 2007 Рекомендую сходить на http://www.voipinfo.ru/forum/viewforum.php?f=3 Вставить ник Quote
ram_scan Posted November 2, 2007 Posted November 2, 2007 Надо смотреть что происходит на сети непосредственно ПЕРЕД обрывом. Обычно подобный обрыв происходит (если ограничение длины сессии не задано явно) из-за того что некоторые софтсвитчи-pbx (например broadsoft и еще некоторые) имеют свойство проверять живо ли еще ли соединение посылая reinvite но почему-то с пустым body (это запрещено). Девайс на такой запрос отвечает естественно ошибкой 488, а свитч-pbx воспринимает ее как фатальную (что неправильно) и соединение рассыпается. На более сложной связке из CCM и OpenSER оно может рассыпаться и "наполовину" до истечения таймаута. Вобщем снифать надо. Вставить ник Quote
denzz Posted November 2, 2007 Author Posted November 2, 2007 а ничего не происходит. просто заканчивается RTP поток от CCM и все. попробуем убить транк и сделать заново. CCM пока не разрешают перегружать. Вставить ник Quote
denzz Posted November 2, 2007 Author Posted November 2, 2007 (edited) Итак, виртуальное пиво отпроавляется ram_scan, г. Новосибирск. cisco CCM через 16 минут шлет INVITE в обратную сторону с тем же Call-ID. Но почемуто в конкретно моей конфигурации оно его шлет на LAN IP sip ua, а не на ip SER-а. ну и соответственно этот INVITE улетает в трубу по чужой IP маршрутизации. проблема решилась переносом регистрации sip ua на внешний интерфейс ser. не очень так хотелось. зато работает. Edited November 2, 2007 by denzz Вставить ник Quote
ram_scan Posted November 5, 2007 Posted November 5, 2007 (edited) denzz, а это надо смотреть уже в конфиг OpenSer. Выдвигаю версию что в процессе маршрутизации звонка между интерфейсами некорректно заменяется поле Via. Точнее оно должно меняться на адрес интерфейса OpenSer, а оно пролетает дальше немодифицированым. В итоге мы имеем то что rtp поток стартует корректно, так как поле Contact указано верно, и указывает на ip SIP UA, а вот один их прокси-серверов (SER) из цепи сигнализации выпадает, так как CCM по стандарту обязан отвечать на адрес указаный в Via. В итоге когда CCM реинвайтит сессию чтобы проверить что оно еще ладом живо и не залипло он получает от SIP UA call leg transaction does not exists (так как branch таки не совпадает несмотря на совпадение по call-id), и со своей стороны рвет соединение. SIP UA этот реквест игнорирует, а соответственно ОpenSer вообще ни о чем не подозревает. То есть тут скорее всего ошибка в конфигурационном скрипте OpenSer. Edited November 5, 2007 by ram_scan Вставить ник Quote
Recommended Posts
Join the conversation
You can post now and register later. If you have an account, sign in now to post with your account.