- Настраиваем Elastix.
Вносим изменения в файл sip_general_custom.conf:
externip=10.20.30.40
localnet=192.168.0.0/255.255.255.0
nat=yes
canreinvite=no
registertimeout=20
registerattempts=0
maxexpiry=3600
minexpiry=60
Первой строкой указываем внешний ip адрес вашего интернет соединения.
Второй строкой указываем вашу локальную подсеть. Если у вас несколько сетей то и строк может быть несколько.
При желании все эти настройки можно сделать через веб интерфейс используя Unembedded freePBX, но это не рекомендуется во избежании конфликтов. - Настраиваем маршрутизатор
Нам необходимо пробросить 5060 и 10000-20000 внешние udp порты на сервер Elastix. Для маршрутизаторов MikroTik будут такие правила:
/ip firewall filter add action=accept chain=forward dst-address=192.168.0.10 dst-port=5060,10000-20000 protocol=udp in-interface=wan
/ip firewall nat add action=dst-nat chain=dstnat dst-port=5060,10000-20000 in-interface=wan protocol=udp to-addresses=192.168.0.10
где 192.168.0.10 адрес вашего Elastix сервера
wan порт на маршрутизаторе к которому подключен интернет.
Конечно с вашего Elastix должен быть настроен выход в интернет.
Если вы сомневаетесь про порты 10000-20000, то откройте файл rtp.conf и посмотрите какие у вас порты указаны в настройках.
Данная настройка великолепно работает с sip телефонами которые имеют как прямой ip адрес, так и те, которые расположена также за NAT, при условии что промежуточные провайдеры не блокируют voip трафик. При этом в дополнительной настройки маршрутизатора со стороны клиента нет необходимости. Вам просто в клиенте надо указать внешний ip адрес вашего Elastix.
Но, для 100% надежности, я бы рекомендовал клиентов подключать через vpn, чтобы весь трафик был как бы локальным.