On Wed, 22 Feb 2012, Chris Bagnall wrote:

However, today I have a scenario where I want the script to remain running during the playback of a file so that I can read DTMF at the end of playback.

If by 'remain running' you mean 'do other stuff while the file is playing' you can stream the file in a separate thread while continuing with the 'mainline' code.

If you mean your script is returning to the dialplan before the file is finished playing, you're doing something wrong.

However, doing this:

GET DATA en_welcome 5000 6

Results (correctly) in the following in the asterisk console:
   -- <SIP/a.b.c.d-dc027b50> Playing 'en_welcome' (language 'en')

But the AGI continues to run on after this point, not waiting for either the sound file to be played, nor for the expected 6 DTMF digits.

Adding a simple 10 second sleep/wait to the AGI allows the sound file to be successfully played back.

Sure sounds like you are doing something wrong. Anytime a 'sleep' helps, something is definitely wrong.

Most AGI 'weirdness' can be traced to violating the AGI protocol. These are the most common mistakes:

0) Not using an established library. Nobody gets it right the first time :)

1) Not reading the AGI environment from STDIN before issuing any AGI requests.

2) Forgetting that every request must be followed by reading the response.

3) Doing any I/O on STDIN or STDOUT. These channels are connected to Asterisk, not any console. Don't even think about popping in a quick 'debugging printf.'

Looking over my own AGI code, I don't see any examples where I used GET DATA. I tend to use STREAM FILE and WAIT FOR DIGIT. I'm a 1.2 Luddite, so any bugs I've been exposed to may have been fixed by now.

--
Thanks in advance,
-------------------------------------------------------------------------
Steve Edwards       sedwa...@sedwards.com      Voice: +1-760-468-3867 PST
Newline                                              Fax: +1-760-731-3000

--
_____________________________________________________________________
-- Bandwidth and Colocation Provided by http://www.api-digital.com --
New to Asterisk? Join us for a live introductory webinar every Thurs:
              http://www.asterisk.org/hello

asterisk-users mailing list
To UNSUBSCRIBE or update options visit:
  http://lists.digium.com/mailman/listinfo/asterisk-users

Reply via email to