Browse Source

correção supervisor

dev
Lucas Awade 10 months ago
parent
commit
5e8795862a
  1. 7
      asterisk/var_lib_asterisk/scripts/callcenter/atualizar-dacs.php
  2. 25
      include/util/funcoesSsupervisor.php
  3. 10
      supervisor.php

7
asterisk/var_lib_asterisk/scripts/callcenter/atualizar-dacs.php

@ -42,12 +42,13 @@ fclose($socket);
foreach ($colas as $key => $cola) { foreach ($colas as $key => $cola) {
$info = GetNomeOrganizacao($key); $info = GetNomeOrganizacao($key);
$query = sprintf("SELECT dac FROM pbx_supervisor_dacs WHERE dac = %s", QuotedStr($info['nome']));
$result = pg_query($dbcon, $query);
$exists = pg_num_rows($result);
$nome = $info['nome']; $nome = $info['nome'];
$org_id = $info['org_id']; $org_id = $info['org_id'];
$query = sprintf("SELECT dac FROM pbx_supervisor_dacs WHERE dac = %s", QuotedStr($nome));
$result = pg_query($dbcon, $query);
$exists = pg_num_rows($result);
if ($exists) { if ($exists) {
$query = "UPDATE pbx_supervisor_dacs set atendidas = %s, abandonadas = %s, espera = %s, tempo_espera = %s, tempo_nivel_servico = %s, percentual_nivel_servico = %s WHERE dac = %s"; $query = "UPDATE pbx_supervisor_dacs set atendidas = %s, abandonadas = %s, espera = %s, tempo_espera = %s, tempo_nivel_servico = %s, percentual_nivel_servico = %s WHERE dac = %s";
$query = sprintf($query, QuotedStr($cola['Completed']), QuotedStr($cola['Abandoned']), QuotedStr($cola['Calls']), QuotedStr(($cola['Calls'] ? $cola['Holdtime'] : 0)), QuotedStr($cola['ServiceLevel']), QuotedStr($cola['ServicelevelPerf']), QuotedStr($nome)); $query = sprintf($query, QuotedStr($cola['Completed']), QuotedStr($cola['Abandoned']), QuotedStr($cola['Calls']), QuotedStr(($cola['Calls'] ? $cola['Holdtime'] : 0)), QuotedStr($cola['ServiceLevel']), QuotedStr($cola['ServicelevelPerf']), QuotedStr($nome));

25
include/util/funcoesSsupervisor.php

@ -83,7 +83,8 @@ define("TEMPO_DELAY_AGENTE", 3);
*/ */
$patLog = "/var/log/asterisk/supervisor.log"; $patLog = "/var/log/asterisk/supervisor.log";
function sCreateMemory($fileKey, $paramMalloc, $mode = SHM_ACESS_MODE_C, $perms = SHM_ACESS_PERMISSION) { function sCreateMemory($fileKey, $paramMalloc, $mode = SHM_ACESS_MODE_C, $perms = SHM_ACESS_PERMISSION)
{
$readOnly = $mode == SHM_ACESS_MODE_R; $readOnly = $mode == SHM_ACESS_MODE_R;
/* /*
@ -121,14 +122,16 @@ function sCreateMemory($fileKey, $paramMalloc, $mode = SHM_ACESS_MODE_C, $perms
return $shmKey; return $shmKey;
} }
function Malloc($param) { function Malloc($param)
{
/* /*
* Calculates necessary memory for 100 simultaneous processes. * Calculates necessary memory for 100 simultaneous processes.
*/ */
return !count($param) ? 0 : ( $param[0] + ( $param[1] * $param[2] ) ); return !count($param) ? 0 : ($param[0] + ($param[1] * $param[2]));
} }
function GetInfoControle() { function GetInfoControle()
{
try { try {
/* /*
* Verifica se o server esta trabalhando. * Verifica se o server esta trabalhando.
@ -156,7 +159,8 @@ function GetInfoControle() {
} }
} }
function RetornaDadosDac($paramControle, $dacUser = array()) { function RetornaDadosDac($paramControle, $dacUser = array())
{
try { try {
/* /*
* Verifica se o server esta trabalhando. * Verifica se o server esta trabalhando.
@ -174,13 +178,14 @@ function RetornaDadosDac($paramControle, $dacUser = array()) {
$dadosDac = ShmReadVar($shmKey, 0, $sizeControle); $dadosDac = ShmReadVar($shmKey, 0, $sizeControle);
if (is_array($dadosDac)) { if (is_array($dadosDac)) {
if (count($dacUser)) {
if (Count($dacUser)) {
$arDacs = array(); $arDacs = array();
foreach ($dacUser as $dac) { foreach ($dacUser as $dac) {
$arDacs[$dac] = $dadosDac[$dac]; $arDacs[$dac] = $dadosDac[$dac];
} }
$dadosDac = $arDacs; $dadosDac = $arDacs;
} else {
$dadosDac = [];
} }
return $dadosDac; return $dadosDac;
} }
@ -191,7 +196,8 @@ function RetornaDadosDac($paramControle, $dacUser = array()) {
} }
} }
function RetornaDadosAgt($paramControle) { function RetornaDadosAgt($paramControle)
{
try { try {
/* /*
* Verifica se o server esta trabalhando. * Verifica se o server esta trabalhando.
@ -218,7 +224,8 @@ function RetornaDadosAgt($paramControle) {
} }
} }
function LimpaSessaoAgente($shmkey, $pos) { function LimpaSessaoAgente($shmkey, $pos)
{
$offSet = $pos * TAM_SEGMENTO_SESSAO_CONTROLE; $offSet = $pos * TAM_SEGMENTO_SESSAO_CONTROLE;
$data = str_repeat(' ', TAM_SEGMENTO_SESSAO_CONTROLE); $data = str_repeat(' ', TAM_SEGMENTO_SESSAO_CONTROLE);
ShmWrite($shmkey, $data, $offSet); ShmWrite($shmkey, $data, $offSet);

10
supervisor.php

@ -321,7 +321,7 @@ function GetDadosAgt($dac)
$dacAll = strtoupper($dac) == "TODOS"; $dacAll = strtoupper($dac) == "TODOS";
$arControle = GetInfoControle(); $arControle = GetInfoControle();
// print_r($arControle); exit;
/* /*
* Verifica o tempo de atuzlização do servidor, * Verifica o tempo de atuzlização do servidor,
* se for inferior a 10s usa o servidor do su- * se for inferior a 10s usa o servidor do su-
@ -459,11 +459,15 @@ function GetQueryDac()
function GetDacsAcesso($idUser, $array = false) function GetDacsAcesso($idUser, $array = false)
{ {
global $dbcon; global $dbcon;
$query = "SELECT DISTINCT b.nome FROM pbx_queues_grupos b $org_id = GetOrganizacao();
$query = "SELECT DISTINCT SUBSTRING(b.nome, 1, position('@' IN b.nome) - 1) AS nome
FROM pbx_queues_grupos b
INNER JOIN pbx_fila_grupos c ON c.id = b.id INNER JOIN pbx_fila_grupos c ON c.id = b.id
INNER JOIN pbx_grupo_usuario d ON d.gp_id = c.gp_id INNER JOIN pbx_grupo_usuario d ON d.gp_id = c.gp_id
AND d.user_id = %s and b.status = 'A' "; AND d.user_id = %s and b.status = 'A' ";
$query = sprintf($query, IsAdmin() ? 'd.user_id' : QuotedStr($idUser)); $query = sprintf($query, IsAdmin() ? 'd.user_id' : QuotedStr($idUser));
$query .= " AND b.org_id = {$org_id}";
$result = pg_query($dbcon, $query); $result = pg_query($dbcon, $query);
$linha = $array ? array() : ''; $linha = $array ? array() : '';

Loading…
Cancel
Save