SER nat support

From the SER Administrator's guide



NATs are worst things that ever happened to SIP. These devices are very popular because they help to conserve IP address space and save money charged for IP addresses. Unfortunately, they translate addresses in a way which is not compatible with SIP. SIP advertises receiver addresses in its payload. The advertised addresses are invalid out of NATted networks. As a result, SIP communication does not work accross NATs without extra effort.

There are few methods that may be deployed to traverse NATs. How proper their use is depends on the deployment scenario. Unfortunatelly, all the methods have some limitations and there is no straight-forward solution addressing all scenarios. Note that none of these methods takes explicit support in ser.



In SER 0.8.11 the nathelper module was launched. From the README:



This is a module to help with NAT traversal. In particular, it helps symmetric UAs that don't advertise they are symmetric and are not able to determine their public address.
  • _fix_nated_contact_: rewrites Contact header field with request's source address:port pair.
  • _fix_nated_sdp_: adds the active direction indication to SDP (flag 0x01) and updates source IP address too (flag 0x02).

Known devices that get along over NATs with nathelper are ATAs (as clients) and Cisco Gateways (since 12.2(T)) as servers.


Variable: natping_interval (integer)
  • Period of time in seconds between sending short UDP packets to all currently registered UAs to keep their NAT bindings alive. Value of 0 disables this functionality.



Other links

From the SER Administrator's guide



NATs are worst things that ever happened to SIP. These devices are very popular because they help to conserve IP address space and save money charged for IP addresses. Unfortunately, they translate addresses in a way which is not compatible with SIP. SIP advertises receiver addresses in its payload. The advertised addresses are invalid out of NATted networks. As a result, SIP communication does not work accross NATs without extra effort.

There are few methods that may be deployed to traverse NATs. How proper their use is depends on the deployment scenario. Unfortunatelly, all the methods have some limitations and there is no straight-forward solution addressing all scenarios. Note that none of these methods takes explicit support in ser.



In SER 0.8.11 the nathelper module was launched. From the README:



This is a module to help with NAT traversal. In particular, it helps symmetric UAs that don't advertise they are symmetric and are not able to determine their public address.
  • _fix_nated_contact_: rewrites Contact header field with request's source address:port pair.
  • _fix_nated_sdp_: adds the active direction indication to SDP (flag 0x01) and updates source IP address too (flag 0x02).

Known devices that get along over NATs with nathelper are ATAs (as clients) and Cisco Gateways (since 12.2(T)) as servers.


Variable: natping_interval (integer)
  • Period of time in seconds between sending short UDP packets to all currently registered UAs to keep their NAT bindings alive. Value of 0 disables this functionality.



Other links

Created by: oej, Last modification: Mon 06 of Dec, 2004 (19:27 UTC) by busywiki
Please update this page with new information, just login and click on the "Edit" or "Discussion" tab. Get a free login here: Register Thanks! - Find us on Google+