DTMF Detection issues

I seem to be having dtmf detection issues with some cellphones when using the automated attendant. Both internal sip phones and external land lines seem to function properly when using the automated attendant. Some cellphones however seem to be duplicating the first number that I push. For example if I am trying to dial extention 123. It reads it as 1123. I have played with rxgain, I have relaxdtmf=yes and played around with toneduration. Nothing seems to work.

Does anyone have any ideas on how to fix this?

What version of asterisk are you using ? 1.2.X is badly broken when it comes to DTMF.

I am using aterisk 1.4.9

Are you using POTS or VOIP ? If VOIP have you tried other carriers ?

I am using pstn lines with a digium tdm400p card with 2 fxo ports.

I was going to suggest tweaking the tone duration but I see that you have already done that. I am all out of idea’s (I know I have seen this issue before though I do not remember the fix for it). I would suggest that you try using the latest version of zaptel, libpri and asterisk. If that does not do the trick try asking on the asterisk users list (lists.digium.com)

Last but not least you mentioned that your daughter tried the call from her cell phone and it worked but you never mentioned that you tested it with a regular phone from the POTS line that you have plugged in to asterisk.

I wanted to post the solution to my problem. I had recorded a greeting on my ivr that was very loud and apperently this hindered asterisk’s ability to parse the dtmf tones. I am guessing that cellphones transmit dtmf on a lower volume than the sip and landlines do and that is why only cell phones were being affected. I have re-recoreded all of my prompts at a lower volume and everything works perfectly. Hope this helps someone else in this situation.

I’m having the exact same problem on multiple systems from 1.2 to 1.4. I’ll play around with my prompt volume and let you know if I get the same results.

OK, I lowered the volume of my prompts by 75% and the issue still occurs with seemingly the same frequency.

I’m mucking around with the rxgain setting to boost the volume a bit. From doing some ztmonitor tests it does look like cell phones transmit a lower volume than a land line by about half.

I’m really surprised you don’t see more complaining about this issue, it’s a major drag if you’re trying to have an auto-attendant.

I am running Asterisk 1.4.17 and I am getting DTMF from cellphones through T-Mobile and AT&T. It’s one of the first things I tested. I used an Authenticate(1234) and had absolutely no problems. Give 1.4.17 a shot and see if it fixes things. If not try another cellphone carrier. They vary.

BTW, I also tested DTMF with Vonage, Comcast (cable phone), POTS, and Skype. You can pretty much count Skype out for reliable DTMF detection.



I’m on 1.4 r92696 which looks to be somewhere between 1.4.15 and 1.4.16. Does anyone know of anything specifically addressed in .16 or .17 that would fix this?

I’m making some progress on figuring out what’s going on by using the ztmonitor tool.

It looks like the critical thing here is echo cancellation - and prompt volume can have an impact on that. I can see that the problem occurs in the time before the echo is completely cancelled out - the prompt playing on the tx channel spills over into the rx channel and shows up as noise that breaks the DTMF tone up into two tones.

Still trying to figure out how to best solve this - looks like it can be a combination of leveling the gains and getting echo cancel to work better sooner. Echo cancel seems to work better if the volume is lower, though I haven’t verified that. I’m also looking into using HPEC to see if I see a dramatic difference.

and play with dtmfduration