Перейти к содержимому

Устройства теряют регистрацию или имеют односторонний звук

Этот перевод выполнен автоматически и ещё не вычитан. Читать английскую версию

Большинство проблем с устройствами за домашним или офисным роутером вызывает SIP ALG — функция роутера, которая переписывает проходящие через него SIP-сообщения. Её задумывали, чтобы помочь VoIP работать за NAT; на практике она часто портит адреса в сообщениях. FlySIP и современные SIP-устройства сами справляются с NAT и в ней не нуждаются.

  • Телефоны или шлюзы за роутером теряют регистрацию; Vendors → Registrations показывает, что они то появляются, то исчезают.
  • Звонки имеют звук только в одну сторону или вообще без звука.
  • Звонки обрываются примерно через 30 или 60 секунд, или не работают re-INVITE, например удержание и перевод звонка.
  • Всё работает, когда устройство подключено к интернету напрямую или через VPN.
  1. Подключите устройство к другой сети, например к мобильной точке доступа, и повторите звонок. Если там всё работает, причина в роутере.
  2. Проверьте, что регистрация аккаунта есть в Vendors → Registrations с публичным IP-адресом роутера.
  3. Извлеките SIP-лог неудачного звонка и посмотрите адреса в Via, Contact и SDP. Смотрите Звонок не прошёл, и CDR не объясняет почему.

Как подтвердить: SIP-лог показывает частные адреса, например 192.168.x.x или 10.x.x.x, в Contact или SDP там, где устройство отправляет свой публичный адрес, или заголовки, которые различаются между собственным логом устройства и логом коммутатора. На MikroTik команда /ip firewall service-port print показывает sip без флага disabled.

Решение: отключите SIP ALG. В зависимости от производителя функция называется SIP ALG, SIP Helper, VoIP Helper, SIP Passthrough или Application Layer Gateway:

Роутер Где
MikroTik RouterOS IP → Firewall → Service Ports → sip → отключите, или /ip firewall service-port disable sip
TP-Link Advanced → NAT Forwarding → ALG → снимите SIP ALG (в некоторых прошивках в разделе Security или NAT Boost)
ASUS Advanced Settings → WAN → NAT Passthrough → SIP Passthrough → Disable
Keenetic Internet → Other connections → Advanced → отключите SIP ALG
ZyXEL, D-Link Advanced → NAT → ALG Settings → снимите Enable SIP ALG
Ubiquiti EdgeRouter configure, set system conntrack modules sip disable, commit, save
Huawei, ZTE Security → ALG Settings или NAT ALG Settings → отключите SIP ALG

После этого перезагрузите роутер и повторно зарегистрируйте устройства, чтобы старые NAT-привязки очистились.

Причина 2: NAT-привязка истекает между регистрациями

Заголовок раздела «Причина 2: NAT-привязка истекает между регистрациями»

Как подтвердить: устройства успешно регистрируются, но через несколько минут становятся недоступными для входящих звонков, а исходящие звонки продолжают работать.

Решение: задайте на устройстве интервал регистрации от 60 до 120 секунд или включите keep-alive (часто он называется NAT keep-alive или SIP OPTIONS ping). На АТС за NAT включите обработку NAT для транка к коммутатору.

Как подтвердить: сигнализация в порядке, но звука нет, а SDP в SIP-логе показывает частный адрес для медиа устройства.

Решение: задайте Media Relay Type (тип медиа-реле) аккаунта так, чтобы медиа шло через релей коммутатора, отметьте Use Media Relay (использовать медиа-реле) в подключении вендора и убедитесь, что RTP-порты релея открыты в System Management → IP Firewall. Смотрите Медиа-реле.

Соберите следующую информацию и создайте обращение на support.flysip.com:

  • Имя аккаунта, модель устройства и модель роутера.
  • Call-ID и время неудачного звонка, а также его SIP-лог.
  • Работает ли устройство в другой сети.