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.
90 lines
4.3 KiB
90 lines
4.3 KiB
2 years ago
|
#!/usr/bin/php -q
|
||
|
<?php
|
||
|
|
||
|
function adiciona_coluna($bdcon) {
|
||
|
$query = "select bloqueio_verificado from pbx_bilhetes limit 1";
|
||
|
if (!pg_query($bdcon, $query)) {
|
||
|
$queryColuna = "alter table pbx_bilhetes add column bloqueio_verificado integer";
|
||
|
pg_query($bdcon, $queryColuna);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
function registra_log($msg) {
|
||
|
$fp = fopen('/var/log/asterisk/bloq_algar.log', 'a');
|
||
|
$now = date('Y-m-d H:i:s', time()-3600);
|
||
|
$sNow = "[{$now}] ";
|
||
|
if ($fp) {
|
||
|
fwrite($fp, $sNow.$msg."\n");
|
||
|
fclose($fp);
|
||
|
}
|
||
|
}
|
||
|
|
||
|
$bdcon = pg_connect("host=algar.simplesip.com.br port=5432 dbname=pbx user=contacte password=ctepgSQL");
|
||
|
if (!$bdcon) {
|
||
|
registra_log("Erro ao conectar ao banco de dados da algar, script encerrado.");
|
||
|
exit(0);
|
||
|
}
|
||
|
$queryEmpresas = "select emp_cnpj, emp_vpn from vds_empresas where emp_status = 0";
|
||
|
if (!($resourceEmpresa = pg_query($queryEmpresas))) {
|
||
|
registra_log("Erro ao buscar empresas no banco de dados da algar, script encerrado.");
|
||
|
exit(0);
|
||
|
}
|
||
|
$empresas = pg_fetch_all($resourceEmpresa);
|
||
|
foreach ($empresas as $empresa) {
|
||
|
$bdcon0 = pg_connect("host={$empresa['emp_vpn']} port=5432 dbname=pbx user=contacte password=ctepgSQL connect_timeout=10");
|
||
|
if (!$bdcon0) {
|
||
|
continue;
|
||
|
}
|
||
|
adiciona_coluna($bdcon0);
|
||
|
$caminhoPadrao = "/var/lib/asterisk/sounds/appsounds/";
|
||
|
$bloqueios = ["ligacaoinvalidaanatel", "horarionaopermitidoanatel", "limitdiarioanatel", "limitemensalanatel"];
|
||
|
|
||
|
$queryChamadas = "select uniqueid, bloqueio_verificado from pbx_bilhetes where lastapp = 'Playback' "
|
||
|
. "and (bloqueio_verificado is null or bloqueio_verificado = -1) "
|
||
|
. "and lastdata in ('{$caminhoPadrao}{$bloqueios[0]}', "
|
||
|
. "'{$caminhoPadrao}{$bloqueios[1]}', "
|
||
|
. "'{$caminhoPadrao}{$bloqueios[2]}', "
|
||
|
. "'{$caminhoPadrao}{$bloqueios[3]}')";
|
||
|
|
||
|
if (!($resChamadas = pg_query($bdcon0, $queryChamadas))) {
|
||
|
registra_log("Falha ao procurar audios na tabela pbx_bilhetes do banco de dados do cliente {$empresa['emp_cnpj']}");
|
||
|
continue;
|
||
|
}
|
||
|
if(!($chamadasCliente = pg_fetch_all($resChamadas))) {
|
||
|
continue;
|
||
|
}
|
||
|
foreach ($chamadasCliente as $chamada) {
|
||
|
$updateChamada = "update vds_chamadas set bloqueio_anatel = 1 where uid = '{$chamada['uniqueid']}'";
|
||
|
$queryChamada = pg_query($bdcon, $updateChamada);
|
||
|
if ($queryChamada) {
|
||
|
$updateCliente = "update pbx_bilhetes set bloqueio_verificado = 1 where uniqueid = '{$chamada['uniqueid']}'";
|
||
|
$queryCliente = pg_query($bdcon0, $updateCliente);
|
||
|
if (!queryCliente) {
|
||
|
$msg = "Erro ao atualizar bloqueio_verificado = 1 para a chamada de uid {$chamada['uniqueid']} na tabela pbx_bilhetes do banco de dados da empresa {$empresa['emp_cnpj']} apesar de ter sido atualizado no banco de dados da algar";
|
||
|
registra_log($msg);
|
||
|
}
|
||
|
} else {
|
||
|
if ($chamada['bloqueio_verificado'] == '-1') {
|
||
|
$updateCliente = "update pbx_bilhetes set bloqueio_verificado = 2 where uniqueid = '{$chamada['uniqueid']}'";
|
||
|
if(!(pg_query($bdcon0, $updateCliente))) {
|
||
|
$msg = "Erro ao atualizar bloqueio_verificado = 2 do audio {$chamada['uniqueid']} na tabela pbx_bilhetes do banco de dados do cliente {$empresa['emp_cnpj']}";
|
||
|
registra_log($msg);
|
||
|
} else {
|
||
|
$msg = "O audio {$chamada['uniqueid']} foi atualizado para bloqueio_verificado = 2 no banco de dados do cliente {$empresa['emp_cnpj']},"
|
||
|
. " ou seja, foi marcado como erro e precisa ser analisado.";
|
||
|
registra_log($msg);
|
||
|
}
|
||
|
} else if ($chamada['bloqueio_verificado'] == NULL) {
|
||
|
$updateCliente = "update pbx_bilhetes set bloqueio_verificado = -1 where uniqueid = '{$chamada['uniqueid']}'";
|
||
|
if (!pg_query($bdcon0, $updateCliente)) {
|
||
|
$msg = "Erro ao atualizar o audio {$chamada['uniqueid']} para bloqueio_verificado = -1 na tabela pbx_bilhetes do banco de dados do cliente {$empresa['emp_cnpj']}";
|
||
|
registra_log($msg);
|
||
|
}
|
||
|
}
|
||
|
$msg = "Erro ao atualizar a chamada de uid {$chamada['uniqueid']} para bloqueio_anatel = 1 da empresa de cnpj {$empresa['emp_cnpj']} no banco de dados da algar.";
|
||
|
registra_log($msg);
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
?>
|