@ -13,22 +13,24 @@ try {
RaiseExcept("Script abortado,falha de conexão com o socket!!!\n\n");
}
$query = "select id, matricula,dac,extract(epoch from (now() - logado))::int as logado,ramal from pbx_supervisor_agentes order by id";
$query = "select id, matricula,dac,extract(epoch from (now() - logado))::int as logado,ramal, registro, org_id from pbx_supervisor_agentes order by id";
$result = pg_query($conexao, $query);
while ($row = pg_fetch_array($result, null, PGSQL_ASSOC)) {
$idAgente = $row['id'];
$agente = trim($row['matricula']);
$dac = trim($row['dac']);
$logado = trim($row['logado']);
$ramal = trim($row['ramal']);
$agente = trim($row['matricula'] ?? '');
$dac = trim($row['dac'] ?? '');
$logado = trim($row['logado'] ?? '');
$ramal = trim($row['ramal'] ?? '');
$registro = trim($row['registro'] ?? '');
$org_id = trim($row['org_id'] ?? '');
if ($logado >= $timeout_agente) {
if ($socket) {
logoff_agentes($socket, $agente);
remove_agentes($conexao, $socket, $agente, $dac, $ramal, $idAgente );
remove_agentes($conexao, $socket, $agente, $dac, $registro, $idAgente, $ramal, $org_id );
} else {
remove_agentes($conexao, false, $agente, $dac, $ramal, $idAgente );
remove_agentes($conexao, false, $agente, $dac, $registro, $idAgente, $ramal, $org_id );
}
WriteLog(sprintf("Script: %s Data: %s Parans Socket: %s Remove: Agente: %s Dac: %s Ramal: %s Id: %s Param SCK: %s %s %s %s \n", $argv[0], date("Y-m-d H:m:i"), ($socket ? 'Ativo' : 'Inativo'), $agente, $dac, $ramal, $idAgente, $hostSck, $portaSck, $usuarioSck, $senhaSck), $path);
}
@ -69,26 +71,26 @@ function logoff_agentes($socket, $agente) {
fwrite($socket, "ActionID: $actionid\r\n\r\n");
}
function remove_agentes($conexao, $socket, $agente, $dac, $ramal, $idAgente ) {
function remove_agentes($conexao, $socket, $agente, $dac, $registro, $idAgente, $ramal, $org_id ) {
global $logado, $path, $argv;
$actionid = rand(000000000, 9999999999);
if ($socket === false) {
exec("asterisk -rx \"agent logoff {$agente} soft\"\n");
exec("asterisk -rx \"queue remove member Local/{$ramal }@app-callcenter/n from {$dac}\"\n");
exec("asterisk -rx \"queue remove member Local/{$registro }@app-callcenter/n from {$dac}\"\n");
} else {
fwrite($socket, "Action: queueremove\r\n");
fwrite($socket, "queue: $dac\r\n");
fwrite($socket, "interface: Local/$ramal @app-callcenter/n\r\n");
fwrite($socket, "interface: Local/$registro @app-callcenter/n\r\n");
fwrite($socket, "ActionID: $actionid\r\n\r\n");
}
$query = "delete from pbx_supervisor_agentes where id = '$idAgente'";
$result = pg_query($conexao, $query);
if (!$result) {
RaiseExcept(sprintf("Cmd: [%s] Var:[Conexao: %s Socket: %s Matricula: %s Dac: %s Ramal: %s Err o: %s!!!\n", $query, ($conexao ? 'Sim' : 'Nao'), ($socket ? 'Conectado' : 'Desconectado'), $agente, $dac, $ramal, $err o));
RaiseExcept(sprintf("Cmd: [%s] Var:[Conexao: %s Socket: %s Matricula: %s Dac: %s Ramal: %s Organizaca o: %s!!!\n", $query, ($conexao ? 'Sim' : 'Nao'), ($socket ? 'Conectado' : 'Desconectado'), $agente, $dac, $ramal, $org_id ));
}
$log = sprintf("Script: %s Data: %s Msg: %s \n", $argv[0], date("Y-m-d H:m:i"), "Agente: $agente, Dac: $dac excluido, Tempo: $logado Interface: Local/$ramal @app-callcenter/n.\n\n");
$log = sprintf("Script: %s Data: %s Msg: %s \n", $argv[0], date("Y-m-d H:m:i"), "Agente: $agente, Dac: $dac excluido, Tempo: $logado Interface: Local/$registro @app-callcenter/n.\n\n");
WriteLog($log, $path);
}
?>