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

SkFogo skfogo em gmail.com
Quinta Maio 28 18:04:46 BRT 2009


Parabéns pela iniciativa!!!

SkFogo

2009/5/28 Tiago Athayde <athayde.tiago em gmail.com>

> 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
>>
>
>
> _______________________________________________
> 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
>



-- 


SkFogo
-------------- Próxima Parte ----------
Um anexo em HTML foi limpo...
URL: http://listas.asteriskbrasil.org/pipermail/asteriskbrasil/attachments/20090528/22990447/attachment-0001.htm 


Mais detalhes sobre a lista de discussão AsteriskBrasil