SIP dtmf weirdness

I’ve noticed some strange behavior with DTMF with SIP on asterisk in two different configurations.

Both Asterisk systems are running asterisk with SIP, one has about a month old CVS HEAD on Broadvoice, the other has asterisk 1.0.9 on Teliax.

Broadvoice uses inband dtmf and teliax by default uses rfc2833. We’re switching the teliax system to use inband to see if it helps at all.

Both systems exhibit the problem where dtmf tones are often read multiple times, for example, pressing 208 can sometimes be interpreted as 2208, 2008, or 2088. It seems to work better if you press the numbers slower, leaving a 0.5 to 1 second delay between each digit pressed.

I have experienced this both dialing out from a sip phone to an external IVR system as well as dialing in from an external phone to the internal Asterisk IVR system, it all seems to be related to asterisk’s handling of SIP and DTMF. Is it really this unreliable to use DTMF with Asterisk+SIP?


You are not alone.

I’ve been trying to resolve this problem for the last month. With my luck it is probably our provider Vitelity.

I tried to fix it in an old 1.2 or earlier asterisk without luck so I upgraded to 1.4. The problem is somewhat different in 1.4 since it was only incoming DTMFs that were problematic before and now I have outgoing double DTMF problems too.

This thread indicates it might be echo cancellation … t=zap+dtmf, which can be turned off in zapata.conf, I’m not sure how you would unplug the echo cancellation module (but I didn’t set up the hardware).

But this thread indicates that didn’t work when they tried it and it didn’t work for me either … ouble+dtmf

I’ll let you know if I ever find a solution,

Mark MacVicar

just to add- i use BV and force it as RFC2833, which made it much more reliable both inbound and outbound…

Agreed, it is better to use RFC2833, since switching to it the problem went away, although others turned up, but we are working on then now which i believe we can fix any way.

Also have a look at your RelaxDTMF option in your SIP.CONF file, have it either way as below;


I have the both of them there for testing purposes, although you may not need to have them both, it just makes it easier for me to work with, but that is a personal preference.

Having it relaxed could either make the problem go away or make it worse, it all depends really.

Good Luck.



I tried turning off echo cancelling relaxing DTMF in zapata.con

After reloading the zaptel drivers, those settings didn’t have any noticeable effect.

I also tried modifying sip.conf to specify:
dtmfmode = rfc2833

But that also had no effect. However, rfc2833 is the default dtmfmode.

Thank you for the advice.

Mark MacVicar