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

Tiago Athayde athayde.tiago em gmail.com
Quinta Maio 28 17:50:19 BRT 2009


Ola Fernando, obrigado por compartilhar o script aqui
eu tambem tenho trabalhado com os sockets em php para realizar tarefas pela
AMI

simples e funcional, e via web ;)

saudacoes

Tiago Athayde
www.othos.com.br

2009/5/28 Fernando - Talkmais <fernando em talkmais.com.br>

>    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
>
> _______________________________________________
> Openmoko Freerunner, primeiro telefone open source, disponível no Brasil
> rodando o Android da Google.
> http://www.neodroid.com
>
> Compre uma camiseta da AsteriskBrasil.org!
> http://www.voipmania.com.br
>
> Acesse o canal IRC de discussão sobre Asterisk em Português Brasileiro na
> rede Freenode.net: #asterisk-br
> _______________________________________________
> Lista de discussões AsteriskBrasil.org
> AsteriskBrasil em listas.asteriskbrasil.org
> http://listas.asteriskbrasil.org/mailman/listinfo/asteriskbrasil
>
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://listas.asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20090528/b6a51642/attachment.htm 


Mais detalhes sobre a lista de discussão AsteriskBrasil