APIs. Fonema API
Centralita con APIs
FoneMa dispone de una API que le permite acceder a la información de su cuenta y realizar diversas operaciones desde sus propias aplicaciones.
Uso
La API se invoca mediante peticiones HTTP.
En los métodos GET los parámetros se deben indicar codificados en la URL y en los POST en formato JSON en el cuerpo de la petición HTTP.
Las respuestas se devuelven codificadas en JSON en el cuerpo de la respuesta.
La API requiere autenticación con un usuario y contraseña que son los mismos de acceso a la aplicación. El método login devuelve un token que es necesario proporcionar en una cabecera HTTP en el resto de peticiones:
Authorization: bearer «token»
Índice de métodos
Autenticación
Gestión de usuarios
getUsers
getUser
addUser
editUser
removeUser
setUserStatus
setAdmin
changePassword
Encuéntrame
getReachMe
addReachMe
modifyReachMe
removeReachMe
modifyReachMeConfig
Gestión de numeración
getDIDs
getDIDCountries
getDIDStates
getDIDGroups
buyDID
cancelDID
Números personales
Presencia
getNotifications
changePresenceStatus
Llamadas
makeCall
isOnCall
transferCall
revertTransfer
hangupCall
getCallsPost
getCallRecord
Buzones de voz
modifyUsersVoicemail
toggleVoiceMail
saveVoiceMailPin
addToVoicemail
getVoiceMailMessages
deleteVoiceMailMessages
playVoiceMailMessage
archiveVoiceMailMessage
Configuración
getRingGroup
getRingGroups
modifyRingGroup
addToRingGroup
getTimeSchedules
modifyTimeSchedule
switchTimeSchedule
addTimeSchedule
deleteTimeSchedule
changeTimezone
uploadWaitMusic
getMusicOnHold
changeMusicOnHold
modifyPublicNumberTone
getLocutions
modifyLocution
getVoiceMail
modifyVoiceMail
modifyUsersVoiceMail
getCallRecordingConfig
modifyCallRecordingConfig
getMissedCallsNotification
modifyMissedCallNotification
Grupos
addGroup
deleteRingGroup
editGroup
Locuciones
getSounds
uploadSound
getVoices
setVoiceText
Informes
General
Clientes de ejemplo
Autenticación
login – GET
Este método permite obtener un token necesario para autenticar en el resto de métodos a partir del usuario y contraseña.
parámetros:
- login: nombre de usuario con el que desea acceder a la API
- password: contraseña del usuario
valores devueltos:
- En caso de éxito, un JSON con el objeto response y la cadena token (response.token) que necesitará para acceder al resto de métodos.
Gestión de usuarios
getUsers – GET
Devuelve la lista de usuarios de la cuenta
permisos:
- Administrador
parámetros:
- Sin parámetros
valores devueltos:
- Devuelve un array de objetos User con las siguientes propiedades:
- id: identificador del usuario
- firstName: nombre del usuario
- lastName: apellidos del usuario
- name: nombre compuesto del usuario
- email: dirección de email del usuario
- login: identificador del login del usuario
- extNumber: número de extensión
- isAdmin: booleano indicando si el usuario tiene permisos de administrador o no
- lang: idioma del usuario (es_ES o en_US)
- timeZone: zona horaria del usuario
- hasDefaultBond: booleano indicando si el usuario tiene bono de minutos o no
- enabled: indica si el usuario está activo (true) o no (false)
getUser – GET
Devuelve información ampliada sobre un usuario en concreto
permisos:
- Administrador o el propio usuario (restringido a sus propios datos)
parámetros:
- userId: id del usuario a consultar
valores devueltos:
- Devuelve un objeto User con las siguientes propiedades:
- id: identificador del usuario
- firstName: nombre del usuario
- lastName: apellidos del usuario
- email: dirección de email del usuario
- login: identificador del login del usuario
- extNumber: número de extensión
- isAdmin: booleano indicando si el usuario tiene permisos de administrador o no
- lang: idioma del usuario (es_ES o en_US)
- timeZone: zona horaria del usuario
- hasDefaultBond: booleano indicando si el usuario tiene bono de minutos o no
- dominio: dominio de acceso del usuario
- defaultCallerId: identificador de llamadas por defecto para el usuario
- mobileType: forma de hacer las llamadas a través de la app con el móvil (none/callback/gsm)
- callbackDirect: booleano, si el tipo de llamada es callback indica si si se iniciará la llamada desde el móvil (true) o si la centralita la iniciará hacia el móvil (false)
- mobileNumber: número del teléfono móvil del usuario
- reachMeMode: indica la forma de llamar al ReachMe del usuario (sequential/ringall)
- recordOutgoing: booleano indicando si las llamadas salientes deben ser grabadas
- voiceMail: booleano indicando si el buzón de voz del usuario está activo
- voiceMailPin: PIN de acceso al buzón de voz
- enabled: indica si el usuario está activo (true) o no (false)
addUser – POST
Añade un nuevo usuario
permisos:
- Administrador
parámetros:
- extNumber: número de extensión
- firstName: nombre del usuario
- lastName: apellidos del usuario
- email: email del usuario
- mobileType: forma de hacer las llamadas a través de la app con el móvil (none/callback/gsm)
- mobileNumber: número del teléfono móvil del usuario
- callbackDirect: booleano, si el tipo de llamada es callback indica si si se iniciará la llamada desde el móvil (true) o si la centralita la iniciará hacia el móvil (false)
- defaultCallerId: identificador de llamadas por defecto para el usuario
- lang: idioma del usuario (es_ES o en_US)
- timeZone: zona horaria del usuario
- isAdmin: booleano indicando si el usuario tiene permisos de administrador o no
- recordOutgoing: booleano indicando si las llamadas salientes deben ser grabadas
- password: contraseña del usuario
- hasDefaultBond: booleano indicando si el usuario tendrá bono de llamadas
- verificationCode: código de verificación SMS del número móvil del usuario
valores devueltos:
- Código de respuesta
- id: identificador del usuario
editUser – POST
Edita los datos de un usuario
permisos:
- Administrador o el propio usuario (restringido a sus propios datos)
parámetros:
- userId: identificador del usuario
- extNumber: número de extensión
- firstName: nombre del usuario
- lastName: apellidos del usuario
- email: email del usuario
- mobileType: forma de hacer las llamadas a través de la app con el móvil (none/callback/gsm)
- mobileNumber: número del teléfono móvil del usuario
- callbackDirect: booleano, si el tipo de llamada es callback indica si si se iniciará la llamada desde el móvil (true) o si la centralita la iniciará hacia el móvil (false)
- defaultCallerId: identificador de llamadas por defecto para el usuario
- lang: idioma del usuario (es_ES o en_US)
- timeZone: zona horaria del usuario
- isAdmin: booleano indicando si el usuario tiene permisos de administrador o no
- recordOutgoing: booleano indicando si las llamadas salientes deben ser grabadas
- hasDefaultBond: booleano indicando si el usuario tendrá bono de llamadas
- verificationCode: código de verificación SMS del número móvil del usuario
valores devueltos:
- Código de respuesta y token si es necesario actualizarlo
- token: nuevo token del usuario
removeUser – POST
Elimina un usuario
permisos:
- Administrador
parámetros:
- userId: identificador del usuario
valores devueltos:
- Código de respuesta
setUserStatus – POST
Activa o desactiva un usuario. Al desactivar un usuario éste es forzado a salir de la app o Panel de Control de Fonema, se le impide realizar o recibir más llamadas y se cortan las que tenga en curso.
permisos:
- Administrador
parámetros:
- userId: identificador del usuario
- enabled: true para activar o false para desactivarlo
valores devueltos:
- Código de respuesta
setAdmin – POST
Añade o quita el permiso de administrador a un usuario
permisos:
- Administrador
parámetros:
- userId: identificador del usuario
- isAdmin: booleano indicando si el usuario es administrador o no
valores devueltos:
- Código de respuesta
changePassword – POST
Modifica la contraseña de un usuario
permisos:
- Administrador o el propio usuario (restringido a sus propios datos)
parámetros:
- userId: identificador del usuario
- newPassword: nueva contraseña
valores devueltos:
- Código de respuesta
Encuéntrame
getReachMe – GET
Obtiene la configuración ReachMe de un usuario
permisos:
- Administrador o el propio usuario (restringido a sus propios datos)
parámetros:
- userId: identificador del usuario
valores devueltos:
Devuelve un array de objetos ReachMe con los dispositivos a los que se llamará para localizar al usuario
- id: identificador del ReachMe
- enabled: booleano indicando si está activado o no
- priority: en caso de estar en modo secuencial, el orden en el que se llamará a este ReachMe
- timeToRing: tiempo en segundos que se intentará llamar a este ReachMe
- type: tipo del Reachme (sip/mobile/external/emergency)
- value: si el tipo es mobile, external o emergency, el número de teléfono al que se llamará
addReachMe – POST
Añade un nuevo ReachMe al usuario
permisos:
- Administrador o el propio usuario (restringido a sus propios datos)
parámetros:
- userId: identificador del usuario
- timeToRing: tiempo en segundos que se intentará llamar a este ReachMe
- type: tipo del Reachme (sip/mobile/external/emergency)
- value: si el tipo es mobile, external o emergency, el número de teléfono al que se llamará
valores devueltos:
Devuelve un código de respuesta
modifyReachMe – POST
Modifica un ReachMe del usuario
permisos:
- Administrador o el propio usuario (restringido a sus propios datos)
parámetros:
- userId: identificador del usuario
- reachMeId: identificador del ReachMe
- enabled: booleano indicando si está activado o no
- priority: en caso de estar en modo secuencial, el orden en el que se llamará a este ReachMe
- timeToRing: tiempo en segundos que se intentará llamar a este ReachMe
- type: tipo del Reachme (sip/mobile/external/emergency)
- value: si el tipo es mobile, external o emergency, el número de teléfono al que se llamará
valores devueltos:
Devuelve un código de respuesta
removeReachMe – POST
Modifica un ReachMe del usuario
permisos:
- Administrador o el propio usuario (restringido a sus propios datos)
parámetros:
- userId: identificador del usuario
- reachMeId: identificador del ReachMe
valores devueltos:
Devuelve un código de respuesta
modifyReachMeConfig – POST
Modifica la configuración ReachMe de un usuario
permisos:
- Administrador o el propio usuario (restringido a sus propios datos)
parámetros:
- userId: identificador del usuario
- reachMes: array con los objetos ReachMe del usuario
- recordOutgoing: indica si el usuario grabará sus llamadas salientes
- reachMeMode: forma de llamar a los ReachMe del usuario (sequential/ringall)
valores devueltos:
Devuelve un código de respuesta
Gestión de numeración
getDIDs – GET
Devuelve una lista de la numeración asignada a la cuenta.
permisos:
- Administrador
parámetros:
- Sin parámetros
valores devueltos:
- Devuelve un array de objetos DID con las siguientes propiedades:
- id: identificador del DID
- number: número en formato E164
- type: general ó personal
- user: General si el número es general, o el nombre y número de extensión del usuario al que pertenece el número si es personal
- description: descripción de la zona la que pertenece el DID
- created: fecha de alta del DID
- monthlyCost: precio mensual del DID
getDIDCountries – GET
Devuelve una lista de los países con numeración disponible.
permisos:
- Administrador
parámetros:
- type: tipo de la numeración. Uno de los siguientes valores:
- GEOGRAPHIC: mostrar sólo países con numeración geográfica
- TOLL_FREE: mostrar sólo países con numeración de coste gratuito para el llamante
- NATIONAL: mostrar sólo países con numeración nacional
- MOBILE: mostrar sólo países con numeración móvil
- SHARED_COST: mostrar sólo países con numeración de coste compartido
valores devueltos:
- Devuelve un array de objetos Country con la siguientes propiedades:
- countryCodeA3: código del país
- countryName: nombre del país
- phoneCode: prefijo internacional del país
- hasStates: 1 sí la numeración está organizada por estados (será necesario consultar el método getDIDStates para obtener el listado de estados).
- hasRegulationRequirement: 1 si el país tiene regulación para la compra de numeración.
getDIDStates – GET
Devuelve la lista de estados de un país (sólo para países que tienen el campo hasStates a 1).
permisos:
- Administrador
parámetros:
- countryId: identificador countryCodeA3 del país del que se quieren obtener los estados (devuelto por el método getDIDCountries)
valores devueltos:
- Devuelve un array de objetos State con las siguiente propiedades:
- stateId: identificador numérico del estado
- stateName: nombre del estado
- stateCode: código del estado
- countryCodeA3: código del país al que pertenece el estado
getDIDGroups – GET
Devuelve una lista de las zonas específicas de un país/tipo/estado de donde se puede adquirir numeración.
permisos:
- Administrador
parámetros:
- countryId: identificador countryCodeA3 del país del que se quieren obtener los estados (devuelto por el método getDIDCountries)
- type: tipo de la numeración. Uno de los siguientes valores:
- GEOGRAPHIC: mostrar sólo países con numeración geográfica
- TOLL_FREE: mostrar sólo países con numeración de coste gratuito para el llamante
- NATIONAL: mostrar sólo países con numeración nacional
- MOBILE: mostrar sólo países con numeración móvil
- SHARED_COST: mostrar sólo países con numeración de coste compartido
- stateId: si el país tiene estados, uno de los identificadores devueltos por el método getDIDStates
valores devueltos:
- Devuelve un array de objetos DIDGroup con las siguiente propiedades:
- didGroupId: identificador numérico del grupo
- cityName: nombre de la ciudad a la que pertenece el grupo
- stock: cantidad de numeración disponible en stock
- countryCodeA3: identificador del país al que pertenece el grupo
- areaCode: prefijo telefónico de la numeración del grupo
- setup100: precio de alta de la numeración del grupo (multiplicada por 100)
- monthly100: precio mensual de la numeración del grupo (multiplicada por 100)
- regulationRequirement: indica si existe regulación para el grupo de numeración. Si una dirección es necesario, la propiedad addressType tendrá los siguientes valores:
- WORLDWIDE: es necesario indicar una dirección en cualquier país
- NATIONAL: es necesario indicar una dirección en el país del grupo de numeración
- LOCAL: es necesario indicar una dirección en la zona geográfica del grupo
- Si además es necesario aportar una prueba para la dirección, se indicará en el campo proofRequired
- available: indica si la numeración está disponible
- description: descripción de la ciudad y prefijo
buyDID – POST
Realiza la compra de un número de un grupo determinado
permisos:
- Administrador
parámetros:
- countryId: identificador countryCodeA3 del país del que se quieren obtener los estados (devuelto por el método getDIDCountries)
- type: tipo de la numeración. Uno de los siguientes valores:
- GEOGRAPHIC: mostrar sólo países con numeración geográfica
- TOLL_FREE: mostrar sólo países con numeración de coste gratuito para el llamante
- NATIONAL: mostrar sólo países con numeración nacional
- MOBILE: mostrar sólo países con numeración móvil
- SHARED_COST: mostrar sólo países con numeración de coste compartido
- stateId: si el país tiene estados, uno de los identificadores devueltos por el método getDIDStates
- didGroupId: identificador del grupo obtenido del método getDIDGroups
valores devueltos:
- Devuelve el identificador numérico del DID adquirido.
cancelDID – POST
Da de baja en la cuenta un número de teléfono.
permisos:
- Administrador
parámetros:
- didId: identificador numérico del DID (devuelto por buyDID o por getDIDs)
valores devueltos:
- Devuelve OK en caso de éxito o un error 500 en caso de fallo.
Números personales
assignDID – POST
Asigna un número a un usuario para uso personal
permisos:
- Administrador
parámetros:
- userId: identificador del usuario
- did: número en formato E164 (sin el símbolo +)
valores devueltos:a
- Devuelve OK en caso de éxito o un error 500 en caso de fallo.
unAssignDID – POST
Desasigna un número personal al usuario que lo tuviese asignado
permisos:
- Administrador
parámetros:
- did: número en formato E164 (sin el símbolo +)
valores devueltos:
- Devuelve el código 200 en caso de éxito o un error 500 en caso de fallo.
Presencia
getNotifications – GET
Obtiene información sobre el estado de un usuario
permisos:
- Usuario
parámetros:
Ninguno
valores devueltos:
- presenceStatus: el estado de presencia actual del usuario
changePresenceStatus – POST
Cambia el estado de presencia de un usuario
permisos:
- Usuario
parámetros:
- userId: id del usuario al que cambiar la presencia
- status: el estado nuevo a asignar al usuario (online/away/dnd/offline)
valores devueltos:
- Devuelve el código 200 en caso de éxito o un error 500 en caso de fallo.
Llamadas
makeCall – POST
Realiza una llamada entre un usuario y el número que se especifique
permisos:
- Usuario
parámetros:
- number: número de destino a llamar
- callerId: identificador de llamada a utilizar
- v: se ha indicar «2.0» para utilizar la versión 2 del backend
valores devueltos:
- Devuelve el código 200 en caso de éxito o un error 500 en caso de fallo.
isOnCall – GET
Comprueba si un usuario está en una llamada
permisos:
- Usuario
parámetros:
- Ninguno
valores devueltos:
- Devuelve el código 200 en caso de éxito o un error 500 en caso de fallo.
- uuid: identificador único de la llamada en curso
transferCall – POST
Realiza una transferencia atendida de una llamada en curso a otro usuario
permisos:
- Usuario
parámetros:
- uuid: identificador de la llamada a transferir
- to: número de extensión del usuario al que se desea transferir la llamada
valores devueltos:
- Devuelve el código 200 en caso de éxito o un error 500 en caso de fallo.
revertTransfer – POST
Cancela una transferencia en curso y devuelve la llamada al llamante original
permisos:
- Usuario
parámetros:
- uuid: identificador de la llamada en la que cancelar la transferencia
valores devueltos:
- Devuelve el código 200 en caso de éxito o un error 500 en caso de fallo.
hangupCall – POST
Cuelga una llamada en curso
permisos:
- Usuario
parámetros:
- uuid: identificador de la llamada a colgar
valores devueltos:
- Devuelve el código 200 en caso de éxito o un error 500 en caso de fallo.
getCallsPost – POST
Obtiene el listado de llamadas de un usuario
permisos:
- Usuario
parámetros:
- userId: identificador del usuario del que obtener las llamadas. Si es 0, se obtendrá de todos los usuarios. Si es R$idgrupo, obtendrá las llamadas de un grupo en concreto
- searchTerm: término de búsqueda para filtrar las llmadas
- fechaInicio: filtrado por fecha de inicio en formato YYYY-MM-DD
- fechaFin: filtrado por fecha de fin en formato YYYY-MM-DD
- exportacion: si se desea exportar el listado en otro formato se puede indicar con este parámetro (pdf/csv/zip)
- tipo: filtrado por tipo de llamada (incoming/outgoing/internal). Si es vacío es obtendrán todo tipo de llamadas.
- pagina: obtiene la siguiente página de resultados
- callId: Filtra las llamadas por su identificador, este se puede obtener al usar por ejemplo la integración con WebHooks.
valores devueltos:
- Devuelve el código 200 en caso de éxito o un error 500 en caso de fallo. Los valores devueltos en un JSON son los siguientes:
- llamadas: array de objetos JSON con la siguientes parámetros:
- Id: identificador de la llamada
- Cost: coste de la llamada
- Callerid: identificador del llamante o llamado
- Callid: identificador SIP de la llamada
- Date: fecha y hora de la llamada
- Direction: tipo de llamada (Incoming/Outgoing/Internal)
- Disposition: estado en el que quedó la llamada (not-available si el usuario no estaba disponible, noanswer si no fue atendida, cancel si la canceló quién la originó, call-limit si el llamado tenía limitación de llamadas simultáneas, busy si el llamado estaba ocupado, answer si la llamada fue respondida)
- Src: número del llamante
- Dst: número del llamado
- Duration: duración total de la llamada en segundos
- Recorded: 1/0 dependiendo de si la llamada fue grabada
- Searchable: etiquetas añadidas a la llamada separadas por el caracter |
- Transcription: en caso de tener habilitada la transcripción de llamadas a texto, el texto correspondiente
- WhoHanged: indica quién colgó la llamada (caller/callee)
- callerIdSrc: identificador del llamante con nombre si ha podido encontrase el número en algún sistema de contactos (CRM, agenda, etc.)
- callerIdDst: identificador del llamado con nombre si ha podido encontrase el número en algún sistema de contactos (CRM, agenda, etc.)
- ringGroup: nombre del grupo al que pertenece la llamada
- subCalls: array de objetos JSON con cada una de las subllamadas que comprende la llamada principal. Cada uno tiene las siguiente propiedades:
- Id: identificador de la subllamada
- Cost: coste de la subllamada
- Called: número al que se llamó en la subllamada
- CalledType: indica el medio por el cual se realizó la subllamada (sip/voicemail/external/sip-mobile/api/callback/callback-direct/c2c/outcallcomp)
- Date: fecha y hora de la subllamada
- Direction: tipo de subllamada (incoming/outgoing/internal)
- Disposition: estado en el que quedó la subllamada (not-available si el usuario no estaba disponible, noanswer si no fue atendida, cancel si la canceló quién la originó, call-limit si el llamado tenía limitación de llamadas simultáneas, busy si el llamado estaba ocupado, answer si la llamada fue respondida)
- Duration: duración de la subllamada
- KenkeniSrcUsersId: si la subllamada fue originada por un usuario, indica el id del usuario
- KenkeniDstUsersId: si un usuario era el destinatario de una subllamada, indica el id del usuario
- Transfered: si la llamada fue transferida indica el transferido, transfiriente y destino en los campos transferor, transferee y target.
getCallRecord – GET
Obtiene la grabación de una llamada
permisos:
- Administrador
parámetros:
- callId: identificador de la llamada
valores devueltos:
- Devuelve el código 200 en caso de éxito o un error 500 en caso de fallo. Devuelve en el contenido la grabación de la llamada en formato FLAC.
Buzones de voz
modifyUsersVoiceMail – POST
Modifica que usuarios tienen acceso al contestador automático de un grupo
permisos:
- Administrador
parámetros:
- id: identificador del grupo para el cual se modificará qué usuarios tienen permiso de acceso al contestador automático
- users: array de ids de usuarios que tienen acceso al contestador automático
valores devueltos:
- Devuelve el código 200 en caso de éxito o un error 500 en caso de fallo.
toggleVoiceMail – POST
Activa o desactiva el buzón de voz de un usuario
permisos:
- Administrador o el propio usuario (restringido a sus propios datos)
parámetros:
- kenkeniUserId: identificador del usuario para el cual se cambiará el estado del buzón de voz
- numExt: número de extensión del usuario
valores devueltos:
- Devuelve el código 200 en caso de éxito o un error 500 en caso de fallo.
saveVoiceMailPin – POST
Modifica el PIN de acceso al buzón de voz de un usuario
permisos:
- Administrador o el propio usuario (restringido a sus propios datos)
parámetros:
- kenkeniUserId: identificador del usuario para el cual se cambiará el estado del buzón de voz
- numExt: número de extensión del usuario
- pin: nuevo PIN a asignar al buzón de voz del usuario
valores devueltos:
- Devuelve el código 200 en caso de éxito o un error 500 en caso de fallo.
addToVoicemail – POST
Asigna permiso de acceso al contestador de un grupo a un usuario
permisos:
- Administrador
parámetros:
- userId: identificador del usuario para el cual se añadirá acceso al contestador del grupo
- ringGroupId: identificador del grupo
valores devueltos:
- Devuelve el código 200 en caso de éxito o un error 500 en caso de fallo.
getVoiceMailMessages – POST
Obtiene un listado de los mensajes de un buzón de voz del usuario o del contestador general de un grupo
permisos:
- Usuario
parámetros:
- fechaInicio: filtro por fecha de inicio para búsqueda de mensajes en formato YYYY-MM-DD
- fechaFin: filtro por fecha de de fin para búsqueda de mensajes en formato YYYY-MM-DD
- folder: carpeta en la que se buscarán los mensajes, bien los nuevos o los archivados (inbox/old)
- general: si es 0 se devolverán los mensajes del buzón de voz del usuario. Si se pasa el nombre del grupo, se devolverán los mensajes del contestador correspondiente
- pagina: número de página a partir de la cual se devolverán los resultados
valores devueltos:
- Devuelve el código 200 en caso de éxito o un error 500 en caso de fallo. Los valores devueltos en un JSON son los siguientes:
- filasPorPagina: número de valores devueltos
- mensajes: array de objetos con las siguientes propiedades:
- callerid: nombre del llamante que dejó el mensaje en el buzón de voz y número. En formato «Nombre <número>»
- date: fecha del mensaje en formato UNIX timestamp
- id: identificador del mensaje
- tags: etiquetas
- totalMensajes: número total de mensajes existentes con los filtros seleccionados
deleteVoiceMailMessages – POST
Borra un mensaje de un buzón de voz o contestador general
permisos:
- Usuario
parámetros:
- id: identificador del mensaje
- general: si el mensaje está en el buzón de voz del usuario se ha de pasar vacío y si está en el contestador de un grupo, el nombre del grupo
valores devueltos:
- Devuelve el código 200 en caso de éxito o un error 500 en caso de fallo.
playVoiceMailMessage – GET
Obtiene el audio de un mensaje de buzón de voz
permisos:
- Usuario
parámetros:
- token: token del usuario
- messageId: identificador del mensaje
- download: 0 o 1 dependiendo de si se quiere reproducir o descargar
- buzon: si el mensaje está en el buzón de voz del usuario se ha de pasar vacío y si está en el contestador de un grupo, el nombre del grupo
valores devueltos:
- Devuelve el código 200 en caso de éxito o un error 500 en caso de fallo.
archiveVoiceMailMessage – POST
Archiva un mensaje en la carpeta de mensajes viejos
permisos:
- Usuario
parámetros:
- id: identificador del mensaje
- buzon: si el mensaje está en el buzón de voz del usuario se ha de pasar vacío y si está en el contestador de un grupo, el nombre del grupo
valores devueltos:
- Devuelve el código 200 en caso de éxito o un error 500 en caso de fallo.
Configuración
getRingGroups – GET
Devuelve un listado de los grupos
permisos:
- Administrador
parámetros:
- Ninguno
valores devueltos:
- Devuelve el código 200 en caso de éxito o un error 500 en caso de fallo. Los valores devueltos en un JSON son los siguientes:
- Id: identificador del grupo
- Name: nombre del grupo
- Announce: nombre de la locución periódica que se reproduce en la cola de «manténgase a la espera»
- AnnounceTime: cada cuánto tiempo se reproduce la locución de «manténgase a la espera»
- Dids: array de números asignados al grupo
- GroupOutgoingType: qué identificador de llamada se utiliza en las llamadas salientes desde este grupo cuando provienen de una llamada entrante: caller-number (número del llamante), fixed-number (un DID en concreto), called-did (el DID al que se llamó).
- GroupOutgoingCallerId: si GroupOutgoingType es fixed-number, indica cuál es el DID que se utilizará
- LocutionEnabled: indica si el grupo tiene el whisper activado o no
- LocutionId: si la locución está activada, el identificador del sonido
- Members: array de objetos con los usuarios que pertenecen al grupo. Tienen las siguientes propiedades:
- id: id de usuario
- type: el valor user
- MissedCallsEmail: el email al que se enviarán las notificaciones de llamadas perdidas
- Policy: política de recepción de llamadas de la cola (ringall/rrmemory/leastrecent/fewestcalls/random)
- Priority: prioridad de la cola (low/medium/high/critical)
- PublicNumberTone: indica si se reproduce música en espera o tono de ringing cuando se recibe una llamada (moh/ringnoanswer)
- RecordIncoming: indica si se graban las llamadas entrantes o no (true/false)
- Tag: etiqueta del grupo
- TimeZone: zona horaria del grupo
- Timeout: tiempo máximo de espera en la cola
getRingGroup – GET
Obtiene información sobre un grupo
permisos:
- Administrador
parámetros:
- id: identificador del grupo
valores devueltos:
- Devuelve el código 200 en caso de éxito o un error 500 en caso de fallo. Los valores devueltos en un JSON son los siguientes:
- Id: identificador del grupo
- Name: nombre del grupo
- Announce: nombre de la locución periódica que se reproduce en la cola de «manténgase a la espera»
- AnnounceTime: cada cuánto tiempo se reproduce la locución de «manténgase a la espera»
- Dids: array de números asignados al grupo
- GroupOutgoingType: qué identificador de llamada se utiliza en las llamadas salientes desde este grupo cuando provienen de una llamada entrante: caller-number (número del llamante), fixed-number (un DID en concreto), called-did (el DID al que se llamó).
- GroupOutgoingCallerId: si GroupOutgoingType es fixed-number, indica cuál es el DID que se utilizará
- LocutionEnabled: indica si el grupo tiene el whisper activado o no
- LocutionId: si la locución está activada, el identificador del sonido
- Members: array de objetos con los usuarios que pertenecen al grupo. Tienen las siguientes propiedades:
- id: id de usuario
- type: el valor user
- MissedCallsEmail: el email al que se enviarán las notificaciones de llamadas perdidas
- Policy: política de recepción de llamadas de la cola (ringall/rrmemory/leastrecent/fewestcalls/random)
- Priority: prioridad de la cola (low/medium/high/critical)
- PublicNumberTone: indica si se reproduce música en espera o tono de ringing cuando se recibe una llamada (moh/ringnoanswer)
- RecordIncoming: indica si se graban las llamadas entrantes o no (true/false)
- Tag: etiqueta del grupo
- TimeZone: zona horaria del grupo
- Timeout: tiempo máximo de espera en la cola
modifyRingGroup – POST
Modifica los datos de un grupo
permisos:
- Administrador
parámetros:
- id: identificador del grupo
- name: nuevo nombre del grupo
- members: array de usuarios que pertenecen al grupo. Cada usuario tienen los siguientes parámetros:
- id: id del usuario
- type: el valor «user»
- policy: política de la cola (ringall/rrmemory/leastrecent/fewestcalls/random)
- priority: prioridad de la cola (low/medium/high/critical)
- timeout: tiempo máximo de espera en la cola
valores devueltos:
- Devuelve el código 200 en caso de éxito o un error 500 en caso de fallo.
addToRingGroup – POST
Añade un usuario a un grupo
permisos:
- Administrador
parámetros:
- userId: id del usuario
- ringGroupId: id del grupo al que añadir el usuario
valores devueltos:
- Devuelve el código 200 en caso de éxito o un error 500 en caso de fallo
getTimeSchedules – POST
Obtiene los horarios y festivos de un grupo
permisos:
- Administrador
parámetros:
- kenkeniGroupId: id del usuario
valores devueltos:
- Devuelve el código 200 en caso de éxito o un error 500 en caso de fallo. Los valores devueltos en un JSON son los siguientes:
- timeSchedules: array de objetos con las siguientes propiedades:
- Id: identificador del objeto
- Enabled: booleano indicando si está activado o no
- KenkeniRginGroupsId: identificador del grupo al que pertenece
- Logic: indica la lógica con la que se ha de tener en cuenta el horario o festivo (positive/negative)
- Date: null si es un rango horario o la fecha en caso de ser un festivo
- HourRange: el rango horario en formato «HH:MM-HH:MM»
- Perodicy: indica la periodicidad con la que se repite. Tiene las siguientes propiedades:
- type: puede ser weekly para repeticiones semanales de horarios o yearly para festivos
- days: en caso de ser weekly es un cadena con los días en los que se repite el horario (ej: «Mon,Tue,Wed,Thu,Fri»)
- Section: indica si es un horario o un festivo (schedules/closed)
- timezone: zona horaria del grupo
modifyTimeSchedule – POST
Modifica los horarios de apertura y festivos de un grupo
permisos:
- Administrador
parámetros:
- id: id del horario/festivo
- name: nombre del objeto horario/festivo
- startHour: hora de inicio en formato «HH:MM»
- endHour: hora de finalización en formato «HH:MM»
- periodicy: objeto con indicando la periodicidad con la que se repite. Tiene las siguientes propiedades:
- type: puede ser weekly para repeticiones semanales de horarios o yearly para festivos
- days: en caso de ser weekly es un cadena con los días en los que se repite el horario (ej: «Mon,Tue,Wed,Thu,Fri»)
valores devueltos:
- Devuelve el código 200 en caso de éxito o un error 500 en caso de fallo.
switchTimeSchedule – POST
Modifica los horarios de apertura y festivos de un grupo
permisos:
- Administrador
parámetros:
- id: id del horario/festivo
- enabled: boleano indicando si se activa o desactiva el horario/festivo
valores devueltos:
- Devuelve el código 200 en caso de éxito o un error 500 en caso de fallo.
addTimeSchedule – POST
Añade un nuevo horario/festivo
permisos:
- Administrador
parámetros:
- kenkeniGroupId: id del horario/festivo
- name: nombre del horario/festivo
- section: indica si es un horario o un festivo (schedules/closed)
- startHour: si es un horario, la hora de inicio en formato «HH:MM»
- endHour: si es un horario, la hora de finalización en formato «HH:MM»
- logic: indica la lógica con la que se ha de tener en cuenta el horario o festivo (positive/negative)
- date: si es un festivo, la fecha del festivo en formato «YYYY-MM-DD 00:00:00»
- periodicy: objeto con indicando la periodicidad con la que se repite. Tiene las siguientes propiedades:
- type: puede ser weekly para repeticiones semanales de horarios o yearly para festivos
- days: en caso de ser weekly es un cadena con los días en los que se repite el horario (ej: «Mon,Tue,Wed,Thu,Fri»)
valores devueltos:
- Devuelve el código 200 en caso de éxito o un error 500 en caso de fallo.
deleteTimeSchedule – POST
Elimina un horario/festivo
permisos:
- Administrador
parámetros:
- id: id del horario/festivo
valores devueltos:
- Devuelve el código 200 en caso de éxito o un error 500 en caso de fallo.
changeTimezone – POST
Modifica la zona horaria de un grupo
permisos:
- Administrador
parámetros:
- kenkeniRingGroupId: identificador del grupo
- timezone: nueva zona horaria
valores devueltos:
- Devuelve el código 200 en caso de éxito o un error 500 en caso de fallo.
uploadWaitMusic – POST
Cambia la música de espera personalizada de un grupo por una personalizada.
permisos:
- Administrador
parámetros:
- kenkeniRingGroupId: identificador del grupo
valores devueltos:
- Devuelve el código 200 en caso de éxito o un error 500 en caso de fallo.
getMusicOnHold – GET
Obtiene las músicas de espera disponibles y la seleccionada.
permisos:
- Administrador
parámetros:
- kenkeniRingGroupId: identificador del grupo
valores devueltos:
- Devuelve el código 200 en caso de éxito o un error 500 en caso de fallo. Los valores devueltos en un JSON son los siguientes:
- fileName: nombre de la música de espera seleccionada para el grupo
- publicNumberTone: indica si está activada la música en espera en el grupo o sonará tono de ringing al recibir una llamada (moh/ringnoanswer)
- musics: array de objetos con las siguientes propiedades indicando las músicas en espera disponibles:
- mCategory: valor «moh»
- mPath: nombre de la música en espera
changeMusicOnHold – POST
Modifica la música en espera de un grupo
permisos:
- Administrador
parámetros:
- kenkeniRingGroupId: identificador del grupo
- fileName: nombre de la música en espera a configurar para el grupo
valores devueltos:
- Devuelve el código 200 en caso de éxito o un error 500 en caso de fallo.
modifyPublicNumberTone – POST
Cambia el comportamiento al recibir una llamada, bien sonando música en espera o tonos de llamada.
permisos:
- Administrador
parámetros:
- kenkeniRingGroupId: identificador del grupo
- newValue: moh si se debe reproducir música en espera o ringnoanswer para tonos de llamada
valores devueltos:
- Devuelve el código 200 en caso de éxito o un error 500 en caso de fallo.
getLocutions – GET
Obtiene las locuciones configuradas para un grupo.
permisos:
- Administrador
parámetros:
- kenkeniRingGroupId: identificador del grupo
- v: el valor «2.0»
valores devueltos:
- Devuelve el código 200 en caso de éxito o un error 500 en caso de fallo. Devuelve un array de objetos JSON con las propiedades siguientes:
- Id: id de locución
- Enabled: indica si la locución está activada o no
- FileName: nombre de la locución seleccionada
- LocutionType: cadena con indicando la función de la locución y el grupo al que pertence en el formato «función_nombregrupo». Las distintas funciones son las siguientes:
- answer-announce: locución de whisper del grupo
- welcome: locución de bienvenida
- busy: locución de ocupado
- voicemail: locución del contestador del grupo
- offhours: locución de fuera de horario del grupo
- closed: locución de festivos
- announce: locución de «manténgase a la espera» en la cola
modifyLocution – POST
Modifica una locución de un tipo determinado para el grupo seleccionado.
permisos:
- Administrador
parámetros:
- kenkeniGroupId: identificador del grupo
- locutionType: cadena con indicando la función de la locución. Las distintas funciones son las siguientes:
- answer-announce: locución de whisper del grupo
- welcome: locución de bienvenida
- busy: locución de ocupado
- voicemail: locución del contestador del grupo
- offhours: locución de fuera de horario del grupo
- closed: locución de festivos
- announce: locución de «manténgase a la espera» en la cola
- fileName: nombre del audio de la locución
- enabled: booleano indicando si está activada o no la locución
valores devueltos:
- Devuelve el código 200 en caso de éxito o un error 500 en caso de fallo.
getVoiceMail – GET
Devuelve la configuración del contestador automático de un grupo
permisos:
- Administrador
parámetros:
- kenkeniGroupId: identificador del grupo del que se desea obtener la configuración
valores devueltos:
- Devuelve el código 200 en caso de éxito o un error 500 en caso de fallo. Devuelve un objeto JSON con las propiedades siguientes:
- voiceMail: objeto con las siguiente propiedades:
- Id: identificador del contestador automático
- Enabled: booleano indicando si está activado o no
- Email: dirección de email a la que se envían los mensajes del contestador
- Users: array de objetos con los ids de usuarios que tienen acceso a este contestador
modifyVoiceMail – POST
Modifica la configuración del contestador automático de un grupo.
permisos:
- Administrador
parámetros:
- id: identificador del grupo del que se desea modificar la configuración del contestador
- email: dirección de email a la que se envían los mensajes del contestador
- enabled: booleano indicando si está activado o no
valores devueltos:
- Devuelve el código 200 en caso de éxito o un error 500 en caso de fallo.
modifyUsersVoiceMail – POST
Modifica la configuración de qué usuarios tienen acceso al contestador automático de un grupo.
permisos:
- Administrador
parámetros:
- id: identificador del grupo del que se desea modificar la configuración del contestador
- users: array de objetos los ids de usuarios que tienen acceso a este contestador. Cada elemento del array es un objeto con la propiedad id indicando el id del usuario
valores devueltos:
- Devuelve el código 200 en caso de éxito o un error 500 en caso de fallo.
getCallRecordingConfig – GET
Obtiene la configuración de grabación de llamadas del grupo.
permisos:
- Administrador
parámetros:
- kenkeniGroupId: identificador del grupo del que se desea obtener la configuración de grabación
valores devueltos:
- Devuelve el código 200 en caso de éxito o un error 500 en caso de fallo. Devuelve un objeto JSON con las propiedades siguientes:
- recordIncoming: boleano indicando si está activada la grabación de llamadas entrantes
modifyCallRecordingConfig – POST
Modifica la configuración de grabación de llamadas del grupo
permisos:
- Administrador
parámetros:
- kenkeniGroupId: identificador del grupo del que se desea modificar la configuración de grabación
- incoming: boleano indicando si quiere activar la grabación de llamadas entrantes
valores devueltos:
- Devuelve el código 200 en caso de éxito o un error 500 en caso de fallo.
getMissedCallsNotification – GET
Obtiene la configuración de notificación de llamadas perdidas de un grupo.
permisos:
- Administrador
parámetros:
- kenkeniGroupId: identificador del grupo del que se desea obtener la configuración de notificación de llamadas perdidas
valores devueltos:
- Devuelve el código 200 en caso de éxito o un error 500 en caso de fallo. Devuelve un objeto JSON con las propiedades siguientes:
- missedCallsNotificacion: null si está desactivada o una cadena con el email donde se envían las notificaciones.
modifyMissedCallNotification – POST
Modifica la configuración de notificación de llamadas perdidas de un grupo.
permisos:
- Administrador
parámetros:
- kenkeniGroupId: identificador del grupo del que se desea obtener la configuración de notificación de llamadas perdidas
- enable: booleano indicando si se activa el envío de notificaciones de llamadas perdidas para el grupo
- email: dirección de email a la que se enviarán las notificaciones de llamadas perdidas
valores devueltos:
- Devuelve el código 200 en caso de éxito o un error 500 en caso de fallo.
Locuciones
getSounds – GET
Obtiene el listado de la biblioteca de sonidos
permisos:
- Administrador
parámetros:
- Ninguno
valores devueltos:
- Devuelve el código 200 en caso de éxito o un error 500 en caso de fallo. Devuelve un objeto JSON con las propiedades siguientes:
- sounds: array de objetos con las siguientes propiedades:
- mCategory: general si el sonido es predefinido o personal si es uno definido por el usuario
- mPath: nombre del sonido
uploadSound – POST
Obtiene el listado de la biblioteca de sonidos
permisos:
- Administrador
parámetros:
- El fichero de audio en formato wav o mp3 subido en formato FormData
valores devueltos:
- Devuelve el código 200 en caso de éxito o un error 500 en caso de fallo.
getVoices – GET
Obtiene el listado de voces sintéticas disponibles
permisos:
- Administrador
parámetros:
- locale: el idioma de las voces que se quieren obtener (es_ES/en_US)
valores devueltos:
- Devuelve el código 200 en caso de éxito o un error 500 en caso de fallo. Devuelve un array de objetos JSON con las propiedades siguientes:
- Description: descripción del tipo de voz
- Id: identificador de la voz
setVoiceText – POST
Genera una locución a partir de voz sintetizada
permisos:
- Administrador
parámetros:
- message: texto a generar
- voiceId: identificador de la voz
- fileName: nombre que se le asignará a la locución
- token: token de autenticación
valores devueltos:
- Devuelve el código 200 en caso de éxito o un error 500 en caso de fallo.
Informes
getKPIs – GET
Obtiene un informe filtrado por numeración, usuarios o grupos
permisos:
- Administrador
parámetros:
- tipo: 1 para llamadas entrantes, 3 para llamadas salientes y 4 para actividad de un usuario
- dataset: si se quiere obtener para un usuario en concreto, el id del usuario. Si se quiere obtener para un grupo, R<idgrupo>. Si se quiere un informe de todos los usuarios se debe pasar un valor vacío.
- fechaInicio: filtro por fecha de inicio
- fechaFin: filtro por fecha de finalización
- interval: periodo por el cual se consolidarán los datos (minutes/hours/days/weeks/months)
- serviceLevel: entero indicando cuál es el nivel de servicio para el cual se desea obtener el informe
valores devueltos:
- Devuelve el código 200 en caso de éxito o un error 500 en caso de fallo. Devuelve un objeto JSON con las propiedades siguientes:
- intervalos: array de objetos con las fechas de inicio y fin de cada intervalo con las siguientes propiedades:
- inicio: fecha de inicio del intervalo en formato UNIX timestamp.
- fin: fecha de finalización del intervalo en formato UNIX timestamp.
- abandonRate: array con los valores del porcentaje de abandono (porcentaje de llamantes que cuelgan antes de ser atendidos).
- answeredCalls: array con los valores de llamadas respondidas (número de llamadas respondidas).
- avgAnsweredCalls: array con los valores del porcentaje de llamadas respondidas.
- avgDuration: array con los valores de duración media de la llamadas (en minutos)
- avgHandleTime: array con los valores de la media de tiempo con agente (en minutos)
- blocked: array con los valores de número de llamadas bloqueadas.
- callsCost: array con los costes de llamadas (en EUR)
- notAnsweredCalls: array con los valores de llamadas no respondidas.
- serviceLevel: array con los valores de porcentaje de llamadas atendidas antes del nivel de servicio especificado en los filtros
- timeInQueue: array con los valores de tiempo de llamante esperando en la cola antes de ser atendidos (en minutos).
- totalCalls: array con los valores del número total de llamadas recibidas
General
getLangs – GET
Obtiene el listado de idiomas disponibles en el sistema
permisos:
- Administrador
parámetros:
- Ninguno
valores devueltos:
- Devuelve el código 200 en caso de éxito o un error 500 en caso de fallo. Devuelve un array de objetos JSON con las propiedades siguientes:
- code: identificador del idioma
- description: descripción del idioma
getCallerIds – GET
Obtiene el listado de identificadores de llamada permitidos
permisos:
- Administrador
parámetros:
- userid: identificador del usuario para el cual se quieren obtener los identificadores de llamada permitidos o vacío si se quieren obtener todos
valores devueltos:
- Devuelve el código 200 en caso de éxito o un error 500 en caso de fallo. Devuelve un array de objetos JSON con las propiedades siguientes:
- type: tipo de identificador de llamada (main/personal/mobile)
- cli: identificador de llamada en formato E164
- description: identificador de llamada sin el prefijo del país por defecto de la cuenta