My Elastix stopped detecting DTMF tones over Digium FXO port

My Elastix 2.3 running Asterisk 1.8 stopped detecting DTMF digits coming in over my Digium FXO Analog port to my IVR. This seems to be the case only for mobile/cell phone callers, not landline callers. Also, both landline and mobile/cell phone callers were able to go through the IVR by selecting the desired option. I have tried the following with no luck:

  • set dtmfmode=auto and inband in chan_dahdi.conf
  • set relaxdtmf=yes in sip_custom.conf
  • set rfc2833compensate=yes in sip_custom.conf
    -set toneduration=300 in sip_custom.conf

I am not able to find a solution for this. Please help… :unamused:

HI

Turn on DTMF debuging. settings in sip.conf have no effect on calls on dahdi channels.

if its just from mobiles then check with a different mobile as it maybe the mobile. which seems likly as you say landline calls work OK

I enabled debugging on logger.conf (i think), but i cannot see anything in the logs that shows any DTMF entries. Below is my logger file to confirm i have enabled debugging properly. I have tried from another phone with the same result (p.s. both phones are samsung touch phones on the same GSM network, do you think its worth while trying from another non-touch phone or another network?


debug => debug
; The DTMF log is very handy if you have issues with IVR’s
dtmf => dtmf
;console => notice,warning,error
console => notice,warning,error,debug
;messages => notice,warning,error
full => notice,warning,error,debug,verbose

Anyone able to help with this? I am still stuck in here…

Not unless you start potsing output from log files and some verbose output we cant…

If it works from landlines and not mobiles, the problem is with the mobile leg of the call…

Hi, I have made a test call to my asterisk box and entered “211” after hearing the welcome message, but as you can see from the logs below, the system only detected digit “1”, which is random (doesn’t always detect the same digit). I have also noticed that when I call my IVR from my friend’s Blackberry phone, it works fine, while both my Android phones DTMF entries are not getting detected (P.S. my friends mobile phone is on a different service provider). On the other hand, I am able to use both my Android phones will many call centers IVRs (my banks, restaurants, etc…)

I am guessing maybe some DTMF settings need to be adjusted on my asterisk box.

=~=~=~=~=~=~=~=~=~=~=~= PuTTY log 2013.09.04 18:28:12 =~=~=~=~=~=~=~=~=~=~=~=
root
root@192.168.88.88’s password:
Last login: Wed Sep 4 18:26:00 2013 from 192.168.88.113

Welcome to Elastix

Elastix is a product meant to be configured through a web browser.
Any changes made from within the command line may corrupt the system
configuration and produce unexpected behavior; in addition, changes
made to system files through here may be lost when doing an update.

To access your Elastix System, using a separate workstation (PC/MAC/Linux)
Open the Internet Browser using the following URL:
192.168.88.88

e]0;root@elastix:~a[root@elastix ~]# asterisk -rvvvvvvv
Asterisk 1.8.11.0, Copyright © 1999 - 2012 Digium, Inc. and others.
Created by Mark Spencer markster@digium.com
Asterisk comes with ABSOLUTELY NO WARRANTY; type ‘core show warranty’ for details.
This is free software, with components licensed under the GNU General Public
License version 2 and other licenses; you are welcome to redistribute it under
certain conditions. Type ‘core show license’ for details.

