Если входящие звонки по SIP (в том числе по протоколу SIP2, используемому некоторыми АТС и библиотечными системами для обмена данными) не доходят до абонента, в 90% случаев проблема в трёх местах: регистрация транка у провайдера, сетевые настройки (NAT/firewall) или несовпадение кодеков. Прежде чем менять настройки сервера, стоит проверить каждое из них по отдельности.
Как проверить, где именно обрыв
Начните с логов сервера телефонии (Asterisk, FreeSWITCH, Kamailio или панель АТС). Если в логах вообще нет входящего INVITE-запроса — проблема на стороне провайдера или сети до сервера. Если запрос приходит, но обрывается на этапе регистрации или установления соединения — дело в конфигурации самого сервера.
- Проверьте статус регистрации SIP-транка в личном кабинете провайдера — он должен быть активным (registered), а не expired.
- Убедитесь, что порты 5060/5061 (SIP) и диапазон RTP (обычно 10000–20000) открыты на firewall в обе стороны.
- Отключите SIP ALG на роутере — эта функция часто искажает заголовки SIP-пакетов и ломает именно входящие звонки.
Что делать, если сервер за NAT
Если АТС стоит за NAT без белого IP, входящие звонки могут не проходить из-за неправильной подмены адресов в SDP. Нужно явно указать внешний IP-адрес в настройках транка (параметр external ip / nat=yes в конфиге) и настроить STUN или keepalive-пакеты, чтобы NAT-таблица роутера не сбрасывала соединение раньше времени.
Проверка кодеков и таймаутов
Если звонок устанавливается, но сразу обрывается или нет звука — проверьте, что кодеки на вашей стороне и стороне провайдера совпадают (обычно достаточно оставить общий g711/g729). Также стоит увеличить таймаут ожидания ответа (Session-Expires) — некоторые провайдеры закрывают сессию раньше, если сервер не отвечает вовремя на re-INVITE.
Если после проверки firewall, NAT и кодеков проблема сохраняется — свяжитесь с провайдером SIP-транка и попросите трассировку вызова с его стороны: часто обрыв происходит уже на его оборудовании, до вашего сервера.