Descripción general de la creación de sesiones

Cuando te conectas a una sesión de OpenTok desde una aplicación, debes especificar la sesión a la que deseas conectarte utilizando un identificador de sesión de OpenTok. Cada identificador de sesión identifica una sesión única de OpenTok. Puedes imaginarte una sesión como una sala en la que los participantes se reúnen y charlan.

El número de sesiones que crees y la forma en que los clientes se conecten a ellas dependen de los requisitos de tu aplicación. Si tu aplicación conecta a los usuarios entre sí para una reunión puntual, crea una sesión única para esa reunión. Sin embargo, si tu aplicación conecta a los usuarios durante varios días en la misma «sala», puedes crear una sola sesión y reutilizarla. Si un grupo de usuarios se reúne entre sí, mientras que otros grupos se reúnen de forma independiente, crea sesiones únicas para cada grupo.

Las sesiones de OpenTok no caducan. Sin embargo, los tokens de autenticación sí caducan. Ten en cuenta también que las sesiones no se pueden eliminar de forma explícita.

Al crear una sesión, puedes especificar las siguientes opciones, que se describen en las secciones siguientes:

  • El modo multimedia (si se utiliza o no el OpenTok Media Router)
  • La opción de archivado (si se debe archivar automáticamente la sesión)
  • Una indicación de ubicación (para especificar la geolocalización de la sesión)

El OpenTok Media Router y los modos multimedia

Al crear una sesión, se especifica cómo los clientes de la sesión enviarán las transmisiones de audio y vídeo, lo que se conoce como el modo multimedia. Hay dos opciones:

  • Retransmitido — En una sesión con retransmisión, los clientes intentarán enviar flujos de audio y vídeo directamente entre sí (punto a punto). Sin embargo, si los clientes no pueden conectarse debido a restricciones del cortafuegos, la sesión utiliza el servidor TURN de OpenTok para retransmitir los flujos de audio y vídeo. (Antes de la versión 2.2, los SDK del servidor OpenTok se referían a estas sesiones como sesiones «peer-to-peer». Sin embargo, incluso al utilizar esos SDK, las sesiones seguirán recurriendo al servidor TURN de OpenTok para retransmitir las transmisiones si las restricciones del cortafuegos bloquean la transmisión «peer-to-peer»). Para la negociación de la sesión se utilizan TLS 1.3 y un certificado seguro de al menos 3072 bits.

  • Enrutado — La sesión utiliza el OpenTok Media Router para enrutar las transmisiones de audio y vídeo entre los clientes. El OpenTok Media Router ofrece las siguientes ventajas:

    • Para la negociación de la sesión se utilizan TLS 1.3 y un certificado seguro de al menos 3072 bits.

    • El OpenTok Media Router puede reducir el consumo de ancho de banda en sesiones con múltiples participantes. (Cuando la propiedad «mode» de multimedia está configurada en «relayed», cada cliente que publica un flujo debe enviarlo por separado a cada cliente suscrito al mismo. Con el OpenTok Media Router, el emisor envía un único flujo una sola vez al enrutador y este lo reenvía a cada cliente suscrito.)

    • El OpenTok Media Router puede mejorar la calidad de la experiencia del usuario a través de Solución alternativa de audio y recuperación de vídeo para los abonados. Gracias a estas características, si la conexión de un cliente se deteriora hasta tal punto que no permite la reproducción del vídeo de una transmisión a la que está suscrito, el vídeo se interrumpe en ese cliente (sin que ello afecte al resto de clientes) y el cliente solo recibe el audio. Si la conexión del cliente mejora, el vídeo vuelve a mostrarse.

    • El OpenTok Media Router es compatible con el Función de archivado de OpenTok, que te permite grabar, guardar y recuperar sesiones de OpenTok.

    • El OpenTok Media Router es compatible con retransmisiones en directo.

    • El OpenTok Media Router es compatible con Experiencia con Composer.

    • En las sesiones que utilizan OpenTok Media Router, al reducir la frecuencia de fotogramas de un vídeo publicado se reduce proporcionalmente el ancho de banda que consume la transmisión.

    • El OpenTok Media Router es compatible con el función de vídeo escalable. El vídeo escalable puede mejorar considerablemente la calidad del vídeo en las sesiones con varios participantes.

    • En los clientes que utilizan los SDK de OpenTok para iOS y Android, las sesiones retransmitidas solo admiten dos clientes conectados a la sesión. El OpenTok Media Router admite clientes adicionales para sesiones multipartitas en dispositivos móviles.

    • El OpenTok Media Router es compatible con el Función de interconexión SIP, que te permite conectar sesiones de OpenTok a pasarelas SIP.

    • El OpenTok Media Router es compatible con el Función «Conector de audio», que te permite enviar audio desde una sesión de OpenTok a un WebSocket.

