Hello, I’ve done quite a few google searches, but can’t find a resolution to my issue, which is:
When I dial a number straight from MicroSIP through my PBX, DTMF works just fine
When I use a “merge” context in to a conference, DTMF does not pass
I have tried all DTMF options (Auto, inband, sip-info, RFC2833), and I’ve matched it to my trunk, but when an inbound call to the conference is received, DTMF does not pass.
use case: I call “scammer” numbers and my calls are often sent to voicemail. My DID is logged and they robo-dial me back. The call-back puts them in a conference (inbound route sends to the conference) which other friends (scam-baiters) are dialed in to. When the IVR inbound says “press 1 to speak to a scamazon agent”, we can press 1 all day long, but the IVR doesn’t detect it.
Why would DTMF responses work when the call is sent to an extension (MicroSIP auto-answer), but DTMF isn’t passed in the conference?
That’s in my /etc/asterisk/extensions_custom.conf. When I use a call file to call out, it merges the outbound call in to the conference. If I call direct with a client (microsip), as mentioned, DTMF passes. If I use a call file to “merge” them in to a conference, DTMF doesn’t pass.
The “real” issue, however, is on the inbound call. When they call in directly to my DID, the inbound route puts them in the conference, and DTMF won’t pass there either.
Testing now!!! I had a feeling it was going to be simple. My knowledge of PBXs is only a year old (with 20+ years of IT experience). I hope to reply with success!! thank you!
No luck yet, but I need to do more testing. I have added that to my confbridge (/etc/asterisk/confbridge_custom.conf), but no luck with it. Is there a better place to put it? Can I put something in the “merge context” in extensions_custom.conf ?
This is a log with DTMF logging on. The PBX detects it, but the caller that was merged in to the conference from an outbound call is not hearing the DTMF.
[2021-12-04 11:32:51] VERBOSE[13233] dial.c: SIP/ob-00000012 answered
[2021-12-04 11:32:51] VERBOSE[13233][C-0000001b] pbx.c: Executing [s@merge:1] Answer(“SIP/ob-00000012”, “”) in new stack
[2021-12-04 11:32:51] VERBOSE[13233][C-0000001b] pbx.c: Executing [s@merge:2] Set(“SIP/ob-00000012”, “CALLFILENAME=20211204-113251,g”) in new stack
[2021-12-04 11:32:51] VERBOSE[13233][C-0000001b] pbx.c: Executing [s@merge:3] Monitor(“SIP/ob-00000012”, “wav,MERGE-20211204-113251,g,m”) in new stack
[2021-12-04 11:32:51] VERBOSE[13233][C-0000001b] pbx.c: Executing [s@merge:4] ConfBridge(“SIP/ob-00000012”, “9001”) in new stack
[2021-12-04 11:32:51] VERBOSE[13233][C-0000001b] bridge_channel.c: Channel SIP/ob-00000012 joined ‘softmix’ base-bridge <3357d5e8-9cf4-46ae-99f2-0f83f8d14df0>
[2021-12-04 11:32:51] VERBOSE[3958] file.c: <CBAnn/9001-00000000;1> Playing ‘confbridge-join.slin16’ (language ‘en’)
[2021-12-04 11:33:09] DTMF[3930][C-00000001] channel.c: DTMF begin ‘1’ received on PJSIP/2001-00000000
[2021-12-04 11:33:09] DTMF[3930][C-00000001] channel.c: DTMF begin passthrough ‘1’ on PJSIP/2001-00000000
[2021-12-04 11:33:09] DTMF[3930][C-00000001] channel.c: DTMF end ‘1’ received on PJSIP/2001-00000000, duration 200 ms
[2021-12-04 11:33:09] DTMF[3930][C-00000001] channel.c: DTMF end accepted with begin ‘1’ on PJSIP/2001-00000000
[2021-12-04 11:33:09] DTMF[3930][C-00000001] channel.c: DTMF end passthrough ‘1’ on PJSIP/2001-00000000
[2021-12-04 11:33:13] DTMF[3930][C-00000001] channel.c: DTMF begin ‘1’ received on PJSIP/2001-00000000
[2021-12-04 11:33:13] DTMF[3930][C-00000001] channel.c: DTMF begin passthrough ‘1’ on PJSIP/2001-00000000
[2021-12-04 11:33:13] DTMF[3930][C-00000001] channel.c: DTMF end ‘1’ received on PJSIP/2001-00000000, duration 200 ms
[2021-12-04 11:33:13] DTMF[3930][C-00000001] channel.c: DTMF end accepted with begin ‘1’ on PJSIP/2001-00000000
[2021-12-04 11:33:13] DTMF[3930][C-00000001] channel.c: DTMF end passthrough ‘1’ on PJSIP/2001-00000000
[2021-12-04 11:33:19] DTMF[3930][C-00000001] channel.c: DTMF begin ‘1’ received on PJSIP/2001-00000000
[2021-12-04 11:33:19] DTMF[3930][C-00000001] channel.c: DTMF begin passthrough ‘1’ on PJSIP/2001-00000000
[2021-12-04 11:33:19] DTMF[3930][C-00000001] channel.c: DTMF end ‘1’ received on PJSIP/2001-00000000, duration 200 ms
[2021-12-04 11:33:19] DTMF[3930][C-00000001] channel.c: DTMF end accepted with begin ‘1’ on PJSIP/2001-00000000
[2021-12-04 11:33:19] DTMF[3930][C-00000001] channel.c: DTMF end passthrough ‘1’ on PJSIP/2001-00000000
[2021-12-04 11:33:23] DTMF[3930][C-00000001] channel.c: DTMF begin ‘#’ received on PJSIP/2001-00000000
[2021-12-04 11:33:23] DTMF[3930][C-00000001] channel.c: DTMF begin passthrough ‘#’ on PJSIP/2001-00000000
[2021-12-04 11:33:23] DTMF[3930][C-00000001] channel.c: DTMF end ‘#’ received on PJSIP/2001-00000000, duration 200 ms
[2021-12-04 11:33:23] DTMF[3930][C-00000001] channel.c: DTMF end accepted with begin ‘#’ on PJSIP/2001-00000000
[2021-12-04 11:33:23] DTMF[3930][C-00000001] channel.c: DTMF end passthrough ‘#’ on PJSIP/2001-00000000
It was a 2-part issue
Trunk #1 won’t let DTMF through (I’ll have to figure that out later)
Trunk #2 passes DTMF only if my SIP client is using “In-band”.
So, I’ll just use the second trunk with in-band set