Symptoms
- Call connects, both sides hear ringing, but after pickup one or both sides hear silence.
- Call drops at exactly 30 seconds (RTP timeout).
- SIP messages flow fine, but
rtcpreports zero packets.
All three are NAT-related.
Asterisk fix
In pjsip.conf transport:
[transport-udp]
type = transport
protocol = udp
bind = 0.0.0.0:5060
external_media_address = YOUR.PUBLIC.IP
external_signaling_address = YOUR.PUBLIC.IP
local_net = 192.168.0.0/16
local_net = 10.0.0.0/8
On the endpoint:
rtp_symmetric = yes
force_rport = yes
rewrite_contact = yes
direct_media = no
FreeSWITCH fix
In vars.xml:
<X-PRE-PROCESS cmd="set" data="external_rtp_ip=YOUR.PUBLIC.IP"/>
<X-PRE-PROCESS cmd="set" data="external_sip_ip=YOUR.PUBLIC.IP"/>
Firewall
Open UDP 10000–20000 inbound on your public IP. If you're behind a NAT router, port-forward the same range to your softswitch.
Verify
tcpdump -i any -n udp portrange 10000-20000
During a call you should see RTP packets in both directions. If you only see one direction, NAT is still mangling the other side's destination address.