One-way audio with Gigaset cordless on chan_pjsip

Hello,

This is my last attempt at fixing this issue before downgrading Asterisk to v20 and re-enabling chan_sip for these devices, until I throw them away some time next year.

Since we upgraded our PBX to FreePBX 17 with Asterisk 21 and migrated from chan_sip to chan_pjsip, we are experiencing a random one-way audio issue with our Gigaset cordless phones.

During some calls, the Gigaset handset can receive audio (remote party is heard), but the remote party cannot hear the Gigaset user.
The issue seems random: some calls work fine, but most have one-way audio.
Hanging up the call from the Gigaset does not always generate a proper BYE.
Other phones (Yealink, both desk and cordless) do not show this problem.

Troubleshooting so far:

  • Tested with all codecs (G.711, G.726, G.729 with/without Annex B, G.722). The issue persists regardless of codec.

  • Tested also with an internal loopback function (999 extension → Echo() application). Even in this case, the handset can hear the echo only for a few seconds, then silence, with sporadic short bursts of audio. So the problem happens without any external carrier or NAT traversal.

  • RTP debug shows Asterisk sending and receiving RTP packets normally from the correct handset IP/port during the call.

  • RTP keepalive is set (rtp_keepalive=30). Tried lowering/raising it, no change.

  • With chan_sip (Asterisk 20, FreePBX 14) the exact same phones worked fine on the same network. The issue appeared only after the migration to chan_pjsip.

  • No firewall or NAT changes were made during the migration

Environment:

  • PBX: FreePBX 17.0.21, Asterisk 21.10.2
  • Network: PBX behind NAT, externip and localnet configured
  • Phones: Gigaset C610 and C530 base stations, ~8 handsets
  • Endpoint settings rtp_symmetric=yes, rewrite_contact=yes, force_rport=yes, direct_media=no

At this point it looks like a chan_pjsip compatibility issue with Gigaset SIP stacks, since the audio streams are present but not properly handled, and the same hardware works fine with chan_sip.
Has anyone experienced similar problems with Gigaset + chan_pjsip? Any known workarounds before I give up?

Thanks in advance.

We would need to see actual PCAPs and debugs to help with this. Configs would be helpful too.

Hello,
I’ve collected the requested information. I hope I’ve included everything useful for troubleshooting.
200442 is the extension registered on a Gigaset C610 IP base that I’m using for testing.

200442 config from pjsip.endpoint.conf: 200442 config from pjsip.endpoint.conf - Pastebin.com

Debug of a call between 200442 (Gigaset) and 442 (Yealink) (not the one in the PCAP, but it had the same issue. I’m on a live system right now, so taking debug logs is a bit difficult): https://pastebin.com/14sJicvh

asterisk -x "pjsip show endpoint 200442": https://pastebin.com/cvSdKLFT

asterisk -x "pjsip show auth 200442-auth": https://pastebin.com/ZP2GiP1c

asterisk -x "pjsip show transport 0.0.0.0-udp": https://pastebin.com/z1zjfzMb

sudo tcpdump -i any host 192.168.0.68 -w /tmp/gigaset.pcap: Send

Let me know if I missed something.
Thanks for your help!

Welp, came here to say that management allowed me to purchase 8 new phones and bases (we chose Yealink W70B bases and W73H phones), so I didn’t even bother with the chan_sip downgrade. With the new phones, the problem was solved immediately.
So, if you have the same problem and don’t want to waste weeks trying to repair your old phones, just buy new ones. (yay, more e-waste)

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.