Справочник системных ошибок и решений

Windows Server, Active Directory, 1С:Предприятие, СУБД, Linux, Cisco, MikroTik, Asterisk.

⚠️ Важная информация Все материалы, инструкции, команды и скрипты на сайте предоставлены исключительно в ознакомительных целях. Их применение может повлиять на работу операционной системы, программного обеспечения, баз данных, сетевого оборудования и других компонентов инфраструктуры. Перед выполнением действий создайте резервную копию и по возможности протестируйте изменения в безопасной среде. Пользователь самостоятельно оценивает риски и несет ответственность за результат. При отсутствии необходимых знаний обратитесь к квалифицированному ИТ-специалисту.

SIP_CGNAT_REGISTER_DROP IP-Телефония и СКУД

Траблшутинг SIP регистрации (REGISTER) за CGNAT и LTE-роутерами

Обновлено: 24.08.2026 · Официальная документация ↗
  • Периодическая потеря входящих вызовов на удаленных телефонах за LTE-модемами («Абонент временно недоступен»).
  • Статус транка или пира в АТС случайным образом меняется с OK на UNREACHABLE.
  • Входящие звонки проходят, но исходящие сбрасываются с ошибкой 403 Forbidden или 408 Request Timeout.
  • Односторонняя слышимость или полное отсутствие звука в обоих направлениях после 15-й секунды звонка.

1. Отключение SIP ALG на мобильном роутере

Мобильные операторы и роутеры с поддержкой LTE (MikroTik, Huawei, Keenetic) часто имеют включенный функционал SIP Application Layer Gateway (ALG), который повреждает SIP-заголовки (подменяет реальные порты на 5060 и ломает хеши контрольных сумм):

  • На роутерах MikroTik: /ip firewall service-port disable sip
  • На LTE роутерах Keenetic/Huawei: перейдите в веб-интерфейс -> Сетевые экраны/Безопасность -> Снимите галочку SIP ALG / SIP Passthrough.

2. Принудительное включение Symmetric NAT (rport) на IP-АТС

В Asterisk PJSIP настройте параметры эндпоинта для работы через CGNAT (/etc/asterisk/pjsip.conf):

[remote-lte-endpoint]
type=endpoint
context=from-internal
disallow=all
allow=alaw,ulaw,g729

# Обязательные параметры для работы за CGNAT:
rtp_symmetric=yes
force_rport=yes
rewrite_contact=yes
direct_media=no

# Уменьшение времени регистрации для удержания NAT-сессии
[remote-lte-aor]
type=aor
max_contacts=1
minimum_expiration=30
default_expiration=60
maximum_expiration=120
qualify_frequency=15
qualify_timeout=3.0

3. Использование внешних серверов STUN / TURN

Если у оператора используется симметричный жесткий NAT (Symmetric Port-Overloading NAT), пропишите публичный STUN-сервер в настройках IP-телефона:

  • STUN Server: stun.l.google.com:19302 или stun.cloudflare.com:3478
  • NAT Traversal Mode: STUN
  • Keep-Alive Interval: 15 seconds (отправка dummy UDP пакетов).

4. Переключение сигнального протокола на TCP / TLS

Большинство LTE-операторов принудительно закрывают неактивные UDP-трансляции через 30 секунд. TCP-сессии живут значительно дольше:

  • Переведите порт регистрации на TCP 5060 или TLS 5061.
  • Настройте софтфон/телефон на использование Transport: TLS.
💡 Практика специалистов: Наиболее стабильным решением для удаленных рабочих мест за мобильным интернетом является построение VPN-туннеля (WireGuard / IPSec IKEv2) прямо с IP-телефона или роутера до корпоративного контура. Это полностью нивелирует любые ограничения CGNAT и SIP ALG.

Частые вопросы (FAQ)

Что делает опция rewrite_contact=yes в PJSIP?

Она указывает серверу игнорировать локальный 'серый' IP-адрес, который телефон сам вписал в заголовок Contact, и отправлять все последующие ответы (включая INVITE и NOTIFY) на фактический публичный IP и порт CGNAT, с которого пришел пакет.

Почему время регистрации (Registration Expiry) за LTE нужно уменьшать до 60 секунд?

Таблицы трансляций мобильных операторов (CGNAT) сбрасывают неактивные UDP сессии через 30-60 секунд. Короткий интервал перерегистрации постоянно держит сокет открытым со стороны клиента.

Почему при звонках через 4G возникает односторонняя слышимость?

Причина в том, что в SDP теле запроса указан локальный IP-адрес клиента (например, 192.168.8.100). Без включенного rtp_symmetric=yes АТС пытается слать аудиопоток на этот недостижимый адрес вместо реального публичного сокета оператора.

Как проверить, включен ли SIP ALG у провайдера?

Снимите дамп пакетов sngrep/tcpdump на АТС. Если в пакете REGISTER порт в заголовке Via: равен 5060, а фактический порт отправки пакета в заголовке IP отличается (например, 41253), промежуточный узел или модем модифицирует трафик через ALG.

Полезные материалы
Рекомендуем