Como configurar un servidor Jitsi con multiples nodos

Introducción

En este artículo, vamos a configurar una instalación existente de Jitsi meet con múltiples / dos nodos de videobridge.
Jitsi meet es una aplicación de transmisión de video de código abierto que ofrece funcionalidades similares a Zoom. Este tutorial asume que ha completado una instalación predeterminada (de un solo nodo) de Jitsi Meet. Para la instalación predeterminada de Jitsi Meet, consulte esta guía.

Jitsi meet tiene una funcionalidad de equilibrio de carga incorporada y se puede configurar para administrar múltiples nodos de Videobridge para albergar conferencias de reuniones. Cada componente del puente de video es responsable de transmitir datos multimedia a todos los participantes de un conjunto de reuniones determinado. Para configurar Jitsi meet con múltiples nodos de videobridge, necesitaremos cambiar todos los nodos de videobridge para publicar su estado en el servidor XMPP predeterminado. Al mismo tiempo, cambiaremos el componente Jicofo en Jitsi meet para suscribirnos al nodo XMPP para eventos publicados por todos los nodos de videobridge.

Prerequisitos

En este artículo, asumimos que ya tiene un servidor (Servidor A) con la instalación predeterminada de Jitsi Meet, y vamos a configurar un segundo puente de video en una máquina servidor separada (Servidor B).

PARTE A. Cambio de configuración al servidor A

Vamos a SSH en el servidor A, esta máquina tiene una instalación predeterminada de Jitsi meet y, de forma predeterminada, también tiene un componente de puente de video.

Tenga en cuenta que en este tutorial, el nombre de dominio o es el dominio del servidor Jitsi principal (tomyde.com.ar).

Paso 1. Agregar los JID de las Videobridges

Primero, debemos permitir que todos los videobridge puedan crear sus propios nodos pubsub. Agreguemos los JID de los nodos del puente de video a Prosody. En la configuración de Prosody
/etc/prosody/conf.d/tomyde.com.ar.cfg.lua,
agregue la siguiente línea debajo de authentication = …

admins = { 
"jitsi-videobridge.<dnsname>", 
"videobridge2.<dnsname>", 
}

En este tutorial usamos los dos subdominios anteriores jitsi-videobridge y videobridge2 como dns para cada nodo de videobridge. En algunas versiones de Jitsi, jitsi-videobridge es el nombre de dominio predeterminado utilizado por videobridge. videobridge2 es el dominio que elegimos para el segundo nodo de videobridge. Después del cambio, su archivo de configuración debería verse como a continuación.

VirtualHost "<dnsname>" 
-- enabled = false -- Remove this line to enable this host 
authentication = "internal_plain" //Note this value can be "anonymous", if you haven't enabled authentication 
admins = { 
"jitsi-videobridge.<dnsname>", 
"videobridge2.<dnsname>", 
} 
...

Paso 2. Cambiar la configuración del nodo Videobridge predeterminado

Ahora, edite la configuración de videobridge en
/etc/jitsi/videobridge/config
y busque la línea de configuración JVB_OPTS = “- apis =,”
y cámbiela a la siguiente.

JVB_OPTS="--apis=rest,xmpp --subdomain=jitsi-videobridge" 
JVB_HOST=<IP de Jitsi>

Paso 3. Cambie Prosody para escuchar la interfaz pública

Dado que tendremos muchos nodos de puente de video que se conectarán desde fuera de la caja del servidor, necesitamos cambiar Prosody para escuchar la red pública. Edite la configuración de prosody
/etc/prosody/prosody.cfg.lua
Para escuchar la IP pública, agregue la siguiente configuración en
admin = {}

component_ports = {5347} 
component_interface = "<IPaddress>" //reemplace esta dirección IP con la IP pública de su servidor principal de Jitsi Meet (Servidor A)

Tenga en cuenta que la dirección IP aquí depende de la configuración de su red. Si tiene problemas para conectarse a la prosody desde nodos de puente de video externos, intente cambiar esta IP a 0.0.0.0, que escucha todos los rangos de IP.

Paso 4. Cambie la configuración de Jicofo para usar dominio público

Ahora, cambie los siguientes archivos de configuración para reemplazar localhost con su dominio jitsi.
Primero, /etc/jitsi/jicofo/config

JICOFO_HOST=<IP servidor Jitsi> 

Paso 5. Cambie el nodo Videobridge predeterminado para usar pubsub

En /etc/jitsi/videobridge/sip-communicator.properties para habilitar estadísticas y establecer estadísticas para usar pubsub, realice los siguientes cambios. Agregue las siguientes líneas si faltan, o si STATISTIC_TRANSPORT está configurado para muc cámbielo a pubsub.

