{"id":180,"date":"2011-09-15T19:55:34","date_gmt":"2011-09-15T22:55:34","guid":{"rendered":"http:\/\/blog.abratel.com.br\/?p=180"},"modified":"2011-09-15T19:55:34","modified_gmt":"2011-09-15T22:55:34","slug":"exemplo-de-criacao-agi-asterisk","status":"publish","type":"post","link":"https:\/\/blog.abratel.com.br\/?p=180","title":{"rendered":"Exemplo de cria\u00e7\u00e3o AGI asterisk"},"content":{"rendered":"<p>Uma consulta no banco pelo prefixo retornando uma vari\u00e1vel com o tronco a ser usado para aquele determinado numero.<\/p>\n<p>   (http:\/\/www.packtpub.com\/article\/asterisk-gateway-interface-scripting-with-php)<\/p>\n<p>      Vamos supor que sua tabela de prefixo seja assim&#8230;.:<\/p>\n<p>             id, prefixo, tronco<br \/>\n             1, 193208, SIP\/TRONCO_A<br \/>\n             2, 193209, SIP\/TRONCO_B<br \/>\n             &#8230;&#8230;..<\/p>\n<p>Voce teria a seguinte agi&#8230;..<\/p>\n<p>#!\/usr\/bin\/php -q<br \/>\n<?\n   ob_implicit_flush(false); \n   set_time_limit(6);\n\n   $stdin = fopen(\u2018php:\/\/stdin\u2019, \u2018r\u2019);\n   $stdlog = fopen(\u2018my_agi.log\u2019, \u2018w\u2019);\n\n   $debug = false;\n\n\n\n   \/* Read input from Asterisk and output via $astOutput *\/\n   function astRead() \n   { \n\t global $stdin, $debug, $stdlog; \n      $astOutput = str_replace(\"n\", \"\", fgets($stdin, 4096)); \n\n\n      if ($debug) fputs($stdlog, \"read: $inputn\"); \n      return $astOutput ; \n   } \n\n \n   \/* Write AGI command to Asterisk *\/\n   function astWrite($agiCommand) \n   { \n      global $debug, $stdlog; \n\n\n      if ($debug) fputs($stdlog, \"write: $agiCommandn\"); \n      echo $agiCommand.\"n\"; \n   }\n\n   \/* Handling execution input from Asterisk *\/\n   $agivar = array();\n   while (!feof($stdin)) \n\n\n   { \n  \t $temp = fgets($stdin); \n  \t $temp = str_replace(\"n\",\"\",$temp); \n  \t $s = explode(\":\",$temp); \n  \t $agivar[$s[0]] = trim($s[1]); \n  \t if ($temp == \"\")  \n\n     { \n\n    \tbreak; \n  \t} \n   }\n\n   \/* Operational Code starts here *\/\n\n   $var = $argv[1];\n   $sql = $conn->ConsultaSQL(&#8220;Select tronco FROM tabela WHERE prefixo=&#8217;$var&#8217; LIMIT 1&#8221;);<br \/>\n   $res = mysql_num_rows($sql);<\/p>\n<p>   for($i=0; $i<$res; ++$i){\n      $row = mysql_fecth_array($sql);\n      $tronco = $row[0];\n   }\n\n   astWrite(\"SET VARIABLE TRONCO $tronco\");\n   astRead();\n\n\n   \/* Finalization of AGI script and clean-ups *\/\n\n\n\n   fclose ($stdin);\n   fclose ($stdlog);\n   exit(0);\n\n?><\/p>\n<p>No asterisk<\/p>\n<p>exten => 1,1,Agi(test.php,${EXTEN} ou ${PREFIXO}&#8230;..)<br \/>\nexten => 1,n,Dial(${TRONCO}\/${EXTEN}&#8230;&#8230;.);<\/p>\n<p>&#8230;&#8230;<\/p>\n<p>Falta acrescentar na Agi os parametros de conex\u00e3o com o banco de dados que voc\u00ea esta utilizando&#8230;.<\/p>\n<p>Creditos: Sylvio Carlos<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Uma consulta no banco pelo prefixo retornando uma vari\u00e1vel com o tronco a ser usado para aquele determinado numero. (http:\/\/www.packtpub.com\/article\/asterisk-gateway-interface-scripting-with-php) Vamos supor que sua tabela de prefixo seja assim&#8230;.: id, prefixo, tronco 1, 193208, SIP\/TRONCO_A 2, 193209, SIP\/TRONCO_B &#8230;&#8230;.. Voce teria a seguinte agi&#8230;.. #!\/usr\/bin\/php&#8230;<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":[],"categories":[1],"tags":[],"_links":{"self":[{"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=\/wp\/v2\/posts\/180"}],"collection":[{"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcomments&post=180"}],"version-history":[{"count":0,"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=\/wp\/v2\/posts\/180\/revisions"}],"wp:attachment":[{"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=180"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=180"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/blog.abratel.com.br\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=180"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}