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.
82 lines
2.3 KiB
82 lines
2.3 KiB
#!/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ção não foi definida manualmente retorna a configuração padrão. |
|
*/ |
|
if ($conStr === false) { |
|
$conStr = GetDefStrDb(); |
|
} |
|
try { |
|
/* |
|
* Inicia a conexão com banco de dados. |
|
*/ |
|
AlimentaLog($conStr, "", "String Conexão PG:"); |
|
$conn = PgOpen(); |
|
if (!$conn) { |
|
throw new Exception("Não foi possível conectar ao banco: $conStr"); |
|
} |
|
|
|
/* |
|
* Conecata o banco de dados mysql |
|
*/ |
|
AlimentaLog("Host: $hostMy User: $userMy Senha: $senhaMy", "", "String Conexão MY:"); |
|
$connMy = MysqlOpen(); |
|
if (!$connMy) { |
|
throw new Exception("Não possível inicializar estruturas de dados internas!"); |
|
} |
|
|
|
|
|
$socket = ConectaAmi($sck_host, $sck_porta, $sck_usuario, $sck_senha, false); |
|
if (!$socket) { |
|
throw new Exception("Não foi possí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ão foi possí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); |
|
?>
|