[AsteriskBrasil] Interação ASTERISK E PHP

Joao Correa joaobatista em solbase.com.br
Terça Março 4 18:29:16 BRT 2008


Você pode utilizar o manager do asterisk, para fazer esta comunicação, servindo tanto para discar quando para pegar informações.

Mais informações em http://www.voip-info.org/wiki-Asterisk+manager+API

segue um exemplo em PHP abaixo:

<html>
<head>
<title>Conexao manager * Asterisk *</title>
</head>

<?php
echo "Teste de conexao ....\r\n";
echo "<br>";
echo ".............................................................";
echo "<br>";
 $socket = fsockopen("192.168.99.156","5038", $errno, $errstr, $timeout);
 fputs($socket, "Action: Login\r\n");
 fputs($socket, "UserName: solteiro\r\n");
 fputs($socket, "Secret: sozinho\r\n\r\n");

 //fputs($socket, "Action: Command\r\n");
 //fputs($socket, "Command: sip show peers\r\n\r\n");
 $wrets=fgets($socket,128);
 echo $wrets;
 echo "<br>";
echo "...............................................................";
echo "<br>";
echo "Fim teste conexao...\r\n";

// Para discar 
echo "<br>";

$ramint = $_POST["rinterno"];
$foneext = $_POST["fexterno"];
$tipo = $_POST["tipo"];
$cont = $_POST["id"];

echo "Ramal interno:... $ramint <br>";
echo "Fone externo :... $foneext <br>";
echo "Continuidade:...  $cont <br>";

if ($cont == "1")
{
	if ($tipo == "analog")
	{
	fputs($socket, "Action: Originate\r\n" );
	//fputs($socket, "Channel: Sip/$ramint\r\n" );
	fputs($socket, "Channel: Zap/g0/$ramint\r\n" );
	fputs($socket, "Exten: $foneext\r\n" );
	fputs($socket, "Context: redes\r\n" );
	fputs($socket, "Priority: 1\r\n" );
	fputs($socket, "Async: yes\r\n\r\n" );
	$wrets=fgets($socket,128);
	$resp01 = fread($socket, 8192);
	}

	if ($tipo == "sip")
	{
	fputs($socket, "Action: Originate\r\n" );
	fputs($socket, "Channel: Sip/$ramint\r\n" );
	// fputs($socket, "Channel: Zap/g0/$ramint\r\n" );
	fputs($socket, "Exten: $foneext\r\n" );
	fputs($socket, "Context: redes\r\n" );
	fputs($socket, "Priority: 1\r\n" );
	fputs($socket, "Async: yes\r\n\r\n" );
	$wrets=fgets($socket,128);
	$resp01 = fread($socket, 8192);
	}

echo "Discagem efetuada ...: ";
}
?>

<br>
<br>
<form method="post" action="phpdial.php">
Digite o numero do ramal interno: 
<input type="text" name="rinterno" size="10" maxlenght="15">

Digite o numero do telefone: 
<input type="text" name="fexterno" size="20" maxlenght="20">
<input type="submit" value="Discar">
<br>
<br>
Tipo de ramal: <br>
<INPUT TYPE=RADIO NAME="tipo" VALUE="sip">SIP <br>
<INPUT TYPE=RADIO NAME="tipo" VALUE="analog" CHECKED>Analogico
<input type=hidden name=id value="1">
</form>
<hr>
<?php
echo "Log ....................: ";
echo "<br>";
echo "$wrets <br>" ; 
echo $resp01;
echo "<br>";
?>
</html>

---------------------------------------------------------------------------------


More information about the AsteriskBrasil mailing list