<div dir="ltr"><font color="#333399" face="tahoma, sans-serif">Thanks Salman.</font><div><font color="#333399" face="tahoma, sans-serif">Here is my cli debug when run agi:</font></div><div><font color="#333399" face="tahoma, sans-serif"><br>

</font></div><div><font color="#333399" face="tahoma, sans-serif"><div><br></div><div>    -- Launched AGI Script /var/lib/asterisk/agi-bin/testAGI.php</div><div>    -- &lt;SIP/101-00000007&gt;AGI Script testAGI.php completed, returning 0</div>

<div><br></div><div><br></div><div>and here is my php agi source code:</div><div><br></div><div><div>#!/usr/bin/php -q</div><div>&lt;?php</div><div><br></div><div>error_reporting(E_ALL);</div><div>ob_implicit_flush(false);</div>

<div>set_time_limit(6);</div><div>$stdin = fopen(&#39;php://stdin&#39;, &#39;r&#39;);</div><div>$stdlog = fopen(&#39;tmp/agi_log.log&#39;, &#39;w&#39;);</div><div>$debug = false;</div><div>// Read input from Asterisk and output via $astOutput *</div>

<div>function astRead()</div><div>{</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>global $stdin, $debug, $stdlog;</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>$astOutput = str_replace(&quot;\n&quot;, &quot;&quot;, fgets($stdin, 4096));</div>

<div><span class="Apple-tab-span" style="white-space:pre">        </span>if ($debug) fputs($stdlog, &quot;read: $input\n&quot;);</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>return $astOutput;</div><div>

}</div><div>// Write AGI command to Asterisk</div><div>function astWrite($agiCommand)</div><div>{</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>global $debug, $stdlog;</div><div><span class="Apple-tab-span" style="white-space:pre">        </span>if ($debug) fputs($stdlog, &quot;write: $agiCommand\n&quot;);</div>

<div><span class="Apple-tab-span" style="white-space:pre">        </span></div><div><span class="Apple-tab-span" style="white-space:pre">        </span>echo $agiCommand.&quot;\n&quot;;</div><div>}</div><div>// Handling execution input from Asterisk</div>

<div>while (!feof($stdin))</div><div>{</div><div>$temp = fgets($stdin);</div><div>$temp = str_replace(&quot;\n&quot;,&quot;&quot;,$temp);</div><div>$s = explode(&quot;:&quot;,$temp);</div><div>$agivar[$s[0]] = trim($s[1]);</div>

<div>if ($temp == &quot;&quot;)</div><div>{</div><div>break;</div><div>}</div><div>}</div><div>// Operational Code starts here</div><div><br></div><div>astWrite(&quot;STREAM FILE demo-congrats #&quot;);</div><div>astRead();</div>

