We use a obfuscation software to encrypt/mangle both SIP/RTP which sits before asterisk. What happens is sometimes we don't get any voice. after some "rtp set debug" we found out that when received ip of the rtp stream is router's public ip, everything works cleanly. But sometimes we get the private ip's of the client as received address in rtp stream which results in "no voice". it seems asterisk because of some unknown reason failed to traverse nat for the media stream.

How asterisk manages nat is not known to me. But common SIP nat traversal methods dictate that first it modifies SDP to put its address as the destination address for both side. Then it waits for a rtp packet (symmetric rtp) to know to what port it should send media.

I'm not understanding at what stage it fails. Because of wrong IP is shown i'm suspecting that its because of not writing SDP correctly. For what reason it happens still unknown to us.

Any pointer to how it should be debugged?

What reason behind this strange behavior is still unknown to us.


Have you tried setting the externip option?


Also, perhaps check out http://www.voip-info.org/wiki/view/Asterisk+sip+nat

If a peer is configured with nat=yes, it causes Asterisk to ignore the address information in the SIP and SDP headers from this peer, and reply to the sender's IP address and port

(I haven't looked at Asterisk for a while but recall that NAT can be a PITA.)

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

Not the answer you're looking for? Browse other questions tagged or ask your own question.