[asterisk-users] Asynchronous AGI Problems (Asterisk 1.8.7.0), ubuntu-server
Mehmet Avcioglu
mehmet at activecom.net
Sun Sep 25 07:26:25 CDT 2011
Actually it doesn't say "AGI(async:script)" it says "AGI(async:agi)" and than continues further to setting up an AMI user so the script is executed through the manager interface?? Than it says "AGI(agi:async)".?? Well most importantly it says "Cons of async AGI: It is the most complex method of using AGI to implement." ..:) I have been interested in Async AGI as well and after reading your post looked into the link you provided, seems different than what we immediately think, a background process.
Perhaps just start the script normally "AGI(script.sh)" and than inside it run your background process "background-script.sh > /dev/null 2>&1 < /dev/null &" or fork a new process, detach, run in background, etc...
Hopefully somebody else can point us towards the right direction in setting up a real asterisk asynchronous AGI application.
--
Mehmet
On Sep 25, 2011, at 2:00 AM, Randall Degges wrote:
> Hi Everyone,
>
> I've been trying to get asynchronous AGIs working in some Asterisk code I have. I'm using Asterisk 1.8.7.0, and I'm very familiar with dialplan and AGI scripting overall. Here's my problem: I can't get Asterisk to execute *any* AGIs asynchronously.
>
> Firstly, I discovered asynchronous AGIs via "Asterisk: The Definitive Guide". The asynchronous AGI information I read can be found online, here: http://ofps.oreilly.com/titles/9780596517342/AGI.html (scroll down to the section titled "Async AGI--AMI Controlled AGI").
>
> According to the book, since Asterisk 1.6.0 the AGI dialplan application has been able to execute AGI scripts asynchronously, via the syntax:
>
> exten => s,1,AGI(async:script)
>
> According to the book, using the "async:" prefix should have Asterisk run the AGI script in the background and instantly continue executing dialplan code.
>
> So here's my Asterisk dialplan code that's being run:
>
> [hangup]
> exten => s,1,AGI(async:/etc/asterisk/scripts/hangup.py)
> exten => s,n,Return()
>
> Pretty simple context--essentially my AGI script just does some call clean up logic before a caller hangs up, talking to a few web servers and generating statistics for later usage. What happens when Asterisk executes this context, is:
>
> WARNING[7911]: res_agi.c:1622 launch_script: Failed to execute '/var/lib/asterisk/agi-bin/async:/etc/asterisk/scripts/hangup.py': File does not exist.
>
> As you can see, Asterisk is ignoring the async: directive, and treating it as part of the AGI script path.
>
> Is there anyway for me to make asynchronous AGIs work? I've tried searching online to no avail.
>
> I'd greatly appreciate any responses, thanks for your time.
>
> -Randall
>
> --
> Randall Degges
> http://rdegges.com/
>
> --
> _____________________________________________________________________
> -- 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
More information about the asterisk-users
mailing list