Control de la sesión
Regístrese para recibir devoluciones de llamada de eventos de sesión en tiempo real y supervisar la actividad de su sesión desde el servidor de su aplicación.
Utilizando la plataforma de Vonage Video, los desarrolladores pueden supervisar cierta actividad de los clientes que utilizan el SDK para clientesdesde su servidor de aplicaciones.
Al registrarse para las llamadas de retorno con el API REST de Video de Vonagetu URL de devolución de llamada recibirá solicitudes HTTP POST cuando se creen y destruyan sesiones, los clientes se conecten y desconecten, y los clientes publiquen y despubliquen secuencias en una sesión de tu proyecto de Vonage.
Además, puedes registrar una devolución de llamada para monitorear los eventos relacionados con los archivos de video de Vonage para tu proyecto.
Registro de retrollamadas
Los eventos de sesión y las actualizaciones de estado de archivo pueden registrarse en puntos finales HTTP dentro de su servidor.
Cada vez que ocurre una actividad registrada, se envía una solicitud HTTP desde la infraestructura de Vonage Video a tu punto final.
Para registrar una devolución de llamada:
Conéctese a su Cuenta de Video API de Vonage.
En el menú de la izquierda, seleccione Applications.
Para los proyectos existentes, haga clic en los tres puntos y seleccione la opción Editar y desplácese hasta la sección de capacidades.
Para los nuevos proyectos, la sección de capacidades se muestra después de hacer clic en Crear una nueva aplicación.
Activa la opción de vídeo.
Establezca la URL de devolución de llamada en la sección Supervisión de la sesión.
Devoluciones de llamada seguras: Puedes asegurar las peticiones de webhook callback con callbacks firmados utilizando una firma secreta. Consulte Devoluciones de llamada seguras.
La URL de devolución de llamada de archivo y la URL de devolución de llamada de difusión se establecen por separado de la URL de devolución de llamada para eventos de sesión. Establezca la URL de devolución de llamada de archivo en la sección Archivo de su archivo Página de cuenta de Video API de Vonage.
Importante: En caso de fallos de entrega excesivos, el nuevo servicio ya no desactivará el reenvío de eventos, ya que se utilizará el mecanismo de reintento y backoff. Por lo tanto, ya no habrá ninguna indicación de correo electrónico esperada para notificar que las devoluciones de llamada se deshabilitaron y deben volver a habilitarse, porque el nuevo servicio no suspenderá/deshabilitará las devoluciones de llamada de ninguna manera.
Control del inicio y fin de las sesiones
Cuando los clientes empiezan a utilizar una sesión y cuando una sesión deja de utilizarse, sessionCreated y sessionDestroyed se envían a su punto final de devolución de llamada registrado.
Sesión creada
Este evento se envía cuando el primer cliente se conecta a una sesión. Si todos los clientes se desconectan (véase Sesión destruida), los clientes pueden volver a conectarse posteriormente a la misma sesión.
Para cada evento distinto, el servidor envía una solicitud HTTP POST a la URL de devolución de llamada que proporcione. El tipo de contenido de la solicitud es application/json. Los datos de la solicitud son un objeto JSON de la siguiente forma:
{
"sessionId": "2_MX4xMzExMjU3MX5-MTQ3MDI1NzY3OTkxOH45QXRr",
"projectId": "123456",
"event": "sessionCreated",
"timestamp": 1470257688309,
"createdAt": 1470257688309
}
El objeto JSON incluye las siguientes propiedades:
sessionId- El ID de sesión asociado a este eventoprojectId- El ID del proyecto asociado a este eventoevent-"sessionCreated"timestamp- La fecha y hora en que se envió el evento de devolución de llamadacreatedAt- Fecha y hora en que el primer cliente se conectó a la sesión
Sesión destruida
Este evento se envía cuando se deja de utilizar una sesión:
Un minuto después de que todos los participantes se hayan desconectado de la sesión.
Cuando se agota una sesión de la Video API, lo que puede ocurrir al cabo de 8 horas.
Cuando un servidor de Video API se apaga inesperadamente.
Después de que se envíe este evento, todavía se puede reutilizar la sesión. Los clientes pueden volver a conectarse a la sesión utilizando el mismo ID de sesión Sesión creada se enviará un evento de devolución de llamada. Sin embargo, es mejor que los clientes se vuelvan a conectar con un nuevo ID de sesión.
Además, como práctica recomendada, debe hacer que los clientes se vuelvan a conectar a las nuevas sesiones (utilizando un nuevo ID de sesión), en un plazo de 8 horas después de la Sesión creada evento de devolución de llamada.
Para cada evento distinto, el servidor envía una solicitud HTTP POST a la URL de devolución de llamada que proporcione. El tipo de contenido de la solicitud es application/json. Los datos de la solicitud son un objeto JSON de la siguiente forma:
{
"sessionId": "2_MX4xMzExMjU3MX5-MTQ3MDI1NzY3OTkxOH45QXRr",
"projectId": "123456",
"event": "sessionDestroyed",
"timestamp": 1470258896953,
"createdAt" : 1470258896953,
"reason" : "clientDisconnected"
}
El objeto JSON incluye las siguientes propiedades:
sessionId- El ID de sesión asociado a este eventoprojectId- El ID del proyecto asociado a este eventoevent-"sessionDestroyed"timestamp- La fecha y hora en que se envió el evento de devolución de llamadacreatedAt- Fecha en la que se dejó de utilizar esta sesiónreason- Se establece en una de las siguientes opciones:"clientDisconnected"- Todos los clientes se han desconectado de la sesión."forceDisconnected"- Un moderador ha desconectado a los clientes de la sesión. O se ha interrumpido la sesión. O un servidor de Video API se ha cerrado inesperadamente."mediaIdle"- Todos los clientes se han desconectado de la sesión porque no han publicado ni se han suscrito a flujos en las 4 horas siguientes a la conexión."serverRotation"- Todos los clientes se han desconectado de la sesión debido a la rotación del servidor. Puede evitar que los clientes se desconecten durante la rotación de servidores configurándolos para que utilicen la migración de sesiones. Consulte Rotación de servidores y migración de sesiones.
Eventos de notificación de sesión
En sessionNotification se envía cuando se programa la rotación de un grupo de servidores de Video API para una de sus sesiones. Este evento se envía 4 horas y 1 hora antes de la rotación programada.
En sessionNotification es una solicitud HTTP POST enviada a la URL de devolución de llamada de monitorización de sesión que proporcione. El tipo de contenido de la solicitud es application/json. Los datos de la solicitud son un objeto JSON de la siguiente forma:
{
"sessionId": "2_MX4xMzExMjU3MX5-MTQ3MDI1NzY3OTkxOH45QXRr",
"projectId": "123456",
"event": "sessionNotification",
"reason": "serverRotation",
"timestamp": 1470282888309,
"remainingTime": 3600,
"createdAt": 1470257688309
}
El objeto JSON incluye las siguientes propiedades:
sessionId- El ID de sesión asociado a este eventoprojectId- ID de la aplicación asociada a este eventoevent-"sessionNotification"reason- Para un evento de rotación del servidor, se establece en"serverRotation". (Actualmente, éste es el único tipo de evento de notificación de sesión).remainingTime- El tiempo restante, en segundos, hasta que los servidores para la sesión sean rotados. Se establecerá en 14.400 segundos (4 horas) o 3.600 segundos (1 hora).timestamp- La fecha y hora en que se envió el evento de devolución de llamadacreatedAt- Fecha y hora en que el primer cliente se conectó a la sesión
Véase Rotación de servidores y migración de sesiones para obtener más información sobre las rotaciones del servidor de la Video API y cómo mantener a los clientes conectados cuando se producen rotaciones del servidor.
Supervisión de la actividad de conexión
Una vez registrada correctamente, la infraestructura de Vonage Video puede enviar solicitudes HTTP para todas las conexiones realizadas (y destruidas) a todas las sesiones para un solo proyecto.
Esto resulta especialmente útil para realizar un seguimiento de la disponibilidad de los usuarios sin necesidad de conexiones adicionales ni de elaborar informes directamente desde el punto final.
Cuando los clientes reciben connectionCreated y connectionDestroyed en respuesta a otros clientes que se conectan y desconectan de una sesión, estos mismos eventos se envían a su punto final de devolución de llamada registrado.
Conexión creada
Para cada evento distinto, el servidor envía una solicitud HTTP POST a la URL que usted proporcione.
El tipo de contenido de la solicitud es application/json. Los datos de la solicitud son un objeto JSON de la siguiente forma:
{
"sessionId": "2_MX4xMzExMjU3MX5-MTQ3MDI1NzY3OTkxOH45QXRr",
"projectId": "123456",
"event": "connectionCreated",
"timestamp": 1470257688309,
"connection": {
"id": "c053fcc8-c681-41d5-8ec2-7a9e1434a21e",
"createdAt": 1470257688143,
"data": "TOKENDATA"
}
}
El objeto JSON incluye las siguientes propiedades:
sessionId- El ID de sesión asociado a este evento.projectId- El ID del proyecto asociado a este evento.event-"connectionCreated".timestamp- Milisegundos desde la hora unix epoch.connection- Objeto que define la conexión y contiene las siguientes propiedades:id- El ID de la conexión.data- Los datos de conexión.createdAt- El valor de la fecha y hora en que se creó este objeto.
Conexión destruida
Para cada evento distinto, el servidor envía una solicitud HTTP POST a la URL que usted proporcione.
El tipo de contenido de la solicitud es application/json.
Los datos de la solicitud son un objeto JSON de la siguiente forma:
{
"sessionId": "2_MX4xMzExMjU3MX5-MTQ3MDI1NzY3OTkxOH45QXRr",
"projectId": "123456",
"event": "connectionDestroyed",
"reason": "clientDisconnected",
"timestamp": 1470258896953,
"connection": {
"id": "c053fcc8-c681-41d5-8ec2-7a9e1434a21e",
"createdAt": 1470257688143,
"data": ""
}
}
El objeto JSON incluye las siguientes propiedades:
sessionId- El ID de sesión asociado a este evento.projectId- El ID del proyecto asociado a este evento.reason- Para unconnectionDestroyedse establece en una de las siguientes opciones:"clientDisconnected"- Un cliente desconectado de la sesión (por ejemplo, llamando a la función OpenTok.jsSession.disconnect()o cerrando el navegador o la aplicación)."forceDisconnected"- Un moderador ha desconectado al cliente de la sesión (llamando a la función OpenTok.jsSession.forceDisconnect())."networkDisconnected"- La conexión de red finalizó de forma abrupta (por ejemplo, el cliente perdió su conexión a Internet)."mediaIdle"- El cliente se desconectó de una sesión porque no publicó ni se suscribió a flujos en las 4 horas siguientes a la conexión."serverRotation"- El cliente se desconectó de la sesión debido a la rotación del servidor. Puede evitar que los clientes se desconecten durante la rotación de servidores configurándolos para que utilicen la migración de sesiones. Consulte Rotación de servidores y migración de sesiones.
event-"connectionDestroyed".timestamp- Milisegundos desde la hora unix epoch.connection- Objeto que define la conexión y contiene las siguientes propiedades:id- El ID de la conexión.data- Los datos de conexión.createdAt- El valor de la fecha y hora en que se creó este objeto.
Seguimiento de los flujos
Los puntos finales del servidor también pueden registrarse para recibir solicitudes HTTP activadas por la actividad del flujo en todas las sesiones de un proyecto determinado.
Cuando se crean y destruyen flujos, la solicitud contendrá datos de flujo y conexión para el flujo que desencadenó el evento.
Cuando los clientes reciben streamCreated y streamDestroyed en respuesta a otros clientes que publican en una sesión, estos mismos eventos se envían a su punto final de devolución de llamada registrado.
Corriente creada
Para cada evento distinto, el servidor envía una solicitud HTTP POST a la URL que usted proporcione.
El tipo de contenido de la solicitud es application/json. Los datos de la solicitud son un objeto JSON de la siguiente forma:
{
"sessionId": "2_MX4xMzExMjU3MX5-MTQ3MDI1NzY3OTkxOH45QXRr",
"projectId": "123456",
"event": "streamCreated",
"timestamp": 1470258860571,
"stream": {
"id": "63245362-e00e-4834-8371-9397deb3e452",
"connection": {
"id": "c053fcc8-c681-41d5-8ec2-7a9e1434a21e",
"createdAt": 1470257688143,
"data": ""
},
"createdAt": 1470258845416,
"name": "",
"videoType": "camera"
}
}
sessionId- El ID de sesión asociado a este evento.projectId- El ID del proyecto asociado a este evento.event-"streamCreated".timestamp- Milisegundos desde la hora unix epoch.stream- Un objeto que define el flujo:id- El ID del flujo.connection- La conexión asociada a este flujo. Este objeto incluye las siguientes propiedades:id- ID de conexióndata- Los datos de conexión.createdAt- El valor de la fecha y hora en que se creó la conexión.
createdAt- El valor de la fecha y hora en que se creó el flujo.name- El nombre, si lo hubiera, introducido al inicializar el editor asociado a este flujo.videoType- El tipo de vídeo enviado en este flujo, ya sea"camera","screen"o"custom"(o indefinido para un flujo sólo de audio).
Corriente destruida
Para cada evento distinto, el servidor envía una solicitud HTTP POST a la URL que usted proporcione.
El tipo de contenido de la solicitud es application/json. Los datos de la solicitud son un objeto JSON de la siguiente forma:
{
"sessionId": "2_MX4xMzExMjU3MX5-MTQ3MDI1NzY3OTkxOH45QXRr",
"projectId": "123456",
"event": "streamDestroyed",
"reason": "clientDisconnected",
"timestamp": 1470258896953,
"stream": {
"id": "63245362-e00e-4834-8371-9397deb3e452",
"connection": {
"id": "c053fcc8-c681-41d5-8ec2-7a9e1434a21e",
"createdAt": 1470257688143,
"data": ""
},
"createdAt": 1470258845416,
"name": "",
"videoType": "camera"
}
}
sessionId- El ID de sesión asociado a este evento.projectId- El ID del proyecto asociado a este evento.event-"streamDestroyed".reason- Para unstreamDestroyedse establece en una de las siguientes opciones:"clientDisconnected"- El cliente se desconectó de la sesión (por ejemplo, llamando a la función OpenTok.jsSession.disconnect())."forceDisconnected"- Un moderador ha desconectado el editor del flujo de la sesión, llamando a la función OpenTok.jsSession.forceDisconnect()método."forceUnpublished"- Un moderador ha forzado al editor del stream a dejar de publicar el stream, llamando al OpenTok.jsSession.forceUnpublish()método."mediaStopped"- El usuario que publica el flujo ha dejado de compartir la pantalla. Este valor solo se utiliza en los flujos de vídeo con pantalla compartida."networkDisconnected"La conexión de red finalizó de forma abrupta (por ejemplo, el cliente perdió su conexión a Internet)."serverRotation"- El flujo fue destruido porque el servidor fue rotado como parte de una operación de escalado.
timestamp- Milisegundos desde la hora unix epoch.stream- Un objeto que define el flujo:id- ID del flujoconnection- La conexión asociada a este flujo. Este objeto incluye las siguientes propiedades:id- El ID de la conexión.data- Los datos de conexión.createdAt- El valor de la fecha y hora en que se creó la conexión.
createdAt- El valor de la fecha y hora en que se creó el flujo.name- El nombre, si lo hubiera, introducido al inicializar el editor asociado a este flujo.videoType- El tipo de vídeo enviado en este flujo, ya sea"camera","screen"o"custom"(o indefinido para un flujo sólo de audio).
Seguimiento de archivos
Cada archivo pasa por múltiples estados a lo largo de su vida útil. Por cada actualización de estado que se produzca, un punto final del servidor con un registro de estado de archivo recibirá una solicitud HTTP.
Esto es especialmente útil para activar el post-procesamiento de un archivo, o para realizar cualquier tarea administrativa necesaria después de que un archivo se haya cargado en el almacenamiento persistente.
Para más información cambios en el estado del archivo de la guía para desarrolladores de Vonage Video archiving.
Seguimiento de las emisiones
Véase el Supervisión de los cambios de estado de las retransmisiones en directo de la guía para desarrolladores de transmisiones en vivo de Vonage.
Supervisión del progreso de las llamadas SIP
Puede supervisar las actualizaciones de estado de las conexiones SIP a una sesión.
Véase el Seguimiento del progreso de la llamada de la guía para desarrolladores de Vonage Video SIP Interconnect.
Supervisión de Experience Composer
Puede supervisar las actualizaciones de estado de los Compositores de Experiencias. Consulte el Configuración de las retrollamadas de la guía del desarrollador de Experience Composer.
Supervisión de subtítulos en directo
Puedes seguir las actualizaciones de estado de los subtítulos en directo. Consulte la Subtítulos en directo de la guía del desarrollador de subtítulos en directo.