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.
 
 
 
 
 
 

89 lines
4.3 KiB

#!/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);
}
}
}
?>