|
|
|
|
#!/usr/bin/php -q
|
|
|
|
|
<?php
|
|
|
|
|
/*
|
|
|
|
|
* Backup
|
|
|
|
|
* Autor: Amarildo Pereira
|
|
|
|
|
* Data: 04/09/2014
|
|
|
|
|
* Objetivo: Efetuar discagem de uma lista de numeros previamente
|
|
|
|
|
* anexada a uma campanha.
|
|
|
|
|
*/
|
|
|
|
|
require_once("/var/lib/asterisk/scripts/discador/comum.php");
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Configura campanha passada na linha de comando.
|
|
|
|
|
*/
|
|
|
|
|
RegistraCampanha($argv[2], $argv[1]);
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Se a configura<EFBFBD><EFBFBD>o n<EFBFBD>o foi definida manualmente retorna a configura<EFBFBD><EFBFBD>o padr<EFBFBD>o.
|
|
|
|
|
*/
|
|
|
|
|
if ($conStr === false) {
|
|
|
|
|
$conStr = GetDefStrDb();
|
|
|
|
|
}
|
|
|
|
|
try {
|
|
|
|
|
/*
|
|
|
|
|
* Inicia a conex<EFBFBD>o com banco de dados.
|
|
|
|
|
*/
|
|
|
|
|
AlimentaLog($conStr, "", "String Conex<EFBFBD>o PG:");
|
|
|
|
|
$conn = PgOpen();
|
|
|
|
|
if (!$conn) {
|
|
|
|
|
throw new Exception("N<EFBFBD>o foi poss<EFBFBD>vel conectar ao banco: $conStr");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
/*
|
|
|
|
|
* Conecata o banco de dados mysql
|
|
|
|
|
*/
|
|
|
|
|
AlimentaLog("Host: $hostMy User: $userMy Senha: $senhaMy", "", "String Conex<EFBFBD>o MY:");
|
|
|
|
|
$connMy = MysqlOpen();
|
|
|
|
|
if (!$connMy) {
|
|
|
|
|
throw new Exception("N<EFBFBD>o poss<EFBFBD>vel inicializar estruturas de dados internas!");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
$socket = ConectaAmi($sck_host, $sck_porta, $sck_usuario, $sck_senha, false);
|
|
|
|
|
if (!$socket) {
|
|
|
|
|
throw new Exception("N<EFBFBD>o foi poss<EFBFBD>vel conectar ao Manager!");
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
$saidaMonitor = sprintf('/tmp/discador_cmd_%s_%s.log', IdCampanha(), date("YdmHi"));
|
|
|
|
|
$fileMonitor = fopen($saidaMonitor, 'a');
|
|
|
|
|
|
|
|
|
|
ImportaCampanha(IdCampanha());
|
|
|
|
|
$str = sprintf("/var/lib/asterisk/scripts/discador/monitor_power.php %s %s > /dev/null &", NomeCampanha(), IdCampanha());
|
|
|
|
|
exec($str);
|
|
|
|
|
|
|
|
|
|
$pid = 0;
|
|
|
|
|
if (($pid = ConectaMonitor()) == false) {
|
|
|
|
|
throw new Exception('N<EFBFBD>o foi poss<EFBFBD>vel se conectar ao monitor! Timeout.');
|
|
|
|
|
}
|
|
|
|
|
while (true) {
|
|
|
|
|
ProcessarLista($socket);
|
|
|
|
|
|
|
|
|
|
if (($dados = Encerra()) !== false) {
|
|
|
|
|
$st = $dados['cmp_status'];
|
|
|
|
|
}
|
|
|
|
|
if (!$st || !$dados) {
|
|
|
|
|
EncerraMonitor($pid);
|
|
|
|
|
break;
|
|
|
|
|
}
|
|
|
|
|
usleep(500000);
|
|
|
|
|
}
|
|
|
|
|
} catch (Exception $e) {
|
|
|
|
|
$erro = error_get_last();
|
|
|
|
|
$logerro = sprintf("%s SYS[%s] %s Linha: %s\n", $e->getMessage(), $erro['message'], $dataAtual, $erro['line']);
|
|
|
|
|
AlimentaLog($logerro, "Power", "Erro Geral: ", 0);
|
|
|
|
|
}
|
|
|
|
|
/*
|
|
|
|
|
* Registra comandos e erros executados no sistema
|
|
|
|
|
* de acordo com o nivel de log configurado.
|
|
|
|
|
*/
|
|
|
|
|
LogDiscador();
|
|
|
|
|
exit(0);
|
|
|
|
|
?>
|