API mdpay omnisuite

De VIVAitwiki
Ir a la navegaciónIr a la búsqueda

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.

{
  "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.

{
  "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"
}