Skip to main content

External IVR doesn't detect touch tones (dtmf?)

Posted by rmackillop on Mon, 09/22/2008

I have a handful of phone numbers, that when called, the other system cannot detect the dial tones.

For example, you dial the number, listen to the prompt, press '1' or whatever and it's like the other system doesn't register the tone. You can call the same number with a cell phone and everything works just fine.

I have to assume this is a common problem as it is occurring on several numbers. Can anyone please share their experience with this and how to work around it.

Thanks.


Submitted by dozment on Mon, 09/22/2008 Permalink

It is a fairly common problem, and it can be tough to solve. I use sip for everything, and I have dtmfmode=rfc2833 in my sip.conf for every extension and trunk. For testing purposes I have been known to add dtmf => dtmf to /etc/asterisk/logger.conf so that I can see the dtmf going through. It writes the dtmf info to /var/log/asterisk/dtmf.

When I have had the most trouble with it was when my sip trunking provider wasn't passing it along correctly. My customers were sending DTMF correctly to my server (I was able to verify this by logging it), but it wasn't making it through my provider to the PSTN.

Good luck!

Submitted by moshe on Sun, 01/04/2009 Permalink

I have the issue, with some phone numbers are not always registering the tune, its very intresting because some times it goes trough and some times not but when I call from a cell it always gos trough,

I can't seem to figure out where the problem is and how I could moniter it if you could tell me where to add what in order to be able to see where the source of the problem is, would be very helpful

Thanks

Submitted by moshe on Sun, 01/04/2009 Permalink

i actually add dtmf => dtmf its great now could see my system passing it trough dos this mean that the problem is my provider if i see it going trough hare

thoughts

thanks

Submitted by moshe on Sun, 01/04/2009 Permalink

this is a copy of the log

[Jan 4 10:09:10] DTMF[9099] channel.c: DTMF begin '2' received on SIP/101-xxxxxxxxxx-b780a900

[Jan 4 10:09:10] DTMF[9099] channel.c: DTMF begin passthrough '2' on SIP/101-xxxxxxxxxx-b780a900

[Jan 4 10:09:10] DTMF[9099] channel.c: DTMF end '2' received on SIP/101-xxxxxxxxxx-b780a900, duration 260 ms

[Jan 4 10:09:10] DTMF[9099] channel.c: DTMF end accepted with begin '2' on SIP/101-xxxxxxxxxx-b780a900

[Jan 4 10:09:10] DTMF[9099] channel.c: DTMF end passthrough '2' on SIP/101-xxxxxxxxxx-b780a900

[Jan 4 10:09:11] DTMF[3795] channel.c: DTMF begin '1' received on SIP/101-xxxxxxxxxx-b780a900

[Jan 4 10:09:11] DTMF[3795] channel.c: DTMF begin ignored '1' on SIP/101-xxxxxxxxxx-b780a900

[Jan 4 10:09:11] DTMF[9099] channel.c: DTMF end '1' received on SIP/101-xxxxxxxxxx-b780a900, duration 190 ms

[Jan 4 10:09:11] DTMF[9099] channel.c: DTMF begin emulation of '1' with duration 190 queued on SIP/101-xxxxxxxxxx-b780a900

[Jan 4 10:09:11] DTMF[9099] channel.c: DTMF end emulation of '1' queued on SIP/101-xxxxxxxxxx-b780a900

[Jan 4 10:09:11] DTMF[9099] channel.c: DTMF begin '6' received on SIP/101-xxxxxxxxxx-b780a900

[Jan 4 10:09:11] DTMF[9099] channel.c: DTMF begin passthrough '6' on SIP/101-xxxxxxxxxx-b780a900

[Jan 4 10:09:11] DTMF[9099] channel.c: DTMF end emulation of '1' queued on SIP/101-xxxxxxxxxx-b780a900

[Jan 4 10:09:11] DTMF[3795] channel.c: DTMF end '6' received on SIP/101-xxxxxxxxxx-b780a900, duration 190 ms

[Jan 4 10:09:11] DTMF[3795] channel.c: DTMF end accepted with begin '6' on SIP/101-xxxxxxxxxx-b780a900

[Jan 4 10:09:11] DTMF[3795] channel.c: DTMF end passthrough '6' on SIP/101-xxxxxxxxxx-b780a900

[Jan 4 10:09:11] DTMF[3795] channel.c: DTMF begin '0' received on SIP/101-xxxxxxxxxx-b780a900

[Jan 4 10:09:11] DTMF[3795] channel.c: DTMF begin ignored '0' on SIP/101-xxxxxxxxxx-b780a900

[Jan 4 10:09:11] DTMF[9099] channel.c: DTMF end '6' received on SIP/101-xxxxxxxxxx-b780a900, duration 190 ms

[Jan 4 10:09:11] DTMF[9099] channel.c: DTMF begin emulation of '6' with duration 190 queued on SIP/101-xxxxxxxxxx-b780a900

