Вывод Asterisk за NAT под FreeBSD

Установите модуль Asterisk SIP Settings

Предполагается что с вашего сервера/роутера проброшены порты:
5060 UDP - для инициации SIP соединения.
10000 - 20000 UDP - для голосовых пакетов. (диапазон можно уменьшить в файле /etc/asterisk/rtp.conf)


Установите следующие значения

NAT - yes

IP configuration - Static IP

Extern IP - 123.123.123.123 -внешний IP адрес

Local Networks - 192.168.0.0/255.255.255.0 -локальная сеть

Reinvite Behavior - No

Источник: http://www.asterisk-pbx.ru/wiki/doku.php/freepbx/freepbx_nat

Еще кое что:

Пробрасываем порты к серверу asterisk наружу через NAT

Добавляем или создаем переменную natd_flags в rc.conf на роутере, где крутится NAT:
natd_flags="-redirect_port udp 10.1.1.1:5060 5060 -redirect_port udp 10.1.1.1:10000-20000 10000-20000"

Здесь:
10.1.1.1 – сервер с астериском
udp 5060 – стандартный сигнальный порт
udp 10000-20000 – стандартный диапазон портов для голосовой связи

Добавляем в ipfw.conf:

ipfw="/sbin/ipfw -q"
ext_ip=222.222.222.222 #ваш внешний статический IP-адрес
server_ip=10.1.1.1 #внутренний адрес сервера asterisk
ext_iface=xl0 #внешний интерфейс

#Asterisk port mapping
${ipfw} add 121 divert natd udp from any to ${ext_ip} dst-port 5060,10000-20000 in recv ${ext_iface}
${ipfw} add 122 divert natd udp from any to ${ext_ip} src-port 5060,10000-20000 in recv ${ext_iface}
${ipfw} add 123 divert natd udp from ${server_ip} to any dst-port 5060,10000-20000 out xmit ${ext_iface}
${ipfw} add 124 divert natd udp from ${server_ip} to any src-port 5060,10000-20000 out xmit ${ext_iface}
${ipfw} add 125 pass udp from any to ${server_ip} dst-port 5060,10000-20000 via any
${ipfw} add 126 pass udp from any to ${server_ip} src-port 5060,10000-20000 via any
${ipfw} add 127 pass udp from ${server_ip} to any dst-port 5060,10000-20000 via any
${ipfw} add 128 pass udp from ${server_ip} to any src-port 5060,10000-20000 via any

После этого перезагружаем NAT и фаэрвол. Все, на этом port mapping для asterisk завершен.

Настройка sip.conf
Правим в sip.conf:

bindport=5060 ;стандартный сигнальный порт asterisk
bindaddr=0.0.0.0 ;по-умолчанию биндим астериск на всех интерфейсах
externip = 222.222.222.222 ;ваш внешний ip-адрес, которым будет представляться asterisk
localnet=10.1.1.0/255.255.255.0 ;диапазон локальных адресов
canreinvite=no

Информация по последнему параметру хорошо описана здесь, а описание самой сути процесса REINVITE – здесь.
Для настроек аккаунтов следует обратить внимание на следующие опции:

qualify=yes ;проверка аккаунтов. Используется для поддержки записи в таблице трансляций NAT и мониторинга пира.
nat=yes, no, never, route ;в зависимости от местоположения устройства за NAT или нет

Настраиваем диапазон портов RTP
rtp.conf:

[general]
rtpstart=10000
rtpend=20000

На этом настройку можно считать законченной.

Источник: http://www.mahno.su/freebsd/asterisk-freebsd/vyivod-asterisk-za-nat-pod…

Коментувати

Простий текст

  • Не дозволено жодних HTML теґів.
  • Рядки й абзаци переносяться автоматично.
  • Адреси вебсторінок та адреси електронної пошти автоматично перетворюються у посилання.