Назад | Перейти на главную страницу

SIP SUBSCRIBE не выполняет запросы

У меня проблема, что мой клиент может войти в систему с паролем и позвонить, но не принимает звонки. Когда я устраняю его с помощью tcpdump, он сообщает мне, что REGISTER работает, но SUBSCRIBE не.

21:11:24.734317 IP router.48299 > fritz.box.sip: SIP: REGISTER sip:fritz.box SIP/2.0
21:11:24.739130 IP router.box.sip > router.48299: SIP: SIP/2.0 200 OK
21:11:24.769070 IP router.48299 > fritz.box.sip: SIP: SUBSCRIBE sip:myphone@fritz.box SIP/2.0
21:11:24.772725 IP router.box.sip > router.48299: SIP: SIP/2.0 401 Unauthorized

Клиент: sipdroid (доступный через wlan0) Сервер: Fritzbox (доступный через eth0) Маршрутизатор: Banana Pi

Между ними: роутер, который MASQUERADEs трафик:

-A POSTROUTING -o wlan0 -j MASQUERADE
-A POSTROUTING -o eth0 -p udp --dport 5060 -j MASQUERADE
-A POSTROUTING -o eth0 -p tcp --dport 5060 -j MASQUERADE
-A POSTROUTING -o eth0 -p tcp --dport 5061 -j MASQUERADE
-A FORWARD -j ACCEPT

Странно то, что проблема, похоже, в том, что сервер voip отрицает SUBSCRIBE запрос, а логин работает с REGISTER команда.

Вам нужно будет сделать несколько захватов пакетов, чтобы узнать, что на самом деле находится внутри ваших SIP-пакетов. Не зная больше о том, как настроен ваш SIP (это транк?), Скорее всего, он пытается выдать SUBSCRIBE с IP-адресом внутреннего клиента, который отклоняется вышестоящим сервером SIP.

Запуск SIP за NAT, как известно, сложен настолько, что существует множество шлюзов, поддерживающих SIP. Я не знаю, делает ли что-нибудь здесь программное обеспечение маршрутизации, которое вы используете на своем Pi.

Я хотел бы выяснить, поддерживает ли ваш SIP-клиент STUN (утилиты обхода сеанса для NAT). Если это так, возможно, лучше настроить его для запроса внешнего STUN-сервера перед запуском любых сеансов SIP.