"ChannelDtmfReceived" event doesn't emit when call receiver press the button

Hello, I have a project where i can make incoming and outgoing calls. I need to get the result of pressing the phone buttons. It works well when the call initiator presses the button, then “ChannelDtmfReceived” event emitted and i can get the digit. But when the button is pressed by call receiver, the “ChannelDtmfReceived” event doesn’t emit. What should i do to make the “ChannelDtmfReceived” event emit in both cases?

P.S.: I use ARI to create bridge and add channels. Also i tried to create bridge with type ‘mixing,dtmf_events’, but it didn’t help to solve my problem.

Have you verified that DTMF is actually being received from that party and that you’ve configured Asterisk to know the correct way?

Are you monitoring the correct channel (not the caller’s channel)?

Unfortunately, i am new with Asterisk and i don’t know how to configure it. It was configured by another guy and he told that DTMF should work for both cases. I can just verify the channel from which i receive DTMF, digit and duration in program code, but i don’t know how to verify DTMF with another way.

RFC based DTMF would show in “rtp set debug on” and in a packet capture. If Asterisk doesn’t see the DTMF or get it, then the ARI event would not occur.

1 Like

I just get the channel and the digit in the “ChannelDtmfReceived” event. Perhaps there is some configuration where I should specify for which channels I need to receive DTMF?

The events will occur for all channels, and if the channel is in the ARI application then it should be subscribed.

1 Like

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