Skip to content

No Audio After Answer

Symptom: call answers but both sides are silent. No "hello?" gets through either way. Call stays connected for the full duration of someone's patience.

Different from one-way audio (one side hears) and from "call disconnects immediately" (the call doesn't stay up). This is bidirectional silence with the dialog still alive.

Most Likely Causes

  1. Codec mismatch — both sides agreed on a codec in SDP that one side can't actually encode/decode. Audio frames sent, decoded as garbage / discarded.
  2. MoH playing instead of bridge — the call is on hold (one side hit hold) and the other hears MoH (or silence if MoH is empty).
  3. Wrong RTP port range firewalled — RTP is silently dropped at a firewall mid-path. SIP works fine.
  4. callcounter glitch / call parked accidentally — UnifiedBX bug that parks rather than bridges.
  5. Phone microphone hardware-muted on both sides — rarer but happens, especially with new headsets.

Diagnose

# During the silent call:
asterisk -rx "core show channels"
asterisk -rx "core show channel <channel-id>"
# Look at "Bridged with" — should show the other leg.

# Watch RTP stats:
asterisk -rx "rtp set debug on"
# Then in another terminal:
tail -f /var/log/asterisk/full | grep -i rtp
# Should see "Sending packet" and "Received packet" entries from both sides.
# If you only see Send-and-no-Receive, RTP is unidirectional — firewall.
# If you see neither, codec or call state issue.

Fix

  • Lock both sides to one codec for testing. Trunk and extension both set to ulaw only. If audio returns, walk codecs back one at a time to find the offender.
  • Verify the call isn't parked / on hold — core show channels should show both legs Up, not Hold.
  • Check System Admin → Firewall RTP rules; verify with iptables -L -n | grep 1000.
  • Restart RTP module if state is corrupted: asterisk -rx "module reload res_rtp_asterisk.so".

When to Escalate

  • RTP packets visible in both directions in rtp set debug on output, but still silent. That's a phone or carrier endpoint issue, not UnifiedBX.