[Jan 4 10:09:11] DTMF[9099] channel.c: DTMF end '0' received on SIP/101-xxxxxxxxxx-b780a900, duration 170 ms

[Jan 4 10:09:11] DTMF[9099] channel.c: DTMF end '0' put into dtmf queue on SIP/101-xxxxxxxxxx-b780a900

[Jan 4 10:09:11] DTMF[9099] channel.c: DTMF end emulation of '6' queued on SIP/101-xxxxxxxxxx-b780a900

[Jan 4 10:09:12] DTMF[9099] channel.c: DTMF begin emulation of '0' with duration 100 queued on SIP/101-xxxxxxxxxx-b780a900

[Jan 4 10:09:12] DTMF[9099] channel.c: DTMF end emulation of '0' queued on SIP/101-xxxxxxxxxx-b780a900

[Jan 4 10:09:12] DTMF[9099] channel.c: DTMF end emulation of '0' queued on SIP/101-xxxxxxxxxx-b780a900

[Jan 4 10:09:16] DTMF[9099] channel.c: DTMF begin '2' received on SIP/101-xxxxxxxxxx-b780a900

[Jan 4 10:09:16] DTMF[9099] channel.c: DTMF begin passthrough '2' on SIP/101-xxxxxxxxxx-b780a900

[Jan 4 10:09:16] DTMF[9099] channel.c: DTMF end '2' received on SIP/101-xxxxxxxxxx-b780a900, duration 200 ms

[Jan 4 10:09:16] DTMF[9099] channel.c: DTMF end accepted with begin '2' on SIP/101-xxxxxxxxxx-b780a900

[Jan 4 10:09:16] DTMF[9099] channel.c: DTMF end passthrough '2' on SIP/101-xxxxxxxxxx-b780a900

[Jan 4 10:09:17] DTMF[9099] channel.c: DTMF begin '1' received on SIP/101-xxxxxxxxxx-b780a900

[Jan 4 10:09:17] DTMF[9099] channel.c: DTMF begin passthrough '1' on SIP/101-xxxxxxxxxx-b780a900

[Jan 4 10:09:17] DTMF[9099] channel.c: DTMF end '1' received on SIP/101-xxxxxxxxxx-b780a900, duration 180 ms

[Jan 4 10:09:17] DTMF[9099] channel.c: DTMF end accepted with begin '1' on SIP/101-xxxxxxxxxx-b780a900

[Jan 4 10:09:17] DTMF[9099] channel.c: DTMF end passthrough '1' on SIP/101-xxxxxxxxxx-b780a900

[Jan 4 10:09:17] DTMF[9099] channel.c: DTMF begin '6' received on SIP/101-xxxxxxxxxx-b780a900

[Jan 4 10:09:17] DTMF[9099] channel.c: DTMF begin passthrough '6' on SIP/101-xxxxxxxxxx-b780a900

[Jan 4 10:09:17] DTMF[9099] channel.c: DTMF end '6' received on SIP/101-xxxxxxxxxx-b780a900, duration 200 ms

[Jan 4 10:09:17] DTMF[9099] channel.c: DTMF end accepted with begin '6' on SIP/101-xxxxxxxxxx-b780a900

[Jan 4 10:09:17] DTMF[9099] channel.c: DTMF end passthrough '6' on SIP/101-xxxxxxxxxx-b780a900

[Jan 4 10:09:17] DTMF[9099] channel.c: DTMF begin '0' received on SIP/101-xxxxxxxxxx-b780a900

[Jan 4 10:09:17] DTMF[9099] channel.c: DTMF begin passthrough '0' on SIP/101-xxxxxxxxxx-b780a900

[Jan 4 10:09:17] DTMF[9099] channel.c: DTMF end '0' received on SIP/101-xxxxxxxxxx-b780a900, duration 220 ms

[Jan 4 10:09:17] DTMF[9099] channel.c: DTMF end accepted with begin '0' on SIP/101-xxxxxxxxxx-b780a900

[Jan 4 10:09:17] DTMF[9099] channel.c: DTMF end passthrough '0' on SIP/101-xxxxxxxxxx-b780a900

[Jan 4 10:09:33] DTMF[9099] channel.c: DTMF begin '2' received on SIP/101-xxxxxxxxxx-b780a900

[Jan 4 10:09:33] DTMF[9099] channel.c: DTMF begin passthrough '2' on SIP/101-xxxxxxxxxx-b780a900

[Jan 4 10:09:34] DTMF[9099] channel.c: DTMF end '2' received on SIP/101-xxxxxxxxxx-b780a900, duration 450 ms

[Jan 4 10:09:34] DTMF[9099] channel.c: DTMF end accepted with begin '2' on SIP/101-xxxxxxxxxx-b780a900

[Jan 4 10:09:34] DTMF[9099] channel.c: DTMF end passthrough '2' on SIP/101-xxxxxxxxxx-b780a900

