PABX criado para pesquisas
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
 
 
 
 
 
 

167 lines
4.5 KiB

#!/usr/bin/php -q
<?php
exit;
include('bd.php');
include('util/util.php');
include('funcoes/shared.php');
ob_implicit_flush(true);
set_time_limit(6);
error_reporting(0);
$in = fopen("php://stdin", "r");
$stdlog = fopen("/var/log/asterisk/pre-pago", "w");
// Habilita modo debugging (mais verbose)
$debug = true;
// Do function definitions before we start the main loop
function read() {
global $in, $debug, $stdlog;
$input = str_replace("\n", "", fgets($in, 4096));
if ($debug)
fputs($stdlog, "read: $input\n");
return $input;
}
function write($line) {
global $debug, $stdlog;
if ($debug)
fputs($stdlog, "write: $line\n");
echo $line . "\n";
}
// Colocamos headers AGI dentro de um array
while ($env = read()) {
$s = split(": ", $env);
$agi[str_replace("agi_", "", $s[0])] = trim($s[1]);
if (($env == "") || ($env == "\n")) {
break;
}
}
//parametro vindo do dialplan
$origem = $argv[1];
$conta = $argv[2];
$destino = $argv[3];
$tronco = $argv[4];
write("NOOP \"Origem: $origem Conta: $conta Destino: $destino Tronco: $tronco\"");
/*
Retorna -3 se retornar erro.
Retorna -2 se estiver incluido no tarifa 0.
Retorna -1 se nao estiver habilitado, se não existir.
Retorna saldo disponível.
Obs.: Se tarifado por chamada e o saldo for suficiente retornara 99999999.
*/
if ($conta) {
$saldo = GetTempoPrepago($conexao, 1, $conta, $destino, $tronco);
write("EXEC Noop SaldoConta ==> $saldo");
read();
switch ($saldo) {
case -3:
write("EXEC Noop SaldoConta ==> Erro: $saldo");
read();
write("HANGUP");
read();
exit;
break;
case -2:
write("EXEC Noop SaldoConta ==> Tarifa Zero: $saldo");
read();
break;
case -1:
write("EXEC Noop SaldoConta ==> Desativado: $saldo");
read();
break;
case 99999999:
write("EXEC Noop SaldoConta ==> Tarifacao por chamada: $saldo");
read();
break;
case 0:
write("EXEC Noop SaldoConta ==> Saldo Insuficiente: $saldo");
read();
write("EXEC PlayBack appsounds/creditosinsuficiente");
read();
write("HANGUP");
read();
exit;
break;
default:
write("SET VARIABLE __LIMIT_PLAYAUDIO_CALLER yes");
read();
write("SET VARIABLE __LIMIT_PLAYAUDIO_CALLEE no");
read();
write("SET VARIABLE __LIMIT_WARNING_FILE beep");
read();
write("SET VARIABLE __LIMIT_TIMEOUT_FILE auth-thankyou");
read();
write("SET VARIABLE TIMEOUT_PREPAGO $saldo");
read();
break;
}
} else {
$bancoOk = $conexao ? 1 : 0;
write("Iniciando pre-pago por ramal conexao: $bancoOk\n");
$saldo = GetTempoPrepago($conexao, 0, $origem, $destino, $tronco);
write("Pegando o saldo:$saldo \n");
write("Conexao: $conexao Origem: $origem Destino: $destino Tronco: $tronco Saldo: $saldo");
write("EXEC Noop SaldoRamal ==> $saldo");
read();
switch ($saldo) {
case -3:
write("EXEC Noop SaldoRamal ==> Erro: $saldo");
read();
write("HANGUP");
read();
exit;
break;
case -2:
write("EXEC Noop SaldoRamal ==> Tarifa Zero: $saldo");
read();
break;
case -1:
write("EXEC Noop SaldoRamal ==> Desativado: $saldo");
read();
break;
case 99999999:
write("EXEC Noop SaldoRamal ==> Tarifacao por chamada: $saldo");
read();
break;
case 0:
write("EXEC Noop SaldoConta ==> Saldo Insuficiente: $saldo");
read();
write("EXEC PlayBack appsounds/creditosinsuficiente");
read();
write("HANGUP");
read();
exit;
break;
default:
write("SET VARIABLE __LIMIT_PLAYAUDIO_CALLER yes");
read();
write("SET VARIABLE __LIMIT_PLAYAUDIO_CALLEE no");
read();
write("SET VARIABLE __LIMIT_WARNING_FILE beep");
read();
write("SET VARIABLE __LIMIT_TIMEOUT_FILE auth-thankyou");
read();
write("SET VARIABLE TIMEOUT_PREPAGO $saldo");
read();
break;
}
}
fclose($in);
fclose($stdlog);
exit;
?>