Hi, all.
Using Asterisk 1.2.14 from trixbox 2.0 http://www.trixbox.org/.
We’ve got an AGI application (built on Asterisk-Java 0.3m1 http://asterisk-java.org/). Our AGI script uses GET DATA, with both a timeout and a maximum number of digits set (to anywhere from 4 to 16),
to stream a soundfile and read a response.
If the user waits for the soundfile to finish streaming to enter the response, we get the full response. Ending the response early with the |#| key works properly.
However, if the user begins entering the response before the soundfile has finished streaming, GET DATA waits until the timeout is reached, then returns only the first digit of the response, whether or not |#| was pressed or maxdigits was reached:
AGI Rx << GET DATA "enter-12-digits" 25000 12
-- Playing 'enter-12-digits' (language 'en')
AGI Tx >> 200 result=123456123456
AGI Rx << STREAM FILE "thank-you" ""
AGI Tx >> 200 result=0 endpos=8960
AGI Rx << GET DATA "enter-12-digits" 25000 12
-- Playing 'enter-12-digits' (language 'en')
AGI Tx >> 200 result=1 (timeout)
AGI Rx << STREAM FILE "thank-you" ""
AGI Tx >> 200 result=0 endpos=8960
Doing the same thing directly from the dialplan using the Read() application seems to work fine:
exten => 2001,1,Answer()
exten => 2001,n,Wait(2)
exten => 2001,n,Read(THIS_NUM,enter-ext-of-person,9,skip,3,10)
exten => 2001,n,Wait(1)
exten => 2001,n,SayDigits(${THIS_NUM})
exten => 2001,n,Hangup()
Anyone else encountered this? Known bug? I can’t seem to find any info about this problem. The fact that Read() works makes it even more mystifying.