<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN">
<HTML><HEAD>
<META http-equiv=Content-Type content="text/html; charset=iso-8859-1">
<META content="MSHTML 6.00.6000.16809" name=GENERATOR>
<STYLE></STYLE>
</HEAD>
<BODY bgColor=#ffffff><FONT face=Arial size=2>
<DIV>Obs, fiz a alteração com o intuito de auxiliar, no entanto para uso como 
shell script, não realizei os testes após modificar.</DIV>
<DIV><BR>Para utilizar, efetue as seguinte alterações em seu asterisk.</DIV>
<DIV>&nbsp;</DIV>
<DIV>Conteudo do arquivo 
/etc/asterisk/manager.conf<BR>------------------------------------------------------------------------------------------<BR>; 
AMI - The Asterisk Manager Interface</DIV>
<DIV>&nbsp;</DIV>
<DIV>[general]<BR>displaysystemname = yes<BR>enabled = yes<BR>webenabled = 
yes<BR>port = 5038<BR>bindaddr = 0.0.0.0</DIV>
<DIV>&nbsp;</DIV>
<DIV>[admin]<BR>secret = coloque aqui a senha para acesso ao manager 
AMI<BR>read=system,call,log,verbose,command,agent,user,config<BR>write=system,call,log,verbose,command,agent,user,config<BR>permit=127.0.0.1; 
ou permita o uso via outro computador/rede ex: 192.168.0.0/24</DIV>
<DIV>&nbsp;</DIV>
<DIV>; Authorization for various classes <BR>read = 
system,call,log,verbose,command,agent,user,config<BR>write = 
system,call,log,verbose,command,agent,user,config<BR>------------------------------------------------------------------------------------------</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>&nbsp;</DIV>
<DIV>Conteudo do arquivo chamada.php "soemnte para envio via 
http"<BR>------------------------------------------------------------------------------------------<BR>&lt;?php</DIV>
<DIV>&nbsp;</DIV>
<DIV>// Defina aqui as configurações....<BR>$usuario = 'usuario definido no 
manager.conf';<BR>$password = 'senha definida no manager.conf';<BR>$context = 
'coloque aqui o contexto para efetuar a chamada'<BR>$callerid = 'coloque aqui o 
numero que vai aparecer no ramal';</DIV>
<DIV>&nbsp;</DIV>
<DIV>if ( isset( $_POST['telefone']) &amp;&amp; isset($_POST['ramal'])&nbsp; ) 
{<BR>&nbsp;<BR>&nbsp;function AMI_sip_status($socket, $sip)<BR>&nbsp;{<BR>&nbsp; 
fputs($socket, "ACTION: ExtensionState\r\n");<BR>&nbsp; fputs($socket, "Context: 
". $context . "\r\n");<BR>&nbsp; fputs($socket, "Exten: " . $ramal . 
"\r\n");<BR>&nbsp; fputs($socket, "ActionID: 1\r\n\r\n");<BR>&nbsp; 
fgets($socket);<BR>&nbsp; fgets($socket);<BR>&nbsp; fgets($socket);<BR>&nbsp; 
fgets($socket);<BR>&nbsp; fgets($socket);<BR>&nbsp; fgets($socket);<BR>&nbsp; 
fgets($socket);<BR>&nbsp; fgets($socket);<BR>&nbsp; fgets($socket);<BR>&nbsp; 
fgets($socket);<BR>&nbsp;<BR>&nbsp; return 
fgets($socket);<BR>&nbsp;}<BR>&nbsp;<BR>&nbsp;function AMI_originate($socket, 
$phonenumber)<BR>&nbsp;{<BR>&nbsp; fputs($socket, "Action: 
originate\r\n");<BR>&nbsp; fputs($socket, "Timeout: 30000\r\n");<BR>&nbsp; 
fputs($socket, "CallerId: " . $callerid &lt;$phonenumber&gt;\r\n");<BR>&nbsp; 
fputs($socket, "RetryTime: 45\r\n");<BR>&nbsp; fputs($socket, "WaitTime: 
30\r\n");<BR>&nbsp; fputs($socket, "Channel: SIP/" . $ramal . "\r\n");<BR>&nbsp; 
fputs($socket, "Exten: $phonenumber\r\n");<BR>&nbsp; fputs($socket, "Context: ". 
$context . "\r\n");<BR>&nbsp; fputs($socket, "Priority: 1\r\n");<BR>&nbsp; 
fputs($socket, "ActionID: 1\r\n\r\n");<BR>&nbsp;<BR>&nbsp; 
fgets($socket);<BR>&nbsp; fgets($socket);<BR>&nbsp; fgets($socket);&nbsp; 
<BR>&nbsp; fgets($socket);<BR>&nbsp; fgets($socket);<BR>&nbsp; 
fgets($socket);<BR>&nbsp; fgets($socket);<BR>&nbsp; <BR>&nbsp; $result = 
fgets($socket);<BR>&nbsp; echo $result;&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;}<BR>&nbsp;<BR>&nbsp;function AMI_login($socket, $username, 
$password)<BR>&nbsp;{<BR>&nbsp; fputs($socket, "Action: login\r\n");<BR>&nbsp; 
fputs($socket, "Username: $username\r\n");<BR>&nbsp; fputs($socket, "Secret: 
$password\r\n\r\n");<BR>&nbsp; fputs($socket, "Events: 
off\r\n\r\n");<BR>&nbsp;<BR>&nbsp; return 
fgets($socket);<BR>&nbsp;}<BR>&nbsp;<BR>&nbsp;if ( isset($_POST['telefone']) 
&amp;&amp; inset($_POST['ramal']) )&nbsp; {<BR>&nbsp; $number = 
strtolower($_POST['telefone']); // Número a chamar<BR>&nbsp; $ramal = 
$_POST['ramal']; // Ramal que será chamado ao ser atendida a chamada 
efetuada.<BR>&nbsp; $errno = 0;<BR>&nbsp; $errstr = 0;<BR>&nbsp;<BR>&nbsp; 
$oSocket = fsockopen("localhost", 5038, &amp;$errno, &amp;$errstr, 
20);<BR>&nbsp; if (!$oSocket)<BR>&nbsp; {<BR>&nbsp;&nbsp; echo "Não foi 
poss&amp;iacute;vel completar a chamada...";<BR>&nbsp; }<BR>&nbsp; 
else<BR>&nbsp; {<BR>&nbsp;&nbsp; fgets($oSocket);<BR>&nbsp;<BR>&nbsp;&nbsp; 
AMI_login($oSocket, '$usuario, $password) . "&lt;br&gt;";<BR>&nbsp;&nbsp; 
AMI_originate($oSocket, $number) . "&lt;br&gt;";<BR>&nbsp;<BR>&nbsp;&nbsp; 
fputs($oSocket, "Action: Logoff\r\n\r\n");<BR>&nbsp;&nbsp; 
fclose($oSocket);<BR>&nbsp; }<BR>&nbsp;}<BR>}<BR>&lt;?php</DIV>
<DIV>&nbsp;</DIV>
<DIV><BR>Conteudo do arquivo chamada.php "somente para envio via shell 
script"</DIV>
<DIV>------------------------------------------------------------------------------------------<BR>#!/usr/bin/php 
-q</DIV>
<DIV>&nbsp;</DIV>
<DIV>&lt;?php<BR>//Como utilizar: <BR>//&nbsp;./chamada.php telefone 
ramal<BR>//&nbsp;./chamada.php 03432564400 2000</DIV>
<DIV>&nbsp;</DIV>
<DIV>// Defina aqui as configurações....<BR>$usuario = 'usuario definido no 
manager.conf';<BR>$password = 'senha definida no manager.conf';<BR>$context = 
'coloque aqui o contexto para efetuar a chamada'<BR>$callerid = 'coloque aqui o 
numero que vai aparecer no ramal';</DIV>
<DIV>&nbsp;</DIV>
<DIV>if ( isset( $argv[1] ) &amp;&amp; isset($argv[2])&nbsp; ) 
{<BR>&nbsp;<BR>&nbsp;function AMI_sip_status($socket, $sip)<BR>&nbsp;{<BR>&nbsp; 
fputs($socket, "ACTION: ExtensionState\r\n");<BR>&nbsp; fputs($socket, "Context: 
". $context . "\r\n");<BR>&nbsp; fputs($socket, "Exten: " . $ramal . 
"\r\n");<BR>&nbsp; fputs($socket, "ActionID: 1\r\n\r\n");<BR>&nbsp; 
fgets($socket);<BR>&nbsp; fgets($socket);<BR>&nbsp; fgets($socket);<BR>&nbsp; 
fgets($socket);<BR>&nbsp; fgets($socket);<BR>&nbsp; fgets($socket);<BR>&nbsp; 
fgets($socket);<BR>&nbsp; fgets($socket);<BR>&nbsp; fgets($socket);<BR>&nbsp; 
fgets($socket);<BR>&nbsp;<BR>&nbsp; return 
fgets($socket);<BR>&nbsp;}<BR>&nbsp;<BR>&nbsp;function AMI_originate($socket, 
$phonenumber)<BR>&nbsp;{<BR>&nbsp; fputs($socket, "Action: 
originate\r\n");<BR>&nbsp; fputs($socket, "Timeout: 30000\r\n");<BR>&nbsp; 
fputs($socket, "CallerId: " . $callerid &lt;$phonenumber&gt;\r\n");<BR>&nbsp; 
fputs($socket, "RetryTime: 45\r\n");<BR>&nbsp; fputs($socket, "WaitTime: 
30\r\n");<BR>&nbsp; fputs($socket, "Channel: SIP/" . $ramal . "\r\n");<BR>&nbsp; 
fputs($socket, "Exten: $phonenumber\r\n");<BR>&nbsp; fputs($socket, "Context: ". 
$context . "\r\n");<BR>&nbsp; fputs($socket, "Priority: 1\r\n");<BR>&nbsp; 
fputs($socket, "ActionID: 1\r\n\r\n");<BR>&nbsp;<BR>&nbsp; 
fgets($socket);<BR>&nbsp; fgets($socket);<BR>&nbsp; fgets($socket);&nbsp; 
<BR>&nbsp; fgets($socket);<BR>&nbsp; fgets($socket);<BR>&nbsp; 
fgets($socket);<BR>&nbsp; fgets($socket);<BR>&nbsp; <BR>&nbsp; $result = 
fgets($socket);<BR>&nbsp; echo $result;&nbsp;&nbsp;&nbsp; 
<BR>&nbsp;}<BR>&nbsp;<BR>&nbsp;function AMI_login($socket, $username, 
$password)<BR>&nbsp;{<BR>&nbsp; fputs($socket, "Action: login\r\n");<BR>&nbsp; 
fputs($socket, "Username: $username\r\n");<BR>&nbsp; fputs($socket, "Secret: 
$password\r\n\r\n");<BR>&nbsp; fputs($socket, "Events: 
off\r\n\r\n");<BR>&nbsp;<BR>&nbsp; return 
fgets($socket);<BR>&nbsp;}<BR>&nbsp;<BR>&nbsp;if ( isset($_POST['telefone']) 
&amp;&amp; inset($_POST['ramal']) )&nbsp; {<BR>&nbsp; $number = 
strtolower($argv[1]); // Número a chamar<BR>&nbsp; $ramal = $argv[2]; // Ramal 
que será chamado ao ser atendida a chamada efetuada.<BR>&nbsp; $errno = 
0;<BR>&nbsp; $errstr = 0;<BR>&nbsp;<BR>&nbsp; $oSocket = fsockopen("localhost", 
5038, &amp;$errno, &amp;$errstr, 20);<BR>&nbsp; if (!$oSocket)<BR>&nbsp; 
{<BR>&nbsp;&nbsp; echo "Não foi poss&amp;iacute;vel completar a 
chamada...";<BR>&nbsp; }<BR>&nbsp; else<BR>&nbsp; {<BR>&nbsp;&nbsp; 
fgets($oSocket);<BR>&nbsp;<BR>&nbsp;&nbsp; AMI_login($oSocket, '$usuario, 
$password) . "&lt;br&gt;";<BR>&nbsp;&nbsp; AMI_originate($oSocket, $number) . 
"&lt;br&gt;";<BR>&nbsp;<BR>&nbsp;&nbsp; fputs($oSocket, "Action: 
Logoff\r\n\r\n");<BR>&nbsp;&nbsp; fclose($oSocket);<BR>&nbsp; 
}<BR>&nbsp;}<BR>}</DIV>
<DIV>&nbsp;</DIV>
<DIV>?&gt;</FONT></DIV>
<BLOCKQUOTE 
style="PADDING-RIGHT: 0px; PADDING-LEFT: 5px; MARGIN-LEFT: 5px; BORDER-LEFT: #000000 2px solid; MARGIN-RIGHT: 0px">
  <DIV style="FONT: 10pt arial">----- Original Message ----- </DIV>
  <DIV 
  style="BACKGROUND: #e4e4e4; FONT: 10pt arial; font-color: black"><B>From:</B> 
  <A title=rguedesdecarvalho@gmail.com 
  href="mailto:rguedesdecarvalho@gmail.com">Ricardo Guedes de Carvalho</A> 
</DIV>
  <DIV style="FONT: 10pt arial"><B>To:</B> <A 
  title=asteriskbrasil@listas.asteriskbrasil.org 
  href="mailto:asteriskbrasil@listas.asteriskbrasil.org">asteriskbrasil@listas.asteriskbrasil.org</A> 
  </DIV>
  <DIV style="FONT: 10pt arial"><B>Sent:</B> Monday, April 13, 2009 4:26 
PM</DIV>
  <DIV style="FONT: 10pt arial"><B>Subject:</B> Re: [AsteriskBrasil]script para 
  realizar ligação no asterisk (AGI)</DIV>
  <DIV><BR></DIV>ok, vou testar aki...só uma pergunta, esse arquivo chamada.php 
  deve estar localizado em /var/www/&nbsp; certo?<BR><BR>
  <DIV class=gmail_quote>2009/4/13 Sebastiao Rocha <SPAN dir=ltr>&lt;<A 
  href="mailto:lixo@interlinksistemas.com.br">lixo@interlinksistemas.com.br</A>&gt;</SPAN><BR>
  <BLOCKQUOTE class=gmail_quote 
  style="PADDING-LEFT: 1ex; MARGIN: 0px 0px 0px 0.8ex; BORDER-LEFT: #ccc 1px solid">
    <DIV bgcolor="#ffffff">
    <DIV><FONT face=Arial size=2><SPAN lang=PT-BR><SPAN lang=PT-BR>
    <P>Para utilizar, efetue as seguinte alterações em seu asterisk.</P>
    <P>Conteudo do arquivo 
    /etc/asterisk/manager.conf<BR>------------------------------------------------------------------------------------------<BR>; 
    AMI - The Asterisk Manager Interface</P>
    <P>[general]<BR>displaysystemname = yes<BR>enabled = yes<BR>webenabled = 
    yes<BR>port = 5038<BR>bindaddr = 0.0.0.0</P>
    <P>[admin]<BR>secret = coloque aqui a senha para acesso ao manager 
    AMI<BR>read=system,call,log,verbose,command,agent,user,config<BR>write=system,call,log,verbose,command,agent,user,config<BR>permit=127.0.0.1; 
    ou permita o uso via outro computador/rede&nbsp;ex: <A 
    href="http://192.168.0.0/24" target=_blank>192.168.0.0/24</A></P>
    <P>; Authorization for various classes <BR>read = 
    system,call,log,verbose,command,agent,user,config<BR>write = 
    system,call,log,verbose,command,agent,user,config<BR>------------------------------------------------------------------------------------------</P></SPAN>
    <P>&nbsp;</P>
    <P>AMI_login($oSocket, 'usuario', 'senha') . 
    "&lt;br&gt;";<BR></P></SPAN></FONT><FONT face=Arial size=2>Conteudo do 
    arquivo 
    chamada.php<BR>------------------------------------------------------------------------------------------<BR></FONT><FONT 
    face=Arial size=2>&lt;?php</FONT> 
    <P><FONT face=Arial size=2>$usuario = 'usuario definido no 
    manager.conf';<BR></FONT><FONT face=Arial size=2>$password = 'senha definida 
    no manager.conf';</FONT></P></DIV>
    <DIV><FONT face=Arial size=2>if ( isset( $_POST['telefone']) &amp;&amp; 
    isset($_POST['ramal']) &nbsp;) {</FONT></DIV>
    <DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
    <DIV><FONT face=Arial size=2>&nbsp;function AMI_sip_status($socket, 
    $sip)<BR>&nbsp;{<BR>&nbsp;&nbsp;fputs($socket, "ACTION: 
    ExtensionState\r\n");<BR>&nbsp;&nbsp;fputs($socket, "Context: 
    interlink\r\n");<BR>&nbsp;&nbsp;fputs($socket, "Exten: " . $ramal . 
    "\r\n");<BR>&nbsp;&nbsp;fputs($socket, "ActionID: 
    1\r\n\r\n");<BR>&nbsp;&nbsp;fgets($socket);<BR>&nbsp;&nbsp;fgets($socket);<BR>&nbsp;&nbsp;fgets($socket);<BR>&nbsp;&nbsp;fgets($socket);<BR>&nbsp;&nbsp;fgets($socket);<BR>&nbsp;&nbsp;fgets($socket);<BR>&nbsp;&nbsp;fgets($socket);<BR>&nbsp;&nbsp;fgets($socket);<BR>&nbsp;&nbsp;fgets($socket);<BR>&nbsp;&nbsp;fgets($socket);</FONT></DIV>
    <DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
    <DIV><FONT face=Arial size=2>&nbsp;&nbsp;return 
    fgets($socket);<BR>&nbsp;}</FONT></DIV>
    <DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
    <DIV><FONT face=Arial size=2>&nbsp;function AMI_originate($socket, 
    $phonenumber)<BR>&nbsp;{<BR>&nbsp;&nbsp;fputs($socket, "Action: 
    originate\r\n");<BR>&nbsp;&nbsp;fputs($socket, "Timeout: 
    30000\r\n");<BR>&nbsp;&nbsp;fputs($socket, "CallerId: Site Interlink 
    &lt;$phonenumber&gt;\r\n");<BR>&nbsp;&nbsp;fputs($socket, "RetryTime: 
    45\r\n");<BR>&nbsp;&nbsp;fputs($socket, "WaitTime: 
    30\r\n");<BR>&nbsp;&nbsp;fputs($socket, "Channel: SIP/" . $ramal . 
    "\r\n");<BR>&nbsp;&nbsp;fputs($socket, "Exten: 
    0$phonenumber\r\n");<BR>&nbsp;&nbsp;fputs($socket, "Context: 
    interlink\r\n");<BR>&nbsp;&nbsp;fputs($socket, "Priority: 
    1\r\n");<BR>&nbsp;&nbsp;fputs($socket, "ActionID: 1\r\n\r\n");</FONT></DIV>
    <DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
    <DIV><FONT face=Arial 
    size=2>&nbsp;&nbsp;fgets($socket);<BR>&nbsp;&nbsp;fgets($socket);<BR>&nbsp;&nbsp;fgets($socket);&nbsp;&nbsp;<BR>&nbsp;&nbsp;fgets($socket);<BR>&nbsp;&nbsp;fgets($socket);<BR>&nbsp;&nbsp;fgets($socket);<BR>&nbsp;&nbsp;fgets($socket);<BR>&nbsp;&nbsp;<BR>&nbsp;&nbsp;$result 
    = fgets($socket);<BR>&nbsp;&nbsp;echo 
    $result;&nbsp;&nbsp;&nbsp;&nbsp;<BR>&nbsp;}</FONT></DIV>
    <DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
    <DIV><FONT face=Arial size=2>&nbsp;function AMI_login($socket, $username, 
    $password)<BR>&nbsp;{<BR>&nbsp;&nbsp;fputs($socket, "Action: 
    login\r\n");<BR>&nbsp;&nbsp;fputs($socket, "Username: 
    $username\r\n");<BR>&nbsp;&nbsp;fputs($socket, "Secret: 
    $password\r\n\r\n");<BR>&nbsp;&nbsp;fputs($socket, "Events: 
    off\r\n\r\n");</FONT></DIV>
    <DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
    <DIV><FONT face=Arial size=2>&nbsp;&nbsp;return 
    fgets($socket);<BR>&nbsp;}</FONT></DIV>
    <DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
    <DIV><FONT face=Arial size=2>&nbsp;if ( isset($_POST['telefone']) &amp;&amp; 
    inset($_POST['ramal']) ) &nbsp;{<BR>&nbsp;&nbsp;$number = 
    strtolower($_POST['telefone']); // Número a chamar</FONT></DIV>
    <DIV><FONT face=Arial size=2>&nbsp; $ramal =&nbsp;$_POST['telefone']; // 
    Ramal que será chamado ao ser atendida a chamada efetuada.</FONT></DIV>
    <DIV><FONT face=Arial size=2>&nbsp;&nbsp;$errno = 0;<BR>&nbsp;&nbsp;$errstr 
    = 0;</FONT></DIV>
    <DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
    <DIV><FONT face=Arial size=2>&nbsp;&nbsp;$oSocket = fsockopen("localhost", 
    5038, &amp;$errno, &amp;$errstr, 20);<BR>&nbsp;&nbsp;if 
    (!$oSocket)<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;echo "Não foi 
    poss&amp;iacute;vel completar a 
    chamada...";<BR>&nbsp;&nbsp;}<BR>&nbsp;&nbsp;else<BR>&nbsp;&nbsp;{<BR>&nbsp;&nbsp;&nbsp;fgets($oSocket);</FONT></DIV>
    <DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
    <DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp;AMI_login($oSocket, 
    '$usuario, $password) . 
    "&lt;br&gt;";<BR>&nbsp;&nbsp;&nbsp;AMI_originate($oSocket, $number) . 
    "&lt;br&gt;";</FONT></DIV>
    <DIV><FONT face=Arial size=2></FONT>&nbsp;</DIV>
    <DIV><FONT face=Arial size=2>&nbsp;&nbsp;&nbsp;fputs($oSocket, "Action: 
    Logoff\r\n\r\n");<BR>&nbsp;&nbsp;&nbsp;fclose($oSocket);<BR>&nbsp;&nbsp;}<BR>&nbsp;}<BR>}</FONT></DIV>
    <DIV><FONT face=Arial 
size=2>&lt;?php</FONT></DIV></DIV></BLOCKQUOTE></DIV></BLOCKQUOTE></BODY></HTML>