Skip to content

One-Way Audio

Symptom: call connects, both sides answer, but only one side hears the other. Either caller hears callee but not vice-versa, or the reverse.

Most Likely Causes

  1. NAT / external address misconfigured on the PBX. UnifiedBX advertises a private IP in SDP; remote endpoint can't reach it for RTP.
  2. direct_media enabled on an extension that's behind NAT. Reinvite to client succeeds but reverse RTP path fails.
  3. Firewall blocking RTP — UDP 10000-20000 (default range) blocked in one direction.
  4. Asymmetric routing — RTP from one side egresses one path, return takes another, gets dropped.
  5. Codec issue post-reinvite — both sides claim a codec they can't actually do.

Diagnose

# Check the PBX's advertised external addresses:
asterisk -rx "pjsip show transports"
# external_media_address and external_signaling_address should be set on Internet-facing transports.

# Live capture during a one-way call:
sngrep -d any
# Open the call. Look at the SDP c= and m= lines on both sides.
# Each side should advertise an IP the OTHER side can reach.

If c=IN IP4 192.168.x.x is in the SDP and that's a private IP the remote endpoint can't reach, that's the bug.

Fix

  • System Admin → Sysadmin → Network Settings → set External Address to the PBX's public IP / FQDN. Apply Config.
  • Trunk Attributes → SIP Settings → External Address — match.
  • Disable direct_media on NAT'd extensions: User Attributes → Extensions → → Advanced → Direct Media = No.
  • Verify firewall: open UDP 10000-20000 to/from the carrier and any remote endpoints.
  • For persistent NAT issues on remote softphones: enable STUN, or pin the softphone's Public Address manually.

When to Escalate

  • External Address is correct, RTP ports are open, only one specific carrier exhibits this. Likely a carrier-side NAT issue — open a ticket with them, send pcaps.