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.
 
 
 
 
 
 

176 lines
4.6 KiB

#!/usr/bin/php -q
<?php
include('bd.php');
ob_implicit_flush(true);
set_time_limit(6);
$in = fopen("php://stdin", "r");
$stdlog = fopen("/var/log/asterisk/conta_senha.log", "w");
// toggle debugging output (more verbose)
$debug = false;
function read() {
global $in, $debug, $stdlog;
$input = str_replace("\n", "", fgets($in, 4096));
if ($debug)
fputs($stdlog, "read: $input\n");
return $input;
}
function errlog($line) {
global $err;
echo "VERBOSE \"$line\"\n";
}
function write($line) {
global $debug, $stdlog;
if ($debug)
fputs($stdlog, "write: $line\n");
echo $line . "\n";
}
// parse agi headers into array
while ($env = read()) {
$s = split(": ", $env);
$agi[str_replace("agi_", "", $s[0])] = trim($s[1]);
if (($env == "") || ($env == "\n")) {
break;
}
}
$contasenha = $argv[1];
$destino = $argv[2];
$query = "select prm_digitos_conta, prm_digitos_senha from pbx_parametros";
$result = pg_query($conexao, $query);
$row = pg_fetch_array($result);
$digitos_conta = $row['prm_digitos_conta'];
$digitos_senha = $row['prm_digitos_senha'];
$totalDigitos = $digitos_conta + $digitos_senha;
$tamSenha = strlen($contasenha);
$conta = substr($contasenha, 0, $digitos_conta);
$senha = substr($contasenha, -$digitos_senha);
write("NOOP digitos_conta = $digitos_conta | digitos_senha = $digitos_senha | conta = $conta | senha = $senha");
read();
if (!$conta || !$senha || ($tamSenha != $totalDigitos)) {
//write("EXEC Playback appsounds/conta-invalida");
write("EXEC Goto saida-pstn,$destino,containvalida");
read();
write("NOOP Parametros digitos_conta e digitos_senha não configurados");
read();
exit;
}
$query = "select pbx_cs_usuarios.id,matricula, senha, local_fixo, local_celular, inter_fixo, inter_celular,
internacional,lig_0300,lig_0303,lig_0500,lig_0800,lig_0900, grava_ligacao, temporizacao * 600000 as temporizacao,
coalesce(codigo,0) as ddd from pbx_cs_usuarios left outer join pbx_cs_usuarios_ddd on pbx_cs_usuarios.id = pbx_cs_usuarios_ddd.id_usuario
left outer join pbx_tab_ddd on pbx_cs_usuarios_ddd.id_ddd = pbx_tab_ddd.idddd where matricula = '$conta' and status = 'A'";
$query_result = pg_query($query);
while ($result = pg_fetch_array($query_result)) {
$id_usuario = $result['id'];
$matricula = $result['matricula'];
$senha_db = $result['senha'];
$fixo_local = $result['local_fixo'];
$movel_local = $result['local_celular'];
$fixo_ddd = $result['inter_fixo'];
$movel_ddd = $result['inter_celular'];
$lig0300 = $result['lig_0300'];
$lig0303 = $result['lig_0303'];
$lig0500 = $result['lig_0500'];
$lig0800 = $result['lig_0800'];
$lig0900 = $result['lig_0900'];
$internacional = $result['internacional'];
$ddd = !$DDD ? $DDD = $result['ddd'] : $DDD .= '-' . $result['ddd'];
$tempo = trim($result['temporizacao']);
$gravar = $result['grava_ligacao'];
}
if ($senha == $senha_db AND $conta == $matricula) {
if ($senha == 1234) {
//write("EXEC Playback appsounds/altere-senha");
write("EXEC Goto saida-pstn,$destino,alterasenha");
read();
exit;
}
write("SET VARIABLE DESTINO $destino");
read();
write("SET VARIABLE CONTA $matricula");
read();
write("SET VARIABLE SENHA $senha_db");
read();
write("SET VARIABLE FIXO-LOCAL $fixo_local");
read();
write("SET VARIABLE MOVEL-LOCAL $movel_local");
read();
write("SET VARIABLE FIXO-DDD $fixo_ddd");
read();
write("SET VARIABLE MOVEL-DDD $movel_ddd");
read();
write("SET VARIABLE INTERNACIONAL $internacional");
read();
if ($tempo) {
write("SET VARIABLE TIMEOUT-CONTAESENHA $tempo");
read();
}
write("SET VARIABLE GRAVAR $gravar");
read();
write("SET VARIABLE DDDS $ddd");
read();
write("SET VARIABLE V0300 $lig0300");
read();
write("SET VARIABLE V0303 $lig0303");
read();
write("SET VARIABLE V0500 $lig0500");
read();
write("SET VARIABLE V0800 $lig0800");
read();
write("SET VARIABLE V0900 $lig0900");
read();
} else {
write("EXEC Goto saida-pstn,$destino,containvalida");
read();
}
// clean up file handlers etc.
fclose($in);
fclose($stdlog);
/*
* Ideia incial do novo conta e senha
switch ($modelo) {
case '[2-5]XXXXXXX':
write("NOOP TESTE FIXO");
read();
break;
case '[6-9]XXXXXXX':
write("NOOP TESTE CELULAR");
read();
if($movel_local == 't'){
write("SET VARIABLE PERMISSAO OK");
read();
}
else {
write("EXEC Goto saida-pstn,$destino,sempermissao");
read();
}
break;
}
*/
?>