DTMF detection issues

I have asterisk 1.4.9 set up to automatically pick up the phone and give the caller 3 options, or they can dial an extension at any time. It seems that asterisk is having a problem recognizing the numbers that the callers push. Sometimes it works right away sometimes you have to push the numbers mulitple times and it still doesn’t detect it.

I am using the digium TDM400P with 2 FXO ports. I have the following set in zapata.conf


When I change these to no it doesn’t help.

When I dial the IVR internally through a sip phone everything works perfectly. I am just having this problem when someone is calling in through pstn lines.


You need to fiddle with the RX gain. it seems as if its too low.


I bumped the rxgain to 6 and it does seem to help, but not completely. If I dial a number (i.e. 113) too quickly the system does not accept it. If I dial very slowly there is no problem. Any idea how to get asterisk to understand qucker button taps?

I decided to bump up the rxgain to 10 and it seems to have fixed the dtmf problem completely, but I am getting a good amount of echo in the call. Any suggestions on how to remove this?


You need to make sure you have the card set correctly for the line impedance and then balance rx and tx then if its a new card get the hpec echocanceller.


‘relaxdtmf=yes’ and ‘toneduration= more than 100’ in zapata.conf

also play with ‘dtmfcodec=101’, ‘dtmfmode=inband or rfc2833’, ‘relaxdtmf=yes’ in zapata.conf and sip.conf

also note this:

;rfc2833compensate=yes ; Compensate for pre-1.4 DTMF transmission from another Asterisk machine. ; You must have this turned on or DTMF reception will work improperly.