Operations · 3 min read

Fixing NAT and one-way audio issues

The most common production issue with self-hosted SIP — diagnosed and fixed in five minutes.

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 rtcp reports 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.

Related in Operations

Still stuck?

Open a ticket