Las sesiones enrutadas (aquellas que utilizan el OpenTok Media Router) también se benefician de las siguientes optimizaciones:

  • Conexión con un único par. A partir de la versión 2.28.0 de los SDK de cliente para iOS, Android, Windows, macOS y Linux, las sesiones enrutadas admitirán conexión entre pares única. Cuando la conexión de par único está activada, todas las transmisiones de los suscriptores destinadas a un cliente se envían a través de una única conexión al OpenTok Media Router (incluso si las publican distintos clientes). Las ventajas de habilitar la conexión de par único incluyen un menor consumo de recursos por parte del cliente, un mejor control de la velocidad de transmisión y, en el caso de los dispositivos móviles nativos, la compatibilidad con sesiones de mayor tamaño. Cuando la conexión de par único está desactivada (configuración predeterminada), el cliente utilizará una conexión independiente al OpenTok Media Router para cada paquete de audio/vídeo.

    La conexión de un solo par sólo está disponible en sesiones enrutadas (sesiones que utilizan el enrutador de medios de Vonage Video API). Para obtener una guía completa que incluya casos de uso, detalles de configuración, ejemplos de código e interacción con otras funciones, consulta la sección Guía para desarrolladores de «Single Peer Connection».

    Para habilitar la conexión con un único par, utiliza las siguientes API del Client SDK:

    • SDK web (OpenTok.js) — Consulta el singlePeerConnection de las opciones que introduzca en OT.initSession()
    • Android SDK - Session.Builder.setSinglePeerConnection()
    • SDK de iOS — OTSessionSettings.singlePeerConnection
    • SDK de Linux — otc_session_settings_set_single_peer_connection()
    • SDK para macOS - otc_session_settings_set_single_peer_connection()
    • SDK para Windows - SinglePeerConnection propiedad del Session.Builder clase
    • SDK de React Native — El enableSinglePeerConnection propiedad del options prop del componente OTSession
  • Optimización de Media Mesh. La plataforma utiliza Media Mesh para optimizar automáticamente las sesiones enrutadas, conectando a cada participante con el enrutador multimedia del centro de datos regional más cercano. Esto reduce la latencia y mejora la calidad, especialmente en el caso de sesiones distribuidas geográficamente.

    Media Mesh está activado de forma predeterminada y no requiere configuración alguna. Para anular esta optimización y restringir el contenido multimedia a una región concreta, consulta Zonas regionales de medios de comunicación.

  • Enrutamiento adaptativo de contenidos multimedia. A partir de OpenTok.js v2.24.7 y v2.27.0 de los demás SDK de cliente (para Android, iOS, Windows, macOS, Linux y React), las sesiones enrutadas se han optimizado para utilizar enrutamiento adaptable de medios, si es posible. El enrutamiento adaptativo de medios determina si los medios pueden retransmitirse sin el OpenTok Media Router en el caso de las transmisiones de vídeo uno a uno, con el fin de optimizar el rendimiento multimedia entre dos participantes. La sesión enrutada adapta automáticamente el enrutamiento de medios para utilizar el OpenTok Media Router cuando sea necesario: para sesiones con tres o más participantes, archivado, retransmisiones en directo, interconexión SIP, Experience Composer, subtítulos en directo y Audio Connector.

    Con la incorporación del enrutamiento adaptativo de contenidos multimedia, también hay un scalableVideo opción en OpenTok.js OT.initPublisher() para anular el valor predeterminado y desactivar el vídeo escalable para el editor en una sesión enrutada.

Enrutamiento de medios adaptable

El enrutamiento adaptativo de medios (AMR) es una técnica de optimización del rendimiento para sesiones enrutadas. AMR evalúa individualmente el número de abonados de cada editor. Cuando un editor sólo tiene un abonado y no se utiliza ninguna función que requiera el enrutador de medios (por ejemplo, archivo, transmisión en directo, SIP, etc.), la plataforma transmite los medios de ese editor de igual a igual al abonado en lugar de enrutarlos a través del enrutador de medios. Esto reduce la latencia y puede mejorar la calidad de audio y vídeo.

La sesión sigue siendo una sesión enrutada en todo momento. AMR no modifica el modo multimedia de la sesión; solo cambia el ruta de medios utilizado bajo el capó. El código de la aplicación, los tokens y la configuración de la sesión del servidor siguen siendo exactamente los mismos. El cambio entre la retransmisión peer-to-peer y la retransmisión Media Router se gestiona de forma transparente por los SDK de cliente.

