
Compartir:
Antiguo educador de desarrolladores @Vonage. Procedente de PHP, pero no limitado a un solo lenguaje. Un ávido jugador y un entusiasta de Raspberry pi. A menudo se le encuentra practicando escalada en rocódromo.
Videoconferencia de código abierto
Tiempo de lectura: 13 minutos
¿Qué es Vonage Video (antes OpenTok / TokBox)?
Vonage Video (antes TokBox / OpenTok) es una API que permite a las empresas crear una experiencia de vídeo personalizada dentro de cualquier aplicación móvil, web o de escritorio.
Esta API admite todos los casos de uso del vídeo, como las videoconsultas 1:1, los chats de vídeo en grupo o las retransmisiones a gran escala a miles de personas. Podrá grabar cualquier sesión con control sobre cómo componer y enviar de forma segura estos archivos al método de almacenamiento que elija. Los análisis le permiten ver resúmenes de cada proyecto en los paneles de control o ver análisis específicos de cada sesión a través de la API de información avanzada. La Video API le permite ampliar nuestras funciones estándar de cifrado permanente y conformidad con la GDPR para ofrecer una amplia gama de opciones avanzadas de seguridad, control de cortafuegos, aislamiento regional y certificados de conformidad. Hay muchas más funciones y servicios incluidos en el servicio de Vonage Video. Para obtener más información, visita la página de destino.
¿Qué es WebRTC?
Web Real-Time Communication (WebRTC) es un proyecto gratuito y de código abierto que proporciona a los navegadores web y aplicaciones móviles comunicación en tiempo real con API. WebRTC permite que la comunicación de audio y vídeo funcione dentro de su navegador web permitiendo que la comunicación ocurra directamente entre pares, lo que elimina el requisito de instalar plugins o descargar cualquier aplicación nativa.
¿Qué es Vonage Open Source Conferencing and Recording?
Vonage Open Source Conferencing and Recording es tu solución privada de videoconferencia basada en la web. Se basa en la plataforma API de Video de Vonage (anteriormente API OpenTok) y utiliza los SDK y API de Video de Vonage. Puedes implementar la aplicación en tus servidores para que tu aplicación de videoconferencia funcione con WebRTC.
Si desea probar este servicio sin alojar sus propios servidores, le invitamos a dirigirse a nuestra Página de demostración. Esta página de demostración está alojada en una versión por defecto del paquete Open Source Conferencing and Recording, que puede encontrar en nuestro repositorio Github.
¿Cómo puedo alojar mi propio software de videoconferencia?
Requisitos previos
Instalación
Para ejecutar este servidor, tendrás que clonar el repositorio e instalar todas las bibliotecas de terceros necesarias. En tu terminal, ejecuta los tres comandos siguientes:
Configuración mínima
Una vez que hayas instalado todas las dependencias necesarias, se requiere cierta configuración. Lo mínimo que tendrás que hacer es definir tu clave y secreto de API, que puedes obtener desde el panel de video de Vonage.
Para empezar, tendrás que crear un archivo config.json y el siguiente comando copiará un archivo config.json precompilado con todos los valores vacíos. Así que ejecuta el comando:
Abra este archivo, y las primeras líneas serán lo que ve en el ejemplo siguiente:
{
"showTos": false,
"meetingsRatePerMinute": 30,
"OpenTok":{
"apiKey": "<key>",
"apiSecret": "<secret>",
"publisherResolution": "640x480"
},
...
}Asegúrese de sustituir <key> y <secret> por tu clave de Video API y el secreto de API correspondiente que obtuviste del panel de video de Vonage.
Si no desea mantener las credenciales dentro de su archivo config.json puede utilizar variables de entorno. Puede establecer las variables de entorno utilizando los comandos que se indican a continuación, asegurándose una vez más de sustituir <key> y <secret> por sus valores:
Ejecutar el servidor
Antes de ejecutar el servidor RTC, tendrás que asegurarte de que Redis se está ejecutando, así que en tu terminal, introduce el siguiente comando:
El comando base para ejecutar el servidor en localhost con todas las configuraciones por defecto, incluyendo el puerto por defecto (8123), es el siguiente comando:
Sin embargo, hay otras banderas que puede añadir a sus comandos para una configuración más personalizada. Puedes ver algunos de estos ejemplos a continuación:
Si desea utilizar SSL, el servidor espera que el certificado SSL se llame serverCert.pem y que el archivo de clave privada SSL se llame serverKey.pem. Puede encontrar un par de certificados SSL autofirmados pregenerados en el directorio sampleCerts directorio.
La bandera -S indica al servidor que necesita habilitar el lanzamiento de un servidor seguro, mientras que la bandera -C <dir> junto con el nombre del directorio indica al servidor dónde encontrar los certificados. Para ejecutar el servidor utilizando estos certificados, debe introducir lo siguiente:
Para obtener información detallada sobre las opciones disponibles, ejecute node server -h.
Opciones de configuración adicionales
Hay muchas otras opciones de configuración disponibles para adaptarse a sus necesidades. Estas opciones se pueden establecer en su archivo config.json o como una variable de entorno. Las claves para estas opciones se especifican primero para cada elección en los ejemplos siguientes:
appName(config.json) /APP_NAME(variable de entorno) -- El nombre de la aplicación que se muestra en varios lugares a lo largo del ciclo de vida de la videollamada. El valor predeterminado es "Vonage Video Conferencing".introText(config.json) /INTRO_TEXT(variable de entorno) -- El texto que aparece bajo el nombre de la aplicación en la primera página que muestra elprecallwidget. El valor predeterminado es "Bienvenido a Video Conferencing".showTos(config.json) /SHOW_TOS(variable de entorno) -- Si la aplicación mostrará el cuadro de diálogo de términos de servicio y requerirá que el usuario acepte los términos antes de unirse a una sala. El valor por defecto esfalse.meetingsRatePerMinute(config.json) /MEETINGS_RATE_PER_MINUTE(variable de entorno) -- Determina la cantidad máxima de nuevas reuniones que se pueden crear en un minuto. Se permitirá a los usuarios unirse a una reunión que ya exista. En caso contrario, aparecerá un mensaje indicándoles que el servicio no está disponible en ese momento. Si el valor se establece en cualquier número negativo, se desactivará la limitación de velocidad y se permitirán todas las reuniones. Si este valor se establece en 0, todas las nuevas reuniones serán rechazadas. El valor por defecto es -1.minMeetingNameLength(config.json) /MIN_MEETING_NAME_LENGTH(variable de entorno) -- La longitud mínima de los nombres de reunión creados. El valor por defecto, 0, indica que no hay longitud mínima. (Puede establecerlo en el archivo de configuración mediante el parámetrominMeetingNameLength). El valor por defecto es 0.maxUsersPerRoom(config.json) /MAX_USERS_PER_ROOM(variable de entorno) -- El número máximo de usuarios permitidos en una sala al mismo tiempo. Establézcalo a 0, el valor por defecto, para permitir cualquier número de usuarios. El valor por defecto es 0.enableRoomLocking(config.json) /ENABLE_ROOM_LOCKING(variable de entorno) -- Incluir o no el comando Bloquear reunión a los usuarios en el menú de opciones. Este comando permite a los usuarios impedir que nuevos participantes se unan a una reunión. El valor predeterminado estrue.autoGenerateRoomName(config.json) /AUTO_GENERATE_ROOM_NAME(variable de entorno) -- Autogenerar o no el nombre de la sala en nombre del usuario. Si esta opción está activada, utilizaremos haikunator para generar los nombres de las nuevas salas. Si se desactiva, se pedirá a los usuarios que introduzcan un nombre de sala/reunión cuando visiten la página de destino y no se les permitirá avanzar hasta que lo hagan. El valor por defecto estrue.enableEmoji(config.json) /ENABLE_EMOJI(variable de entorno) -- Activar o no la compatibilidad con emoji en el widget de chat de texto.
Personalizar la interfaz de usuario
Para obtener información sobre cómo personalizar la interfaz de usuario de Vonage Open Source Conferencing and Recording, consulta PERSONALIZAR-UI.
¿Cómo funciona mi servicio?
Existe un punto final de comprobación del estado de salud en /server/health. Puede cargar esta URL para comprobar si la aplicación puede conectarse a todos los servicios externos necesarios. En caso de éxito, este endpoint de comprobación de estado envía una respuesta con el código de estado HTTP establecido en 200 y el JSON similar al siguiente:
{
"name": "opentok-rtc",
"version": "4.1.1",
"gitHash": "312903cd043d5267bc11639718c47a9b313c1663",
"opentok": true,
"googleAuth": true,
"status": "pass"
}Un ejemplo de chequeo fallido será similar al siguiente:
{
"name": "opentok-rtc",
"version": "4.1.1",
"git_hash": "312903cd043d5267bc11639718c47a9b313c1663",
"opentok": false,
"error": "OpenTok API server timeout exceeded.",
"status": "fail"
}