#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 . " ";
fclose($oSocket);
?>
Estamos tentando
fazer a ligação. Aguarde alguns instantes... Ligar novamente
} else {
?>
Número de
telefone a ser discado (0(XX)XXXX-XXXX)!