$msg = "não é possível conectar ao servidor, o Agente já está Conectado no Ramal: $ramalCon!";
GeraExcept($msg);
}
/*
* Remove conexoes do usuario corrente.
*/
LimpaConexao($db);
if (VerificaRamalLogado($db, $dacCheck, $agtCheck, $org_id)) {
$msg = "não é possível conectar ao servidor, Ramal: \"$ramal\" já conectado! Dac: \"$dacCheck\" Agente: \"$agtCheck\"";
/* verifica se o ramal é estático nesta fila */
if (VerificaRamalEstatico($db, $ramal, $dac)) {
$msg = "não é possível conectar ao servidor, Ramal: \"$ramal\" estático na(s) fila(s): \"[$ramal]\"!";
GeraExcept($msg);
}
if ($ramalEst) {
$msg = "não é possível conectar ao servidor, Ramal: \"$ramal\" estático na(s) fila(s): \"[$ramalEst]\"!";
/* verificar se já existe a quantidade de agentes permitido nesta empresa */
if (VerificaMaxAgenteLogado($db)) {
$msg = "não é possível conectar o Agente! O número Máximo de \"PAs\" simultaneos já foi atingido!";
GeraExcept($msg);
}
if (VerificaMaxAgenteLogado($db, $org_id)) {
$msg = "não é possível conectar o Agente! O número Máximo de \"PAs\" simultaneos já foi atingido!";
/* verificar se já está logado este ramal em outra fila */
if (VerificaRamalLogado($db, $dacCheck, $agtCheck)) {
$msg = "não é possível conectar ao servidor, Ramal: \"$ramal\" já conectado! Dac: \"$dacCheck\" Agente: \"$agtCheck\"";
GeraExcept($msg);
}
if (VerificaRamalSigame($db, $ramal, $org_id)) {
/* verifica se o ramal siga-me está ativado */
if (VerificaRamalSigame($db, $ramal)) {
$msg = "não é possível conectar ao servidor, Ramal: \"$ramal\" possui siga-me ativado";
GeraExcept($msg);
}
if (VerificaClassObrigatoria($db, $dac, $org_id)) {
/* veririfique se existe classificação obrigatória */
if (VerificaClassObrigatoria($db, $dac)) {
$msg = "Está configurado \"classificação Obrigatória\", mas não há clssificações disponiveis para este Dac!";
GeraExcept($msg);
}
/*
* Remove conexoes do usuario corrente.
*/
LimpaConexao($db);
/*
* Seleciona a descricao do dac escolhido;
*/
@ -1839,7 +1859,7 @@ function LimpaConexao($db)
* Matricula do usuário logado
*/
$matricula = GetMatricula();
@LogAgente("LimpaConexao", "Inicio", true);
LogAgente("LimpaConexao", "Inicio", true);
/*
* Desliga a chamada corrente
@ -1848,11 +1868,11 @@ function LimpaConexao($db)
$query = "select canal, canal_transfer, canal_agente, ramal, upper(modo_atendimento) as modo_atendimento, dac, uniqueid, status from pbx_supervisor_agentes where matricula = '$matricula' and org_id IN ($org_id, 0)";
@ -2518,7 +2538,7 @@ function DisponivelAtendimento($useTran = 1)
if ($dispoAtendimento) {
@GetUrl(AST_ADD_PAUSA);
$newDispo = 0;
} elseif (!$dispoAtendimento && !$status) {
} elseif (!$dispoAtendimento && !$status) {
@GetUrl(AST_REM_PAUSA);
$newDispo = 1;
} else {
@ -2694,11 +2714,12 @@ function VerificaRamalEstatico($db, $num, $dac)
$org_id = $_SESSION['SSEmpresaPadrao'];
//$query = "select b.nome from pbx_queues_membros a, pbx_dacs b where a.id_fila = b.id and b.status = 'A' and a.dispositivo like '%$num'";
$query = "select b.nome from pbx_queues_membros a, pbx_dacs b where a.id_fila = b.id AND a.org_id = b.org_id and a.id_fila = '{$dac}' and b.status = 'A' and substring(a.dispositivo,position('/' in a.dispositivo)+1) = '{$num}' and a.org_id IN ($org_id, 0)";
$query = "select b.nome from pbx_queues_membros a, pbx_dacs b where a.id_fila = b.id AND a.org_id = b.org_id and a.id_fila = '{$dac}' and b.status = 'A' and substring(a.dispositivo,position('/' in a.dispositivo)+1) = '{$num}' and a.org_id = $org_id";
$result = pg_query($db, $query);
/*
* Retorna falso se não existirem ramais como membro estatico de nenhuma fila.
@ -622,14 +623,13 @@ function AgenteON($idUser = null) {
INNER JOIN pbx_usuarios b ON a.matricula = b.matricula
WHERE b.id = '%s' and a.org_id IN (%d, 0)", $idUser, $org_id);
return pg_num_rows(pg_query($query));
} else {
$query = sprintf("SELECT '' FROM pbx_supervisor_agentes WHERE matricula = '%s' AND ramal = '%s' and org_id IN (%d, 0)", GetMatricula(), GetRamalMonitorar(RAMAL_MONITOR_AGENTE), $org_id);