VOIP клиенты и Asterisk за NAT

В экстеншенах нужно указывать:
nat yes
canreinvite no (это запрет на соединение клинтов напрямую, минуя сервер) 
Также на фаерволе должны быть открыты порты:
5060 UDP (это sip)
10000-20000 UDP(это медиа поток)

VOIP клиенты и Asterisk за NAT

sip_general_custom.conf

context=from-sip-external
allowguest=no
allowoverlap=no
alwaysauthreject=yes
ignoresdpversion=yes
useragent=Asterisk
defaultexpiry=360
callevents=yes
limitonpeer=yes
tcpenable=yes
tcpbindaddr=0.0.0.0
rtptimeout=60
rtpholdtimeout=300
rtpkeepalive=5
dtmfmode=info
canreinvite=no
language=ru
bindport=5060
bindaddr=0.0.0.0
srvlookup=yes
nat=yes
qualify=yes
qualify=300 ; проверять соединение каждые 300 мс.
localnet=192.168.0.0/255.255.0.0 ; Локальная сеть
externip=XX.XX.XX.XX ; Внешний IP адрес
allowexternaldomains=no

rtp.conf

[general]
rtpstart=10000
rtpend=20000

В настройках роутера должен быть проброшен NAT с внешнего IP XX.XX.XX.XX
Пример показан для роутера Mikrotik

/ip firewall nat
add action=dst-nat chain=dstnat comment="ASTERISK XX.XX.XX.XX" disabled=no \
    dst-address=XX.XX.XX.XX dst-port=5060-5180 protocol=udp to-addresses=\
    192.168.0.212 to-ports=5060-5180
add action=dst-nat chain=dstnat disabled=no dst-address=XX.XX.XX.XX dst-port=\
    10000-20000 protocol=udp to-addresses=192.168.0.212 to-ports=10000-20000