[asterisk-users] DISA() fails to recognize dtmf where WaitExten() succeeds (DAHDI-PRI)

Karl Fife karlfife at gmail.com
Wed Sep 2 15:37:29 CDT 2009


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



More information about the asterisk-users mailing list