[Jan 4 10:09:34] DTMF[9099] channel.c: DTMF begin '1' received on SIP/101-xxxxxxxxxx-b780a900

[Jan 4 10:09:34] DTMF[9099] channel.c: DTMF begin passthrough '1' on SIP/101-xxxxxxxxxx-b780a900

[Jan 4 10:09:34] DTMF[9099] channel.c: DTMF end '1' received on SIP/101-xxxxxxxxxx-b780a900, duration 450 ms

[Jan 4 10:09:34] DTMF[9099] channel.c: DTMF end accepted with begin '1' on SIP/101-xxxxxxxxxx-b780a900

[Jan 4 10:09:34] DTMF[9099] channel.c: DTMF end passthrough '1' on SIP/101-xxxxxxxxxx-b780a900

[Jan 4 10:09:34] DTMF[3795] channel.c: DTMF begin '6' received on SIP/101-xxxxxxxxxx-b780a900

[Jan 4 10:09:34] DTMF[3795] channel.c: DTMF begin ignored '6' on SIP/101-xxxxxxxxxx-b780a900

[Jan 4 10:09:35] DTMF[9099] channel.c: DTMF end '6' received on SIP/101-xxxxxxxxxx-b780a900, duration 390 ms

[Jan 4 10:09:35] DTMF[9099] channel.c: DTMF begin emulation of '6' with duration 390 queued on SIP/101-xxxxxxxxxx-b780a900

[Jan 4 10:09:35] DTMF[9099] channel.c: DTMF begin '0' received on SIP/101-xxxxxxxxxx-b780a900

[Jan 4 10:09:35] DTMF[9099] channel.c: DTMF begin passthrough '0' on SIP/101-xxxxxxxxxx-b780a900

[Jan 4 10:09:35] DTMF[9099] channel.c: DTMF end '0' received on SIP/101-xxxxxxxxxx-b780a900, duration 390 ms

[Jan 4 10:09:35] DTMF[9099] channel.c: DTMF end '0' put into dtmf queue on SIP/101-xxxxxxxxxx-b780a900

[Jan 4 10:09:37] DTMF[9099] channel.c: DTMF end emulation of '6' queued on SIP/101-xxxxxxxxxx-b780a900

i see that some keys get emulated the question is why and how do i fix that

its also very interesting it happens only with some phones like almost always but not always ( like if the key is pressed consistently and long it goes trough) and some phones it never happens

any help

thanks

Submitted by eeman on Sun, 01/04/2009 Permalink

is the problem between your phone and asterisk or asterisk and your ITSP? If your phones are trying to in-band its dtmf this could cause duplicate digits. There were several DTMF issues with asterisk 1.2. You could try relaxdtmf=yes to see if it improves things, if the problem is with your asterisk system recognizing DTMF from the handsets.

Submitted by moshe on Sun, 01/04/2009 Permalink

as i looked around it seems that relaxdtmf have to be in etc/asterisk/sip.config which seem missing in my cy case as follows :

[101-xxxxxxxxxx]

qualify=no

nat=yes

pickupgroup=19

callerid=xxxxxxxxxx xxxxxxxxxx <101>

context=from-inside-xxxxxxxxxx

canreinvite=no

vmexten=101

secret=OlVqH3

username=101-xxxxxxxxxx

host=dynamic

subscribecontext=local-extensions-xxxxxxxxxx

callgroup=19

dtmfmode=rfc2833

type=friend

mailbox=101@default-xxxxxxxxxx

disallow=all

allow=ulaw

allow=alaw

allow=gsm

do i just add a line after by each extension?

dtmfmode=rfc2833

relaxdtmf=yes

i will try that, i hope it will work (should I be wrong please notify me) either way thanks for your help and sorry for my ignorance since im fairly new to asterisk and to tl

still where do i figure out if the problem is between the phone and the asterisk or between asterisk and the itsp?

thanks

Submitted by eeman on Sun, 01/04/2009 Permalink

it should work in the general section. to see if your phone->asterisk is having detection problems setup an ivr as a feature code and do some testing. you could also write a script that uses the Read application and SayDigits() to play them back to check for consistency.

Submitted by axisinternet on Mon, 01/05/2009 Permalink

I have this problem with a handful of customers. For some, we had them set the DTMF setting in their Linksys phones from the default AVT to InBand+INFO and it solved it for them. For the others, we did some testing with Verizon (our upstream VoIP provider) and Nortel and they both said there was an issue in the processing of the DTMF tone packets - specifically in the software used on those particular Nortel switches. New software is being rolled out now (to be completed nationwide by Jan 9th) that is supposed to fully resolve the problem.

Submitted by moshe on Thu, 01/08/2009 Permalink

it actually made it better adding relaxdtmf but it did not solve the issu still having emulation and ignored key, and i em using polycom 330 550 and no luck finding the right solution so far

any advice