[AsteriskBrasil] Click-to-Call - PHP & Asterisk

Fernando - Talkmais fernando em talkmais.com.br
Quinta Maio 28 16:11:38 BRT 2009


Boa tarde amigos,
 
Como eu havia procurado há um tempo atrás um script php para click-to-call e
não tive sucesso, ontem consegui um bem simples.
 
Segue abaixo código para quem precisar ou quiser estudá-lo.
 
 
==========================================================
==========================================================
<html>
<head>
<title>Clique para Falar - NGN Soluções WebCall</title>
</head>
<body>
<?
#Click-To-Call script NGN-Billing
 

#----------------------------------------------------------------------------
-------------
#edite as variáveis para refletir com o seu sistema
#----------------------------------------------------------------------------
-------------
 
#informe o endereço ip do seu asterisk

$strHost = "127.0.0.1";
 
#especifique o usuario que ira conectar ao CLI (deve estar definido em
/etc/asterisk/manager.conf)
$strUser = "admin";
 
#senha para o usuario acima
$strSecret = "adminpass";
 
#especifique o canal (extension) que vc deseja receber estas ligações
#exemplo: SIP/XXX, IAX2/XXXX, ZAP/XXXX, 
$strChannel = "SIP/".$_POST['txtOrigem'];
 
#informe o contexto que irá processar a ligação para PSTN
$strContext = "web-to-pstn";
 
#especifique a prioridade do contexto acima
$strPriority = "1";
 
#especifique a quantidade de tentativas
$strMaxRetry = "2";
 
#----------------------------------------------------------------------------
---------------
#Não precisa editar mais nada a partir daqui para fazer esse script funfar
#----------------------------------------------------------------------------
---------------
#obtem o número a ser discado
$strExten = $_POST['txtDestino'];
 
#especifica um callerid para a ligação
$strCallerId = "WebCall de <".$_POST['txtOrigem'].">";
 
$length = len($strExten);
 
if ($length == 11 &&  id_number($_POST['txtDestino'])){
$oSocket = fsockopen($strHost, 5038, $errnum, $errdesc) or die("Erro na
conexão com o Servidor!");
fputs($oSocket, "Action: login\r\n");
fputs($oSocket, "Events: off\r\n");
fputs($oSocket, "Username: $strUser\r\n");
fputs($oSocket, "Secret: $strSecret\r\n\r\n");
fputs($oSocket, "Action: originate\r\n");
fputs($oSocket, "Channel: $strChannel\r\n");
fputs($oSocket, "CallerId: $strCallerId\r\n");
fputs($oSocket, "Exten: $strExten\r\n");
fputs($oSocket, "Context: $strContext\r\n");
fputs($oSocket, "Priority: $strPriority\r\n\r\n");
fputs($oSocket, "Action: Logoff\r\n\r\n");
$wrtes = fgets($oSocket, 2048);
echo $wrtes."<br />";
fclose($oSocket);
    ?>
<p>
<table width="300" border="1" bordercolor="#630000" cellpadding="3"
cellspacing="0">
 <tr><td>
 <font size="2" face="verdana,georgia" color="#630000">Estamos tentando
fazer a ligação.<br>Aguarde alguns instantes...<br><a href="<? echo
$_SERVER['PHP_SELF'] ?>">Ligar novamente</a></font>
 </td></tr>
</table>
</p>
<?
}
else
{
?>
<p>
<table width="300" border="1" bordercolor="#630000" cellpadding="3"
cellspacing="0">
 <tr><td>
 <font size="2" face="verdana,arial,georgia" color="#630000">Número de
telefone a ser discado (0(XX)XXXX-XXXX)!</font>
 <form action="<? echo $_SERVER['PHP_SELF'] ?>" method="post">
  Ramal<input type="text" size="20" name="txtOrigem"><br>
  Destino<input type="text" size="20" name="txtDestino"><br>
  <input type="submit" value="Iniciar ligação">
 </form>
 </td></tr>
</table>
</p>
<?
}
?>
</body>
</html>
 
=======================================================================
 
Att,
 
Fernando da Silva Santos
NGN Soluções - www.ngnsolucoes.com.br
MSN/E-Mail: noc em ngnsolucoes.com.br
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://listas.asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20090528/72edc6e2/attachment-0001.htm 
-------------- Próxima Parte ----------
Um anexo não texto foi limpo...
Nome  : não disponível
Tipo  : image/jpeg
Tam   : 10517 bytes
Descr.: não disponível
Url   : http://listas.asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20090528/72edc6e2/attachment-0001.jpeg 


Mais detalhes sobre a lista de discussão AsteriskBrasil