Sipstation - How is Contact IP determined and how do I change it?

I got a call today and realized that I didn’t have audio in either direction. When I checked my sipstation connectivity under Connectivity >> SIPSTATION I found that my “Contact IP” is showing my LAN address as opposed to my WAN address. My “Network IP” is showing the correct WAN address. Both are highlighted in yellow and right below it says:

“Warning: The SIP Contact header is not set to your WAN IP. It is set to your internal private IP behind NAT. The gateway will attempt to decipher your proper address but your configuration is incorrect. You should review the NAT settings in the Asterisk SIP Settings module, or sip_nat.conf if not using that module.”

I checked my NAT settings in “Asterisk SIP Settings” and everything seems to be correct. Nothing has been changed. My external IP is correctly detected and my local network is properly defined as

Everything was working fine a week ago when I did my last test after upgrading my firewall hardware. All required ports are open and freepbx was restarted after the change.

Question: How is the "Contact IP determined or set? And what do I change to make this match my external address?

I’m assuming this has something to do with my new router hardware but I’m not sure what I’m missing.

Thanks in advance for the help.

We do not set that. Its sent by your PBX to us so we just show what is sent. It sounds like to me your router is doing some ALG which is why you are having 1 way audio problems. Turn off all ALG and SIP Helpers on your router.

Thanks for the quick response.

My router is IPCOP v2.1.8. As far as I know there is no setting for ALG or SIP because it’s disabled by default in this version.

I have no audio at all, yet I pass the “firewall test”.

Any other ideas?

Well it has to be something in that firewall. Contact IP is what is set in the header of the SIP Packet.

The issue has been resolved. The issue was with my IPcop router’s domain setting, which is set during installation. In the past I would always leave it set to the default of “localdomain.” The last time I rebuilt the router I set the domain to my dynamic DNS FQDN, This apparently broke the ability of any device to resolve the IP address of from behind the router.

So I rebuilt the router again and left the domain as “localdomain” and everything works again. Not 100% sure why though.