== Parsing ‘/etc/asterisk/asterisk.conf’: == Found
e[0;37me[1;30m == e[0mParsing ‘/etc/asterisk/extconfig.conf’: e[1;30m == e[0mFound
e[0mConnected to Asterisk 1.8.11.0 currently running on elastix (pid = 4048)
elastix*CLI>
e[0KVerbosity is at least 24

e[Kelastix*CLI>
e[0K – Starting simple switch on ‘DAHDI/1-1’

e[Kelastix*CLI>
e[0K – Executing [s@from-pstn:1] Set(“DAHDI/1-1”, “__FROM_DID=s”) in new stack
– Executing [s@from-pstn:2] Gosub(“DAHDI/1-1”, “app-blacklist-check,s,1”) in new stack
– Executing [s@app-blacklist-check:1] GotoIf(“DAHDI/1-1”, “0?blacklisted”) in new stack
– Executing [s@app-blacklist-check:2] Set(“DAHDI/1-1”, “CALLED_BLACKLIST=1”) in new stack
– Executing [s@app-blacklist-check:3] Return(“DAHDI/1-1”, “”) in new stack
– Executing [s@from-pstn:3] ExecIf(“DAHDI/1-1”, “0 ?Set(CALLERID(name)=0567880949)”) in new stack
– Executing [s@from-pstn:4] Set(“DAHDI/1-1”, “__CALLINGPRES_SV=allowed_not_screened”) in new stack
– Executing [s@from-pstn:5] Set(“DAHDI/1-1”, “CALLERPRES()=allowed_not_screened”) in new stack
– Executing [s@from-pstn:6] Goto(“DAHDI/1-1”, “ivr-5,s,1”) in new stack
– Goto (ivr-5,s,1)
– Executing [s@ivr-5:1] Set(“DAHDI/1-1”, “MSG=custom/EnterExt-Arabic”) in new stack
– Executing [s@ivr-5:2] Set(“DAHDI/1-1”, “LOOPCOUNT=0”) in new stack

e[Kelastix*CLI>
e[0K – Executing [s@ivr-5:3] Set(“DAHDI/1-1”, “__DIR-CONTEXT=”) in new stack
– Executing [s@ivr-5:4] Set(“DAHDI/1-1”, “_IVR_CONTEXT_ivr-5=”) in new stack
– Executing [s@ivr-5:5] Set(“DAHDI/1-1”, “_IVR_CONTEXT=ivr-5”) in new stack
– Executing [s@ivr-5:6] GotoIf(“DAHDI/1-1”, “0?begin”) in new stack
– Executing [s@ivr-5:7] Answer(“DAHDI/1-1”, “”) in new stack
– Executing [s@ivr-5:8] Wait(“DAHDI/1-1”, “1”) in new stack

e[Kelastix*CLI>
e[0K – Executing [s@ivr-5:9] Set(“DAHDI/1-1”, “TIMEOUT(digit)=3”) in new stack
– Digit timeout set to 3.000
– Executing [s@ivr-5:10] Set(“DAHDI/1-1”, “TIMEOUT(response)=10”) in new stack
– Response timeout set to 10.000
– Executing [s@ivr-5:11] Set(“DAHDI/1-1”, “__IVR_RETVM=”) in new stack
– Executing [s@ivr-5:12] ExecIf(“DAHDI/1-1”, “1?Background(custom/EnterExt-Arabic)”) in new stack
[Sep 4 18:28:39] WARNING[27800]: mp3/interface.c:216 decodeMP3: Junk at the beginning of frame 49443303
– <DAHDI/1-1> Playing ‘custom/EnterExt-Arabic.slin’ (language ‘en’)

e[Kelastix*CLI>
e[0K – Executing [s@ivr-5:13] WaitExten(“DAHDI/1-1”, “,”) in new stack

e[Kelastix*CLI>
e[0K – Invalid extension ‘1’ in context ‘ivr-5’ on DAHDI/1-1
== CDR updated on DAHDI/1-1
– Executing [i@ivr-5:1] Playback(“DAHDI/1-1”, “invalid”) in new stack
– <DAHDI/1-1> Playing ‘invalid.gsm’ (language ‘en’)

e[Kelastix*CLI>
e[0K – Executing [i@ivr-5:2] Goto(“DAHDI/1-1”, “loop,1”) in new stack
– Goto (ivr-5,loop,1)
– Executing [loop@ivr-5:1] Set(“DAHDI/1-1”, “LOOPCOUNT=1”) in new stack
– Executing [loop@ivr-5:2] GotoIf(“DAHDI/1-1”, “0?hang,1”) in new stack
– Executing [loop@ivr-5:3] Goto(“DAHDI/1-1”, “ivr-5,s,begin”) in new stack
– Goto (ivr-5,s,9)
– Executing [s@ivr-5:9] Set(“DAHDI/1-1”, “TIMEOUT(digit)=3”) in new stack
– Digit timeout set to 3.000
– Executing [s@ivr-5:10] Set(“DAHDI/1-1”, “TIMEOUT(response)=10”) in new stack
– Response timeout set to 10.000
– Executing [s@ivr-5:11] Set(“DAHDI/1-1”, “__IVR_RETVM=”) in new stack
– Executing [s@ivr-5:12] ExecIf(“DAHDI/1-1”, “1?Background(custom/EnterExt-Arabic)”) in new stack
[Sep 4 18:28:50] WARNING[27800]: mp3/interface.c:216 decodeMP3: Junk at the beginning of frame 49443303
– <DAHDI/1-1> Playing ‘custom/EnterExt-Arabic.slin’ (language ‘en’)

e[Kelastix*CLI>
Disconnected from Asterisk server
Executing last minute cleanups
e[0me]0;root@elastix:~a[root@elastix ~]#
e[K[root@elastix ~]#

One possibility is that echo of the announcement is jamming the DTMF. With a mobile phone, the echo won’t stop until a few 100 ms after the first digit is detected.

Hi David, I tried disabling the accouncement and 10-sec digit delay but it still doesn’t detect any DTMF entry. Is there a way we can tune DTMF settings? If yes, what could possibly change to help?

Did anyone find a solution to this, I am running Elastix 2.5 now (asterisk 11.6.0) and still facing the same issue.