Extendiendo las sesiones OpenVidu con telefonía tradicional

El trabajo en remoto ha sufrido un gran crecimiento en los últimos años, primero por necesidad pero ahora se ha convertido en una parte importante de muchas empresas, por lo tanto disponer de una herramienta adecuada es una necesidad. OpenVidu permite crear una aplicación a medida con videollamadas integradas que cubra las necesidades específicas de cada empresa. Pero los usuarios a veces pueden encontrarse en situaciones que no les permitan acceder a las videollamadas acceso a internet de baja calidad (datos móviles o red fija) o el dispositivo adecuado (PC/Smartphone). Así que añadir esta posibilidad a estas aplicaciones a medida es muy interesante.

Incluir llamadas telefónicas en OpenVidu permitiría:

 

Hacer llamadas desde la aplicación basada en OpenVidu

De esta forma se podría «llamar» a un teléfono convencional desde una sesión de OpenVidu y que el receptor de la llamada pase a ser parte de la sesión de OpenVidu, de esta forma es muy sencillo agregar a nuevos usuarios a la sesión aunque estos no se encuentren delante de su ordenador o con su smartphone a mano.

 

Recibir llamadas en las sesiones de OpenVidu

Permitiendo que los usuarios puedan unirse a las sesiones programadas desde sus teléfonos mediante una simple llamada telefónica. Como ya se puede hacer en otros servicios de videollamadas generalistas.

 

Pero dependiendo de la aplicación que haga uso de esta funcionalidad los casos de uso específicos a los que se puede dar cobertura es enorme.

 

Componentes

Para añadir esta nueva funcionalidad a las sesiones de OpenVidu necesitamos los siguientes componentes además del core de OpenVidu:

  • Proveedor de VoIP: que se encargará de la conexión entre la comunicación sobre Internet y la red de telefonía tradicional.
  • Pasarela a medida: Esta pasarela será la encargada de gestionar la conexión entre OpenVidu y el servidor de VoIP.
  • Servidor Multimedia: Que debe estar preparado para unificar todos los streams de audio de la sesión y mandárselos al proveedor de VoIP para que les llegue a los usuarios que se conectan por teléfono y a su vez recibir el audio del usuario telefónico y publicarlo en la sesión de OpenVidu.
Proveedor de VoIP

El proveedor de VoIP nos dará una interfaz SIP (Session Initiation Protocol) y la información sobre el proxy SIP donde conectarnos, y que será donde el proveedor de VoIP escuchará nuestros mensajes SIP para configurar el endpoint:

  • Dirección del proxy SIP: dirección IP o DNS y el puerto.
  • Transporte: transporte SIP que soporta, puede ser UDP, TCP o TLS.

Esto permitirá a la Pasarela SIP de OpenVidu configurar el dominio y los usuarios necesarios para conectar la sesión OpenVidu con el servicio de VoIP.

Algunos proveedores VoIP son por ejemplo Twilio y FreeSwitch.

 

Pasarela SIP de Openvidu y Kurento (Media Server customizado)

La pasarela SIP de OpenVidu y este Kurento son los componentes clave para añadir esta funcionalidad a las sesiones OpenVidu. Y son responsables de:

  • Implementar una API Rest que la aplicación cliente pueda añadir las capacidades de telefonía a una sesión de OpenVidu ya existente.
  • Gestionar los flujos de audio desde y hacia la sesión de OpenVidu.
  • Gestionar la comunicación SIP y registrar los dominios y usuarios en el Manage the SIP communication, and register the SIP domains and users into the SIP provider.

 

Aplicación cliente

Al final esta funcionalidad debe ser activada desde la aplicación cliente y es esta aplicación a medida podrá implementar otros casos de uso mas específicos. Pero es importante recordar que aquellas aplicaciones que estén ya funcionando sobre OpenVidu no necesitan ser modificadas y funcionarán como estaban funcionando antes de añadir los componentes para VoIP.