Llamadas desde la aplicación

In-App Calling le permite integrar la comunicación por voz en tiempo real directamente en sus aplicaciones móviles o web mediante Voice API. Basada en la tecnología WebRTC, proporciona las funciones básicas necesarias para crear experiencias de llamada interactivas y completas entre usuarios dentro de la aplicación, al tiempo que permite conectar con puntos finales externos cuando sea necesario.

In-App Calling permite a los usuarios de sus aplicaciones realizar y recibir llamadas de voz sin salir de la interfaz de la aplicación. Admite conversaciones tanto individuales como en grupo y proporciona controles y eventos que te ayudan a construir una experiencia de comunicación fluida.

Esta capacidad está potenciada por la Voice API y los SDK del lado del cliente, que juntos gestionan la transmisión de medios, la señalización de llamadas y la gestión del ciclo de vida de las llamadas.

Capacidades básicas

Controles de usuario

Applications can provide built-in audio controls so users can manage their call experience in real time. Los controles más habituales son:

  • Silenciar y desactivar el micrófono
  • Funcionalidad de orejera para silenciar el audio entrante sin finalizar la llamada

Estos controles permiten una interacción flexible y mejoran la usabilidad durante las llamadas.

Notificaciones de llamadas

Puedes avisar a los usuarios de las llamadas entrantes mediante notificaciones push. Esto garantiza que los usuarios estén localizables incluso cuando la aplicación se ejecuta en segundo plano o el dispositivo está bloqueado.

Llamadas 1:1 y en grupo

In-App Calling admite tanto llamadas directas entre dos usuarios como llamadas dinámicas de grupo. Puedes configurar las llamadas para añadir o eliminar participantes en tiempo real, lo que permite realizar conferencias y casos de uso colaborativo.

Soporte DTMF

La función admite el envío de tonos DTMF durante una llamada, lo que permite interactuar con sistemas IVR u otros servicios de telefonía.

Continuidad de llamadas

Puede mejorar la fiabilidad y la experiencia del usuario con funciones como:

  • Reconexión automática de llamadas perdidas
  • Desplazamiento de una llamada activa entre distintos dispositivos para un mismo usuario

Estas funciones ayudan a mantener una comunicación ininterrumpida en caso de cambios en la red o de conmutación de dispositivos.

Ampliabilidad a través de la Voice API

In-App Calling forma parte de la plataforma Voice API más amplia de Vonage. Esta integración te permite ampliar las llamadas dentro de la aplicación más allá de la comunicación entre aplicaciones y conectarte a servicios externos de telefonía y en tiempo real.

La Voice API dispone de las siguientes funciones:

Esta flexibilidad le permite combinar la comunicación dentro de la aplicación con la telefonía tradicional y los flujos de trabajo de voz automatizados.

Conservación y almacenamiento de datos

Por defecto, las conversaciones creadas por las llamadas y sus tramos de llamada asociados se almacenan durante 2 días. Puede modificar este periodo de retención configurando el TTL de las conversaciones o el tiempo de persistencia de los tramos en el panel de control de la API, en los ajustes avanzados de las funciones de voz.

El ajuste de estos valores le permite alinear el almacenamiento de datos con los requisitos operativos y de cumplimiento de su aplicación.

Crear un usuario

Crea un usuario que iniciará sesión en el cliente de Vonage y participará en la funcionalidad de llamadas dentro de la aplicación: Conversaciones, llamadas, etc.

Ejecute el siguiente comando en su terminal para crear un usuario llamado Alice:

vonage users create `
  --name='Alice'
  
✅ Creating User

User ID: USR-00000000-0000-0000-0000-000000000000
Name: Alice
Display Name: Not Set
Image URL: Not Set
Time to Live: Not Set

Channels:
  None Set

El ID de usuario se utiliza para realizar tareas del SDK, como iniciar sesión, iniciar una llamada, etc.

Generar un JWT de usuario

JWTs se utilizan para autenticar a un usuario en el Client SDK.

Para generar un JWT para Alice ejecute el siguiente comando (sustituyendo con su información):

# A command with parameters
vonage jwt create `
--app-id='00000000-0000-0000-0000-000000000000' `
--private-key=./private.key `
--sub='Alice' `
--acl='{\"paths\":{\"\/*\/users\/**\":{},\"\/*\/conversations\/**\":{},\"\/*\/sessions\/**\":{},\"\/*\/devices\/**\":{},\"\/*\/push\/**\":{},\"\/*\/knocking\/**\":{},\"\/*\/legs\/**\":{}}}'

# Will produce a token
eyJhbGciOiJSUzI1NiIsInR5cCI6IkpXVCJ9.eyJhY2wiOnsicGF0aHMiOnsiLyovcnRjLyoqIjp7fSwiLyovdXNlcnMvKioiOnt9LCIvKi9jb252ZXJzYXRpb25zLyoqIjp7fSwiLyovc2Vzc2lvbnMvKioiOnt9LCIvKi9kZXZpY2VzLyoqIjp7fSwiLyovcHVzaC8qKiI6e30sIi8qL2tub2NraW5nLyoqIjp7fSwiLyovbGVncy8qKiI6e319fSwiZXhwIjoxNzQxMTgyMzA3LCJzdWIiOiJBbGljZSIsImp0aSI6Ijg1MTViNzk2LTA1YjktNGFkMS04MTRkLTE1NWZjZTQzZWM1YiIsImlhdCI6MTc0MTE4MTQwNywiYXBwbGljYXRpb25faWQiOiIwMDAwMDAwMC0wMDAwLTAwMDAtMDAwMC0wMDAwMDAwMDAwMDAifQ.BscMdDXZ1-nuLtKyPJvw9tE8E8ZjJvTPJPMT9y0TjPz4Q7qqNaqxcjglc5QPtYEjh2YpZH6btSKbUF4XTClI026Hl5_QOBlnayYo7jXwhba16fa5PeyzSf30QFGFrHbANwrQJFVCjd329SZUpwK4GxgB1gf230NhbfmkhegKezqicru2WTGCKm8kQncYliFwIEYUlcRAb2c8xcaVrn_6QNNahyeJRwGFfWpIkX0Oe-S4RDlPjoq47_gYWac9MmaetB4Dd3Yp531AuniGV5JiIShkaEwuY4Zyov4Hcmajm4Lm_UFY119la7vzHis0P7cT9pPUDe5cyPj7eT8-VhitfQ

El comando anterior establece por defecto la caducidad del JWT en 24 horas. Puedes cambiar la caducidad a un periodo de tiempo más corto utilizando el comando --exp bandera.

NOTA: En aplicaciones de producción, se espera que tu backend exponga un endpoint que genere JWT por petición de tu cliente.