Project

General

Profile

Cannot send DTMF 0

Added by Guilherme Bizzani over 4 years ago

Hello all, I'm having this trouble since the beggining.
All DTMF's work fine, but DTMF 0 doesn't.
I've already tried to debug some parts of the code, but by what I see everything is equal independent the DTMF code that is being passed.
I've copied the SIP Debug in Asterisk's console,
https://pastebin.com/TSf4brwt


Replies (10)

RE: Cannot send DTMF 0 - Added by Wittie Manansala over 4 years ago

Hi,

May we know from what part your having issue in dtmf?

1. Sending DTMF while in outbound?
2. Sending DTMF while in inbound?

Please provide us steps to replicate the issue and sample number if possible.

Thanks

RE: Cannot send DTMF 0 - Added by Guilherme Bizzani over 4 years ago

Wittie Manansala wrote:

Hi,

May we know from what part your having issue in dtmf?

1. Sending DTMF while in outbound?
2. Sending DTMF while in inbound?

Please provide us steps to replicate the issue and sample number if possible.

Thanks

It's on outbound calls.

The carrier that I'm using with all campaigns is an IAX to another asterisk server, so I decide wich route I'm going to use in this other server, but the console's log that I posted before is from the GoAutoDial's asterisk console.
In the other server I receice nothing when the DTMF pressed is 0, but I receive it normally when it is any other DTMF.

I've already tryied all the dtmfmode options in the IAX configuration, I even try to make the Carrier use SIP protocol, but the DTMF keeps failing at 0.

I don't have any public number to test DTMF, but I made this context to store whatever the user type and say it back to him:

[dtmf-test]
exten => 5080,1,NoOp(DTMF TEST)
same => n,Read(digits,,9)
same => n,Wait(1)
same => n,NoOp(User typed ${digits})
same => n,SayDigits(${digits})

RE: Cannot send DTMF 0 - Added by Wittie Manansala over 4 years ago

Hi,

For troubleshooting please try to configure your VOIP directly in your GOautodial Server and test DTMF.

Thanks

RE: Cannot send DTMF 0 - Added by Sergey Scheglov over 4 years ago

Hi all.

We faced the same problem with DTMF during established onnection.
Dialing of all digits is works well except digit "0".
Digit "0" doesn't send to carrier.
There isn't problem on VoIP operator's side.
We tryed use rfc2833 and inband. With no luck.

Could you explain cause of the problem?

This is log from asterisk for digits 0 and 1

[Aug 21 10:14:30] DTMF14451[C-00000067]: channel.c:4040 __ast_read: DTMF end '0' received on SIP/kamailio-00000023, duration 160 ms
[Aug 21 10:14:30] DTMF14451[C-00000067]: channel.c:4067 __ast_read: DTMF begin emulation of '0' with duration 160 queued on SIP/kamailio-00000023
[Aug 21 10:14:30] DTMF14448[C-00000068]: channel.c:4126 __ast_read: DTMF begin '0' received on Local/99991696611389@default-00000036;1
[Aug 21 10:14:30] DTMF14448[C-00000068]: channel.c:4137 __ast_read: DTMF begin passthrough '0' on Local/99991696611389@default-00000036;1
[Aug 21 10:14:30] DTMF14451[C-00000067]: channel.c:4204 __ast_read: DTMF end emulation of '0' queued on SIP/kamailio-00000023
[Aug 21 10:14:30] DTMF14448[C-00000068]: channel.c:4040 __ast_read: DTMF end '0' received on Local/99991696611389@default-00000036;1, duration 164 ms
[Aug 21 10:14:30] DTMF14448[C-00000068]: channel.c:4081 __ast_read: DTMF end accepted with begin '0' on Local/99991696611389@default-00000036;1
[Aug 21 10:14:30] DTMF14448[C-00000068]: channel.c:4110 __ast_read: DTMF end passthrough '0' on Local/99991696611389@default-00000036;1

