Устройства теряют регистрацию или имеют односторонний звук
Этот перевод выполнен автоматически и ещё не вычитан. Читать английскую версию
Большинство проблем с устройствами за домашним или офисным роутером вызывает SIP ALG — функция роутера, которая переписывает проходящие через него SIP-сообщения. Её задумывали, чтобы помочь VoIP работать за NAT; на практике она часто портит адреса в сообщениях. FlySIP и современные SIP-устройства сами справляются с NAT и в ней не нуждаются.
Симптом
Заголовок раздела «Симптом»- Телефоны или шлюзы за роутером теряют регистрацию; Vendors → Registrations показывает, что они то появляются, то исчезают.
- Звонки имеют звук только в одну сторону или вообще без звука.
- Звонки обрываются примерно через 30 или 60 секунд, или не работают re-INVITE, например удержание и перевод звонка.
- Всё работает, когда устройство подключено к интернету напрямую или через VPN.
Быстрые проверки
Заголовок раздела «Быстрые проверки»- Подключите устройство к другой сети, например к мобильной точке доступа, и повторите звонок. Если там всё работает, причина в роутере.
- Проверьте, что регистрация аккаунта есть в Vendors → Registrations с публичным IP-адресом роутера.
- Извлеките SIP-лог неудачного звонка и посмотрите адреса в
Via,Contactи SDP. Смотрите Звонок не прошёл, и CDR не объясняет почему.
Причина 1: SIP ALG на роутере
Заголовок раздела «Причина 1: SIP ALG на роутере»Как подтвердить: 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 для транка к коммутатору.
Причина 3: медиа идёт в обход релея
Заголовок раздела «Причина 3: медиа идёт в обход релея»Как подтвердить: сигнализация в порядке, но звука нет, а SDP в SIP-логе показывает частный адрес для медиа устройства.
Решение: задайте Media Relay Type (тип медиа-реле) аккаунта так, чтобы медиа шло через релей коммутатора, отметьте Use Media Relay (использовать медиа-реле) в подключении вендора и убедитесь, что RTP-порты релея открыты в System Management → IP Firewall. Смотрите Медиа-реле.
Всё ещё не работает?
Заголовок раздела «Всё ещё не работает?»Соберите следующую информацию и создайте обращение на support.flysip.com:
- Имя аккаунта, модель устройства и модель роутера.
- Call-ID и время неудачного звонка, а также его SIP-лог.
- Работает ли устройство в другой сети.