Diferencia entre revisiones de «API mdpay omnisuite»

De VIVAitwiki
Ir a la navegaciónIr a la búsqueda
 
(No se muestran 11 ediciones intermedias del mismo usuario)
Línea 2: Línea 2:
  
 
=== Introducción ===
 
=== Introducción ===
En este documento definimos las invocaciones mínimas a realizar a endpoints de Omnisuite para activar el pago asistido
+
En este documento definimos las invocaciones mínimas a realizar a endpoints de Omnisuite para activar el pago asistido para una llamada.
 +
<br>
 +
 
 
Será necesario:
 
Será necesario:
 
* Obtener Id de usuario
 
* Obtener Id de usuario
Línea 16: Línea 18:
  
 
=== Endpoints ===
 
=== Endpoints ===
<br>
 
  
 
==== Obtener ID de un usuario ====
 
==== Obtener ID de un usuario ====
Línea 30: Línea 31:
  
 
Ejemplo de solicitud:
 
Ejemplo de solicitud:
GET https://omnisuite.cliente.com//users?fields=id&filter=jac&sort=id
+
<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>
 
<br>
  
 
Ejemplo de respuesta:
 
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": [
+
    "count": 1,
        {
+
    "rows": [
            "id": 5
+
        {
        }
+
            "id": 5
    ]
+
        }
}
+
    ]
 +
}
 +
</pre>
 
<br>
 
<br>
  
Línea 51: Línea 56:
 
* 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
+
{
}
+
  "userId": 5
 
+
}
 +
</pre>
  
 
Ejemplo de respuesta
 
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,
+
  "count": 1,
    "rows": [
+
  "rows": [
        {
+
      {
            "abandoned": false,
+
          "abandoned": false,
            "accountcode": "",
+
          "accountcode": "",
            "answertime": "2026-02-10 14:53:54",
+
          "answertime": "2026-02-10 14:53:54",
            "answered": true,
+
          "answered": true,
            "billableseconds": 0,
+
          "billableseconds": 0,
            "channel": "SIP/Trunk_PrepoCopr0-00000022",
+
          "channel": "SIP/Trunk_PrepoCopr0-00000022",
            "callerid": "",
+
          "callerid": "",
            "calleridname": "/50002",
+
          "calleridname": "/50002",
            "calleridnum": "50002",
+
          "calleridnum": "50002",
            "connectedlinename": "JAC",
+
          "connectedlinename": "JAC",
            "connectedlinenum": "1004",
+
          "connectedlinenum": "1004",
            "context": "from-voip-provider",
+
          "context": "from-voip-provider",
            "destination": "",
+
          "destination": "",
            "destinationchannel": "SIP/jac-00000023",
+
          "destinationchannel": "SIP/jac-00000023",
            "disposition": "ANSWERED",
+
          "disposition": "ANSWERED",
            "duration": 0,
+
          "duration": 0,
            "endtime": null,
+
          "endtime": null,
            "exten": "10000",
+
          "exten": "10000",
            "holdtime": 6,
+
          "holdtime": 6,
            "lastapplication": "queue",
+
          "lastapplication": "queue",
            "lastdata": "Desarrollo,xX,,,300,,,,,",
+
          "lastdata": "Desarrollo,xX,,,300,,,,,",
            "linkedid": "1770731628.77",
+
          "linkedid": "1770731628.77",
            "membername": "jac",
+
          "membername": "jac",
            "monitor": true,
+
          "monitor": true,
            "monitors": [
+
          "monitors": [
                {
+
              {
                    "filename": "/var/spool/asterisk/monitor/1770731628.76.wav",
+
                  "filename": "/var/spool/asterisk/monitor/1770731628.76.wav",
                    "createdAt": "2026-02-10 14:53:54",
+
                  "createdAt": "2026-02-10 14:53:54",
                    "mixmonitorid": "",
+
                  "mixmonitorid": "",
                    "status": "rec"
+
                  "status": "rec"
                }
+
              }
            ],
+
          ],
            "monitorFilename": "/var/spool/asterisk/monitor/1770731628.76.wav",
+
          "monitorFilename": "/var/spool/asterisk/monitor/1770731628.76.wav",
            "mohtime": 0,
+
          "mohtime": 0,
            "queue": "Desarrollo",
+
          "queue": "Desarrollo",
            "sipcalllinkedid": "23f0e8b840c85fd057d7474a5fc68844@172.25.129.174:0",
+
          "sipcalllinkedid": "23f0e8b840c85fd057d7474a5fc68844@172.25.129.174:0",
            "sipcalluniqueid": "067515e4161a16e9594cd0aa6ea74fed@172.25.128.251:5060",
+
          "sipcalluniqueid": "067515e4161a16e9594cd0aa6ea74fed@172.25.128.251:5060",
            "starttime": "2026-02-10 14:53:48",
+
          "starttime": "2026-02-10 14:53:48",
            "tag": null,
+
          "tag": null,
            "type": "inbound",
+
          "type": "inbound",
            "uniqueid": "1770731628.76",
+
          "uniqueid": "1770731628.76",
            "unmanaged": false,
+
          "unmanaged": false,
            "UserId": 5,
+
          "UserId": 5,
            "routeid": "287"
+
          "routeid": "287"
        }
+
      }
    ]
+
  ]
}
+
}
 +
</pre>
 +
<br>
  
 
==== Enviar DTMF a una llamada ====
 
==== Enviar DTMF a una llamada ====
Línea 117: Línea 125:
 
* 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,
+
  "digits": "###444*12345#",
  "uniqueId": "1770732063.80",
+
  "duration": 100,
  "userId": 5
+
  "uniqueId": "1770732063.80",
}
+
  "userId": 5
 +
}
 +
</pre>
 
<br>
 
<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 11:57 9 mar 2026

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 para una llamada.

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