Karl Fife
2009-Sep-02 20:37 UTC
[asterisk-users] DISA() fails to recognize dtmf where WaitExten() succeeds (DAHDI-PRI)
Is there any known reason that the DISA() routine should behave differently than WaitExten() as far as recognizing DTMF tones? If not, I suspect there's a bug here. Try it yourself--two DID's on our PRI, numbers below let you test each routine: It is my observation that some setups/phones DO and some DO NOT express this variance. --I could not show any variance on a sprint mobile phone --I could not get T-Mobile to recognize ANY digits using DISA() --I could only get digits 5,6,7,8,9,0 to be recognized with DISA() on a Norstar PBX using PRI, and Analog trunks (I tested four (count 'em) different installations, with only minor variation) I can make some setups/phones operate slightly closer to parity (between the two routines) if I invoke the relaxdtmf parameter in chan_dahdi.conf, but it does not completely eliminate the variance, but irrespective of whether ANY specific configuration, network, or device CAN or CAN'T send DTMF properly, DISA() and WaitExten() should behave the same. It has also been my observation that this variance does not express itself as reliably with sip-terminated calls--perhaps because it's dependent upon the specific media gateway that terminates the call, and your ITSP's rate-deck may push you opportunistically to different media gateways. Yesterday my sip-terminated Polycom IP-650 behaved exactly like the Norstar systems described above, today it is perfectly reliable (Telasip.com). TRY IT FOR YOURSELF (dial-in numbers below): For BOTH routines (one phone number for each), press a digit, Allison will say it back to you: As of this posting, RelaxDTMF is OFF. I will leave this configured for at least 48 hours. TEST -- WaitExten() Call 312-445-5905 to run the [without-disa] routine below: (lifted from dialplan) press any DTMF key after hearing the beep Allison will speak it back to you. It should work 100% of the time [without-disa] exten => s,1,Answer(1000) exten => s,n,background(beep) exten => s,n,Waitexten() exten => s,n,Hangup() exten => _X,1,Saydigits(${EXTEN}) exten => _X,n,Goto(s,1) TEST -- DISA() Call 312-445-5906 to run this application: (Again, lifted from dialplan) press any DTMF key after hearing the DISA dialtone If your dial tone is not interrupted by Allison speaking your digit, DTMF was not recognized. Depending on idiosyncratic details, this may work none, all, or only for some digits. [with-disa] exten => s,1,Answer(1000) exten => s,n,DISA(no-password,with-disa) exten => _X,1,Saydigits(${EXTEN}) exten => _X,n,Goto(s,1) Thoughts? YOUR test results? Thanks -Karl Install details: Asterisk 1.6.0.13, Dahdi 2.0.2, TE-212P HWEC, Centos 2.6.18-128.4.1.el5
Doug Lytle
2009-Sep-02 20:58 UTC
[asterisk-users] DISA() fails to recognize dtmf where WaitExten() succeeds (DAHDI-PRI)
Karl Fife wrote:> TE-212P HWEC >Grabbing at straws here, turn off EC and test again. Doug -- Ben Franklin quote: "Those who would give up Essential Liberty to purchase a little Temporary Safety, deserve neither Liberty nor Safety."
Karl Fife
2009-Sep-03 05:03 UTC
[asterisk-users] DISA() fails to recognize dtmf where WaitExten() succeeds (DAHDI-PRI)
----- Original Message ----- From: "Doug Lytle" <support at drdos.info> To: "Asterisk Users Mailing List - Non-Commercial Discussion" <asterisk-users at lists.digium.com> Sent: Wednesday, September 02, 2009 3:58 PM Subject: Re: [asterisk-users] DISA() fails to recognize dtmf where WaitExten() succeeds (DAHDI-PRI)> Karl Fife wrote: >> TE-212P HWEC >> > > Grabbing at straws here, turn off EC and test again. > > Doug > > >You were right. Turning off echocan makes DTMF detection via WaitExten() vs DISA() behave the same way. Any theories as to why one routine would behave differently than the other with Echo Cancellation enabled? Should it be considered a defect if EC (often necessary) breaks inband DTMF detection on TDM? -Karl