lucascardo12
3 years ago
6 changed files with 233 additions and 271 deletions
@ -1,211 +0,0 @@ |
|||||||
#!/usr/bin/php -q |
|
||||||
<?php |
|
||||||
|
|
||||||
require __DIR__ . '/../../vendor/autoload.php'; |
|
||||||
require __DIR__ . '/../../includes/config.php'; |
|
||||||
|
|
||||||
error_reporting(E_ERROR); |
|
||||||
ini_set('display_errors', 0); |
|
||||||
|
|
||||||
use app\Controllers\AgentController; |
|
||||||
use app\Controllers\BilheteController; |
|
||||||
use app\Controllers\MessageController; |
|
||||||
use app\Controllers\ClassificacaoController; |
|
||||||
use app\Controllers\SupervisorQueueController; |
|
||||||
use app\Core\Connect; |
|
||||||
use app\Core\CoreMedia; |
|
||||||
use app\Providers\Positus; |
|
||||||
use app\Core\Media; |
|
||||||
use app\Core\WhatsApp; |
|
||||||
use app\Models\Message; |
|
||||||
use app\Models\NotificaMedia; |
|
||||||
use app\Providers\ApiTelegram; |
|
||||||
|
|
||||||
$agente = new AgentController(); |
|
||||||
$bilhete = new BilheteController(); |
|
||||||
$message = new MessageController(); |
|
||||||
$media = new CoreMedia(); |
|
||||||
$media2 = new Media(); |
|
||||||
$notificaMedia = new NotificaMedia(); |
|
||||||
$mensages = new Message(); |
|
||||||
$classificacao = new ClassificacaoController(); |
|
||||||
$supervisor = new SupervisorQueueController(); |
|
||||||
|
|
||||||
/* |
|
||||||
* Para rodar como um processo normal é preciso passar "N" como primeiro parametro. |
|
||||||
*/ |
|
||||||
$notDaemon = isset($argv[1]) && (strtoupper($argv[1]) === 'N'); |
|
||||||
|
|
||||||
/* |
|
||||||
* Inicializa o daemom quando N não for informado. |
|
||||||
*/ |
|
||||||
GetDaemon($notDaemon); |
|
||||||
|
|
||||||
declare(ticks=1); |
|
||||||
$statusSignal = 0; |
|
||||||
pcntl_signal(SIGTERM, "sig_handler"); |
|
||||||
pcntl_signal(SIGHUP, "sig_handler"); |
|
||||||
pcntl_signal(SIGUSR1, "sig_handler"); |
|
||||||
pcntl_signal(SIGINT, "sig_handler"); |
|
||||||
|
|
||||||
$timeout_agent_alert = (CONF_WHATSAPP_TIMEOUT_AGENT_AVISO / 60); |
|
||||||
$timeout_agent_desconexao = (CONF_WHATSAPP_TIMEOUT_AGENT_DESCONEXAO / 60); |
|
||||||
$timeout_agent_classificacao = (CONF_WHATSAPP_TIMEOUT_AGENT_CLASSIFICACAO / 60); |
|
||||||
$mensagem = [ |
|
||||||
"ALERTA_INATIVIDADE" => "Você será desconectado em " . ($timeout_agent_desconexao - $timeout_agent_alert) . " minutos, para permanecer em atendimento clique em '/presente'", |
|
||||||
"ALERTA_DESCONECTADO" => "Você foi desconectado por inatividade!", |
|
||||||
"ALERTA_CLIENTE" => "Olá, como podemos lhe ajudar!", |
|
||||||
"TIMEOUT_CLIENT_INATIVIDADE" => "O tempo da conversa foi expirado, por favor volte novamente a fila para um novo atendimento!", |
|
||||||
"TALK_FINISHED" => "O atendimento foi finalizado!", |
|
||||||
"TALK_ALERT_FINISH" => "Por favor, volte a comunicação com nosso atendimento em 1 minuto ou atendimento será encerrado!" |
|
||||||
]; |
|
||||||
|
|
||||||
while (true) { |
|
||||||
try { |
|
||||||
$agentesLista = $agente->inactiveAgents(); |
|
||||||
foreach ($agentesLista as $item) { |
|
||||||
$positus = retornaApiMedia($item['SALA1']); |
|
||||||
$freetime = $item['FREETIME'] / 60; |
|
||||||
|
|
||||||
if (($freetime >= $timeout_agent_alert) && ($freetime < $timeout_agent_desconexao) && !$item['SALA2'] && $item['STATUS'] == CONF_AGENT_STATUS_LIVRE) { |
|
||||||
$agente->timeFinishAgente($item['MATRICULA'], $item['RAMAL'], ($timeout_agent_desconexao - $timeout_agent_alert)); |
|
||||||
$positus->enviarMsgIterativaBotao($item['RAMAL'], $mensagem['ALERTA_INATIVIDADE'], [ |
|
||||||
[ |
|
||||||
"type" => "reply", |
|
||||||
"reply" => [ |
|
||||||
"id" => "unique-postback-id-1", |
|
||||||
"title" => utf8_encode("/presente") |
|
||||||
] |
|
||||||
] |
|
||||||
]); |
|
||||||
} else if ($freetime >= $timeout_agent_desconexao && $item['STATUS'] == CONF_AGENT_STATUS_LIVRE) { |
|
||||||
$agente->logoff($item['RAMAL']); |
|
||||||
$positus->enviarMsg($item['RAMAL'], utf8_encode($mensagem['ALERTA_DESCONECTADO'])); |
|
||||||
} else { |
|
||||||
$agente->refreshAgent($item['RAMAL'], $item['SALA2']); |
|
||||||
} |
|
||||||
|
|
||||||
if ($item['STATUS'] == CONF_AGENT_STATUS_LIVRE) { |
|
||||||
$chamadaSemClassificacao = $classificacao->agentClassificacaoPending($item['MATRICULA'], $item['FILA']); |
|
||||||
if ($chamadaSemClassificacao) { //BLOQUEAR ATENDIMENTO SEM CLASSIFICACAO |
|
||||||
if ($item['FREETIME'] % $timeout_agent_classificacao == 0) { |
|
||||||
$classificacaoList = $classificacao->agentClassificacaoList($item['FILA']); |
|
||||||
$retorno = $notificaMedia->verificaNotifica( |
|
||||||
$chamadaSemClassificacao, |
|
||||||
$item['RAMAL'], |
|
||||||
utf8_encode(CONF_NAME_REPONSE . " : " . $classificacaoList) |
|
||||||
); |
|
||||||
if ($retorno->quant == 0) { |
|
||||||
$notificaMedia->addNotifica( |
|
||||||
$chamadaSemClassificacao, |
|
||||||
$item['RAMAL'], |
|
||||||
utf8_encode(CONF_NAME_REPONSE . " : " . $classificacaoList) |
|
||||||
); |
|
||||||
$positus->enviarMsg( |
|
||||||
$item['RAMAL'], |
|
||||||
utf8_encode(CONF_NAME_REPONSE . " : " . $classificacaoList) |
|
||||||
); |
|
||||||
} |
|
||||||
} |
|
||||||
continue; |
|
||||||
} |
|
||||||
|
|
||||||
$atendimento = $bilhete->bilheteForaHorario(CONF_EVENT_WHATSAPP_ESPERA, $item['FILA'], null, $item['SALA1']); |
|
||||||
if ($atendimento) { |
|
||||||
/** |
|
||||||
* VALIDA O ATENDIMENTO |
|
||||||
*/ |
|
||||||
$response = $media->validaAtendimento($positus, $atendimento[0]->fila, null, $atendimento[0]->src, $item['SALA1']); |
|
||||||
$bilhete->atenderBilheteForaHorario($atendimento[0]->uniqueid, $atendimento[0]->src, $atendimento[0]->fila, $item['MATRICULA'], $response['DATA']['uniqueid']); |
|
||||||
$atendimento = $bilhete->bilheteForaHorario(CONF_EVENT_WHATSAPP_ESPERA, $item['FILA'], null, $item['SALA1']); |
|
||||||
foreach ($atendimento as $cliente) { |
|
||||||
$mensagemFila = 'Você está na posição ' . $media2->getClientQueueData($cliente->src, $atendimento)['QUEUE_POSITION'] . '. Aguarde ser atendido!'; |
|
||||||
$positus->enviarMsg($cliente->src, utf8_encode($mensagemFila)); |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
if ($item['STATUS'] == CONF_AGENT_STATUS_OCUPADO) { |
|
||||||
if ($message->timeoutTalk($item['UNIQUEID'], $item['RAMAL']) == 'FINISH' && $agente->closeService($item['ORIGEM_DESTINO'], CONF_EVENT_WHATSAPP_TIMEOUT_CLIENTE, $item['SALA1'])) { |
|
||||||
$positus->enviarMsg($item['ORIGEM_DESTINO'], utf8_encode($mensagem['TIMEOUT_CLIENT_INATIVIDADE'])); |
|
||||||
$positus->enviarMsg($item['ORIGEM_DESTINO'], utf8_encode($mensagem['TALK_FINISHED'])); |
|
||||||
$positus->enviarMsg($item['RAMAL'], utf8_encode($mensagem['TALK_FINISHED'])); |
|
||||||
} |
|
||||||
if ($message->timeoutTalk($item['UNIQUEID'], $item['RAMAL']) == 'ALERT') { |
|
||||||
$msg = $mensages->findLastMessage($item['UNIQUEID']); |
|
||||||
$retorno = $notificaMedia->verificaNotifica( |
|
||||||
$item['UNIQUEID'], |
|
||||||
$item['ORIGEM_DESTINO'], |
|
||||||
utf8_encode($mensagem['TALK_ALERT_FINISH']) . $msg->id |
|
||||||
); |
|
||||||
if ($retorno->quant == 0) { |
|
||||||
$notificaMedia->addNotifica( |
|
||||||
$item['UNIQUEID'], |
|
||||||
$item['ORIGEM_DESTINO'], |
|
||||||
utf8_encode($mensagem['TALK_ALERT_FINISH']) . $msg->id |
|
||||||
); |
|
||||||
$positus->enviarMsg( |
|
||||||
$item['ORIGEM_DESTINO'], |
|
||||||
utf8_encode($mensagem['TALK_ALERT_FINISH']) |
|
||||||
); |
|
||||||
} |
|
||||||
} |
|
||||||
} |
|
||||||
$supervisor->calcTimeAwait(); |
|
||||||
} |
|
||||||
|
|
||||||
sleep(3); |
|
||||||
ignore_user_abort(true); |
|
||||||
|
|
||||||
/* |
|
||||||
* Verifica se o processo deve ser encerrado |
|
||||||
*/ |
|
||||||
if (sig_status()) { |
|
||||||
break; |
|
||||||
} |
|
||||||
} catch (Exception $ex) { |
|
||||||
sleep(3); |
|
||||||
Connect::setInstance(null); |
|
||||||
logger('testeOff')->info($th->getMessage(), debug_backtrace()); |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
function retornaApiMedia($media = '') |
|
||||||
{ |
|
||||||
switch ($media) { |
|
||||||
case CONF_TELEGRAM_CHANNEL: |
|
||||||
return new ApiTelegram(); |
|
||||||
case CONF_WHATSAPP_CHANNEL: |
|
||||||
return new Positus();; |
|
||||||
default: |
|
||||||
break; |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
function GetDaemon($notDaemon) |
|
||||||
{ |
|
||||||
/* |
|
||||||
* Se o script não for chamado com daemon sai sem executar nada. |
|
||||||
*/ |
|
||||||
if ($notDaemon) { |
|
||||||
return 0; |
|
||||||
} |
|
||||||
|
|
||||||
$pid = pcntl_fork(); |
|
||||||
if ($pid) { |
|
||||||
exit(0); //success |
|
||||||
} |
|
||||||
} |
|
||||||
|
|
||||||
function sig_handler($signo) |
|
||||||
{ |
|
||||||
global $statusSignal; |
|
||||||
$statusSignal = 1; |
|
||||||
} |
|
||||||
|
|
||||||
function sig_status() |
|
||||||
{ |
|
||||||
global $statusSignal; |
|
||||||
pcntl_signal_dispatch(); |
|
||||||
return $statusSignal; |
|
||||||
} |
|
@ -1,29 +0,0 @@ |
|||||||
#!/usr/bin/php -q |
|
||||||
<?php |
|
||||||
|
|
||||||
require __DIR__ . '/../../vendor/autoload.php'; |
|
||||||
require __DIR__ . '/../../includes/config.php'; |
|
||||||
|
|
||||||
error_reporting(E_ERROR); |
|
||||||
ini_set('display_errors', 0); |
|
||||||
|
|
||||||
use app\Controllers\AgentController; |
|
||||||
use app\Controllers\BilheteController; |
|
||||||
use app\Controllers\MessageController; |
|
||||||
use app\Controllers\ClassificacaoController; |
|
||||||
use app\Controllers\SupervisorQueueController; |
|
||||||
use app\Providers\Positus; |
|
||||||
use app\Core\Media; |
|
||||||
|
|
||||||
|
|
||||||
$agente = new AgentController(); |
|
||||||
$bilhete = new BilheteController(); |
|
||||||
$message = new MessageController(); |
|
||||||
$positus = new Positus(); |
|
||||||
$media = new Media(); |
|
||||||
$classificacao = new ClassificacaoController(); |
|
||||||
$supervisor = new SupervisorQueueController(); |
|
||||||
|
|
||||||
$info = $agente->findRamal('556581282842'); |
|
||||||
|
|
||||||
print_r($info); |
|
@ -1,8 +0,0 @@ |
|||||||
<?php |
|
||||||
$google_url = 'https://translate.google.com.br/translate_tts?ie=UTF-8&q=%se&tl=pt-BR&total=1&idx=0&textlen=5&tk=489936&client=t&prev=input&ttsspeed=0.50'; |
|
||||||
|
|
||||||
$text = urlencode('Ola tamba'); |
|
||||||
|
|
||||||
$url = sprintf($google_url, $text); |
|
||||||
|
|
||||||
copy($url, 'meu_arquivo.mp3'); |
|
@ -0,0 +1,196 @@ |
|||||||
|
<?php |
||||||
|
|
||||||
|
namespace service; |
||||||
|
|
||||||
|
error_reporting(E_ERROR); |
||||||
|
ini_set('display_errors', 0); |
||||||
|
|
||||||
|
use app\Controllers\AgentController; |
||||||
|
use app\Controllers\BilheteController; |
||||||
|
use app\Controllers\MessageController; |
||||||
|
use app\Controllers\ClassificacaoController; |
||||||
|
use app\Controllers\SupervisorQueueController; |
||||||
|
use app\Core\Connect; |
||||||
|
use app\Core\CoreMedia; |
||||||
|
use app\Providers\Positus; |
||||||
|
use app\Core\Media; |
||||||
|
use app\Models\Message; |
||||||
|
use app\Models\NotificaMedia; |
||||||
|
use app\Providers\ApiTelegram; |
||||||
|
use Exception; |
||||||
|
use Ratchet\ConnectionInterface; |
||||||
|
|
||||||
|
class MonitoraAgente |
||||||
|
{ |
||||||
|
public $agente; |
||||||
|
public $bilhete; |
||||||
|
public MessageController $message; |
||||||
|
public $media; |
||||||
|
public $media2; |
||||||
|
public $notificaMedia; |
||||||
|
public $mensages; |
||||||
|
public $classificacao; |
||||||
|
public $supervisor; |
||||||
|
public $timeout_agent_alert; |
||||||
|
public $timeout_agent_desconexao; |
||||||
|
public $timeout_agent_classificacao; |
||||||
|
public $mensagem; |
||||||
|
|
||||||
|
function __construct() |
||||||
|
{ |
||||||
|
$this->agente = new AgentController(); |
||||||
|
$this->bilhete = new BilheteController(); |
||||||
|
$this->message = new MessageController(); |
||||||
|
$this->media = new CoreMedia(); |
||||||
|
$this->media2 = new Media(); |
||||||
|
$this->notificaMedia = new NotificaMedia(); |
||||||
|
$this->mensages = new Message(); |
||||||
|
$this->classificacao = new ClassificacaoController(); |
||||||
|
$this->supervisor = new SupervisorQueueController(); |
||||||
|
$this->timeout_agent_alert = (CONF_WHATSAPP_TIMEOUT_AGENT_AVISO / 60); |
||||||
|
$this->timeout_agent_desconexao = (CONF_WHATSAPP_TIMEOUT_AGENT_DESCONEXAO / 60); |
||||||
|
$this->timeout_agent_classificacao = (CONF_WHATSAPP_TIMEOUT_AGENT_CLASSIFICACAO / 60); |
||||||
|
$this->mensagem = [ |
||||||
|
"ALERTA_INATIVIDADE" => "Você será desconectado em " . ($this->timeout_agent_desconexao - $this->timeout_agent_alert) . |
||||||
|
" minutos, para permanecer em atendimento clique em '/presente'", |
||||||
|
"ALERTA_DESCONECTADO" => "Você foi desconectado por inatividade!", |
||||||
|
"ALERTA_CLIENTE" => "Olá, como podemos lhe ajudar!", |
||||||
|
"TIMEOUT_CLIENT_INATIVIDADE" => "O tempo da conversa foi expirado, por favor volte novamente a fila para um novo atendimento!", |
||||||
|
"TALK_FINISHED" => "O atendimento foi finalizado!", |
||||||
|
"TALK_ALERT_FINISH" => "Por favor, volte a comunicação com nosso atendimento em 1 minuto ou atendimento será encerrado!" |
||||||
|
]; |
||||||
|
} |
||||||
|
|
||||||
|
|
||||||
|
function monitora(ConnectionInterface $conn) |
||||||
|
{ |
||||||
|
try { |
||||||
|
$agentesLista = $this->agente->inactiveAgents(); |
||||||
|
foreach ($agentesLista as $item) { |
||||||
|
$positus = $this->retornaApiMedia($item['SALA1']); |
||||||
|
//verifica os timeout do agente |
||||||
|
$this->timeoutAgente($item, $conn); |
||||||
|
|
||||||
|
if ($item['STATUS'] == CONF_AGENT_STATUS_LIVRE) { |
||||||
|
$chamadaSemClassificacao = $this->classificacao->agentClassificacaoPending($item['MATRICULA'], $item['FILA']); |
||||||
|
if ($chamadaSemClassificacao) { //BLOQUEAR ATENDIMENTO SEM CLASSIFICACAO |
||||||
|
if ($item['FREETIME'] % $this->timeout_agent_classificacao == 0) { |
||||||
|
$classificacaoList = $this->classificacao->agentClassificacaoList($item['FILA']); |
||||||
|
|
||||||
|
// $retorno = $this->notificaMedia->verificaNotifica( |
||||||
|
// $chamadaSemClassificacao, |
||||||
|
// $item['RAMAL'], |
||||||
|
// utf8_encode(CONF_NAME_REPONSE . " : " . $classificacaoList) |
||||||
|
// ); |
||||||
|
// if ($retorno->quant == 0) { |
||||||
|
// $this->notificaMedia->addNotifica( |
||||||
|
// $chamadaSemClassificacao, |
||||||
|
// $item['RAMAL'], |
||||||
|
// utf8_encode(CONF_NAME_REPONSE . " : " . $classificacaoList) |
||||||
|
// ); |
||||||
|
$conn->send($this->enviaActions(CONF_NAME_REPONSE . " : " . $classificacaoList, 'classificacao')); |
||||||
|
// $positus->enviarMsg( |
||||||
|
// $item['RAMAL'], |
||||||
|
// utf8_encode(CONF_NAME_REPONSE . " : " . $classificacaoList) |
||||||
|
// ); |
||||||
|
// } |
||||||
|
} |
||||||
|
continue; |
||||||
|
} |
||||||
|
|
||||||
|
$atendimento = $this->bilhete->bilheteForaHorario(CONF_EVENT_WHATSAPP_ESPERA, $item['FILA'], null, $item['SALA1']); |
||||||
|
if ($atendimento) { |
||||||
|
/** |
||||||
|
* VALIDA O ATENDIMENTO |
||||||
|
*/ |
||||||
|
$response = $this->media->validaAtendimento($positus, $atendimento[0]->fila, null, $atendimento[0]->src, $item['SALA1']); |
||||||
|
$this->bilhete->atenderBilheteForaHorario($atendimento[0]->uniqueid, $atendimento[0]->src, $atendimento[0]->fila, $item['MATRICULA'], $response['DATA']['uniqueid']); |
||||||
|
$atendimento = $this->bilhete->bilheteForaHorario(CONF_EVENT_WHATSAPP_ESPERA, $item['FILA'], null, $item['SALA1']); |
||||||
|
foreach ($atendimento as $cliente) { |
||||||
|
$mensagemFila = 'Você está na posição ' . $this->media2->getClientQueueData($cliente->src, $atendimento)['QUEUE_POSITION'] . '. Aguarde ser atendido!'; |
||||||
|
$positus->enviarMsg($cliente->src, utf8_encode($mensagemFila)); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
if ($item['STATUS'] == CONF_AGENT_STATUS_OCUPADO) { |
||||||
|
if ($this->message->timeoutTalk($item['UNIQUEID'], $item['RAMAL']) == 'FINISH' && $this->agente->closeService($item['ORIGEM_DESTINO'], CONF_EVENT_WHATSAPP_TIMEOUT_CLIENTE, $item['SALA1'])) { |
||||||
|
$positus->enviarMsg($item['ORIGEM_DESTINO'], utf8_encode($this->mensagem['TIMEOUT_CLIENT_INATIVIDADE'])); |
||||||
|
$positus->enviarMsg($item['ORIGEM_DESTINO'], utf8_encode($this->mensagem['TALK_FINISHED'])); |
||||||
|
$positus->enviarMsg($item['RAMAL'], utf8_encode($this->mensagem['TALK_FINISHED'])); |
||||||
|
} |
||||||
|
if ($this->message->timeoutTalk($item['UNIQUEID'], $item['RAMAL']) == 'ALERT') { |
||||||
|
$msg = $this->mensages->findLastMessage($item['UNIQUEID']); |
||||||
|
$retorno = $this->notificaMedia->verificaNotifica( |
||||||
|
$item['UNIQUEID'], |
||||||
|
$item['ORIGEM_DESTINO'], |
||||||
|
utf8_encode($this->mensagem['TALK_ALERT_FINISH']) . $msg->id |
||||||
|
); |
||||||
|
if ($retorno->quant == 0) { |
||||||
|
$this->notificaMedia->addNotifica( |
||||||
|
$item['UNIQUEID'], |
||||||
|
$item['ORIGEM_DESTINO'], |
||||||
|
utf8_encode($this->mensagem['TALK_ALERT_FINISH']) . $msg->id |
||||||
|
); |
||||||
|
$positus->enviarMsg( |
||||||
|
$item['ORIGEM_DESTINO'], |
||||||
|
utf8_encode($this->mensagem['TALK_ALERT_FINISH']) |
||||||
|
); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
||||||
|
$this->supervisor->calcTimeAwait(); |
||||||
|
} |
||||||
|
} catch (Exception $ex) { |
||||||
|
Connect::setInstance(null); |
||||||
|
logger('monitora')->info($ex->getMessage(), debug_backtrace()); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
function retornaApiMedia($media = '') |
||||||
|
{ |
||||||
|
switch ($media) { |
||||||
|
case CONF_TELEGRAM_CHANNEL: |
||||||
|
return new ApiTelegram(); |
||||||
|
case CONF_WHATSAPP_CHANNEL: |
||||||
|
return new Positus();; |
||||||
|
default: |
||||||
|
break; |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
function timeoutAgente($item, $conn) |
||||||
|
{ |
||||||
|
$freetime = $item['FREETIME'] / 60; |
||||||
|
if (($freetime >= $this->timeout_agent_alert) && ($freetime < $this->timeout_agent_desconexao) && !$item['SALA2'] && $item['STATUS'] == CONF_AGENT_STATUS_LIVRE) { |
||||||
|
$this->agente->timeFinishAgente($item['MATRICULA'], $item['RAMAL'], ($this->timeout_agent_desconexao - $this->timeout_agent_alert)); |
||||||
|
$conn->send($this->enviaActions($this->mensagem['ALERTA_INATIVIDADE'], 'ALERTA_INATIVIDADE')); |
||||||
|
} else if ($freetime >= $this->timeout_agent_desconexao && $item['STATUS'] == CONF_AGENT_STATUS_LIVRE) { |
||||||
|
$this->agente->logoff($item['RAMAL']); |
||||||
|
$conn->send($this->enviaActions($this->mensagem['ALERTA_DESCONECTADO'], 'ALERTA_DESCONECTADO')); |
||||||
|
} else { |
||||||
|
$this->agente->refreshAgent($item['RAMAL'], $item['SALA2']); |
||||||
|
} |
||||||
|
} |
||||||
|
|
||||||
|
function enviaActions($msg, $tipo) |
||||||
|
{ |
||||||
|
try { |
||||||
|
$mensagem = []; |
||||||
|
$mensagem["event"] = [ |
||||||
|
"type" => 'actions', |
||||||
|
"contact" => [ |
||||||
|
"name" => 'Sistema', |
||||||
|
"number" => '0' |
||||||
|
], |
||||||
|
"mensagem" => [ |
||||||
|
"type" => $tipo, |
||||||
|
"content" => utf8_encode($msg) |
||||||
|
], |
||||||
|
]; |
||||||
|
return json_encode($mensagem); |
||||||
|
} catch (\Throwable $th) { |
||||||
|
logger('monitora')->info($th->getMessage(), debug_backtrace()); |
||||||
|
} |
||||||
|
} |
||||||
|
} |
Loading…
Reference in new issue