Browse Source

Correção do agente, correção no agi de monitorar agentes, inserção na tabela pbx_supervisor_agentes de uma nova coluna para armazenar o registro e monitorar os agentes.

1.9
Matheo Bonucia 2 months ago
parent
commit
1a86cda49b
  1. 3
      agente/agentert.php
  2. 26
      asterisk/var_lib_asterisk/scripts/callcenter/monitora_agentes.php
  3. 2
      contacteFunc.php
  4. 5
      projeto/base/sql/versao-1.9.0.sql

3
agente/agentert.php

@ -1485,6 +1485,7 @@ function ConnectaAgenteRt($db, $dac, $tpAtend, $org_id)
$_SESSION[SS_DAC_CODIGO] = $dac;
$matricula = GetMatricula();
$ramal = GetRamalMonitorar(RAMAL_MONITOR_AGENTE);
$registro = GetRamalWithOrganization(RAMAL_MONITOR_AGENTE);
$login = GetLogin();
$conAst = false;
$_SESSION[SS_AGT_CONTEXTO_RAMAL] = GetContextoRamal($db, $ramal, $org_id);
@ -1548,7 +1549,7 @@ function ConnectaAgenteRt($db, $dac, $tpAtend, $org_id)
* Registra o agente na supervisão.
*/
$query = "update pbx_supervisor_agentes
set ramal = '$ramal', nome = '$login', dac = '$dacDesc', modo_atendimento = '$moduAtendDesc', duracao = now(), chamada_classificado = '2'
set ramal = '$ramal', nome = '$login', dac = '$dacDesc', modo_atendimento = '$moduAtendDesc', duracao = now(), chamada_classificado = '2', registro = '$registro'
where matricula = '$matricula' and org_id = $org_id";
$result = pg_query($db, $query);

26
asterisk/var_lib_asterisk/scripts/callcenter/monitora_agentes.php

@ -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 Erro: %s!!!\n", $query, ($conexao ? 'Sim' : 'Nao'), ($socket ? 'Conectado' : 'Desconectado'), $agente, $dac, $ramal, $erro));
RaiseExcept(sprintf("Cmd: [%s] Var:[Conexao: %s Socket: %s Matricula: %s Dac: %s Ramal: %s Organizacao: %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);
}
?>

2
contacteFunc.php

@ -565,7 +565,7 @@ function GetUrlAterisk($acao, $dacLogoff = '', $matLogoff = '', $urlInfo = '', $
$ramalIntercalar = GetRamalWithOrganization(RAMAL_MONITOR_SUPERVISOR);
$canalIntercalar = GetRamalWithOrganization(CANAL_MONITOR_SUPERVISOR);
$rmalDestinoIntercalar = GetDestinoIntercalar();
$channelAgente = ($_SESSION[SS_MODO_ATENDIMENTO_COD] == ATENDIMENTO_MANUAL) ? GetRamalWithOrganization(CANAL_MONITOR_AGENTE) : ("Local/$ramal@app-callcenter/n");
$channelAgente = ($_SESSION[SS_MODO_ATENDIMENTO_COD] == ATENDIMENTO_MANUAL) ? GetChannel() : ("Local/$ramal@app-callcenter/n");
$channelTransfConsulta = GetChannelTrConsulta();
$contextoRamal = __GetContextoRamal();
$channelAgenteAborta = GetChannelAgente();

5
projeto/base/sql/versao-1.9.0.sql

@ -226,7 +226,7 @@ update pbx_usuarios set check_vl = md5(email);
create unique index "idxPbxGrupoNome" on pbx_grupo(gp_nome, org_id);
ALTER TABLE pbx_sip_ramais
ADD COLUMN registro varchar(100);
ADD COLUMN registro varchar(105);
ALTER TABLE pbx_queues_grupos
ADD COLUMN numero_asterisk varchar(25);
@ -336,6 +336,7 @@ Alter table pbx_horarios_itens
UPDATE pbx_grupo SET org_id = 1 WHERE gp_id IN (28, 29, 30);
Alter table pbx_callback
ADD COLUMN ramal_saida_asterisk varchar(40);
ALTER TABLE pbx_supervisor_agentes ADD COLUMN registro varchar(105);
Loading…
Cancel
Save