Skip to end of metadata
Go to start of metadata

You are viewing an old version of this page. View the current version.

Compare with Current View Version History

« Previous Version 2 Current »

Aqui, podemos encontrar todas as informações relevantes para as ações de telefonia que podem ser executadas por meio de nossa API.

  1. Lembre-se de que, para usar a API, você precisa:

  2. Autenticar e obter um token para a sessão.

  3. Usar o token na autorização do cabeçalho.

  4. Encerrar a sessão.

Veja mais aqui


Contenudo



Chamadas

Com as chamadas, podemos encontrar as seguintes ações disponíveis

Realizar Chamadas

URL relativo: Integra/resources/Agents/AgentCall
Method: POST
content-type:application/x-www-form-urlencoded; charset=UTF-8
Parâmetros: callerid (número do remetente com o qual a chamada será feita)
        agent (Nome do agente que gera a chamada)
        phone (Telefone do agente que gera a chamada)
        tech (Geralmente SIP)
        context (Contexto do agente configurado no uContact)
        outqueue (Nome da campanha de saída para computar a chamada)
        destination (Número de destino)
Result: TEXT (Guia da chamada gerada)
              0 se houver erro
Essa é uma chamada em duas etapas, que chamará o agente e, quando for atendida (ou atender automaticamente), a chamada final será gerada, 
a chamada final é gerada.

Realizar Chamada via proxy

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/porthole/1.0.0/porthole.js"></script>
<script type="text/javascript">
 
   function Call () {
       var windowProxy;
       windowProxy.addEventListener(onResponse);
       windowProxy = new Porthole.WindowProxy(window.location.protocol + window.location.hostname);
       windowProxy.post({'action': 'call', 'campaign' : '<CAMPAIGN>', 'callerid' : '<CALLERID>', 'destination' : '<NUMBER>'});
   }

   function onResponse(messageEvent) {
        response = messageEvent.data.guid; //retorna id único de llamada
 
    }
 
</script>

Realizar Chamada passando Dados para o Workflow

https://dominio.ucontactcloud.com/Integra/resources/Agents/AgentCallwithData
Método: POST
content-type:application/x-www-form-urlencoded; charset=UTF-8
Parâmetros: callerid (Número com o qual a chamada está sendo feita)
            agent (Nome do agente que está gerando a chamada)
            phone (Número de telefone do agente)
            tech (Geralmente SIP)
            context (Contexto do agente configurado no uContact)
            outqueue (Nome da campanha para computar a chamada)
            destination (Número de destino)
            data (dados a serem enviados para o fluxo de trabalho, geralmente um JSON que pode ser passado para variáveis com a atividade JSON dentro do fluxo)
            form (Nome do formulário ou URL para o pop-up)
            
Resultado: TEXTO (Orientação de chamada gerada)
              0 Erro


É uma chamada em duas etapas: o agente é chamado e, quando ele atende ou atende automaticamente, a chamada final é gerada.

Realizar Chamada diretamente pelo telefone

Essa função permite que você faça uma chamada diretamente usando o telefone do portal.

A única maneira de usá-la é via proxy, porque a comunicação é com o portal uContact.

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/porthole/1.0.0/porthole.js"></script>
<script>
        function call(){

            var windowProxy;
            
            windowProxy = new Porthole.WindowProxy(window.location.protocol + '//' + window.location.hostname);
            windowProxy.addEventListener(onResponse);
            windowProxy.post({
                action: 'callWithPhone',
                destination: '091000000',
                campaign: 'Sale->'
            });
        }

   
 
        function onResponse(messageEvent) {
            var response = messageEvent.data.guid;
            alert(response);
        }
</script>

HungUp(Encerrar) Chamada

https://dominio.ucontactcloud.com/Integra/resources/Agents/HangupPhone
Method: POST
content-type:application/x-www-form-urlencoded; charset=UTF-8
Params: phone (Telefone do agente que gera a chamada)

Resultado: 1 Sucesso em caso de desligamento
              0 se houver erro

HungUp(Encerrar) via Proxy

