Asterisk не отвечает на INVITE, проблемы с NAT? SIP ALG

Случилась у одного клиента такая ситуация: звонки с транка (Билайн подключенный по SIP) не приходят на астериск. Судя по tcpdump-у запросы INVITE приходят, но с каким-то левым destination port и в дебаге астериска их не видно. При этом исходящие соединения проходят без проблем. Билайн уверяет, что проблема на нашей стороне. Что делать, если все проверили и не может разобраться в чем дело? В моём случае оказалось, что на роутере Zyxel Keenetic Giga был включен SIP ALG по умолчанию.

Рассмотрим несколько решений проблемы с ответом сервера, когда ваш Astertisk находится за NAT:

  1. Нужно проверить параметр externip={ваш внешний IP} и localnet в секции [general] файле sip.conf. Также не забываем про параметр nat=force_rport,comedia в описании транка.
  2. Если авторизация у провайдера по IP адресу без имени и пароля, то следует проверить, что на астер проброшены соответствующие порты (по умолчанию 5060/UDP и 10000:20000/UDP). Тут, конечно, лучше перестраховаться и изменить внешний порт 5060 на нестандартный (договорившись с провайдером), а потом уже прокинуть его на ваш 5060, а также дать доступ в данному правилу только с IP адреса провайдера.
  3. На некоторых роутерах, производитель по умолчанию включает SIP ALG. У меня был такой случай с Zyxel Keenetic Giga. Пару дней не мог найти проблему. Для отключения этой функции нужно зайти в Управление - Общий настройки - Изменить набор компонентов. Далее в списке найти "Шлюз прикладного уровня (ALG) для SIP" и снять галочку напротив. После этого на всякий случай перезапускаем роутер, астериск и радуемся решенной проблеме.

Для отключения SIP ALG на других роутерах смотрите ссылки: 

Комментариев нет:

Отправить комментарий