[asterisk-dev] DTMF detection in dsp.c intolerant?

Tony Mountifield tony at softins.clara.co.uk
Wed Aug 22 07:31:32 CDT 2007

I'm posting this to -dev because I believe the answer will relate to the
code in dsp.c for DTMF detection.

I have a system connected to the PSTN using EuroISDN over E1 with aLaw
encoding. When it has answered a call, it listens for a DTMF string which
contains command codes for the specific application.

Asterisk seems to be very intolerant of slight discrepancies in the DTMF
tones. We are finding that with calls from certain locations, it will
often miss digits, even though to the ear the audio sounds clear. Calls
from other locations will be completely reliable.

I have the system capturing pre-DSP aLaw audio, so I can decode by hand
and see which digits are missing (using Goldwave's spectrum display

Here are two examples of separate calls sending the same string:


The string sent in both cases was *82779736*91856360**

In both cases, Asterisk failed to detect the third 7, and returned the
string *8277936*91856360**

The audio sounds good to me, so I am at a loss as to what Asterisk didn't
like. Particularly as it failed in the same way on both occasions, which
suggests it is not something random such as a system load peak.

The string is always originated by a GSM mobile, and my understanding is
that DTMF is sent as out-of-band signalling over GSM and then re-generated
by the GSM to PSTN gateway. Is that correct? So the tones ought to be good.

If anyone has the time and interest to check out these files and offer
any insights, I would be very grateful indeed. DSP is not my field!

I have a number of other recordings where the tones sound ok but Asterisk
doesn't like them.

Thanks in advance!

Tony Mountifield
Work: tony at softins.co.uk - http://www.softins.co.uk
Play: tony at mountifield.org - http://tony.mountifield.org

More information about the asterisk-dev mailing list