<script type=“text/javascript” src=“https://cdnjs.cloudflare.com/ajax/libs/porthole/1.0.0/porthole.js”></script>
<script type=“text/javascript”>
//por exemplo, ao clicar quando você deseja desligar
   function Hangup () {
       var windowProxy;
       windowProxy = new Porthole.WindowProxy(window.location.protocol + window.location.hostname);
       windowProxy.post({'action': 'hangup'});
   }
   
</script>

Tipificar Chamadas

Tipificar Chamada executando a ação correspondente ao Marcador/Discador.

  • RESPOOL

  • RESPOOLALTERNATIVE

  • BLACKLIST

  • RESCHEDULE

Devem estar configuradas as tipificações em um sistema para que funcione.

URL relativo: Integra/resources/api/DispositionCall
Método: POST
content-type:application/x-www-form-urlencoded; charset=UTF-8
Parâmetros: campaign (nome da campanha)
            agent (nome do agente)
            callerid (número de telefone do cliente)
            guid (identificação da chamada)
            l1 (disposição de nível 1)
            l2 (disposição de nível 2)
            l3 (disposição de nível 3)
            d1 (dados extras)
            d2 (dados extras)
            comment (comentário)
            schedule (se a ação RESCHEDULE agendar uma chamada no futuro para esse número)
            camptoreschedule (opcional - discador para reagendar a chamada)
            tag (texto para tag ou vazio por padrão l1|l2|l3)
            
Resultado: 1

Respostas de WS

200 OK:

Retorna o json que contém:

Result: ok, txtcode: txtcode


400 ERROR:

Campos obrigatórios:

Campana: “Parâmetros errados:  Campanha vazia”.
Callerid: “Parâmetros errados: Callerid vazio”
Guid: “Parâmetros errados: guid vazio”
Agente: “Parâmetros errados: Agente vazio”
Nível 1 de tipificação: “Parâmetros errados: Valor vazio1”
Validações:

A combinação de campana, nivel1, nivel2, nivel3 não corresponde a uma tipificação criada.
Disposição não encontrada para o nível1: “ + l1 + ”, level2: “ + l2 + ”, nível3: “ + l3
Em caso de ação de reagenda:

O formato da data da programação não está bem formado: El formato de la fecha tiene que ser yyyy-MM-dd HH:mm:ss
Parâmetros incorretos: Data da programação vazia.

Blacklist

Objeto de blacklist

{
  "phone": "12341234",
  "campaign": "Campaign",
  "username": "username",
  "company": "Company name",
  "job_title": "Developer",
  "name": "Name"
}
  • Essa API permite adicionar e remover registros de lista negra.

  • É possível usar * na propriedade campaign para se referir a todas as campanhas.

  • Os campos obrigatórios são telefone e campanhas.

  • Ao excluir registros, não é necessário enviar todas as propriedades do objeto. Apenas telefone e campanha são necessários.

Adicionar número a Blacklist

Relative URL: Integra/resources/admin/addblack
Method: POST
content-type:application/x-www-form-urlencoded; charset=UTF-8
Params:  objeto blacklist (JSON Object)
Result:  1

Adicionar varios números a Blacklist

Relative URL: Integra/resources/admin/addblackbulk
Method: POST
content-type:application/x-www-form-urlencoded; charset=UTF-8
Params:  array de blacklist (JSON Array)
Result:  1

Eliminar numero de Blacklist

Relative URL: Integra/resources/admin/deleteblack
Method: POST
content-type:application/x-www-form-urlencoded; charset=UTF-8
Params:  objeto blacklist (JSON Object)
Result:  1

Eliminar varios numeros de Blacklist

Relative URL: Integra/resources/admin/deleteblackbulk
Method: POST
content-type:application/x-www-form-urlencoded; charset=UTF-8
Params:  array de blacklist (JSON Array)
Result:  1



Gravacções

Obter gravações de Chamadas

URL relativo: Integra/resources/Cdr/getrecords
Método: POST
content-type:application/x-www-form-urlencoded; charset=UTF-8
Params: lastrow (último número de registros para paginação, por exemplo, 0 (obterá 50 gravações de 0 a 50), 50 (obterá de 51 a 100)) se o limite de pesquisa for 50
		searchLimit contagem de registros
        filter (Json do objeto de filtro) 
        Aleatório: 1 (sempre 1)
        
