[asterisk-users] AGI PHP
Steve Edwards
asterisk.org at sedwards.com
Mon May 4 15:35:04 CDT 2009
On Mon, 4 May 2009, James A. Shigley wrote:
> I'm just trying to make a real simple Survey via php. Just want it to
> play the Question Files, wait for a response, save the response into the
> correct variable and then email it all.
If it's "real simple," maybe AGI is overkill. Any particular reason you
can't do it in the dialplan?
> I have no issue playing the audio or emailing. But I can't get it to
> wait for digits or to properly capture those digits into the variables.
> I know the code is technically right since the emails have this in place
> of what Q1 should be "200 result=35 endpos=2400" instead of whatever
> digit I pressed during testing.
The code is not "technically right" since you don't understand the AGI
protocol. See your code snippet below.
> A. How to have it play the whole audio file before it goes to the next
> command, without having to use the sleep function preferably.
Use "stream file" with the appropriate escape digits.
> B. How to make it actually wait for digits
Use "wait for digits" with the appropriate timeout. Accumulate digits for
the desired effect.
> C. How to get it to actually capture the digits (I think it would if it
> wasn't streaming thru the whole file without waiting for a response.)
An alternative is to use the background, playback, and read dialplan
applications from your AGI.
> // Q1
> fwrite(STDOUT, "STREAM FILE /var/lib/asterisk/sounds/1 ###\n");
> fwrite(STDOUT, "wait for digit 10\n");
You don't understand the AGI protocol. For every request (the bit you send
to Asterisk) you need to read the response (the bit Asterisk sends to
you). Issuing 2 requests breaks the protocol.
Please use an established library to handle all the little details of AGI
for you. You will live longer :)
Using an established library will take care of all these seemingly
insignificant details and save you a lot of time.
Thanks in advance,
------------------------------------------------------------------------
Steve Edwards sedwards at sedwards.com Voice: +1-760-468-3867 PST
Newline Fax: +1-760-731-3000
More information about the asterisk-users
mailing list