Child pages
  • Recebendo eventos a partir do websocket do Q-Manager

Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.

...

EventoDescriçãoResponseParâmetros
connectEvento inicial para se conectar com o socket server.  
reconnect

Evento gerado pelo server quando se perde a primeira conexão e há a opção de reconexão automática.

  
connect_errorQuando há algum erro na conexão do socket server e client.  
queuestatus

 

 

Code Block
themeDJango
languagebash
{"Suporte":{
  "params":[{
    "name":"Suporte",
    "strategy":"leastrecent",
    "abandoned":248,
    "answered":1012,
    "calls":0
   }],
   "members":[{
     "name":"Uriel Rodrigues",
     "agent":"1019",
     "endpoint":"SIP/2019",
     "calls":"7",
     "status":"1",
     "paused":"0",
     "membertype":"dynamic",
     "priority":"0",
     "id":"2019"}
]}}

name: Nome da Fila.

strategy: Estratégia de distribuição da fila.

abandoned: Número de chamadas abandonadas desde que o asterisk começou a rodar.

answered: Número de chamadas atendidas desde que o asterisk começou a rodar.

calls: Quantidade de chamadas aguardando no momento.

members: Membros da fila que pode ser estáticos(ramais fixos) ou dinâmicos(operadores).

name: Nome do operador.

agent: Código do operador.

endpoint: Ramal do operador.

calls: Chamadas atendidas pelo operador.

status: Status do operador no momento. Códigos para status

paused: Caso esteja 1 o operador está em pausa no momento. O valor 0 significa que o mesmo está disponível.

membertype: Tipo de membro.

priority: Prioridade de atendimento na fila.

id: Ramal do operador sem a tecnologia.

peerstatusVerifica quando algum ramal perde autenticação. É chamado tambḿ quando o ramal consegue autenticação.
Code Block
languagebash
{"event":"PeerStatus",
 "privilege":"system,all",
 "channeltype":"SIP",
 "peer":"SIP/8013",
 "peerstatus":"Registered",
 "address":"192.168.8.110:5060"}

event: Nome do evento.

privilege: Privilégio do ramal.

channeltype: Tecnologia do ramal

peer: Código do Ramal

peerstatus: Situação do ramal. Poderá ser Registered(Registrado), Unregistered(Não registrado), Unknown(Desconhecido) ou Unreachable(Inacessível)

address: IP do ramal.

queueevent

Eventos relacionados a fila:

  1. enterqueue - Ligação entrou na fila.
  2. queueanswer - Ligação atendida pela fila.
  3. queueabandon - Ligação saiu da fila por abando.
  4. queuetimeout - Ligação saiu da fila por passa o tempo limite.
  5. queuehangup - Ligação finalizada na fila.

Enterqueue:

Code Block
languagebash
{"collection":"queue",
 "eventtype":"call",
 "uniqueid":"1519668420.16268",
 "callid":"201802261807018026",
 "queue":"Suporte",
 "from":"8026",
 "calldate":"2018-02-26T15:07:01.317Z",
 "event":"enterqueue",
 "context":"default",
 "exten":"8001",
 "callflow":[]}

 

Queueanswer(Mesmos dados do evento enterqueue)

Code Block
languagebash
{"answerdate":"2018-02-26T15:07:12.243Z",
 "operator":{
  "endpoint":"SIP/2019",
  "eventdate":"2018-02-26T15:07:12.243Z",
  "name":"Uriel Rodrigues",
 "agent":"1019",
 "ringtime":"10"},
 "validate":true}

uniqueid: Código único da chamada

callid: Código da chamada.

queue: Nome da fila

from: Número de origem

calldate: Data da ligação.

event: Nome do evento.

context: Contexto do asterisk.

exten: Extensão da chamada

callflow: Fluxo da chamada.

 

 

 

answerdate: Data do atendimento por um operador.

operator: Dados do operador como nome, ramal, código e tempo de ring.