Resultado: JSON


Objeto Json

{
"calldatei": "2015-12-03 00:00:00",         //Data inicial
"calldatef": "2016-02-24 23:59:59",          //Data final
"agent": "",                                 //Agente
"campaign": "",                              //Campanha
"source": "",                                //Origem
"destination": "",                           //Destino
"data": "",                                  //Dados da chamada Tag
"range": "",                                 //Intervalo de horas
"rating": "",                                //Calificacao
"mindur": "",                                //Durcao mínima
"exclude": "",                               //Excluir numero
"type": "record"                             //Tipo de registro sempre igual
,"cont": ""                                  //Quantas vezes, pelo menos, temos esse número no intervalo
}

A gravação pode estar em quatro lugares diferentes:

Resposta

[
{
		"id" : 1,
		"calldate" : "2022-06-20 17:56:59",
		"clid" : "\"Out<-\" <9901>",
		"src" : "9901",
		"dst" : "33334444",
		"dcontext" : "inbound",
		"channel" : "SIP/9901-00000000",
		"dstchannel" : "SIP/1111-00000001",
		"lastapp" : "Queue",
		"lastdata" : "Out<-,tkc,,,600,,,functions,,",
		"duration" : 16,
		"billsec" : 16,
		"disposition" : "NO ANSWER",
		"amaflags" : 3,
		"accountcode" : "Inbound",
		"userfield" : null,
		"uniqueid" : "1655747819.0",
		"type" : "record",
		"guid" : "020f9687-adc6-46ca-b675-e96c9d1606ef",
		"causecode" : "16",
		"campaign" : "Out<-",
		"direction" : "inbound",
		"carrier" : "9901",
		"linkedid" : "1655747819.0",
		"peeraccount" : "agent",
		"sequence" : 0,
		"charged_balance" : null,
		"real_balance" : null,
		"note" : null,
		"contact" : null,
		"finishtime" : "2022-06-20 17:58:34",
		"rating" : 0,
		"dialerbase" : null,
		"parandvalues" : null,
		"alternatives" : null,
		"quality" : 0
	},
	{
		"id" : 2,
		"calldate" : "2022-06-20 17:57:00",
		"clid" : "\"Out<-\" <9901>",
		"src" : "9901",
		"dst" : "33334444",
		"dcontext" : "inbound",
		"channel" : "SIP/9901-00000000",
		"dstchannel" : "SIP/9911-00000002",
		"lastapp" : "Queue",
		"lastdata" : "Out<-,tkc,,,600,,,functions,,",
		"duration" : 15,
		"billsec" : 15,
		"disposition" : "NO ANSWER",
		"amaflags" : 3,
		"accountcode" : "Inbound",
		"userfield" : null,
		"uniqueid" : "1655747819.0",
		"type" : "record",
		"guid" : "020f9687-adc6-46ca-b675-e96c9d1606ef",
		"causecode" : "16",
		"campaign" : "Out<-",
		"direction" : "inbound",
		"carrier" : "9901",
		"linkedid" : "1655747819.0",
		"peeraccount" : "InboxUser",
		"sequence" : 3,
		"charged_balance" : null,
		"real_balance" : null,
		"note" : null,
		"contact" : null,
		"finishtime" : "2022-06-20 17:58:34",
		"rating" : 0,
		"dialerbase" : null,
		"parandvalues" : null,
		"alternatives" : null,
		"quality" : 0
	}]
https://TelephonyIP/records/guid.mp3
https://TelephonyIP/records/guid.mp3
https://BackupRecords/records/20160118/guid.mp3
https://BackupRecords/records/guid.mp3

Guid (identificador exclusivo encontrado no JSON) 
Example: 7e4e7db9-f080-494e-b04b-7c8e47711558

As pastas são a data da gravação que está na cadeia de caracteres JSON (calldate) sem hífens ou hora.

Isso é feito porque, se você estiver armazenando muitos milhões de arquivos, o sistema operacional não conseguirá gerenciá-los adequadamente, por isso armazenamos a gravação por dia em pastas.

