forked from SimplesIP/pabx-app
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.
166 lines
4.5 KiB
166 lines
4.5 KiB
#!/usr/bin/php -q |
|
<?php |
|
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 = explode(": ", $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; |
|
?>
|
|
|