Как обрабатывать входящие фрагментированные 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 стал понимать фрагментированные инвайты?
ЗЫ: к сожалению старая платформа ушла в утиль и восстановить или посмотреть что там было собрано уже не представляется возможным :(
1. попробовать зарегаться по TCP
не получится - настройки устанавливает провайдер а не мы
2. если аплинк под SIP отдельный, увеличить MTU интерфейсах и на всех промежуточных "слишком умных" коммутаторах
Ну на промежуточных никак не получится - интерфейс на АТСке внешний
На самом сервере можно попробовать