Versions Compared

Key

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

Aquí podremos encontrar toda la información relevante a las acciones de telefonía que pueden ser realizadas a través de nuestra Aqui, podemos encontrar todas as informações relevantes para as ações de telefonia que podem ser executadas por meio de nossa API.

Info
Recordar
  1. Lembre-se de que, para

poder
  1. usar

la API se necesita:
  1. Autenticarse y obtener un token para la sesióna API, você precisa:

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

  3. Usar el token en el Header Authorization.

  4. Finalizar sesión.

Vea más aquí

Contenido
  1. o token na autorização do cabeçalho.

  2. Encerrar a sessão.

Veja mais aqui


Contenudo

Table of Contents
maxLevel1

Llamadas


Aquí veremos las siguientes acciones disponibles:

Realizar llamadas

Code Blockhttps://dominio.ucontactcloud.com/

Chamadas

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

Realizar Chamadas

Code Block
URL relativo: Integra/resources/Agents/AgentCall
MétodoMethod: POST
content-type:application/x-www-form-urlencoded; charset=UTF-8
ParámetrosParâmetros: callerid (Número con que vanúmero do remetente com o qual a salirchamada laserá llamadafeita)
            agent    (NombreNome deldo agente que generagera laa llamdachamada)
  
         phone    (Número de teléfono delTelefone do agente) que gera a chamada)
        tech     (UsualmenteGeralmente SIP)
  
         context  (Contexto deldo agente configurado enno uContact)
            outqueue (NombreNome deda lacampanha campañade quesaída separa computaracomputar laa llamadachamada)
            destination (Número de destino)
ResultadoResult: TEXTOTEXT  (GuidGuia deda lachamada llamada generadogerada)
              0 se houver Errorerro
Essa Esé unauma llamadachamada enem 2duas pasosetapas, seque llamachamará alo agente y cuando Atiende o Auto-atiende se genera la llamada final.
Realizar llamada vía
 e, quando for atendida (ou atender automaticamente), a chamada final será gerada, 
a chamada final é gerada.

Realizar Chamada via proxy

Code Block
<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

llamada pasando Datos al

Chamada passando Dados para o Workflow

