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

Steve Underwood steveu at coppice.org
Wed Aug 22 08:22:39 CDT 2007


Tony Mountifield wrote:
> 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
> feature).
>
> Here are two examples of separate calls sending the same string:
>
> http://www.softins.co.uk/dtmf-call-31360.wav
> http://www.softins.co.uk/dtmf-call-31361.wav
>
> 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!
>
>   
Those files decode OK with the DTMF decoder in spandsp. Since the one in 
* is based on that, the problem must be due to something subtle in the 
differences.

Steve





More information about the asterisk-dev mailing list