Diferencia entre revisiones de «API mdpay omnisuite»

De VIVAitwiki
Ir a la navegaciónIr a la búsqueda
 
(No se muestran 7 ediciones intermedias del mismo usuario)
Línea 29: Línea 29:
  
 
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 50: Línea 54:
 
* 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>
 
<br>
  
Línea 117: Línea 123:
 
* 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>
  
Línea 128: Línea 136:
  
 
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;">
{
+
{
    "error": false,
+
  "error": false,
    "message": "SendDTMF [###444*12345#] executed"
+
  "message": "SendDTMF [###444*12345#] executed"
}
+
}
 +
</pre>
 +
<br>

Revisión actual del 08:26 26 feb 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 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"
}