state-ringingQuando a ligação está chamando no operador.
Code Block
languagebash
{"uniqueid":"1519670854.16292",
 "linkedid":"1519670852.16291",
 "agent":"1030",
 "name":"Tiago Zimmermann",
 "endpoint":"SIP/8026",
 "queues":{
  "Developer":{
   "pause":"0",
   "state":"off",
   "penalty":"0"
  },
 },
"state":"ringing",
"event":{
 "type":"call",
 "content":{"type":"incoming"}
}}
type: Tipo de chamada. Poderá ser incoming(chamada de entrada) ou outgoing(chamada de saída).
state-answerQuando a ligação é atendida pelo operador.
Code Block
languagebash
{"uniqueid":"1519671062.16294",
 "linkedid":"1519671061.16293",
 "agent":"1030",
 "name":"Tiago Zimmermann",
 "endpoint":"SIP/8026",
 "queues":{"Developer":{"pause":"0","state":"off","penalty":"0"}},
 "state":"answer",
 "event":{"type":"call","content":{"type":"incoming"}},"from":"2026"}
 
state-hangupQuando a ligação é finalizada.

Mesmo response do evento state-answer.

 

 
agentloginQuado o operador efetua login.
Code Block
languagebash
{"eventtype":"feature",
"action":"login","collection":"agents",
"queue":{"Developer":{"pause":"0","state":"off","penalty":"0"}},
"operator":{"name":"Tiago Zimmermann","agent":"1030",
"endpoint":"SIP/8026",
"eventdate":"2018-02-26T16:00:33.903Z"}}
action: Ação efetuada.
agentlogoffqueueQuando o operador é retirado da fila.
Code Block
languagebash
{"eventtype":"feature",
"action":"logoffqueue","collection":"agents",
"queue":{"Developer":{}},
"operator":{"name":"Tiago Zimmermann","agent":"1030",
 "endpoint":"SIP/8026","eventdate":"2018-02-26T16:01:20.915Z"}}
agentlogoffqueue - 1030(Tiago Zimmermann)
 
agentlogoffQuando o operador é deslogado.
Code Block
languagebash
{"eventtype":"feature",
"action":"logoff","collection":"agents",
"queue":{"Developer":{"action":"logoff"},
"status":{"action":"logoff"},
"pause":{"action":"logoff"}},
"operator":{"name":"Tiago Zimmermann","agent":"1030",
"endpoint":"","eventdate":"2018-02-26T16:04:48.335Z"}}
 
agentpauseQuando o operador efetua pausa.
Code Block
languagebash
{"eventtype":"feature",
"action":"pause","collection":"agents",
"queue":{"Developer":{},
"pause":{}},
"operator":{"name":"Tiago Zimmermann","agent":"1030",
"endpoint":"SIP/8026",
"eventdate":"2018-02-26T16:02:26.689Z",
"pause_desc":"Cafe"}}
pause_desc: Nome da pausa.
agentunpauseQuando o operador sai da pausa.
Code Block
languagebash
{"eventtype":"feature",
"action":"unpause","collection":"agents",
"queue":{"Developer":{},"pause":{}},
"operator":{"name":"Tiago Zimmermann",
"agent":"1030","endpoint":"SIP/8026",
"eventdate":"2018-02-26T16:03:40.585Z"}}
 

...

Code Block
titleExemplo de socket client
linenumberstrue
languagejs
console.log("Websocket client");
var io = require('socket.io-client');
var socket = io.connect('http://IP_DO_SERVIDOR:5000', {reconnect: true});
 
// ouvindo o evento de conexão com o socket server
socket.on('connect', function(data) {
  console.log("Connected with socket itc");
  // emite o evento de consulta de status das filas
  socket.emit('queuestatus');
});
 
// ouvindo o evento de status da fila chamado na parte anterior
socket.on('queuestatus', function(data) {
  console.log('aaaaaa Resultado do evento queuestatus-> ' + JSON.stringify(data));
});

...