endScrp = false;
}
function __destruct() {
$this->LogoffAgente();
}
function LogoffAgente() {
$matricula = GetMatricula();
$ramal = GetRamal();
$login = GetLogin();
$dac = $_SESSION[AGT_DAC_CONECT];
//se tpatend manual remove agente da fila
if ($_SESSION[AGT_TP_ATEND] == 0)
@GetUrl(AST_REM_FILA);
$result = GetUrl(AST_LOGOFF_AGENTE);
if ($result) {
$result = pg_query("begin");
//atualiza dados do supervisor
$query = "delete
from pbx_supervisor_agentes
where matricula = '$matricula'";
$result = pg_query($query);
$result = pg_affected_rows($result);
//registra o login do usuario
if ($result) {
$idLogoff = $_SESSION[AGT_ID_LOGIN];
$query = "update pbx_eventos_agentes
set logoff = now()
where id = $idLogoff";
$result = pg_query($query);
$result = pg_affected_rows($result);
}
}
if ($result) {
pg_query("commit");
$_SESSION[AGT_CONECT] = 0;
$_SESSION[AGT_TP_ATEND] = 0;
$_SESSION[AGT_DAC_CONECT] = 0;
return true;
} else {
pg_query("rollback");
}
}
function VerificaAgenteLogado() {
$matricula = GetMatricula();
$query = "select count(*) from pbx_supervisor_agentes where matricula = '$matricula'";
$result = pg_query($query);
$row = pg_fetch_row($result);
return $row[0];
}
function RemoveAgenteFila() {
GetUrl(AST_REM_FILA);
}
function GetEndScrp() {
return $this->endScrp;
}
private $endScrp;
}
define("SEG", 1000000);
define("CENT_SEG", 10000);
define("TIME_SLEEP", 5);
$monitor = new agenteMonitor();
$seg = SEG * TIME_SLEEP;
print "Monitorando -> ";
flush();
while (true) {
if (AgenteAtendeManual()) {
if ($monitor->VerificaAgenteLogado()) {
$monitor->RemoveAgenteFila();
}
}
$disp .= ".";
print $disp;
flush();
if ($monitor->GetEndScrp())
break;
//tempo de espera
//usleep($seg);
sleep(5);
}
?>