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.
89 lines
4.3 KiB
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); |
|
} |
|
} |
|
} |
|
?>
|
|
|