Se você não encontrar a gravação em nenhum desses locais, a gravação pode estar no formato GSM:

Se o seu aplicativo for capaz de reproduzir o formato GSM, basta substituir mp3 por GSM e tentar encontrá-los nos mesmos 4 locais.

Você pode converter o GSM em MP3 com um WebService.

Converter gravações

https://dominio.ucontactcloud.com/Integra/resources/Supervisor/convert
Método: POST
content-type:application/x-www-form-urlencoded; charset=UTF-8
Parámetros: guid (Identificador único da grabacao)  
            pasta (Exemplo: 20160118) É a data da gravação, se ela estiver em seu diretório.
Resultado: 1 para concluído.

Em seguida, você tentará localizar novamente o arquivo MP3 (é possível reproduzir o URL com HTML5 ou qualquer reprodutor de áudio compatível).

https://Telefonía/records/guid.mp3
https://Telefonía/records/folder/guid.mp3
https://RespaldoGrabaciones/records/folder/guid.mp3
https://RespaldoGrabaciones/records/guid.mp3
 
  
Guid (Identificador único encontrado en objeto JSON) 
Ejemplo: 7e4e7db9-f080-494e-b04b-7c8e47711558

Tag de gravação

URL relativo: Integra/resources/Agents/TagRecord
Method: POST
content-type:application/x-www-form-urlencoded; charset=UTF-8
Parâmetros: phone (telefone de destino) 
        guid (Identificador exclusivo do registro)
        data (Texto para a tag)
Result: Vazio, é uma solicitação assíncrona

Vía Proxy

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/porthole/1.0.0/porthole.js"></script>
<script type="text/javascript">
//Ejemplo en click de cerrar el Tab
   function Hangup () {
       var windowProxy;
       windowProxy = new Porthole.WindowProxy(window.location.protocol + window.location.hostname);
	   windowProxy.post({'action': 'tag', 'guid' : '<GUID>', 'message' : '<MESSAGE>'});
   }

</script>



Marcadores/Discadores

Ações do dispositivo

CTI

Esse objeto JSON é encontrado no LocalStorage e criptografado. Ele contém as informações da chamada atendida e, se for de um discador, todas as informações do próximo telefone alternativo para o Respool.

Dialer: Campanha, número principal, status (sempre 1), dados (parâmetros e valores para o Workflow (fluxo de trabalho)), alternativas (com :), novas tentativas (para esse número principal), contato (ID contato) , base de discagem, prioridade, agentphone.

Converta esses dados para o Objet Respool mostrado abaixo.

O que podemos fazer com o Objet Respool?

  • Alterar o número principal e os alternativos e reordená-los.

  • Alterar as tentativas para o número principal (por exemplo, se usarmos um número alternativo como principal, definiremos as tentativas como 0).

  • Alterar prioridades.

  • Adicionar dados ou alterá-los para o fluxo de trabalho.

  • agentphone, se progressivo, podemos atribuí-lo a outro agente.

NÃO MUDAR: campanha, status, contato, base de discagem: Pode alterar o comportamento do discador.

Vía Proxy

Defina em sua página

  windowProxy = new Porthole.WindowProxy('<URL PADRE>');
  windowProxy.addEventListener(onMessage);
  windowProxy.post({'action': 'CTI'});


  function onMessage(messageEvent) {
    CTI = messageEvent.data.CTI;
  
  }

Chamada Respool

https://dominio.ucontactcloud.com/Integra/resources/Dialers/Respool
Método: POST
content-type:application/x-www-form-urlencoded; charset=UTF-8
Parámetros:  callspool   (Objeto JSON)
Resultado:  1

Objeto Json

{

  “campaign": “Ventas->”,                          //Nome da campanha
  “destination": “098344484”,                      //Número de destino
  “dialerbase": “basetest”,                        //Nome da lista do discador
  “status": 1,                                     // 1 se habilitado
  “data": “Par1=Val1:Par2=Val2”,                   // Parâmetros para o fluxo de trabalho e formulários
  “alternatives": “098124484”,                     //Números de alternativas separados por :
  “contact": 222,                                  // ID do contato
  “retries": 0,                                    // 0, pois estamos iniciando um novo telefone
  “priority": 9999,                                // Prioridade para ordenar os registros 1 é usado para agenda, portanto, use > 1
  “agentphone": “1001”                             // Para discadores progressivos
}

