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.
176 lines
4.6 KiB
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 = explode(": ", $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; |
|
|
|
} |
|
*/ |
|
?>
|
|
|