I’m unable to use RFC4733

Title: RFC4733 DTMF not detected with PJSIP SIP trunk, but in-band DTMF works

Hello everyone,

I am having trouble receiving RFC4733 DTMF through a SIP trunk using chan_pjsip.

My setup:

  • Asterisk version: [Asterisk version]
  • OS: Debian running in VirtualBox
  • SIP transport: UDP
  • Channel driver: chan_pjsip
  • SIP provider: AliveNet / NeoSIP in Japan

Asterisk makes an outbound call to a mobile phone, and the dialplan uses Read() to collect keypad input from the person answering.

With in-band DTMF, I can receive digits, but detection is unreliable. I would like to use RFC4733 instead.

I tried setting dtmf_mode=rfc4733 on the trunk endpoint, but keypad input was not detected. During troubleshooting, I also saw the endpoint still showing inband after changing the configuration, so I am unsure whether the setting was applied correctly.

I have contacted the provider to ask whether they support RFC4733, but this has not yet been confirmed.

Could someone help me understand:

  1. How can I verify that the active endpoint and a new call are actually using the intended DTMF mode?
  2. Which parts of the SIP/SDP exchange should I check to confirm that telephone-event has been negotiated?
  3. How can I determine whether incoming RTP contains DTMF events, or whether the provider is delivering only audible DTMF tones?
  4. Which logs and configuration sections should I provide to troubleshoot this?

I can provide my Asterisk version, sanitized pjsip.conf, SIP/SDP traces, and RTP/DTMF debug logs.

Thank you for your help.