Via Proxy

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/porthole/1.0.0/porthole.js"></script>
<script type="text/javascript">

   function Respool () {
       var windowProxy;
       windowProxy = new Porthole.WindowProxy(window.location.protocol + window.location.hostname);
	   windowProxy.post({'action': 'respool', 'objetoRespool' : <Objeto Respool>});
   }

</script>

Agendar Chamada

https://dominio.ucontactcloud.com/Integra/resources/Dialers/ScheduleDialerCall
Método: POST
content-type:application/x-www-form-urlencoded; charset=UTF-8
Parametros:  callschedule   (Objeto JSON)
Resultado:  1 OK
            0 ERROR

Objeto Json

 {
  “calldate” : “2015-10-11 15:00:00”,                //Data a ser executada
  “campaign” : ‘Sales->’,                            //Campanha de discagem
  “destination” : ‘098344484’,                       //Destino da chamada
  “alternatives” : ‘099124484:099121212’,            //Números alternativos
  “agentphone” : ‘1001’,                             //Número do agente se for progressivo
  “data” : ‘Par1=Val1:Par2=Val2’                     //Valores para fluxos e formulários
}

Via Proxy

<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/porthole/1.0.0/porthole.js"></script>
<script type="text/javascript">

   function Schedule () {
       var windowProxy;
       windowProxy = new Porthole.WindowProxy(window.location.protocol + window.location.hostname);
	   windowProxy.post({'action': 'schedule', 'callDate' : '<2016-10-10 15:00:00>', 'objectDialer' : <Objecto Respool> });
   }

</script>

Tareas Marcadores

Si se especifica fecha, la tarea se ejecutará mismo en esa fecha agendada, en caso de que la fecha se especifique como nula, la tarea se ejecutará cuando no haya tareas agendadas y se encuentre libre.

La prioridad de la tarea con fecha específica será mayor a la prioridad de la tarea agendada con fecha nula.

https://dominio.ucontactcloud.com/Integra/resources/Dialers/DialerTask
Método: POST
content-type: application/x-www-form-urlencoded
Parámetros:  call   (Objeto JSON)
Resultado:  1 OK
            0 ERROR

Ejemplos para cada modo:

Agregar marcador con prioridad 1

“calldate” es AHORA
Esta acción es utilizada para llamar momentos luego de ser ejecutada
bulk = false
automatic = true
Se le da prioridad 1 pone una agenda para la llamada

{"calldate" : null,
"campaign" : "nombreCampaña<-",
"destination": "12-345-678",
"alternatives": "",
"agent" : "",
"data": "idcustomer=7:name=Seba",
"source": "source",
"bulk" : false,
"automatic" : true }

Crear llamada manual en el momento

calldate = null el parámetro quedará vacío
bulk = false
automatic = false

Esto crea una llamada en el momento

{"calldate" : null,
"campaign" : "nombreCampaña<-",
"destination": "12-345-678",
"alternatives": "",
"agent" : "",
"data": "idcustomer=7",
"source": "source",
"bulk" : false,
"automatic" : false }

Agregar llamada al marcador

En caso de ser Progresivo recordar ingresar tambien el agente.

//Uso el nombre de usuario para ese Agente:

{"calldate" : null,
"campaign" : "nombreCampaña->",
"destination": "12-345-678",
"alternatives": "",
"agent" : "Agente1",
"data": "idcustomer=7",
"source": "source",
"bulk" : true,
"automatic" : false }

//Uso el número asignado para ese Agente:

{"calldate" : null,
"campaign" : "nombreCampaña->",
"destination": "12-345-678",
"alternatives": "",
"agent" : "1001",
"data": "idcustomer=7",
"source": "source",
"bulk" : true,
"automatic" : false }

Agendar llamada para marcador