Cuando AMR utiliza la retransmisión entre pares

AMR retransmitirá medios directamente entre un editor y su abonado (sin pasar por el enrutador de medios en la ruta de medios) cuando todos de las siguientes son verdaderas:

  • El editor tiene exactamente un suscriptor.
  • Ninguna de las funciones que se enumeran en la siguiente sección está activa.

Por ejemplo, una sesión con cuatro editores y cuatro abonados puede permanecer completamente en retransmisión peer-to-peer siempre que cada editor tenga sólo un abonado y no se utilicen funciones de Media Router.

Cuando AMR cambia al enrutador de medios

La plataforma transiciona los medios de un editor para que fluyan a través del enrutador de medios cuando cualquier de las siguientes condiciones:

Una vez que se activa cualquier activador, todos los medios de los editores se enrutarán sin problemas a través del enrutador de medios.

Compatibilidad con SDK

La función AMR se introdujo en OpenTok.js v2.24.7 y en la versión 2.27.0 del Client SDK para Android, iOS, Windows, macOS, Linux y React. Los clientes que utilicen versiones anteriores del Client SDK en una sesión enrutada siempre utilizarán el Media Router.

Repercusiones en la depuración y el desarrollo

AMR es transparente para la lógica de tu aplicación, pero hay algunos aspectos que debes tener en cuenta durante el desarrollo y la resolución de problemas:

  • Inspector puede mostrar errores clientDisconnection eventos que se producen cuando el medio de un editor pasa de la retransmisión entre pares al Media Router (por ejemplo, cuando un segundo cliente se suscribe a una transmisión). Estos eventos no suponen desconexiones reales: los participantes permanecen conectados durante toda la transición. Se trata de un problema conocido en Inspector.
  • Los objetos MediaStream pueden cambiar durante las transiciones. Cuando AMR cambia entre la retransmisión entre pares y el enrutador multimedia, el MediaStream de un abonado se sustituye. Si su aplicación accede a MediaStream objetos directamente (por ejemplo, para reproducir vídeo en un formato personalizado <video> ), debe gestionar este cambio con una de las siguientes opciones:
    • Recomendación: Utiliza el API de flujo multimedia disponible (disponible en OpenTok.js v2.27.7+). El sitio mediaStreamAvailable en los objetos Editor y Abonado tiene en cuenta automáticamente cualquier cambio provocado por AMR, proporcionando la información correcta. MediaStream cada vez que se produce una transición.
    • Enfoque tradicional (anterior a la versión 2.27.7): Escuchar el play evento en el elemento de vídeo del suscriptor para detectar cuándo el MediaStream se ha sustituido, así que actualiza tu renderización personalizada en consecuencia. Consulta el Acceso a objetos MediaStream para abonados guía.
  • Los eventos de conexión y de flujo siguen activándose con normalidad. No es necesario gestionar las transiciones AMR en los detectores de eventos de la sesión. El streamCreated, streamDestroyed, connectionCreatedy connectionDestroyed reflejan el estado real de los participantes, no la ruta de medios subyacente.

Interacción con otras funciones

  • Conexión entre pares única (SPC): El SPC solo está activo cuando los datos multimedia circulan a través del enrutador multimedia. Mientras el AMR retransmite los datos multimedia de un editor en modo peer-to-peer, el SPC no se aplica a esa transmisión. Una vez que la transmisión pasa al enrutador multimedia, el SPC entra en funcionamiento si está habilitado.
  • Cifrado de extremo a extremo: El cifrado de extremo a extremo funciona con AMR. Los contenidos multimedia se cifran independientemente de si se transmiten de igual a igual o a través del enrutador multimedia.
  • Alternativa de audio: Repetición de audio del abonado es una función del Media Router que, por lo general, se aplica una vez que un flujo se ha enrutado a través del Media Router. Sin embargo, mientras el AMR retransmite los contenidos multimedia de un editor en modo peer-to-peer, Retorno de audio del editor desactivar automáticamente el vídeo para proteger la transmisión de audio, si fuera necesario. Una vez que la transmisión pasa al Media Router, se aplican con normalidad los planes de contingencia de audio tanto del emisor como del suscriptor.
  • Simulcast y escalabilidad: Aunque AMR transmite contenido multimedia en modo peer-to-peer, el vídeo escalable se desactiva automáticamente, independientemente del códec que se utilice. Cuando la transmisión pasa al Media Router, el comportamiento del vídeo escalable depende del códec y de la configuración de vídeo escalable de la aplicación en el panel de control:
    • VP8: Si el vídeo escalable está configurado en El o Auto En el panel de control, la retransmisión simultánea se activa automáticamente en el tramo enrutado en cuanto se produce la transición al enrutador multimedia.
    • VP9: El vídeo escalable está activado por defecto cuando se enruta a través del Media Router.
    • H.264: El vídeo escalable no es compatible y permanece desactivado por defecto en todos los casos.

