|
|
|
|
<html>
|
|
|
|
|
<head>
|
|
|
|
|
<title>Clique para Falar - NGN Solu<EFBFBD><EFBFBD>es WebCall</title>
|
|
|
|
|
</head>
|
|
|
|
|
<body>
|
|
|
|
|
<?php
|
|
|
|
|
#Click-To-Call script NGN-Billing
|
|
|
|
|
#------------------------------------------------------------------------------------------
|
|
|
|
|
#edite as vari<EFBFBD>veis para refletir com o seu sistema
|
|
|
|
|
#------------------------------------------------------------------------------------------
|
|
|
|
|
#informe o endere<EFBFBD>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<EFBFBD><EFBFBD>es
|
|
|
|
|
#exemplo: SIP/XXX, IAX2/XXXX, ZAP/XXXX,
|
|
|
|
|
$strChannel = "SIP/" . $_POST['txtOrigem'];
|
|
|
|
|
|
|
|
|
|
#informe o contexto que ir<EFBFBD> processar a liga<EFBFBD><EFBFBD>o para PSTN
|
|
|
|
|
$strContext = "web-to-pstn";
|
|
|
|
|
|
|
|
|
|
#especifique a prioridade do contexto acima
|
|
|
|
|
$strPriority = "1";
|
|
|
|
|
|
|
|
|
|
#especifique a quantidade de tentativas
|
|
|
|
|
$strMaxRetry = "2";
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
#--------------------------------------------------------------------------------------------
|
|
|
|
|
#N<EFBFBD>o precisa editar mais nada a partir daqui para fazer esse script funfar
|
|
|
|
|
#--------------------------------------------------------------------------------------------
|
|
|
|
|
#obtem o n<EFBFBD>mero a ser discado
|
|
|
|
|
$strExten = $_POST['txtDestino'];
|
|
|
|
|
|
|
|
|
|
#especifica um callerid para a liga<EFBFBD><EFBFBD>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<EFBFBD>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<EFBFBD><EFBFBD>o.<br>Aguarde alguns instantes...<br><a href="<?php
|
|
|
|
|
echo
|
|
|
|
|
$_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<EFBFBD>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<EFBFBD><EFBFBD>o">
|
|
|
|
|
</form>
|
|
|
|
|
</td></tr>
|
|
|
|
|
</table>
|
|
|
|
|
</p>
|
|
|
|
|
<?php
|
|
|
|
|
}
|
|
|
|
|
?>
|
|
|
|
|
</body>
|
|
|
|
|
</html>
|