Diferencia entre revisiones de «API mdpay omnisuite»
De VIVAitwiki
Ir a la navegaciónIr a la búsqueda (Página creada con «== API Omnisuite para mdpay == === Introducción === En este documento definimos las invocaciones mínimas a realizar a endpoints de Omnisuite para activar el pago asistid…») |
|||
| (No se muestran 15 ediciones intermedias del mismo usuario) | |||
| Línea 7: | Línea 7: | ||
* Obtener UniqueId de la llamada del usuario | * Obtener UniqueId de la llamada del usuario | ||
* Enviar tonos DTMF a esa llamada | * Enviar tonos DTMF a esa llamada | ||
| + | <br> | ||
=== Autenticación === | === Autenticación === | ||
| Línea 12: | Línea 13: | ||
* Header: x-api-key | * Header: x-api-key | ||
* Valor: El API KEY de usuario de omnisuite proporcionado. | * Valor: El API KEY de usuario de omnisuite proporcionado. | ||
| + | <br> | ||
=== Endpoints === | === Endpoints === | ||
| Línea 17: | Línea 19: | ||
==== Obtener ID de un usuario ==== | ==== Obtener ID de un usuario ==== | ||
Recupera el identificador de un usuario específico basado en filtros. | Recupera el identificador de un usuario específico basado en filtros. | ||
| + | <br> | ||
| + | |||
* Método: GET | * Método: GET | ||
* URL: https://omnisuite.cliente.com/users | * URL: https://omnisuite.cliente.com/users | ||
* Parámetros de consulta (Query Params): | * Parámetros de consulta (Query Params): | ||
| − | * fields: Especifica los campos a retornar (ej. id). | + | ** fields: Especifica los campos a retornar (ej. id). |
| − | * filter: Criterio de búsqueda (ej. jac). | + | ** filter: Criterio de búsqueda (ej. jac). |
| − | * sort: Orden de los resultados (ej. id). | + | ** sort: Orden de los resultados (ej. id). |
Ejemplo de solicitud: | Ejemplo de solicitud: | ||
| − | + | <pre style="background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;"> | |
| + | GET https://omnisuite.cliente.com//users?fields=id&filter=jac&sort=id | ||
| + | </pre> | ||
| + | <br> | ||
| + | |||
| + | Ejemplo de respuesta: | ||
| + | <pre style="background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;"> | ||
| + | { | ||
| + | "count": 1, | ||
| + | "rows": [ | ||
| + | { | ||
| + | "id": 5 | ||
| + | } | ||
| + | ] | ||
| + | } | ||
| + | </pre> | ||
| + | <br> | ||
==== Consultar llamadas de un usuario ==== | ==== Consultar llamadas de un usuario ==== | ||
| + | Obtiene el registro o estado de las llamadas asociadas a un ID de usuario. | ||
| + | <br> | ||
| − | + | * Método: POST | |
| − | |||
* URL: https://omnisuite.cliente.com/webbar/calls | * URL: https://omnisuite.cliente.com/webbar/calls | ||
* Cuerpo de la petición (JSON): | * Cuerpo de la petición (JSON): | ||
| − | + | <pre style="background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;"> | |
| − | + | { | |
| − | + | "userId": 5 | |
| + | } | ||
| + | </pre> | ||
| + | Ejemplo de respuesta | ||
| + | <pre style="background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;"> | ||
| + | { | ||
| + | "count": 1, | ||
| + | "rows": [ | ||
| + | { | ||
| + | "abandoned": false, | ||
| + | "accountcode": "", | ||
| + | "answertime": "2026-02-10 14:53:54", | ||
| + | "answered": true, | ||
| + | "billableseconds": 0, | ||
| + | "channel": "SIP/Trunk_PrepoCopr0-00000022", | ||
| + | "callerid": "", | ||
| + | "calleridname": "/50002", | ||
| + | "calleridnum": "50002", | ||
| + | "connectedlinename": "JAC", | ||
| + | "connectedlinenum": "1004", | ||
| + | "context": "from-voip-provider", | ||
| + | "destination": "", | ||
| + | "destinationchannel": "SIP/jac-00000023", | ||
| + | "disposition": "ANSWERED", | ||
| + | "duration": 0, | ||
| + | "endtime": null, | ||
| + | "exten": "10000", | ||
| + | "holdtime": 6, | ||
| + | "lastapplication": "queue", | ||
| + | "lastdata": "Desarrollo,xX,,,300,,,,,", | ||
| + | "linkedid": "1770731628.77", | ||
| + | "membername": "jac", | ||
| + | "monitor": true, | ||
| + | "monitors": [ | ||
| + | { | ||
| + | "filename": "/var/spool/asterisk/monitor/1770731628.76.wav", | ||
| + | "createdAt": "2026-02-10 14:53:54", | ||
| + | "mixmonitorid": "", | ||
| + | "status": "rec" | ||
| + | } | ||
| + | ], | ||
| + | "monitorFilename": "/var/spool/asterisk/monitor/1770731628.76.wav", | ||
| + | "mohtime": 0, | ||
| + | "queue": "Desarrollo", | ||
| + | "sipcalllinkedid": "23f0e8b840c85fd057d7474a5fc68844@172.25.129.174:0", | ||
| + | "sipcalluniqueid": "067515e4161a16e9594cd0aa6ea74fed@172.25.128.251:5060", | ||
| + | "starttime": "2026-02-10 14:53:48", | ||
| + | "tag": null, | ||
| + | "type": "inbound", | ||
| + | "uniqueid": "1770731628.76", | ||
| + | "unmanaged": false, | ||
| + | "UserId": 5, | ||
| + | "routeid": "287" | ||
| + | } | ||
| + | ] | ||
| + | } | ||
| + | </pre> | ||
| + | <br> | ||
==== Enviar DTMF a una llamada ==== | ==== Enviar DTMF a una llamada ==== | ||
Permite enviar una secuencia de dígitos DTMF a una llamada activa. | Permite enviar una secuencia de dígitos DTMF a una llamada activa. | ||
| + | <br> | ||
* Método: POST | * Método: POST | ||
* URL: https://omnisuite.cliente.com/webbar/send-dtmf | * URL: https://omnisuite.cliente.com/webbar/send-dtmf | ||
* Cuerpo de la petición (JSON) | * Cuerpo de la petición (JSON) | ||
| − | + | <pre style="background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;"> | |
| − | + | { | |
| − | + | "digits": "###444*12345#", | |
| − | + | "duration": 100, | |
| − | + | "uniqueId": "1770732063.80", | |
| − | + | "userId": 5 | |
| + | } | ||
| + | </pre> | ||
| + | <br> | ||
El valor “duration” indica la duración del envío en ms (en el ejemplo anterior serían 100ms, que es el valor recomendado) | El valor “duration” indica la duración del envío en ms (en el ejemplo anterior serían 100ms, que es el valor recomendado) | ||
| + | |||
| + | Ejemplo de respuesta: | ||
| + | <pre style="background-color: #f6f8fa; border: 1px solid #d1d5da; padding: 1em; border-radius: 4px; width: fit-content; margin-left: 50px; font-family: 'Ubuntu Mono', 'Consolas', monospace; white-space: pre-wrap;"> | ||
| + | { | ||
| + | "error": false, | ||
| + | "message": "SendDTMF [###444*12345#] executed" | ||
| + | } | ||
| + | </pre> | ||
| + | <br> | ||
Revisión actual del 08:26 26 feb 2026
Sumario
1 API Omnisuite para mdpay
1.1 Introducción
En este documento definimos las invocaciones mínimas a realizar a endpoints de Omnisuite para activar el pago asistido Será necesario:
- Obtener Id de usuario
- Obtener UniqueId de la llamada del usuario
- Enviar tonos DTMF a esa llamada
1.2 Autenticación
Todas las peticiones deben incluir el siguiente encabezado de seguridad:
- Header: x-api-key
- Valor: El API KEY de usuario de omnisuite proporcionado.
1.3 Endpoints
1.3.1 Obtener ID de un usuario
Recupera el identificador de un usuario específico basado en filtros.
- Método: GET
- URL: https://omnisuite.cliente.com/users
- Parámetros de consulta (Query Params):
- fields: Especifica los campos a retornar (ej. id).
- filter: Criterio de búsqueda (ej. jac).
- sort: Orden de los resultados (ej. id).
Ejemplo de solicitud:
GET https://omnisuite.cliente.com//users?fields=id&filter=jac&sort=id
Ejemplo de respuesta:
{
"count": 1,
"rows": [
{
"id": 5
}
]
}
1.3.2 Consultar llamadas de un usuario
Obtiene el registro o estado de las llamadas asociadas a un ID de usuario.
- Método: POST
- URL: https://omnisuite.cliente.com/webbar/calls
- Cuerpo de la petición (JSON):
{
"userId": 5
}
Ejemplo de respuesta
{
"count": 1,
"rows": [
{
"abandoned": false,
"accountcode": "",
"answertime": "2026-02-10 14:53:54",
"answered": true,
"billableseconds": 0,
"channel": "SIP/Trunk_PrepoCopr0-00000022",
"callerid": "",
"calleridname": "/50002",
"calleridnum": "50002",
"connectedlinename": "JAC",
"connectedlinenum": "1004",
"context": "from-voip-provider",
"destination": "",
"destinationchannel": "SIP/jac-00000023",
"disposition": "ANSWERED",
"duration": 0,
"endtime": null,
"exten": "10000",
"holdtime": 6,
"lastapplication": "queue",
"lastdata": "Desarrollo,xX,,,300,,,,,",
"linkedid": "1770731628.77",
"membername": "jac",
"monitor": true,
"monitors": [
{
"filename": "/var/spool/asterisk/monitor/1770731628.76.wav",
"createdAt": "2026-02-10 14:53:54",
"mixmonitorid": "",
"status": "rec"
}
],
"monitorFilename": "/var/spool/asterisk/monitor/1770731628.76.wav",
"mohtime": 0,
"queue": "Desarrollo",
"sipcalllinkedid": "23f0e8b840c85fd057d7474a5fc68844@172.25.129.174:0",
"sipcalluniqueid": "067515e4161a16e9594cd0aa6ea74fed@172.25.128.251:5060",
"starttime": "2026-02-10 14:53:48",
"tag": null,
"type": "inbound",
"uniqueid": "1770731628.76",
"unmanaged": false,
"UserId": 5,
"routeid": "287"
}
]
}
1.3.3 Enviar DTMF a una llamada
Permite enviar una secuencia de dígitos DTMF a una llamada activa.
- Método: POST
- URL: https://omnisuite.cliente.com/webbar/send-dtmf
- Cuerpo de la petición (JSON)
{
"digits": "###444*12345#",
"duration": 100,
"uniqueId": "1770732063.80",
"userId": 5
}
El valor “duration” indica la duración del envío en ms (en el ejemplo anterior serían 100ms, que es el valor recomendado)
Ejemplo de respuesta:
{
"error": false,
"message": "SendDTMF [###444*12345#] executed"
}