Modo de archivo

Al crear una sesión, puedes configurar el modo de archivo para que la sesión se archive automáticamente. Esto solo se aplica a las sesiones enrutadas (sesiones que utilizan el OpenTok Media Router). De forma predeterminada, las sesiones no se archivan automáticamente.

Indicaciones de ubicación

Al crear una sesión, puedes configurar la dirección IP que utilizará la plataforma de vídeo de Vonage para seleccionar el mejor servidor para controlar la sesión dentro de su red global. Si no se establece ninguna indicación de ubicación al crear la sesión (lo cual se recomienda), el servidor de control de la sesión se selecciona en función de la ubicación del primer cliente que se conecte a la sesión. Establece una indicación de ubicación solo si conoces la región geográfica general (y una dirección IP representativa) y crees que es posible que el primer cliente que se conecte no se encuentre en esa región. Especifica una dirección IP que sea representativa de la ubicación geográfica de la sesión.

Para el streaming multimedia, el sistema siempre utilizará la pista de ubicación para conectarse al servidor multimedia más cercano (SFU), garantizando que el tráfico multimedia se encamine a través del servidor más óptimo para la ubicación geográfica del cliente.

Buenas prácticas en la creación de sesiones

Reutilización del identificador de sesión

Siempre que sea posible, no reutilices los identificadores de sesión entre diferentes conversaciones de videochat. En su lugar, genera nuevos identificadores de sesión para cada videochat concreto de tu aplicación.

Esto es importante, sobre todo cuando se utiliza OpenTok Inspector. En Inspector, las puntuaciones de calidad de las sesiones y los datos se indexan por ID de sesión. Un ID de sesión que se reutiliza en varias conversaciones resulta más difícil de depurar con Inspector, y las sesiones con ID reutilizados suelen arrojar puntuaciones de calidad agregadas inferiores a la calidad real de la llamada.

Activar la migración de sesiones o limitar las sesiones a 8 horas

El autoescalado moderno en la nube hace necesario establecer un tiempo mínimo de rotación para los servicios. Cualquier sesión que dure más de 8 horas podría desconectarse, ya que podría pertenecer a servicios que se estén ampliando o reduciendo.

La versión 2.30.0 y posteriores de los SDK de cliente de la Video API de Vonage incluyen una función de migración de sesiones que transfiere de forma fluida a todos los participantes de una sesión a un nuevo servidor durante la rotación de servidores. Esta función garantiza la continuidad de la sesión con una interrupción mínima para los participantes. Véase Rotación de servidores y migración de sesiones.

Nota para los clientes que utilicen versiones de los SDK de cliente anteriores a la 2.30.0: Recomendamos que, para las sesiones planificadas para durar más de 8 horas, migre a los usuarios conectados a una nueva sesión antes de que se produzcan posibles eventos de desconexión o reconexión. Esto garantizará la mejor experiencia de usuario.

Los clientes también se desconectan de una sesión si no publican ni se suscriben a flujos en un plazo de 4 horas desde que se conectan.

Puede utilizar control de la sesión para recibir notificaciones cuando las sesiones se detienen o caducan y cuando se programa la rotación de un grupo de servidores de Video API para una sesión.

Para más información, consulte Rotación de servidores.

Elección entre el tipo de sesión «relayed» y el tipo de sesión «routed»

Utiliza una sesión retransmitida en lugar de una enrutada si solo hay dos participantes (o quizá incluso tres) y no utilizas el servicio de archivo. El uso de sesiones retransmitidas reduce la latencia entre los participantes, disminuye los puntos de fallo y, en la mayoría de los casos, permite obtener una mejor calidad de vídeo y audio.

Las sesiones enredadas son obligatorias si quieres archivar tu sesión. Se recomiendan si hay más de dos o tres participantes en la sesión.

Para más información, consulte El OpenTok Media Router y los modos multimedia.

Creación de sesiones

Mientras trabajas en una versión de prueba de tu aplicación, puedes obtener un ID de sesión de prueba a través de la página del proyecto de tu Account de la Video API.

También puedes utilizar una de las bibliotecas de OpenTok para el lado del servidor o la API REST de OpenTok para generar una sesión:

También puede utilizar la función API REST de OpenTok para crear una sesión.

Si necesitas generar dinámicamente varios ID de sesión, utiliza una de las bibliotecas de OpenTok para el lado del servidor o la API REST de OpenTok, pero no la página del proyecto.