Fast dialer DTMF not detected

I’ve installed AsteriskNOW (Asterisk v. 1.4.26) with a TDM400P card. I am able to get a dial tone and make calls using a regular phone. The primary purpose of this setup is to receive calls from a telephone entry system in my building (press unit number, tenant presses 6 to open the door). My location is the USA.

The entry system dials digits fairly quickly and the digits are not recognized by asterisk. The dial tone stays and logging produces nothing (other than offhook/onhook).

I’ve ruled out the line from the entry system, because I was able to open it up, patch in a phone and successfully make calls. Also, I was able to connect the phone directly to the asterisk box and successfully play a recording of manual DTMF to dial out, while the entry system’s playback did nothing.

I’ve tried using relaxdmtf=yes, playing with the rxgain/txgain to no avail.
I’ve monitored and recorded the entry system’s dialed digits, and it sounds fast but fairly clear.

Any help is appreciated!

Thanks in advance,
Vince

It appears that there is about a 6dB difference between the high and low tones of the DTMF. Applying a low-pass filter with a cutoff at 1000 Hz seems to make the recorded audio recognizable to asterisk.

Is there a way to digitally apply a low-pass filter, or do I need to apply an analog filter?

It appears that I have a forward twist on the DTMF out of spec (8.2 dB Col strength vs. Row).

Looking at the PROSLIC SLIC documentation, indirect registers 5 and 6 seem like may be able to solve the problem. Indirect registers 1-4 also seems related also.

However, changing any these values from spec in wctdm.c leads to unstable behavior with my FXS phone extension losing the ability to get a dial tone after the first call.

Any help is greatly appreciated!

So, I got it working… It appears that several of my previous posts were incorrect, the reverse twist was the problem and there is no hardware DTMF detection on the TDM400P, only software. The “Relax DMTF” flag is a boolean that affects the DTMF_REVERSE_TWIST value, but was not large enough when enabled for my line.

I increased the value for reverse twist to 12 dB (15.8) (by changing the setting in dsp.c), rebuilt, deployed, and now my DTMF digits are now recognized.

Hopefully this will help if anyone has similar issues. The forums, IRC channel, and Google haven’t been particularly helpful or illuminating.