Phone -> NAT/FIREWALL -> Internet -> NAT/Firewall-> Asterisk

Home » Asterisk Users » Phone -> NAT/FIREWALL -> Internet -> NAT/Firewall-> Asterisk
Asterisk Users 5 Comments

Hello, CentOS 6.x and Asterisk 11.x I have an interesting, to me at least, situation. Using a Polycom
501(also tried with X-Lite). I have set up Asterisk to accept registration from the Polycom and it registers successfully but then withing 30 seconds on the CLI I get the message that the Polycom is unreachable. The phone still shows that it is registered and if I try to place a call from the phone to my Cell, my cell rings once and then stops. I get a packet retransmission error:
WARNING[1303]: chan_sip.c:4174 retrans_pkt: Retransmission timeout reached on transmission 689874757@192.168.0.100 for seqno 2 (Critical Response)
Followed by:
n_sip.c:4203 retrans_pkt: Hanging up call xxxxxxxxxx@192.168.0.100 – no reply to our critical packet I am “assuming” that there is a problem with NAT. I have externip set in sip.conf. Any pointers to what I am missing?
Thanks, JohnM

5 thoughts on - Phone -> NAT/FIREWALL -> Internet -> NAT/Firewall-> Asterisk

  • Make sure you have nat=yes in your sip.conf either under globals or individual sip peer settings.

    Nick Olsen Network Operations
    (855) FLSPEED x106

    ————————————–

  • top posting so as to not make thread even more confusing.

    Nick, I have nat=force_rport,comedia in sip.conf. It is my understanding that nat=yes is deprecated?

    Thanks, JohnM

  • I believe you’re correct. And that should be the correct setting.

    However, You may want to do a packet sniff and confirm you’re seeing the actual traffic as expected. Being that you see timeouts on the asterisk side. My bet is the rtp/sip traffic is going toward the device on a port it’s not expecting. Or, The NAT device doesn’t have a mapping for and being dropped at one of your routing devices.

    Nick Olsen Network Operations
    (855) FLSPEED x106

    ————————————–

  • top posting is superior anyway — *ducking to avoid thrown objects*

    If I recall correctly, when doing something like that with a polycom I
    had to set the registration interval absurdly low, like 20 seconds or something. I think the Polycom didn’t send keepalives and that was the workaround.