org.jitsi.videobridge.ENABLE_STATISTICS=true org.jitsi.videobridge.STATISTICS_TRANSPORT=pubsub org.jitsi.videobridge.PUBSUB_SERVICE=<domainname> org.jitsi.videobridge.PUBSUB_NODE=sharedStatsNode

Paso 6. Cambie Jicofo para suscribirse al nodo pubsub

En el archivo
/etc/jitsi/jicofo/sip-communicator.properties
agregue lo siguiente

org.jitsi.focus.pubsub.ADDRESS=<domainname> org.jitsi.focus.STATS_PUBSUB_NODE=sharedStatsNode

Paso 7. Abrir puertos en el servidor principal (servidor A)

sudo ufw allow 5347/tcp
sudo ufw allow 5347/UDP
sudo ufw allow 5222/tcp
sudo ufw allow 5222/UDP

PARTE B. Cambios en el segundo servidor de videobridge (Servidor B)

Ahora, instalemos el segundo Videobridge en el otro servidor. Primero, SSH en el segundo servidor (servidor B).

Prerequisitos

instalar Java 8

sudo apt install openjdk-8-jdk-headless

Paso 1. Agrega la biblioteca de paquetes de Jitsi

Ejecute el siguiente comando como superusuario para agregar el paquete Jitsi debian y la clave.

$ echo 'deb https://download.jitsi.org stable/' | sudo tee /etc/apt/sources.list.d/jitsi-stable.list 
$ wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | sudo apt-key add -

Si aparece un error como gnupg, gnupg2 y gnupg1 no parecen estar instalados, necesitará instalar gnupg o gnupg2 usando apt-get install gnupg2. Luego, puede agregar la clave después de eso.

Paso 2. Instale jitsi videobridge

ejecuta el siguiente comando

$ apt-get update 
$ apt-get install jitsi-videobridge

Durante la instalación, se nos pedirá el nombre de dominio del servidor principal, reemplace localhost con el nombre de dominio del servidor principal de Jitsi

Paso 3. Configure Videobridge para usar pubsub

en /etc/jitsi/videobridge/sip-communicator.properties para habilitar las estadísticas y configurar las estadísticas para usar pubsub, realice los siguientes cambios. Agregue las siguientes líneas si faltan, o si STATISTIC_TRANSPORT está configurado en muc, cámbielo a pubsub. Asegúrese de que el nombre de dominio apunte al servidor A.

org.jitsi.videobridge.ENABLE_STATISTICS=true 
org.jitsi.videobridge.STATISTICS_TRANSPORT=pubsub 
org.jitsi.videobridge.PUBSUB_SERVICE=<IP servidor Jitsi> 
org.jitsi.videobridge.PUBSUB_NODE=sharedStatsNode

Paso 4. Configure Videobridge para conectarse al servidor principal

Ahora, edite la configuración de videobridge en
/etc/jitsi/videobridge/config
y busque la línea de configuración
JVB_OPTS = “- apis =,” y cámbiela a la siguiente.

JVB_OPTS="--apis=rest,xmpp --subdomain=videobridge2" JVB_HOST=<IP servidor Jitsi>

De forma predeterminada, el JID usa jitsi-videobridge como subdominio predeterminado, por lo que en este segundo nodo, configuramos el subdominio como videobridge2.

PART C. Agregue nuevos componentes de videobridge al servidor Jitsi principal (Servidor A)

Step 1. Establecer credenciales de videobridge

Regrese al servidor A. Edite el archivo en
/etc/prosody/conf.d/xxx.cfg.lua,
en la parte inferior del VirtualHost principal agregue lo siguiente

Component "videobridge2.xxx " // Este es el nombre de dominio del segundo videobridge
component_secret = "" // Esto se puede encontrar en el segundo VB, en /etc/jitsi/videobridge/config

Verifique la lista de componentes, asegúrese de que el componente_secret del Componente “jitsi-videobridge …” esté configurado y sea el mismo que el valor en /etc/jitsi/videobridge/config en el servidor A. Tenga en cuenta que en algunas versiones de Jitsi Meet, esto puede faltar la configuración, así que asegúrese de agregar este componente si falta.

Component "jitsi-videobridge.<dnsname>" // Este es el nombre de dominio del primer videobridge
component_secret = "" // Esto se puede encontrar en el primer VB, en /etc/jitsi/videobridge/config

Paso 2. Reinicie los servicios en el servidor A

sudo service prosody reload 
sudo service jicofo restart 
sudo service jitsi-videobridge2 restart 
sudo service nginx restart

Paso 3. Reinicie el videobridge en el servidor B

sudo service jitsi-videobridge2 restart

si da error
Failed to start jitsi-videobridge2.service: Unit jitsi-videobridge2.service is masked.

sudo systemctl restart jitsi-videobridge

Listo

Otro sitio más de Los Lucero