Dsp.c analysis dtmf tone

I google information about DTMF issue on internet, coincidently, I have the same issues.
Firstly, I found that when ASTERISK’s DSP.C analysis DTMF from GSM network(from cell phone to asterisk IPPBX’s FXO port in), I almost got double numbers, because DTMF in GSM network is pretty long, more than 150ms, that’s why it shows wobble, and this issue can not be simply solved by relaxdtmf or reduce rxgain. For instance, these two attachments are record files(without echocancel), I already set relaxdtmf=yes, and rxgain reduce, but asterisk still appear wobble numbers, how can I deal with this situation? Is it possible to make a definition for dtmf’s length in dsp.c? Thanks

dtmf record file 1 : The pin number is 013823311180#---->01133823311180#
ys-c.ys168.com/?dtmf1.wav_67z80c … u19z97f18z

dtmf record file 2 : The pin number is 013825203963#---->013822522039663#
ys-c.ys168.com/?dtmf2.wav_67z8l0 … u19z97f18z

I had a similar problem with a GSM Gateway but never got to the bottom of it. What sort of GSM Gateway are you using and what foes it plug into (Digium board, etc)?

I had tested different GSM gateway and different FXO card(one port/two port/four port…), and same issue. The result that pin number from analysis by dsp.c is correct, but has been wobble, it’s mean dsp.c 's arithmetic is right, the problem is process of analysis DTMF tone’s start and end time.