On 8/8/07, <b class="gmail_sendername">Mike</b> &lt;<a href="mailto:list@virtutel.ca">list@virtutel.ca</a>&gt; wrote:<div><span class="gmail_quote"></span><div><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
<div text="#000000" bgcolor="#ffffff"><div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2">So, I wrote (well, plagarized directly from the Web) a 
simple Perl program that prints &quot;Hello World&quot;.&nbsp; I call it using 
this:</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2"></font></span>&nbsp;</div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2">exten =&gt; 
12345,1,AGI(agi-helloworld.agi)</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2"></font></span>&nbsp;</div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2">Seems to work (I&#39;m not expecting anything, really, just no 
Asterisk error).</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2"></font></span>&nbsp;</div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2">When I try to use it as part Noop like 
this:</font></span></div>
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2">
<div dir="ltr" align="left"><span><font color="#0000ff" face="Arial" size="2">exten =&gt; 
12345,1,Noop(${AGI(agi-helloworld.agi)})</font></span></div>
<div dir="ltr" align="left"><span></span>&nbsp;</div>
<div dir="ltr" align="left"><span>In the hope of getting to 
see Noop(Hello World) in my CLI, I get the following Asterisk 
error:</span></div>
<div dir="ltr" align="left"><span></span>&nbsp;</div></font></span></div>
<div><font color="#0000ff" face="Arial" size="2">Aug&nbsp; 8 13:40:48 ERROR[5771]: 
pbx.c:1402 ast_func_read: Function AGI not registered</font></div>
<div><font color="#0000ff" face="Arial" size="2"></font>&nbsp;</div>
<div><font color="#0000ff" face="Arial" size="2"><span>AGI 
certainly seems registered as it worked in the first case.&nbsp; Again, 
something obvious I missed?</span></font></div></div></blockquote><div><br>This is calling the AGI application:<br><br>exten =&gt; something,priority,AGI(program|args)<br><br>This is an attempt to call a function called AGI (which doesn&#39;t exist) and pass the results of said non-existent function to the NoOp application:
<br><br>exten =&gt; something,priority,NoOp(${AGI(program|args)})<br><br>look at &#39;core show applications&#39; and &#39;core show functions&#39; to see what you can call in each case.&nbsp; Applications and functions aren&#39;t interchangeable.
<br><br>If you want to use an AGI script to set a variable you can later use as an arg to Dial(), then you want to call the AGI application from your dialplan, then from inside the AGI script do your calculations and issue the AGI command &quot;SET VARIABLE name value&quot;.
<br><br>So if you have a very basic AGI script that just does this:<br><br>echo &quot;SET VARIABLE foo bar&quot;<br><br>then your dialplan could look something like this:<br><br>exten =&gt; foo,1,AGI(foo.agi)<br>exten =&gt; foo,n,NoOp(${foo})
<br><br>And you&#39;d expect to see &quot;NoOp(bar)&quot; on your console when you called that extension.<br><br>Of course, you&#39;d want to use one of the available AGI frameworks to do the heavy lifting of parsing the input that Asterisk gives an AGI script and take care of the error handing when you issue a command back to Asterisk from the AGI script.
<br><br></div></div>-- <br>j.