[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