I’ve been trying to get asynchronous AGIs working in some Asterisk code I
have. I’m using Asterisk 22.214.171.124, 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
So here’s my Asterisk dialplan code that’s being run:
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: res_agi.c:1622 launch_script: Failed to execute
‘/var/lib/asterisk/agi-bin/async:/etc/asterisk/scripts/hangup.py’: File does
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.