Click to Call
Autor: Danylo Fernandes
Visitado 1055,
Seguidores 2,
Compartilhado 0
Ola pessoal, estou a procura de uma solução para um "click to call",
tenho um servisor asterisk de telefonia voip, e sei que é possivel adicionar ou um widget ou html puro mesmo para ter essa opção para o visitante da minha pagina , inserir o numero dele e encaminhar um ligação para ele diretamente para mim, andei olhando na web e testando alguns html php porem ate agora não obtive sucesso, e pelo que vi muitos tem essa dificuldade, sera que alguem tem uma ideia ou a solução para compartilhar conosco..
Publicado em
Bom dia Danylo,
Me envie um código para eu fazer um teste, ai lhe posto se tiver sucesso.
att,
Uilian
Autor
então eu tenho esse html, configurei com meu servidor mas não tive sucesso
quem sabe alguem da uma luz, segue o html:
<html>
<head>
<title>Clique para Falar</title>
</head>
<body>
<?
#Click-To-Call
#----------------------------------------------------------------------------
-------------
#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<br />$_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>
este código é PHP?
Autor
positivo PHP
Ok, o arquivo que você colocou o HTML, está em formato PHP, e as tags de abertura do seu script está assim <? código ?>, tente usar assim <?php código?> pode ser este o problema.
Danylo,
O código deverá ficar assim, somente este trecho no widget do HTML
<?php
#Click-To-Call
#----------------------------------------------------------------------------
-------------
#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="<?php echo<br />$_SERVER['PHP_SELF'] ?>">Ligar novamente</a></font>
</td></tr>
</table>
</p>
<?php
}
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="<?php 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>
<?
}
?>
Autor
pior que não brown
volta o mesmo erro e ainda não funciona os botões
não sei se tem a vê mas estou executando ele no Note pade 6.8 para teste em script html PHP o pior que sei que funciona pois ja vi gente trabalhando com os sockets em php para realizar tarefas pela AMI simples e funcional, e via web
porem é zero o material funcional que se acha na web e olha que já testei quase tudo,
seria muito bom compartilhar essa solução continuarei tentando,
ate o pessoal do website poderia bolar um widget ja pra rpdar com asterisk/elastix tendo em vista que algo muito funcional de codigo aberto que é interessante para qualquer empresa e de qualquer tamanho, acrescentaria muito ao programa.
Autor
so para constar segue os prints dos testes
Autor
alias não sei nem se isso é possivel mais a principip uma ideia
uma especie de softphone na web, onde eu coloco essa wiget no meu site,
sendo que nas configurações dela eu configuro um ramal ou tronco voip como uma softphone faz, fica visivel para meu cliente com os dizeres insira o seu numero para que possamos ligar para vc, ai widget liga para o solicitante e assim que ele atender ja transfere pro destino raml ou ura que eu configurar, pelo menos isso seria mais logico na minha cabeça mas sei la...
Hi Danylo.
Unfortunately the Staff cannot offer support on why a certain custom code isn't working, but only the way it can be implemented, meaning using the HTML Object.
If you're having issues with PHP code please check the usual parameters first and then wait for code experts to help you out, as for example, are you running a local web server or does your hosting provide PHP.
You might even open a public topic in english to try and recieve proper help from the community.
Hope I've been helpful
***** Google Translation:
OiDanylo.
Infelizmente, aequipe nãopode oferecerapoiosobre o porquê deum determinadocódigo personalizadonão está funcionando,mas apenasa forma comoele pode ser implementado, ou seja,usando oobjetoHTML.
Se você está tendoproblemas comcódigoPHPpor favor, verifiqueos parâmetroshabituaisprimeiroe depois esperar porespecialistasde códigopara ajudá-lo,como, por exemplo, você estáexecutando um servidorweb localouque a suahospedagemfornecemPHP.
Você pode até mesmoabrir um tópicopúblicoemInglêspara tentare receberajuda adequadada comunidade.
Espero que eu tenhasido útil
Danylo, entendi sua colocação, irei pegar o seu código e fazer uns teste para saber se funciona, se puder liberar um voip teste sem crédito somente para fazer a conexão posso tentar fazer algo para ver se lhe ajuda.
abraços,
Uilian
Autor
opa uilian desculpa a demora mas fim de ano é correria
qaunto a conta voip sem problemas
segue os dados
URL = massi.ddns.com.br
user = 8530
senha = maxbom2015
nem me fale, bom danylo,
Ire fazer todos os teste e se tiver algum exito, irei lhe mandar um link para analisar.
Feliz ano Novo, e até, mais.
Uilian
Autor
Obrigado pela força Uilian,
Feliz ano novo Ai tb
Abraços