AF
Asterisk Forum
обсуждения телефонии, VoIP и IP-PBX
12разделов
5 423тем
34 385сообщений
← К списку тем

Asterisk STUN

Asterisk IP PBX 7 сообщений -
#1

Asterisk STUN


Добрый день.

Подскажите в чём может быть проблема. Для обеспечения отказоустойчивости офис имеет два ISP, в момент когда основной отказывает возникает проблема с необходимостью вручную менять Externaddr для asterisk. Теоретически эту проблему должен решить stun. Настроил, команда stun show status говорит что stun работает.

Hostname Port Period Retries Status ExternAddr ExternPort
stun.sipnet.ru 3478 30 3 OK 5.61.8.78 36901

Но при анализе сообщений SIP и RTP протоколов вижу что используется локальный ip. Подскажите кто настраивал, в чём может быть проблема.

Astrisk 11.10

sip.conf

icesupport=yes
;externaddr=5.61.8.78 //при раскомментировании данные в SIP верные

rtp.conf

icesupport=yes
stundaddr=stun.sipnet.ru

res_stun_monitor.conf

stunaddr=stun.sipnet.ru
#2

Не проще просто поднять резервный Астер на том же компе, но с другим externip?
Это делается довольно просто.

Далее просто на основном в случае проблем со своим прямым Dial вызывать Dial через вспомогательный.
Будет и надежно и просто.

_________________
http://mh.otx.ru Гибкие SIP/E1 шлюзы Alvis. SIP-Модернизация LDK/TDA:VoIP, Добавь E1 к Asterisk.
UPDATE! Теперь и T.38! Скидки для форумчан!!
#3

Когда то давно делал подобное через скрипт (погуглив думаю найдете его на просторе интернета).
Через крон он запускался периодически и проверял внешний ip адресс. Если он изменился (перешли на альтернативного провайдера), в sip.conf подменялся ip адресс на текущий и выполнялась команда sip reload.
#4
#5

если собирали астериск с исходников, то в contrib/script есть скрипт sip_nat_settings.
и не забудьте активировать exec в asterisk.conf
#6

Link
Добрый день!
Голый скрипт работает не корректно, wget возвращает наполнение страницы....в общем не определяет он Smile
Я переделал на externip=`curl -s http://getip.krisk.org`
Теперь вопрос, что за exect в asterisk.conf?
Я в скриптах не силён, но я так понимаю он помогает только определить ip? Замену в sip.conf он не делает же?

Added after 9 minutes:

А, извиняюсь, кажется начал понимать как это работает Smile
Вызываем так: exec путь_к_sip.conf путь_к_скрипту?
В итоге получаю:
-bash: /etc/asterisk/sip.conf: Отказано в доступе
Shocked
#7

Преодоление nat важно для RTP трафика, в случае если кто-то из участников находится за nat. В версии Astrisk 11.11, при ниже указанных настройках всё отрабатывает как нужно, в тестах.

rtp.conf

stundaddr=stun.sipnet.ru

res_stun_monitor.conf // по документации digium изменения в этом конфиге не обязательны

stunaddr=stun.sipnet.ru