Cuando calldate es distinto de null agenda llamada para el marcador

{"calldate" : "2015-10-11 15:00:00",
"campaign" : "nombreCampaña->",
"destination": "12-345-678",
"alternatives": "",
"agent" : "Agente1",
"data": "idcustomer=7",
"source": "source",
"bulk" : true,
"automatic" : false }

Borrar Contacto del Dialer

Relative URL: Integra/resources/Dialers/RemoveContact
Method: POST
content-type:application/x-www-form-urlencoded; charset=UTF-8
Params:     campaign    (Nombre de la campaña)
            number      (Número a borrar)
Result:  1

Borrar Agenda del Marcador

Parámetros: campaña, el número, fecha desde y fecha hasta (formato YYYY-MM-DD hh:mm:ss) para poder borrar por fecha.

Relative URL: Integra/resources/Dialers/RemoveScheduleDialerCall
Method: POST
content-type:application/x-www-form-urlencoded; charset=UTF-8
Params:     campaign      (Nombre de la campaña)
            destination   (número a borrar)
            from          (Fecha desde a borrar)
            to            (Fecha hasta a borrar)
Result:  1


Subir Bases

La API nos da la posibilidad de subir las listas de marcadores con parámetros o con timezone para que sea utilizada la más adecuada a sus necesidades.

Subir base de llamadas

https://dominio.ucontactcloud.com/Integra/resources/Dialers/uploadbase
Método: POST
content-type:application/x-www-form-urlencoded; charset=UTF-8
Parámetros:  filename         (Nombre archivo)
             fileb64          (Contenido del archivo en base64)
             campaign         (Nombre campaña)
             cant             (Cantidad de registros)
			 username		  (Usuario que sube la base)
Resultado: 1 (Async Method)

Formato del archivo

prueba1;098344484;var1=val1:var2=val2;099124484:099111111;9999;1001
 
campaña;númeroprincipal;parametros para formularios y flujo;alternativos separados por :; prioridad (optional);teléfono agente (optional)

Subir base de llamadas con zona horaria

https://dominio.ucontactcloud.com/Integra/resources/Dialers/uploadbasewithtimezone
Método: POST
content-type:application/x-www-form-urlencoded; charset=UTF-8
Parámetros:  filename         (Nombre archivo)
             fileb64          (Contenido del archivo en base64)
             campaign         (Nombre campaña)
             cant             (Cantidad de registros)
             username         (Usuario que sube la base)
             timezone         (Zona horaria, la lista de husos se encuentra en: Timezones Habilitados en uContact)
Resultado: 1 (Async Method)

Formato del archivo

prueba1;098344484;var1=val1:var2=val2;099124484:099111111;9999;1001
 
campaña;númeroprincipal;parametros para formularios y flujo;alternativos separados por :; prioridad (optional);teléfono agente (optional)



Información de Campañas

También puede obtener la información de las campañas de voz.

Resumen de campañas

Para ver resumido el estado de las campañas del sistema, existe el siguiente método:

https://dominio.ucontactcloud.com/Integra/resources/Supervisor/queuesummary
Método: POST
content-type:application/x-www-form-urlencoded; charset=UTF-8
Resultado: JSON

Respuesta

[
    {
        "queue": "Power<-",
        "loggedIn": 10,
        "available": 5,
        "callers": 3,
        "holdTime": 18,
        "talkTime": 130,
        "longestHoldTime": 220,
        "internalActionId": "1982468278_6312",
        "dateReceived": "Nov 2, 2018 11:31:42 AM"
    },
    {
        "queue": "test->",
        "loggedIn": 0,
        "available": 0,
        "callers": 0,
        "holdTime": 0,
        "talkTime": 0,
        "longestHoldTime": 0,
        "internalActionId": "1982468278_6312",
        "dateReceived": "Nov 2, 2018 11:31:42 AM"
    },
    {
        "internalActionId": "1982468278_6312",
        "dateReceived": "Nov 2, 2018 11:31:42 AM"
    }
]

Estado de Campañas

En cambio si queremos obtener toda la información de las campañas del sistema, podemos usar este otro método:

