If you face limitations in handling the RTP streams for your behind NAT users, check the new module in Kamailio (OpenSER) 3.0.0 named: iptrtpproxy.
Online readme available at:
Using it, all RTP streams are manipulated directly in kernel space, no data are copied from kernel to userspace and back, therefore reducing load and delay.
The provides similar functionality as nathelper but communicates with netfilter kernel xt_RTPPROXY module using libipt_RTPPROXY userspace library. More about these at:
AFAIK, these NAT traversal solution is used by public VoIP service offered by iptel.org, therefore is pretty much production ready (Note: the module is not a new development, it is available in Kamailio 3.0.0 via SIP Router project framework from SIP Express Router (SER)).
Next I will get back to transport layer: SCTP - Stream Control Transmission Protocol - wikipedia.