Detalles técnicos

NOTA: Esta sección de la documentación describe Applications V2 funcionalidad.

Una aplicación API de Vonage contiene la información de seguridad y configuración que necesitas para conectarte a los puntos finales de Vonage y usar las API de Vonage.

Cada aplicación de Vonage creada puede admitir múltiples capacidades; por ejemplo, puedes crear una aplicación que admita el uso de Voice, Messages y RTC API.

Application Overview
Application Overview

Para ilustrar el uso de las aplicaciones de Vonage, aquí se presenta un breve resumen para crear y utilizar una aplicación de voz de Vonage:

  1. Crea una aplicación de Vonage usando la CLI, el panel o la API de aplicaciones.
  2. Asegúrate de configurar tus URL de webhook. Vonage devolverá la llamada en estas URL con información importante.
  3. Asocia un número de Vonage con tu aplicación de Vonage.
  4. Escribe tu aplicación web. Implementa los puntos finales de webhook que configuraste en el paso 2, usando las API de Vonage según sea necesario.

Por ejemplo, si desea crear una aplicación que desvía las llamadas entrantes a un teléfono de destino, deberá realizar los siguientes pasos:

  1. Crea una aplicación de Vonage que tenga funciones de voz.
  2. Se configuran las URL de los webhooks de respuesta y evento.
  3. Asocia un número de Vonage con tu aplicación de Vonage.
  4. Implemente una aplicación web que responda a las devoluciones de llamada de las URL de los webhooks.
  5. Cuando se realiza una llamada entrante al número de Vonage asociado con la aplicación de Vonage, un OCN se devuelve en el answer_url.

Otros tipos de aplicaciones, como las que disponen de funciones de Mensajes y Despacho, tienen un proceso ligeramente diferente que se describe en las secciones correspondientes de este documento. documentación.

Las siguientes secciones explican las aplicaciones de Vonage con más detalle.

Estructura

Cada aplicación tiene lo siguiente:

Nombre Descripción
id Sirve para identificar cada aplicación y se utiliza junto con private_key para generar JWTs.
name El nombre de la aplicación.
capabilities Describe los tipos de funcionalidad que soportará esta aplicación. Las capacidades voice, messages, rtc, vbc. Una aplicación puede admitir cualquier número de estas funciones. También puede establecer webhooks para cada capacidad especificada. Vonage envía y recupera información a través de los puntos finales de webhook.
keys Contiene private_key y public_key. Utilizas la clave privada para generar los JWT utilizados para autenticar tus llamadas a las API de Vonage. Vonage utiliza la clave pública para autenticar el JWT en tus solicitudes a la API de Vonage.

Capacidades

Una aplicación de Vonage puede usar varias API, como Voice, Messages and Dispatch, Conversation y Client SDK.

Al crear una aplicación puedes especificar las capacidades que quieres que soporte tu aplicación. Para cada capacidad puede establecer webhooks en función de las capacidades que desee, por ejemplo, para una aplicación con una función rtc puedes especificar una URL de evento para recibir eventos RTC. Si su aplicación también necesita utilizar voice también podría establecer una URL de respuesta para recibir un webhook de respuesta de llamada, una URL de reserva en caso de que su URL de respuesta falle, y otra URL de evento para recibir eventos relacionados con llamadas de voz.

En la tabla siguiente se ofrece un resumen de las capacidades:

Capacidad Descripción
voice Se utiliza para las funciones de voz.
messages Se utiliza para dar soporte a las funciones de Messages y Dispatch API.
rtc Se utiliza para admitir funciones WebRTC. Normalmente se utiliza con Client SDK.
vbc Se utiliza para determinar los precios, pero actualmente no tiene otras funciones.

Webhooks

Las URL de webhooks que se proporcionan al crear una aplicación dependen de las capacidades de la aplicación requeridas. La siguiente tabla resume los webhooks:

Capacidad API utilizada Webhooks disponibles
voice Voz answer_url, fallback_answer_url, event_url
messages Mensajes y envío inbound_url, status_url
rtc Client SDK event_url
vbc VBC Ninguno

Tipos de webhook

