VoIP utilises UDP and is unfortunately not NAT friendly. Most SOHO routers will have SIP NAT helpers (often simply called ‘SIP ALG’) which are generally enabled but these don’t work consistently. My recommendation would be to disable SIP NAT helper modules on NAT devices (eg ADSL router and/or firewall) and to make use of STUN.

 

Some information:

SIP consists of a control connection where calls are essentially offered (incoming) or placed (outgoing). The SIP control session also signals what ports the media is going to connect on, these are the RTP ports. For this to work the SIP control message needs to contain the RTP media stream IP address. A SIP NAT helper tries to mangle the SIP control packets to replace the internal IP with the perceived external address, but this isn’t flawless and will lead to intermittent services, one-way audio  or other problems.

 

A better solution is for the SIP device (PABX, phone, gateway, etc) to discover it’s real external IP address and to place this IP in the control session messages. Most devices have options to set NAT to ‘yes, no or STUN’ and may additionally require a STUN server address that it can use to work out the type of NAT in use (eg full cone, floating ports, etc) and it’s public breakout IP address.

 

You can use any public STUN server and could consider simply using ‘stun.syrex.co.za’ for this purpose, it has no bearing on the VoIP provider and does not proxy VoIP traffic.

 

 

Sample settings:

·         Siemens Gigaset

o   Settings -> Telephony -> Connections -> eg IP1 -> Advanced

§  STUN enabled                   : Yes

§  STUN Server                       : stun.syrex.co.za

·         Grandstream Handy Tone Adapter (ATA)

o   Advanced Settings

§  STUN Server                       : stun.syrex.co.za

o   FXS Port

§  NAP Traversal (STUN)    : Yes

·         Cisco SPA50x phones:

o   SIP -> NAT Support Parameters

§  STUN Enable                      : Yes

§  STUN Server                       : stun.syrex.co.za