<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
		>
<channel>
	<title>Comments on: Asterisk Asynchronous AGI</title>
	<atom:link href="http://www.moythreads.com/wordpress/2007/12/24/asterisk-asynchronous-agi/feed/" rel="self" type="application/rss+xml" />
	<link>http://www.moythreads.com/wordpress/2007/12/24/asterisk-asynchronous-agi/</link>
	<description>Abandon All Hope, Ye Who Read This Blog</description>
	<lastBuildDate>Thu, 07 Jan 2010 04:27:49 -0600</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.4</generator>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
		<item>
		<title>By: cyr2242</title>
		<link>http://www.moythreads.com/wordpress/2007/12/24/asterisk-asynchronous-agi/comment-page-1/#comment-372</link>
		<dc:creator>cyr2242</dc:creator>
		<pubDate>Mon, 30 Mar 2009 11:29:35 +0000</pubDate>
		<guid isPermaLink="false">http://www.moythreads.com/wordpress/2007/12/24/asterisk-asynchronous-agi/#comment-372</guid>
		<description>great, I posted the DEBUG output at: 
http://lists.digium.com/pipermail/asterisk-users/2009-March/229524.html
I see you there</description>
		<content:encoded><![CDATA[<p>great, I posted the DEBUG output at:<br />
<a href="http://lists.digium.com/pipermail/asterisk-users/2009-March/229524.html" rel="nofollow">http://lists.digium.com/pipermail/asterisk-users/2009-March/229524.html</a><br />
I see you there</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: moy</title>
		<link>http://www.moythreads.com/wordpress/2007/12/24/asterisk-asynchronous-agi/comment-page-1/#comment-371</link>
		<dc:creator>moy</dc:creator>
		<pubDate>Fri, 27 Mar 2009 14:19:58 +0000</pubDate>
		<guid isPermaLink="false">http://www.moythreads.com/wordpress/2007/12/24/asterisk-asynchronous-agi/#comment-371</guid>
		<description>I see, thanks a lot for the detailed explanation, in order to determine where the problem is I need the debug output of Asterisk itself, not just the manager. That is, enable debugging in /etc/asterisk/logger.conf and pastebin.com the output of a success and failing scenario just as you did with the manager output.

What do you say if we take this conversation to asterisk-users mailing list? just let me know the name of the thread name when you send it and I will continue answering there.</description>
		<content:encoded><![CDATA[<p>I see, thanks a lot for the detailed explanation, in order to determine where the problem is I need the debug output of Asterisk itself, not just the manager. That is, enable debugging in /etc/asterisk/logger.conf and pastebin.com the output of a success and failing scenario just as you did with the manager output.</p>
<p>What do you say if we take this conversation to asterisk-users mailing list? just let me know the name of the thread name when you send it and I will continue answering there.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: cyr2242</title>
		<link>http://www.moythreads.com/wordpress/2007/12/24/asterisk-asynchronous-agi/comment-page-1/#comment-370</link>
		<dc:creator>cyr2242</dc:creator>
		<pubDate>Fri, 27 Mar 2009 11:43:36 +0000</pubDate>
		<guid isPermaLink="false">http://www.moythreads.com/wordpress/2007/12/24/asterisk-asynchronous-agi/#comment-370</guid>
		<description>Hi, I just do it. You can find an output for that scenario in:
http://docs.google.com/Doc?id=ahfnfrcrh3rr_29863zkwc2
Regards</description>
		<content:encoded><![CDATA[<p>Hi, I just do it. You can find an output for that scenario in:<br />
<a href="http://docs.google.com/Doc?id=ahfnfrcrh3rr_29863zkwc2" rel="nofollow">http://docs.google.com/Doc?id=ahfnfrcrh3rr_29863zkwc2</a><br />
Regards</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: moy</title>
		<link>http://www.moythreads.com/wordpress/2007/12/24/asterisk-asynchronous-agi/comment-page-1/#comment-369</link>
		<dc:creator>moy</dc:creator>
		<pubDate>Thu, 26 Mar 2009 13:44:24 +0000</pubDate>
		<guid isPermaLink="false">http://www.moythreads.com/wordpress/2007/12/24/asterisk-asynchronous-agi/#comment-369</guid>
		<description>mmm, I don&#039;t see why you would get a hangup, I&#039;d like to see the debug output of such scenario.</description>
		<content:encoded><![CDATA[<p>mmm, I don&#8217;t see why you would get a hangup, I&#8217;d like to see the debug output of such scenario.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: cyr2242</title>
		<link>http://www.moythreads.com/wordpress/2007/12/24/asterisk-asynchronous-agi/comment-page-1/#comment-368</link>
		<dc:creator>cyr2242</dc:creator>
		<pubDate>Thu, 26 Mar 2009 13:00:35 +0000</pubDate>
		<guid isPermaLink="false">http://www.moythreads.com/wordpress/2007/12/24/asterisk-asynchronous-agi/#comment-368</guid>
		<description>Hi,
redirecting caller&#039;s channel (listening a playback in AGI) to agent&#039;s channel was the first thing I tried but I got a disconnection on my device (caller&#039;s channel) so I thought it wasn&#039;t the right way. However your approach redirecting the call to AGI again, then Dialing to the agent, could be work. I&#039;ll give it a go. 

Thanks for the hint</description>
		<content:encoded><![CDATA[<p>Hi,<br />
redirecting caller&#8217;s channel (listening a playback in AGI) to agent&#8217;s channel was the first thing I tried but I got a disconnection on my device (caller&#8217;s channel) so I thought it wasn&#8217;t the right way. However your approach redirecting the call to AGI again, then Dialing to the agent, could be work. I&#8217;ll give it a go. </p>
<p>Thanks for the hint</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: moy</title>
		<link>http://www.moythreads.com/wordpress/2007/12/24/asterisk-asynchronous-agi/comment-page-1/#comment-365</link>
		<dc:creator>moy</dc:creator>
		<pubDate>Tue, 24 Mar 2009 13:20:52 +0000</pubDate>
		<guid isPermaLink="false">http://www.moythreads.com/wordpress/2007/12/24/asterisk-asynchronous-agi/#comment-365</guid>
		<description>Hello,

The problem you mention is addressed by redirecting the channel, you can do that with the manager Redirect action (I have not used Asterisk lately, but I expect that action to still be named the same), the truth is that behind the scenes, a Redirect causes a hangup of the channel, but the call stays alive in a new channel (this process is known as masquerade), this will break your channel out of any application (Playback, Dial, etc) and return control to the dial plan. This is useful for you to Redirect the channel to the one and only Async AGI control loop (ideally in my ideal system there is only 1 Async AGI loop) and then you can proceed to Dial() to the free Agent.

Let me know if this crappy explanation was not enough.</description>
		<content:encoded><![CDATA[<p>Hello,</p>
<p>The problem you mention is addressed by redirecting the channel, you can do that with the manager Redirect action (I have not used Asterisk lately, but I expect that action to still be named the same), the truth is that behind the scenes, a Redirect causes a hangup of the channel, but the call stays alive in a new channel (this process is known as masquerade), this will break your channel out of any application (Playback, Dial, etc) and return control to the dial plan. This is useful for you to Redirect the channel to the one and only Async AGI control loop (ideally in my ideal system there is only 1 Async AGI loop) and then you can proceed to Dial() to the free Agent.</p>
<p>Let me know if this crappy explanation was not enough.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: cyr2242</title>
		<link>http://www.moythreads.com/wordpress/2007/12/24/asterisk-asynchronous-agi/comment-page-1/#comment-364</link>
		<dc:creator>cyr2242</dc:creator>
		<pubDate>Tue, 24 Mar 2009 10:16:07 +0000</pubDate>
		<guid isPermaLink="false">http://www.moythreads.com/wordpress/2007/12/24/asterisk-asynchronous-agi/#comment-364</guid>
		<description>I&#039;m pulling it up because I&#039;m interested on it. I have written some asynchronous voice and telephony application for years and this AsyncAGI almost meets my expectations about a 3rd party call control for Asterisk, but IMHO there&#039;s a lack:
If I&#039;m playing an announcement for a wait on queue functionality ... how can I stop the announcement when an agent (I have my own implementation for agents in my application) becomes free before redirect him the call? I can&#039;t see any AGI command like stopPlay.
I know your AsyncAGI relies on AGI, so this lack for a stop function isn&#039;t a FastAGI&#039;s fail but I suppose you have already thought about it before me.  I would appreciate some hints about it in order to becoming the use of AsyncAGI in something as useful as I think it would be.
Thanks</description>
		<content:encoded><![CDATA[<p>I&#8217;m pulling it up because I&#8217;m interested on it. I have written some asynchronous voice and telephony application for years and this AsyncAGI almost meets my expectations about a 3rd party call control for Asterisk, but IMHO there&#8217;s a lack:<br />
If I&#8217;m playing an announcement for a wait on queue functionality &#8230; how can I stop the announcement when an agent (I have my own implementation for agents in my application) becomes free before redirect him the call? I can&#8217;t see any AGI command like stopPlay.<br />
I know your AsyncAGI relies on AGI, so this lack for a stop function isn&#8217;t a FastAGI&#8217;s fail but I suppose you have already thought about it before me.  I would appreciate some hints about it in order to becoming the use of AsyncAGI in something as useful as I think it would be.<br />
Thanks</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: manuna</title>
		<link>http://www.moythreads.com/wordpress/2007/12/24/asterisk-asynchronous-agi/comment-page-1/#comment-338</link>
		<dc:creator>manuna</dc:creator>
		<pubDate>Fri, 04 Jul 2008 08:37:25 +0000</pubDate>
		<guid isPermaLink="false">http://www.moythreads.com/wordpress/2007/12/24/asterisk-asynchronous-agi/#comment-338</guid>
		<description>Sorry, i&#039;ve really misunderstood the way it works. My mind was that asynchronous channel can execute some AGI script (determined in dialplan), meanwhile being able to receive and execute asynchronous commands  (from an external AMI application). So the initial script sets up a call, and later on it can be asynchronously bridged, put on hold, etc.</description>
		<content:encoded><![CDATA[<p>Sorry, i&#8217;ve really misunderstood the way it works. My mind was that asynchronous channel can execute some AGI script (determined in dialplan), meanwhile being able to receive and execute asynchronous commands  (from an external AMI application). So the initial script sets up a call, and later on it can be asynchronously bridged, put on hold, etc.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: moy</title>
		<link>http://www.moythreads.com/wordpress/2007/12/24/asterisk-asynchronous-agi/comment-page-1/#comment-337</link>
		<dc:creator>moy</dc:creator>
		<pubDate>Thu, 03 Jul 2008 13:47:43 +0000</pubDate>
		<guid isPermaLink="false">http://www.moythreads.com/wordpress/2007/12/24/asterisk-asynchronous-agi/#comment-337</guid>
		<description>Then probably AsyncAGI is not for you.

 What you don&#039;t seem to understand is what I just said to you, AsyncAGI HANDLES ALL THE CHANNELS THROUGH THE MANAGER, there is no such thing as an execution script (sure thing probably there will be manager connections controled from scripts, but that&#039;s outside the AsyncAGI scope to know). That&#039;s what &quot;Async&quot; means, Asynchronous. 

When you execute a script via FastAGI that script will control the channel during the life of the script, your script just takes care of that single channel and when you execute an AGI command your script &quot;blocks&quot; its execution until the command finishes.

AsyncAGI just puts the channel to wait for Asynchronous AGI commands, where those commands will come from? is up to you. In my case I had a program that connected to the Asterisk manager and handled all the channels, so I had a single script that worked pretty much like a PBX in a scripting language, took care of knowing which channels were active and what to do with ALL of them, bridging them, un-bridging them, put in them in conferences, play audio etc. 

If  you do anything at all with Async AGI you will have to understand event-oriented programming, because that&#039;s how  you do to control channels over AsyncAGI.</description>
		<content:encoded><![CDATA[<p>Then probably AsyncAGI is not for you.</p>
<p> What you don&#8217;t seem to understand is what I just said to you, AsyncAGI HANDLES ALL THE CHANNELS THROUGH THE MANAGER, there is no such thing as an execution script (sure thing probably there will be manager connections controled from scripts, but that&#8217;s outside the AsyncAGI scope to know). That&#8217;s what &#8220;Async&#8221; means, Asynchronous. </p>
<p>When you execute a script via FastAGI that script will control the channel during the life of the script, your script just takes care of that single channel and when you execute an AGI command your script &#8220;blocks&#8221; its execution until the command finishes.</p>
<p>AsyncAGI just puts the channel to wait for Asynchronous AGI commands, where those commands will come from? is up to you. In my case I had a program that connected to the Asterisk manager and handled all the channels, so I had a single script that worked pretty much like a PBX in a scripting language, took care of knowing which channels were active and what to do with ALL of them, bridging them, un-bridging them, put in them in conferences, play audio etc. </p>
<p>If  you do anything at all with Async AGI you will have to understand event-oriented programming, because that&#8217;s how  you do to control channels over AsyncAGI.</p>
]]></content:encoded>
	</item>
	<item>
		<title>By: manuna</title>
		<link>http://www.moythreads.com/wordpress/2007/12/24/asterisk-asynchronous-agi/comment-page-1/#comment-336</link>
		<dc:creator>manuna</dc:creator>
		<pubDate>Thu, 03 Jul 2008 08:58:25 +0000</pubDate>
		<guid isPermaLink="false">http://www.moythreads.com/wordpress/2007/12/24/asterisk-asynchronous-agi/#comment-336</guid>
		<description>Will this be implemented in a way like:
AGI(agi:async/scriptname?par1=val1&amp;par2=val2...) ?
For me it&#039;s crucial to determine scriptname, because my FastAGI server processes different kinds of scripts, depending on extension dialed.</description>
		<content:encoded><![CDATA[<p>Will this be implemented in a way like:<br />
AGI(agi:async/scriptname?par1=val1&amp;par2=val2&#8230;) ?<br />
For me it&#8217;s crucial to determine scriptname, because my FastAGI server processes different kinds of scripts, depending on extension dialed.</p>
]]></content:encoded>
	</item>
</channel>
</rss>