La siguiente tabla describe los webhooks disponibles por capacidad:

Capacidad Gancho web API Ejemplo Descripción
voice answer_url Voz https://example.com/webhooks/answer La URL a la que Vonage realiza una solicitud cuando se realiza/recibe una llamada. Debe devolver una NCCO.
voice fallback_answer_url Voz https://example.com/webhooks/fallback Si el fallback_answer_url se establece, Vonage realiza una solicitud a él si el answer_url está fuera de línea o devuelve un código de error HTTP o el archivo event_url está fuera de línea o devuelve un código de error y se espera que un evento devuelva una NCCO. La dirección fallback_answer_url debe devolver una OCN. Si su fallback_answer_url falla tras dos intentos de NCCO inicial, la llamada finaliza. Si su fallback_answer_url falla después de dos intentos para una llamada en curso, el flujo de llamada continúa.
voice event_url Voz https://example.com/webhooks/event Vonage enviará eventos de llamadas (por ejemplo, timbre, respuesta) a esta URL.
messages inbound_url Mensajes, Despacho https://example.com/webhooks/inbound Vonage reenviará los mensajes entrantes a esta URL.
messages status_url Mensajes, Despacho https://example.com/webhooks/status Vonage enviará actualizaciones del estado de los mensajes (por ejemplo, delivered, seen) a esta URL.
rtc event_url Client SDK, Conversación https://example.com/webhooks/rtcevent Vonage enviará eventos RTC a esta URL.
vbc Ninguno Terminal de voz Ninguno No se utiliza

Tiempos de espera de los webhooks

Para el voice se pueden establecer tiempos de espera en los webhooks. Se pueden especificar dos tiempos de espera: connection_timeout y socket_timeout. Estos parámetros se aplican al answer, eventy fallback y se especifican en milisegundos. La siguiente tabla proporciona más información:

Parámetro Ejemplo Descripción
connection_timeout 1000 Si Vonage no puede conectarse a la URL del webhook durante esta cantidad de tiempo especificada, entonces Vonage realiza un intento adicional para conectarse al punto final del webhook. Este es un valor entero especificado en milisegundos.
socket_timeout 3000 Si no se puede leer una respuesta de la URL del webhook durante esta cantidad de tiempo especificada, Vonage realizará un intento adicional para leer el punto final del webhook. Este es un valor entero especificado en milisegundos.

Al crear o actualizar una aplicación, estos parámetros pueden definirse directamente o actualizarse en función de las necesidades, por ejemplo:

...
  "capabilities": {
    "voice": {
      "webhooks": {
        "answer_url": {
          "address": "https://example.com/webhooks/answer",
          "http_method": "POST",
          "connection_timeout": 500,
          "socket_timeout": 3000
        },
        "fallback_answer_url": {
          "address": "https://fallback.example.com/webhooks/answer",
          "http_method": "POST",
          "connection_timeout": 500,
          "socket_timeout": 3000
        },
        "event_url": {
          "address": "https://example.com/webhooks/event",
          "http_method": "POST",
          "connection_timeout": 500,
          "socket_timeout": 3000
        }
      }
    }
...

Si no se especifican estos valores al crear o actualizar la aplicación, se aplicarán los valores por defecto. Los valores por defecto para estos tiempos de espera dependen del webhook en cuestión, como se muestra en la siguiente tabla:

Gancho web Por defecto connection_timeout Por defecto socket_timeout
answer 1000 5000
event 1000 10000
fallback 1000 5000

NOTA: Los tiempos de espera se especifican en milisegundos.

Hay más explicaciones sobre los tiempos de espera de los webhooks en la sección documentación sobre webhooks.

Creación de aplicaciones

Hay cuatro formas principales de crear una aplicación:

  1. En el Vonage Cuadro de mandos. A continuación, las Applications aparecen en la lista sus aplicaciones del Cuadro de mandos.
  2. Utilización de la CLI de Vonage.
  3. Utilización de la API de aplicaciones.
  4. Utilizando uno de los SDK de servidor.

Gestión de aplicaciones mediante la CLI

Fragmentos de código

Referencia