Code Block
https://dominio.ucontactcloud.com/Integra/resources/Agents/AgentCallwithData
Método: POST
content-type:application/x-www-form-urlencoded; charset=UTF-8
ParámetrosParâmetros: callerid (Número concom queo vaqual a chamada salirestá lasendo llamadafeita)
            agent    (NombreNome deldo agente que está generagerando laa llamdachamada)
            phone    (Número de teléfonotelefone deldo agente)
            tech     (UsualmenteGeralmente SIP)
            context  (Contexto deldo agente configurado enno uContact)
            outqueue (NombreNome deda lacampanha campañapara quecomputar se computara la llamadaa chamada)
            destination (Número de destino)
            data (dados a serem enviados (datospara parao enviarfluxo alde workflowtrabalho, habitualmentegeralmente unum JSON que sepode puedeser pasarpassado apara variablesvariáveis concom laa actividadatividade JSON dentro deldo flujofluxo)
            form (Nome do formulário ou (Nombre de FormURL para o URL para Popuppop-up)
            
Resultado: TEXTO  (GuidOrientação de lachamada llamda generadogerada)
              0 Erro
Error

É uma Eschamada unaem llamadaduas enetapas: 2o pasosagente seé llamachamado ale, agentequando yele cuandoatende Atiendeou o Auto-atiende se genera la llamada final.

Realizar llamada directamente desde el teléfono

Info

Esta función permite realizar llamadas, pero se diferencia de la anterior porque utiliza el teléfono ya inicializado del portal.

La única manera de realizarlo es vía proxy, dado que la comunicación es directamente con el portal de
atende automaticamente, a chamada final é gerada.

Realizar Chamada diretamente pelo telefone

Info

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.

Code Block
languagejs
<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>
Cortar llamada

HungUp(Encerrar) Chamada

Code Block
https://dominio.ucontactcloud.com/Integra/resources/Agents/HangupPhone
MétodoMethod: POST
content-type:application/x-www-form-urlencoded; charset=UTF-8
ParámetrosParams: phone (Telefone do agente (Númeroque degera teléfonoa del agentechamada)

Resultado: 1 Sucesso em 1caso de Llamadadesligamento
cortada correctamente             0 se 0houver  Error
Cortar llamada vía
erro

HungUp(Encerrar) via Proxy

Code Block
languagejs
<script type="text“text/javascript"javascript” src="https“https://cdnjs.cloudflare.com/ajax/libs/porthole/1.0.0/porthole.js"><js”></script>
<script type="text/javascript">“text/javascript”>
//Ejemplo en click de cerrar el Tabpor 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

llamadas

Chamadas

Info

Tipifica la llamada ejecutando la acción correspondiente al MarcadorTipificar Chamada executando a ação correspondente ao Marcador/Discador.

  • RESPOOL

  • RESPOOLALTERNATIVE

  • BLACKLIST

  • RESCHEDULE

Deben Devem estar configuradas las tipificaciones en el as tipificações em um sistema para que funcione.

Code Block
RelativeURL URLrelativo: Integra/resources/api/DispositionCall
MethodMétodo: POST
content-type:application/x-www-form-urlencoded; charset=UTF-8
ParamsParâmetros:     campaign campaign      (Nombre de la campaña obligatorio)
            agent         (nombre agente obligatorio)
            callerid      (número telefono cliente)
            guid          (id de la llamada)
            l1            (nivel 1 tipificación)
            l2            (nivel 2 tipificación)
            l3            (nivel 3 tipificación)
            d1            (dato extra a guardar)
            d2            (dato extra a guardar)
            comment       (comentario)
            schedule       (si hay una fecha (formato ejemplo 2019-02-26 13:45:00) y la accion del marcador es RESCHEDULE agenda una llamada a ese número )
      (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 (marcadoropcional al- cualdiscador separa puede reagendar laa llamadachamada)
            tag (texto para tag ou vazio por padrão l1|l2|l3)
   ( texto para tag o vacio por defecto l1|l2|l3 )
ResultResultado:  1
Respuestas del

Respostas de WS

Code Block
200 OK:

Retorna o json que contienecontém:

Result: ok, txtcode: txtcode


400 ERROR:

Campos obligatoriosobrigatórios:

Campana: "Wrong“Parâmetros parameterserrados:   EmptyCampanha campaignvazia”."
Callerid: "Wrong“Parâmetros parameterserrados: EmptyCallerid callerid"vazio”
Guid: "Wrong“Parâmetros parameterserrados: Emptyguid guid"vazio”
Agente: "Wrong“Parâmetros parameterserrados: EmptyAgente agent"vazio”
NivelNível 1 de tipificacióntipificação: "Wrong“Parâmetros parameterserrados: EmptyValor value1"vazio1”
ValidacionesValidações:

LaA combinacióncombinação de campana, nivel1, nivel2, nivel3 nonão corresponde cona unauma tipificacióntipificação creadacriada.
Disposição Dispositionnão notencontrada foundpara foro level1nível1: " + l1 + ", level2: " + l2 + "”, level3nível3: " + l3
EnEm caso de acciónação de reagenda:

O formato Theda scheduledata dateda formatprogramação isnão notestá wellbem formedformado: El formato de la fecha tiene que ser yyyy-MM-dd HH:mm:ss
WrongParâmetros parametersincorretos: Data Emptyda scheduleprogramação datevazia.

Blacklist

Objeto de blacklist

Code Block
languagejs
{
  "phone": "12341234",
  "campaign": "Campaign",
  "username": "username",
  "company": "Company name",
  "job_title": "Developer",
  "name": "Name"
}
Info
  • Se pueden agregar y eliminar uno o varios registros de blacklist al mismo tiempo.

  • Es posible utilizar * en la propiedad de campaign para hacer referencia a todas las campañas.

  • Los campos obligatorios son phone y campaign, el resto son opcionales

  • Al momento de eliminar registros no es necesario enviar todas las propiedades del objeto. Solo phone y campaign son necesarios

Agregar
  • 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

Code Block
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
Agregar

Adicionar varios números a Blacklist

Code Block
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

Code Block
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

Code Block
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


Grabaciones


Gravacções

Obtener grabaciones

Obter gravações de

llamada

Chamadas

Code Block
https://dominio.ucontactcloud.com/URL relativo: Integra/resources/Cdr/getrecords
Método: POST
content-type:application/x-www-form-urlencoded; charset=UTF-8
ParámetrosParams: lastrow  (Últimoúltimo número de resultadosregistros depara obtenerpaginação, registros)por ejemploexemplo, 0 (Obtieneobterá ne 50 grabacionesgravações de la0 a 0-50), 50 (obtieneobterá de la51 a 51-100)) si el searchLimit esse o limite de pesquisa for 50
			searchLimit cantidadcontagem de registros
        filter (Json do objeto filter  (Objetode filtro JSON) 
            RandomAleatório: 1 (Siempresempre 1)
        
   searchLimit :50
Resultado: JSON 


Objeto Json

Code Block
languagejs
{
"calldatei": "2015-12-03 00:00:00",         //FechaData inicial
"calldatef": "2016-02-24 23:59:59",          //FechaData final
"agent": "",                                 //Agente
"campaign": "",                              //CampañaCampanha
"source": "",                                //OrigenOrigem
"destination": "",                           //Destino
"data": "",                                  //DatosDados da dechamada Tag de Llamadas
"range": "",                                 //RangoIntervalo de horas
"rating": "",                                //CalificaciónCalificacao
"mindur": "",                                //DuraciónDurcao mínima
"exclude": "",                               //Excluir númeronumero
"type": "record"                             //Tipo de registro siempresempre igual
,"cont": ""                                  //CantidadQuantas devezes, vecespelo quemenos, setemos encuentraesse ese número enno elintervalo
rango seleccionado
}
Info

Las grabaciones pueden estar en 4 lugares distintos:

Respuesta

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

Resposta

Code Block
[
{
		"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
	}]
Code Block
https://TelefoníaTelephonyIP/records/guid.mp3
https://TelefoníaTelephonyIP/records/guid.mp3
https://RespaldoGrabacionesBackupRecords/records/20160118/guid.mp3
https://RespaldoGrabacionesBackupRecords/records/guid.mp3

Guid (Identificadoridentificador únicoexclusivo encontrado en objetono JSON) 
EjemploExample: 7e4e7db9-f080-494e-b04b-7c8e47711558
Note

Los directorios (folder) son la fecha de la grabación que se encuentra en ese registro (calldate), sin guiones ni la hora.

Esto se debe a que al guardar millones de archivos en el Sistema Operativo no los maneja correctamente, por lo cual se guardan dentro de directorios.

Warning

Si no se encuentra la grabación en estos lugares, puede ser que se encuentre en formato GSM.

Si este es el caso, es posible realizar 2 acciones:

  1. Si su aplicación puede reproducir GSM es simplemente cambiar la extension mp3 por gsm e intentar encontrarla en los mismos 4 lugares.

  2. Se puede convertir GSM a MP3 con un WebService.

Convertir grabaciones

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.

Warning

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

Code Block
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 deda la grabacióngrabacao)  
            folderpasta (EjemploExemplo: 20160118) EsÉ laa fechadata deda lagravação, grabaciónse enela casoestiver queem se encuentre en su directorioseu diretório.
ResultResultado: 1 para completadoconcluído.
Info

Luego intentaremos encontrar los MP3 de la misma forma (puede usarse el reproductor de HTML5 o cualquier reproductor de audioEm seguida, você tentará localizar novamente o arquivo MP3 (é possível reproduzir o URL com HTML5 ou qualquer reprodutor de áudio compatível).

Code Block
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
Marcar grabación (Tag)

Tag de gravação

Code Block
https://dominio.ucontactcloud.com/URL relativo: Integra/resources/Agents/TagRecord
MétodoMethod: POST
content-type:application/x-www-form-urlencoded; charset=UTF-8
ParámetrosParâmetros: phone (telefone de (Número destino) 
 
          guid    (Identificador único)exclusivo do   registro)
        data    (Texto depara marcadoa tag)
Result: VacíoVazio, é uma essolicitação asincrónicoassíncrona

Vía Proxy

Code Block
languagejs
<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

Acciones disponibles

/Discadores

Ações do dispositivo

CTI

Este Esse objeto JSON es é encontrado en el LocalStorage y encriptado, tiene la información de la llamada que fue atendida y la información del registro del marcador, si corresponde para 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: Campaña Campanha, Num número principal, status (siempre sempre 1), data dados (parámetros y valores que pasan al Workflow), alternatives (separados por parâmetros e valores para o Workflow (fluxo de trabalho)), alternativas (com :), retries (reintentos que va haciendo ese número), contact (ID contacto), dialebase, prioridad, agentphone.

Estos datos hay que convertirlos al objetoRespool que se muestra más abajo.

¿Qué podemos realizar con Objeto Respool?

  • Cambiar teléfono principal por alternativos y reordenar a gusto.

  • Cambiar cantidad de reintentos para ese número (ejemplo: si pongo un alternativo como principal poner el 0).

  • Cambiar prioridades.

  • Agregar datos para el workflow o cambiarlos.

  • agentphone, si es progressive asignar a otro agente.

Warning

NO CAMBIAR: campaña, status, contact, dialerbase: Puede ocasionar errores en el marcador.

Vía Proxy

Definir en su 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.

Warning

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

Vía Proxy

Defina em sua página

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


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

Chamada Respool

llamada

Code Block
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

Code Block
languagejs
{

 "campaign": "Ventas->", “campaign": “Ventas->”,                          //NombreNome da campañacampanha
  "destination“destination": "098344484",“098344484”,                      //Número de destino
  “dialerbase"dialerbase": "basetest",“basetest”,                        //NombreNome da lista deldo discador
  "status“status": 1,                                     // 1 registrose habilitado
a ser marcado
  "data"“data": "Par1“Par1=Val1:Par2=Val2"Val2”,                   // ParametrosParâmetros para flujos y formularios o fluxo de trabalho e formulários
  “alternatives": “098124484”,     "alternatives": "098124484",               //Números Númerosde alternativosalternativas separados conpor :
  “contact"contact": 222,                                  // IdID do contactocontato
  “retries"retries": 0,                                    // 0, yapois queestamos comenzamosiniciando aum marcarnovo untelefone
nuevo número   "priority“priority": 9999,                                // PrioridadPrioridade delpara registroordenar noos usarregistros 1 yaé queusado espara paraagenda, agendadosportanto, usaruse > 1
   "agentphone“agentphone": "1001" “1001”                             // Para marcadoresdiscadores Progresivosprogressivos
}

Via Proxy

Code Block
languagejs
<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

llamada

Chamada

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

Objeto Json

Code Block
 {
  "calldate"“calldate” : "2015“2015-10-11 15:00:00"00”,                //FechaData a ser ejecutadaexecutada
  "campaign"“campaign” : "Ventas‘Sales->">’,                            //CampañaCampanha de marcadordiscagem
  "destination"“destination” : "098344484"‘098344484’,                       //Destino deda la llamadachamada
  "alternatives"“alternatives” : "099124484‘099124484:099121212"099121212’,            //Números alternativos
  "agentphone"“agentphone” : "1001"‘1001’,                             //Número dedo agente sise for Progresivoprogressivo
  "data"“data” :  "Par1‘Par1=Val1:Par2=Val2"Val2’                     //Valores para Flujosfluxos ye Formulariosformulários
}

Via Proxy

Code Block
languagejs
<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

Info

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.

Code Block
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

Info

“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

Code Block
{"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

Info

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

Esto crea una llamada en el momento

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

Agregar llamada al marcador

Note

En caso de ser Progresivo recordar ingresar tambien el agente.

Code Block
//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

Info

Cuando calldate es distinto de null agenda llamada para el marcador

Code Block
{"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

Code Block
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.

Code Block
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

Code Block
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

Code Block
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

Code Block
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

Code Block
languagetext
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:

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

Respuesta

Code Block
languagejson
[
    {
        "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:

Code Block
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

Code Block
languagejson
{
    "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.

Code Block
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

Code Block
languagejson
{
  "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

Code Block
    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.

View file
nameAPI Telefonia.postman_collection.json