[Asterisk-Users] AGI and fast-entered DTMF codes

Mark Spencer markster at digium.com
Wed Feb 26 12:02:15 MST 2003


I believe we should be able to get down to about 50 or so ms.  It would be
interesting to see if this is a zaptel issue, or if it's an issue of
DTMF frames getting called between AGI calls.

Mark

On 26 Feb 2003, Steven Critchfield wrote:

> On Wed, 2003-02-26 at 11:44, Alan Murphy wrote:
> > Hi everyone,
> >
> > We are using an AGI script (Java) to read a code and other details sent
> > by a user using DTMF tones. The version of Asterisk we are using is one
> > from CVS - approximately 2 weeks old. We have two X100Ps as interfaces
> > to the POTS lines. We are based in Ireland, using KewlStart signalling.
> >
> > The problem is that, when a user enters the 6 digit code too quickly,
> > Asterisk does not seem to be able to keep up. Firstly, we used the "GET
> > DATA" method to retrieve all the digits. What usually happens is that
> > only the first 3 digits are returned, although sometimes it simply
> > returns a null string if the digits are pressed very quickly. When the
> > script identifies that this code is invalid, it loops to ask the user to
> > re-enter. However, when we attempt to read the input again from
> > Asterisk, through the standard input as before, it returns a null
> > string. In fact, any attempts after this to read from the input stream
> > fail (of course I issue a command to Asterisk before each attempted
> > read).
> >
> > We tried increasing the number of digits for Asterisk to read, but it
> > had no affect. We also tried the "WAIT FOR DIGIT" method and looped for
> > each digit. It was a little better, but failed when the digits were
> > pressed very quickly.
> >
> > To me, it looks like Asterisk is receiving the tones, but is overflowing
> > some buffer somewhere. Can anyone shed some light on where the problem
> > lies?
>
> What do you consider too quickly? I think the standard is for the tone
> to be atleast 80 ms, but most hardware will tolerate as low as 45 ms. If
> you drop below this amount you are not going to get decoded period. Also
> on a phone that lets you send such short DTMF codes, you may run into a
> problem of them not generating a true DTMF code. I have noticed
> screechings out of cheap phones before it settles on a proper tone, and
> sometimes wiggling the key made the tone variable.
>
> On a slightly nicer phone like the one I have on my desk, it seems to
> send a constant length tone no matter how short or long the keypress was
> for. I even can type ahead of it and it will eventually catch up to me.
> In this arrangement and with a perl based AGI script, I have never
> received a bad DTMF decode. I also use 'wait for digit' as I have need
> to build my own buffer that is clearable.
>
> Also do you feel that java will be able to scale on your current
> hardware to a point that you are comfortable. I know that I start having
> trouble on my current hardware at around 18-20 concurrent perl apps
> running, but only when they are moving lots of data, or during initial
> startup.
> --
> Steven Critchfield  <critch at basesys.com>
>
> _______________________________________________
> Asterisk-Users mailing list
> Asterisk-Users at lists.digium.com
> http://lists.digium.com/mailman/listinfo/asterisk-users
>




More information about the asterisk-users mailing list