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 <[EMAIL PROTECTED]> _______________________________________________ Asterisk-Users mailing list [EMAIL PROTECTED] http://lists.digium.com/mailman/listinfo/asterisk-users