https://dominio.ucontactcloud.com/Integra/resources/Supervisor/campaignstatus
Método: POST
content-type:application/x-www-form-urlencoded; charset=UTF-8
Parámetros: queue (vacio)
Resultado: JSON

Respuesta

{
    "Power<-": {
        "campaign": "Power<-",
        "availables": 0,
        "notavailables": 1,
        "paused": 0,
        "busy": 0,
        "busypaused": 0,
        "totalagents": 1,
        "logged": 0,
        "onwrapup": 0,
        "completed": 0,
        "abandoned": 0,
        "talked": "00:00:00-0",
        "hold": "00:00:00-0",
        "abandonedlevel": "0",
        "totalcalls": 0,
        "acd": 0,
        "servicelevel": "0.0",
        "servicelevel2": "0.0",
        "strategy": "leastrecent",
        "slevelthreshold": "3",
        "wrapup": 0
    },
    "test->": {
        "campaign": "test->",
        "availables": 0,
        "notavailables": 0,
        "paused": 0,
        "busy": 0,
        "busypaused": 0,
        "totalagents": 0,
        "logged": 0,
        "onwrapup": 0,
        "completed": 0,
        "abandoned": 0,
        "talked": "00:00:00-0",
        "hold": "00:00:00-0",
        "abandonedlevel": "0",
        "totalcalls": 0,
        "acd": 0,
        "servicelevel": "0.0",
        "servicelevel2": "0.0",
        "strategy": "leastrecent",
        "slevelthreshold": "3",
        "wrapup": 3
    }
}

Para obtener la información de los agentes junto con las estadísticas de la campaña, para una campaña en específico, existe el siguiente método. Es la misma ruta que el anterior, pero se le especifica el nombre por parámetro.

Además de devolver el objeto con información de la campaña, también se devuelve el objeto de cada agente perteneciente a ella.

https://dominio.ucontactcloud.com/Integra/resources/Supervisor/campaignstatus
Método: POST
content-type:application/x-www-form-urlencoded; charset=UTF-8
Parámetros: queue (Ejemplo: "test->")
Resultado: JSON

Respuesta

{
  "test->": {
      "campaign": "test->",
      "availables": 1,
      "notavailables": 1,
      "paused": 0,
      "busy": 0,
      "busypaused": 0,
      "totalagents": 2,
      "logged": 1,
      "onwrapup": 0,
      "completed": 0,
      "abandoned": 0,
      "talked": "00:00:00-0",
      "hold": "00:00:00-0",
      "abandonedlevel": "0",
      "totalcalls": 0,
      "acd": 0,
      "servicelevel": "0.0",
      "servicelevel2": "0.0",
      "strategy": "fewestcalls",
      "slevelthreshold": "15",
      "wrapup": 0
  },
  "SIP/1010": {
      "queue": "test->",
      "location": "SIP/1010",
      "membership": "",
      "name": "Daniel",
      "penalty": 0,
      "callsTaken": 0,
      "lastCall": 0,
      "status": 5,
      "paused": false,
      "stateinterface": "SIP/1010",
      "incall": 0,
      "pausedreason": "[]",
      "internalActionId": "1982468278_8979",
      "dateReceived": "Nov 2, 2018 11:36:11 AM",
      "server": "00:10:12"
  },
  "SIP/1001": {
      "queue": "test->",
      "location": "SIP/1001",
      "membership": "",
      "name": "Santiago",
      "penalty": 0,
      "callsTaken": 0,
      "lastCall": 0,
      "status": 1,
      "paused": false,
      "stateinterface": "SIP/1001",
      "incall": 0,
      "pausedreason": "",
      "internalActionId": "1982468278_8979",
      "dateReceived": "Nov 2, 2018 11:26:45 AM",
      "server": "00:19:39"
  }
}

Códigos de estado de los agentes

    UNKNOWN = 0
  NOT_INUSE = 1
      INUSE = 2
       BUSY = 3
    INVALID = 4
UNAVAILABLE = 5
    RINGING = 6
  RINGINUSE = 7
     ONHOLD = 8
     WRAPUP = 9


Colección de postman con algunas de las llamadas.

  • No labels