Unreliable DTMF detection from CEL Phones

I am having trouble detecting DTMF digits when incomming call comes from CEL phones.
Trunk is SIP trunk , dtmfmode=auto, I have tried setting dtmfmode=rfc2833 but makes no difference. I have seen other dtmf related parameters but don’t know what they do or if they apply to SIP trunks so I have not used them (relaxdtmf and rfc2833compensate). ANy suggestions are appreciated.
My App needs to detect 7 digits. When I call the app from a softphone attached to my PBX DTMF digits a detected properly consistenly: here is a sample of the DTMF log file ofr this case:

[2014-10-12 08:40:23] DTMF[2588][C-00000032] channel.c: DTMF begin ‘5’ received on SIP/0201-0000003e
[2014-10-12 08:40:23] DTMF[2588][C-00000032] channel.c: DTMF begin ignored ‘5’ on SIP/0201-0000003e
[2014-10-12 08:40:23] DTMF[2588][C-00000032] channel.c: DTMF end ‘5’ received on SIP/0201-0000003e, duration 160 ms
[2014-10-12 08:40:23] DTMF[2588][C-00000032] channel.c: DTMF end passthrough ‘5’ on SIP/0201-0000003e
[2014-10-12 08:40:23] DTMF[2588][C-00000032] channel.c: DTMF begin ‘6’ received on SIP/0201-0000003e
[2014-10-12 08:40:23] DTMF[2588][C-00000032] channel.c: DTMF begin ignored ‘6’ on SIP/0201-0000003e
[2014-10-12 08:40:24] DTMF[2588][C-00000032] channel.c: DTMF end ‘6’ received on SIP/0201-0000003e, duration 100 ms
[2014-10-12 08:40:24] DTMF[2588][C-00000032] channel.c: DTMF end passthrough ‘6’ on SIP/0201-0000003e
[2014-10-12 08:40:24] DTMF[2588][C-00000032] channel.c: DTMF begin ‘7’ received on SIP/0201-0000003e
[2014-10-12 08:40:24] DTMF[2588][C-00000032] channel.c: DTMF begin ignored ‘7’ on SIP/0201-0000003e
[2014-10-12 08:40:24] DTMF[2588][C-00000032] channel.c: DTMF end ‘7’ received on SIP/0201-0000003e, duration 100 ms
[2014-10-12 08:40:24] DTMF[2588][C-00000032] channel.c: DTMF end passthrough ‘7’ on SIP/0201-0000003e

When the call originates from a CEL phone DTMF detection is very unreliable. Here is a sample output from DTMF log:

[2014-10-12 08:24:46] DTMF[2230][C-00000029] channel.c: DTMF begin ‘5’ received on SIP/vitel-inbound-0000002d
[2014-10-12 08:24:46] DTMF[2230][C-00000029] channel.c: DTMF begin ignored ‘5’ on SIP/vitel-inbound-0000002d
[2014-10-12 08:24:46] DTMF[2230][C-00000029] channel.c: DTMF end ‘5’ received on SIP/vitel-inbound-0000002d, duration 235 ms
[2014-10-12 08:24:46] DTMF[2230][C-00000029] channel.c: DTMF end passthrough ‘5’ on SIP/vitel-inbound-0000002d
[2014-10-12 08:24:47] DTMF[2230][C-00000029] channel.c: DTMF begin ‘6’ received on SIP/vitel-inbound-0000002d
[2014-10-12 08:24:47] DTMF[2230][C-00000029] channel.c: DTMF begin ignored ‘6’ on SIP/vitel-inbound-0000002d
[2014-10-12 08:24:47] DTMF[2230][C-00000029] channel.c: DTMF end ‘6’ received on SIP/vitel-inbound-0000002d, duration 235 ms
[2014-10-12 08:24:47] DTMF[2230][C-00000029] channel.c: DTMF end passthrough ‘6’ on SIP/vitel-inbound-0000002d
[2014-10-12 08:24:47] DTMF[2230][C-00000029] channel.c: DTMF begin ‘7’ received on SIP/vitel-inbound-0000002d
[2014-10-12 08:24:47] DTMF[2230][C-00000029] channel.c: DTMF begin ignored ‘7’ on SIP/vitel-inbound-0000002d
[2014-10-12 08:24:47] DTMF[2230][C-00000029] channel.c: DTMF end ‘7’ received on SIP/vitel-inbound-0000002d, duration 240 ms