<div>astWrite(&quot;SAY NUMBER 123456 #&quot;);</div><div>astRead();</div><div><br></div><div>// Finalization of AGI script and clean-ups</div><div>fclose ($stdin);</div><div>fclose ($stdlog);</div><div>exit(0);</div></div>

<div><br></div></font><div><br></div><div>as you see, it was return 0. agi is running successful or not?</div><div><br></div><div><div>[from-internal]</div><div>exten =&gt; _X.,1,NOOP(++++++Invoking AGI Script now(before agi): MGH++++++++)</div>

<div>exten =&gt; _X.,2,AGI(testAGI.php)</div><div>exten =&gt; _X.,3,NOOP(***************After AGI********************)</div><div>exten =&gt; _X.,100,DeadAGI(getCDRLog.php) </div><div><br></div></div><div><br></div><div><br>

</div><div><br></div><br><div class="gmail_quote">On Sat, Jan 19, 2013 at 11:49 AM, Salman Zafar <span dir="ltr">&lt;<a href="mailto:msalman212@gmail.com" target="_blank">msalman212@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

You seriously need to go through Asterisk text books available online or at-least read the manual.<br><br>NoOP is just a No Operation, so its just printing text in your case. <br><br>To execute an AGI you need to call it from dialpan like exten =&gt; _X.,n,AGI(name_of_AGI), agi should be appropriate directory, which I reckon you already know.<div>

<div class="h5"><br>
<br><br><div class="gmail_quote">On Sat, Jan 19, 2013 at 1:06 PM, Muhammad <span dir="ltr">&lt;<a href="mailto:mohammad.ghazavi@gmail.com" target="_blank">mohammad.ghazavi@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


<div dir="ltr"><font color="#333399"><font><font face="tahoma,sans-serif">Th<font>anks Ste<font>ve.<br><br><font>but explain me more about your <font>dialplan codes. Im a <font>beginner.<br><br></font></font></font></font></font></font></font></font><br>




<font face="courier new, monospace"><div>exten =&gt; _X.,1,NOOP(Invoking AGI Script now)<br><br></div>what is &quot;</font><font face="courier new, monospace"><font face="courier new, monospace">Invoking AGI Script now</font>&quot; and what should I do in this method?<br>




<br>what is _X. it seems it is dynamic extension number.<br>and &quot;n&quot;?<br><br>Thanks<br><br></font><div><div><div class="gmail_quote">On Wed, Jan 16, 2013 at 11:12 AM, SamyGo <span dir="ltr">&lt;<a href="mailto:govoiper@gmail.com" target="_blank">govoiper@gmail.com</a>&gt;</span> wrote:<br>




<blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"><div dir="ltr">Hi,<div>Please see my comments in line.<br><div class="gmail_extra"><br></div><div class="gmail_extra">



Regards,</div>
<div class="gmail_extra">Sammy</div><div class="gmail_extra"><br><br><div class="gmail_quote"><div>
On Wed, Jan 16, 2013 at 12:13 PM, Zohair Raza <span dir="ltr">&lt;<a href="mailto:engineerzuhairraza@gmail.com" target="_blank">engineerzuhairraza@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">





<div dir="ltr"><br><div class="gmail_quote"><div>On Wed, Jan 16, 2013 at 11:01 AM, Muhammad <span dir="ltr">&lt;<a href="mailto:mohammad.ghazavi@gmail.com" target="_blank">mohammad.ghazavi@gmail.com</a>&gt;</span> wrote:<br>





<blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">

<div dir="ltr"><font color="#333399"><font><font face="tahoma,sans-serif"><i>Thank<font>s <font>Zohair!<br><font>I wrote some php code to working with AGI, but it dosen&#39;t work.<br><font></font></font></font></font></i></font></font></font></div>







</blockquote><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div dir="ltr"><font color="#333399"><font><font face="tahoma,sans-serif"><i><font><font><font><font>I don&#39;t know how can run it. please explain me when I put m<font>y php code insi<font>de </font>/var/lib/asterisk/agi-bin  <font>so, what should I do a<font>fter that. </font></font></font></font></font></font></font></i></font></font></font></div>







</blockquote><div><br></div></div><div>Make sure Asterisk has access to your AGI script, and make it executable (chmod u+x agi.php). Also make sure it has shebang (!#/usr/bin/php)</div></div></div></blockquote><div>
<br></div></div><div>Besides  that you&#39;ll need to create SIP users and define their <i>context=my-agi</i> and in your context call this AGI.</div><div><br></div><div><font face="courier new, monospace">[my-agi]</font></div>





<div><font face="courier new, monospace">exten =&gt; _X.,1,NOOP(Invoking AGI Script now)</font></div><div><font face="courier new, monospace">same =&gt; n,AGI(my-agi-filename.php)</font></div><div><font face="courier new, monospace">same =&gt; n,NOOP(Any other post AGI things here)</font></div>





<div><font face="courier new, monospace">same =&gt; n,Hangup()</font></div><div><div><br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">





<div dir="ltr"><div class="gmail_quote"><div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">







<div dir="ltr"><font color="#333399"><font><font face="tahoma,sans-serif"><i><font><font><font><font><font><font><font>and the second one, how can limit users to call just my number in list at datab<font>ase<font> and permit to call another numbers.</font></font></font></font></font></font></font></font></font></i></font></font></font><div>







<div><i><br></i></div></div></div></blockquote></div><div>That depends on logic in your script, you can also separate users by contexts</div></div></div></blockquote><div><br></div></div><div>Alternative to the above approach there are other possibilities, like applying a GotoIF() condition in the <i>[my-agi]</i>  dialplan code above restricting a particluar number,  or Instead of <i>_X. </i>in the above code implement some regex to enable only local area dialing i.e</div>





<div><br></div><div><font face="courier new, monospace">exten =&gt; _78XXXXXX,1,NOOP(Invoking AGI Script now for dialled string starting with 78 and 8 digit in length)</font></div><div><br></div><div>
If you don&#39;t like any of the above because you&#39;ve a list of numbers which should be dialled only in a DB.table then in your php-AGI script do some restrictions based on that table.</div><div><div><div>

<br></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">
<div dir="ltr"><div class="gmail_quote"><div><div><div> </div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">







<div dir="ltr"><div><div><i>

</i><br><div class="gmail_quote">On Tue, Jan 15, 2013 at 12:39 PM, Zohair Raza <span dir="ltr">&lt;<a href="mailto:engineerzuhairraza@gmail.com" target="_blank">engineerzuhairraza@gmail.com</a>&gt;</span> wrote:<br><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex">









<div dir="ltr">you need to run full command, like <div><br></div><div>agi show commands topic answer</div><div>agi show commands topic gosub</div><div>agi set debug on</div><div><br></div><div><br clear="all"><div><div dir="ltr">











Regards,<br>Zohair Raza<div><br></div><div><br></div></div></div><div class="gmail_quote"><div><div>On Tue, Jan 15, 2013 at 1:05 PM, Muhammad <span dir="ltr">&lt;<a href="mailto:mohammad.ghazavi@gmail.com" target="_blank">mohammad.ghazavi@gmail.com</a>&gt;</span> wrote:<br>











</div></div><blockquote class="gmail_quote" style="margin:0px 0px 0px 0.8ex;border-left-width:1px;border-left-color:rgb(204,204,204);border-left-style:solid;padding-left:1ex"><div><div><div dir="ltr">Hi,<br><br>in CLI, I type agi show or other agi commad, but response me &quot;command not found&quot;.<br>











How can see agi is work normally in my server?<br><br></div>
<br></div></div><span><font color="#888888">--<br>
_____________________________________________________________________<br>
-- Bandwidth and Colocation Provided by <a href="http://www.api-digital.com" target="_blank">http://www.api-digital.com</a> --<br>
New to Asterisk? Join us for a live introductory webinar every Thurs:<br>
               <a href="http://www.asterisk.org/hello" target="_blank">http://www.asterisk.org/hello</a><br>
<br>
asterisk-users mailing list<br>
To UNSUBSCRIBE or update options visit:<br>
   <a href="http://lists.digium.com/mailman/listinfo/asterisk-users" target="_blank">http://lists.digium.com/mailman/listinfo/asterisk-users</a><br></font></span></blockquote></div><br></div></div>
<br>--<br>
_____________________________________________________________________<br>
-- Bandwidth and Colocation Provided by <a href="http://www.api-digital.com" target="_blank">http://www.api-digital.com</a> --<br>
New to Asterisk? Join us for a live introductory webinar every Thurs:<br>
               <a href="http://www.asterisk.org/hello" target="_blank">http://www.asterisk.org/hello</a><br>
<br>
asterisk-users mailing list<br>
To UNSUBSCRIBE or update options visit:<br>
   <a href="http://lists.digium.com/mailman/listinfo/asterisk-users" target="_blank">http://lists.digium.com/mailman/listinfo/asterisk-users</a><br></blockquote></div><br></div></div></div>
<br>--<br>
_____________________________________________________________________<br>
-- Bandwidth and Colocation Provided by <a href="http://www.api-digital.com" target="_blank">http://www.api-digital.com</a> --<br>
New to Asterisk? Join us for a live introductory webinar every Thurs:<br>
               <a href="http://www.asterisk.org/hello" target="_blank">http://www.asterisk.org/hello</a><br>
<br>
asterisk-users mailing list<br>
To UNSUBSCRIBE or update options visit:<br>
   <a href="http://lists.digium.com/mailman/listinfo/asterisk-users" target="_blank">http://lists.digium.com/mailman/listinfo/asterisk-users</a><br></blockquote></div></div></div><br></div>
<br>--<br>
_____________________________________________________________________<br>
-- Bandwidth and Colocation Provided by <a href="http://www.api-digital.com" target="_blank">http://www.api-digital.com</a> --<br>
New to Asterisk? Join us for a live introductory webinar every Thurs:<br>
               <a href="http://www.asterisk.org/hello" target="_blank">http://www.asterisk.org/hello</a><br>
<br>
asterisk-users mailing list<br>
To UNSUBSCRIBE or update options visit:<br>
   <a href="http://lists.digium.com/mailman/listinfo/asterisk-users" target="_blank">http://lists.digium.com/mailman/listinfo/asterisk-users</a><br></blockquote></div></div></div><br></div></div></div>
<br>--<br>
_____________________________________________________________________<br>
-- Bandwidth and Colocation Provided by <a href="http://www.api-digital.com" target="_blank">http://www.api-digital.com</a> --<br>
New to Asterisk? Join us for a live introductory webinar every Thurs:<br>
               <a href="http://www.asterisk.org/hello" target="_blank">http://www.asterisk.org/hello</a><br>
<br>
asterisk-users mailing list<br>
To UNSUBSCRIBE or update options visit:<br>
   <a href="http://lists.digium.com/mailman/listinfo/asterisk-users" target="_blank">http://lists.digium.com/mailman/listinfo/asterisk-users</a><br></blockquote></div><br></div></div></div>
<br>--<br>
_____________________________________________________________________<br>
-- Bandwidth and Colocation Provided by <a href="http://www.api-digital.com" target="_blank">http://www.api-digital.com</a> --<br>
New to Asterisk? Join us for a live introductory webinar every Thurs:<br>
               <a href="http://www.asterisk.org/hello" target="_blank">http://www.asterisk.org/hello</a><br>
<br>
asterisk-users mailing list<br>
To UNSUBSCRIBE or update options visit:<br>
   <a href="http://lists.digium.com/mailman/listinfo/asterisk-users" target="_blank">http://lists.digium.com/mailman/listinfo/asterisk-users</a><br></blockquote></div><br><br clear="all"><br>-- <br></div></div><font face="&#39;times new roman&#39;, serif">Regards</font><div>


<font face="&#39;times new roman&#39;, serif"><br></font><div><pre cols="72"><font face="&#39;times new roman&#39;, serif">**************************
Muhammad Salman
***************************</font>
</pre></div></div>
<br>--<br>
_____________________________________________________________________<br>
-- Bandwidth and Colocation Provided by <a href="http://www.api-digital.com" target="_blank">http://www.api-digital.com</a> --<br>
New to Asterisk? Join us for a live introductory webinar every Thurs:<br>
               <a href="http://www.asterisk.org/hello" target="_blank">http://www.asterisk.org/hello</a><br>
<br>
asterisk-users mailing list<br>
To UNSUBSCRIBE or update options visit:<br>
   <a href="http://lists.digium.com/mailman/listinfo/asterisk-users" target="_blank">http://lists.digium.com/mailman/listinfo/asterisk-users</a><br></blockquote></div><br></div></div>