[asterisk-app-dev] absorbDTMF option only working on one channel

Joshua C. Colp jcolp at sangoma.com
Wed Dec 18 06:28:32 CST 2019


On Wed, Dec 18, 2019 at 8:22 AM Richard Frith-Macdonald <
richard.frith-macdonald at engagehub.com> wrote:

>
>
> > On 18 Dec 2019, at 11:42, Joshua C. Colp <jcolp at sangoma.com> wrote:
> >
> > On Wed, Dec 18, 2019 at 7:34 AM Richard Frith-Macdonald <
> richard.frith-macdonald at engagehub.com> wrote:
> > I'm using ARI to set up a bridge with two calls (one inbound, one
> outbound), where I want to receive DTMF events from both calls but stop the
> DTMF audio being passed through in either direction.
> > The bridge is created as mixing,dtmf_events,proxy_media and the two
> channels are each added using /ari/bridges/BridgeID/addChannel with
> absorbDTMF = 1.
> > It seems to be operating as expected, except that the tones from the
> dialed mobile phone (outgoing call via Colt) are audible to the dialing
> handset (inbound call to asterisk from softphone).
> > Please could anyone provide a ponter to what I might be doing wrong?
> >
> > What is the technology in use for the channels? Does DTMF show up if you
> enable DTMF logging in logger.conf? If it's RTP do you see it being sent in
> "rtp set debug on"?
>
> Both channels are using pjsip, and both show up in the DTMF logger.
>
> The log for a tone from the mobile shows a number of RTP packets read
> around the DTMF:
>
> [Dec 18 11:54:17] VERBOSE[22198] res_rtp_asterisk.c: Got  RTP RFC2833
> from   172.24.8.4:14370 (type 101, seq 000851, ts 1003374928, len 000004,
> mark 1, event 00000005, end 0, duration 00080)
> [Dec 18 11:54:17] DTMF[22198] channel.c: DTMF begin '5' received on
> PJSIP/Colt2-0000001a
> [Dec 18 11:54:17] DTMF[22198] channel.c: DTMF begin passthrough '5' on
> PJSIP/Colt2-0000001a
> ...
> [Dec 18 11:54:17] VERBOSE[22198] res_rtp_asterisk.c: Got  RTP RFC2833
> from   172.24.8.4:14370 (type 101, seq 000858, ts 1003374928, len 000004,
> mark 0, event 00000005, end 1, duration 02480)
> [Dec 18 11:54:17] DTMF[22198] channel.c: DTMF end '5' received on
> PJSIP/Colt2-0000001a, duration 310 ms
> [Dec 18 11:54:17] DTMF[22198] channel.c: DTMF end accepted with begin '5'
> on PJSIP/Colt2-0000001a
> [Dec 18 11:54:17] DTMF[22198] channel.c: DTMF end passthrough '5' on
> PJSIP/Colt2-0000001a
> [Dec 18 11:54:17] VERBOSE[22198] res_rtp_asterisk.c: Got  RTP packet from
>   172.24.8.4:14370 (type 101, seq 000859, ts 1003374928, len 000004)
> [Dec 18 11:54:17] VERBOSE[22198] res_rtp_asterisk.c: Got  RTP RFC2833
> from   172.24.8.4:14370 (type 101, seq 000859, ts 1003374928, len 000004,
> mark 0, event 00000005, end 1, duration 02480)
>
> The log of RTP to the other end looks like this:
>
> [Dec 18 11:54:17] VERBOSE[22196][C-00000017] res_rtp_asterisk.c: Sent RTP
> packet to      10.16.25.202:8000 (type 00, seq 000971, ts 1003379088, len
> 000160)
>
>
> I presume the RTP packets of type 101 with event 00000005 are signalling
> the dtmf tone 5 for some duration.
> They don't seem to be forwarded on to the other end in the same format
> though.
>
> > Essentially you need to determine if it's DTMF in the audio stream
> alongside out of band, or if DTMF is actually being detected/suppressed
> from the audio stream but still passed on out of band.
>
> I don't really know what th DTMF logs 'begin passthrough' and 'end
> passthrough' actually mean though.  Of course I want the DMF tones to
> appear as events in Stasis (which they do), but I dn't want them passed
> through the bridge to be heard by the other end.
>

For the non-mobile leg is it configured with dtmf_mode=rfc4733? If so then
it looks as though from the perspective of Asterisk it is not actually
forwarding DTMF through, at least DTMF it has been told about. If the DTMF
is also coming in over the audio stream itself, then that would be
forwarded on as-is since it is the responsibility of the remote party to
suppress that audio and not Asterisk.

A test would be sending the mobile leg to Record() and seeing if the DTMF
is recorded. Record() doesn't record DTMF that Asterisk knows about, but
merely records the audio stream as received. If it's played back and there
is DTMF then it's not being suppressed as expected by the remote side.

-- 
Joshua C. Colp
Asterisk Technical Lead
Sangoma Technologies
Check us out at www.sangoma.com and www.asterisk.org
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.digium.com/pipermail/asterisk-app-dev/attachments/20191218/bc69733f/attachment-0001.html>


More information about the asterisk-app-dev mailing list