[Aug 21 10:14:22] DTMF14451[C-00000067]: channel.c:4040 __ast_read: DTMF end '1' received on SIP/kamailio-00000023, duration 160 ms
[Aug 21 10:14:22] DTMF14451[C-00000067]: channel.c:4067 __ast_read: DTMF begin emulation of '1' with duration 160 queued on SIP/kamailio-00000023
[Aug 21 10:14:22] DTMF14448[C-00000068]: channel.c:4126 __ast_read: DTMF begin '1' received on Local/99991696611389@default-00000036;1
[Aug 21 10:14:22] DTMF14448[C-00000068]: channel.c:4137 __ast_read: DTMF begin passthrough '1' on Local/99991696611389@default-00000036;1
[Aug 21 10:14:22] DTMF14451[C-00000067]: channel.c:4204 __ast_read: DTMF end emulation of '1' queued on SIP/kamailio-00000023
[Aug 21 10:14:22] DTMF14448[C-00000068]: channel.c:4040 __ast_read: DTMF end '1' received on Local/99991696611389@default-00000036;1, duration 173 ms
[Aug 21 10:14:22] DTMF14448[C-00000068]: channel.c:4081 __ast_read: DTMF end accepted with begin '1' on Local/99991696611389@default-00000036;1
[Aug 21 10:14:22] DTMF14448[C-00000068]: channel.c:4110 __ast_read: DTMF end passthrough '1' on Local/99991696611389@default-00000036;1
[Aug 21 10:14:22] DTMF14493[C-0000006a]: channel.c:4126 __ast_read: DTMF begin '1' received on Local/8600052@default-00000037;1
[Aug 21 10:14:22] DTMF14493[C-0000006a]: channel.c:4137 __ast_read: DTMF begin passthrough '1' on Local/8600052@default-00000037;1
[Aug 21 10:14:22] DTMF14493[C-0000006a]: channel.c:4040 __ast_read: DTMF end '1' received on Local/8600052@default-00000037;1, duration 100 ms
[Aug 21 10:14:22] DTMF14493[C-0000006a]: channel.c:4081 __ast_read: DTMF end accepted with begin '1' on Local/8600052@default-00000037;1
[Aug 21 10:14:22] DTMF14493[C-0000006a]: channel.c:4110 __ast_read: DTMF end passthrough '1' on Local/8600052@default-00000037;1

RE: Cannot send DTMF 0 - Added by Sergey Scheglov over 4 years ago

I've resolved this problem.

I changed code in file /usr/local/bin/listener.pl

if ($key) if ($key || $key == 0)

replaced by

RE: Cannot send DTMF 0 - Added by Sergey Scheglov over 4 years ago

I've resolved this problem.

I changed code in file /usr/local/bin/listener.pl

if ($key)
replaced by
if ($key || $key == 0)

RE: Cannot send DTMF 0 - Added by Wittie Manansala over 4 years ago

Good to know.

Thanks for sharing.

RE: Cannot send DTMF 0 - Added by Demian Biscocho over 4 years ago

This has been fixed 5 months ago. You can download the updated listener.pl from our Github repo: https://github.com/goautodial/appkonference.

RE: Cannot send DTMF 0 - Added by Sergey Scheglov over 4 years ago

Demian Lizandro Biscocho wrote:

This has been fixed 5 months ago. You can download the updated listener.pl from our Github repo: https://github.com/goautodial/appkonference.

In the last commit bea8e2e702ce35dd295a03725e8de9df983a664f such changes:
- if ($key =~ /^[0-9]+$/) {
+ # https://goautodial.org/issues/7303
+ # if ($key =~ /^[0-9]+$/ | "#" | "*") {
+ if ($key) {

and "if ($key)" return false when $key=0

Could you explain where I mistake?

RE: Cannot send DTMF 0 - Added by Demian Biscocho over 4 years ago

Sergey Scheglov wrote:

Demian Lizandro Biscocho wrote:

This has been fixed 5 months ago. You can download the updated listener.pl from our Github repo: https://github.com/goautodial/appkonference.

In the last commit bea8e2e702ce35dd295a03725e8de9df983a664f such changes:
- if ($key =~ /^[0-9]+$/) {
+ # https://goautodial.org/issues/7303
+ # if ($key =~ /^[0-9]+$/ | "#" | "*") {
+ if ($key) {

and "if ($key)" return false when $key=0

Could you explain where I mistake?

Your solution is also good. Ours is just more specific - limiting the DTMF to keys in the dial/numeric pad only.

    (1-10/10)
    Go to top