KolyaniuS
@KolyaniuS
безнадежный оптимист

Как обрабатывать входящие фрагментированные INVITE на Asterisk?

Всем добра!

Предыстория:
стояла платформа, на которой был собран Asterisk 11.7 из сорцов со всеми вытекающими (т.е. что там было установлено еще год назад - останется загадкой). На эту платформу приземлялись внешние номера от клиентов.
Был среди таких номеров один от ростелекома (как в итоге оказалось) с внешней регистрацией и 4 линиями под многоканальность. Все это было заведено и прекрасно работало. Через какое-то время номера потребовалось перенести на другую платформу и тут начались чудеса.

Проблема:
после настройки транка на другом сервере входящие по данному номеру перестали приходить! После двухсторонней проверки с провайдером выяснилось, что он (провайдер) шлет входящие INVITE в 2 фрейма (т.е. > 1500b), что было видно по логу.
Т.к. переадрессация по номеру на стороне провайдера настроена на SIP-регистрацию и на SIP-телефон, который стоит у клиента в офисе, то вызов после нескольких неудачных попыток получить от нас ответ SIP 200 Ok отправлялся на телефон клиенту.
При этом если завершить вызов до момент поднятия трубки, то мы у себя видим два пакета:
CANCEL и SIP/2.0 481 Call leg/transaction does not exist
Что в принципе, логично, т.к. данные пакеты не фрагментированы.
Соответственно, пакеты с авторизацией проходят на ура.

Ситуацию смоделировали на 3 серверах с установленными Asterisk 11.7 из репозитория и FreePBX. Ни там ни там звездочка инвайты не видит! Хотя на той платформе, на которой было настроено первоначально - все работает! Настройки SIP по сути идентичные. Единственное отличие - в сборке самого астера.
Проблема точно не в файрволле, т.к. никаких правил не было настроено. Сервера находились на разных хостингах, поэтому проблему откидывания 2-го фрейма на уровне сети исключаю.

Вопрос:
Может кто сталкивался с подобной проблемой - что именно не хватает в системе, чтобы Asterisk стал понимать фрагментированные инвайты?
ЗЫ: к сожалению старая платформа ушла в утиль и восстановить или посмотреть что там было собрано уже не представляется возможным :(
  • Вопрос задан
  • 3304 просмотра
Пригласить эксперта
Ответы на вопрос 2
@catHD
А уменьшить размер пакета, что бы влезло в 1 нельзя? Уберите весь набор кодеков, оставьте 1. Что это за INVITE больше 1500 Оо?
Ответ написан
варианты:
1. попробовать зарегаться по TCP

2. если аплинк под SIP отдельный, увеличить MTU интерфейсах и на всех промежуточных "слишком умных" коммутаторах
Ответ написан
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы