- En muchas empresas cubanas existe la necesidad de tener varias videoconferencias a la vez y que estas tengan una mayor cantidad de usuarios de lo que soporta normalmente un servidor Jitsi Meet (estamos hablando de 3 videoconferencias a la vez con alrededor de 15 usuarios cada una). Si necesitas algo mayor que eso, te recomiendo que aproveches la característica que trae Jitsi Meet de escalabilidad horizontal, la cual consiste en configurar varios puentes de video conectados a un mismo Jicofo, lo cual garantiza que el coordinador de videoconferencias utilice el puente de video con menos carga para la próxima videoconferencia. Esto se logra con un proceso sencillo el cual esta en la Documentación Oficial de Jitsi Meet, y en su foro los desarrolladores dan buenas explicaciones e ideas al respecto.
NOTA: Antes de comenzar aclaro que para esto debe tener buen ancho de banda en su red.
En mi caso utilice dos puentes de video adicionales, pero puedes ponerle la cantidad que desees en dependencia de tus necesidades.
Para comenzar vamos a necesitar los siguientes requisitos:
- Internet (Solo para el proceso de instalación)
- CT con ubuntu 18.04 live server 2 core, 4 Gb ram, 2 Gb swap y 20 Gb hdd ip: 10.1.1.2 FQDN: conferencias.empresa.cu
- CT con ubuntu 18.04 live server 2 core, 4 Gb ram, 2 Gb swap y 20 Gb hdd ip: 10.1.1.3 FQDN: jvb1.empresa.cu
- CT con ubuntu 18.04 live server 2 core, 4 Gb ram, 2 Gb swap y 20 Gb hdd ip: 10.1.1.4 FQDN: jvb2.empresa.cu
Donde en conferencias.empresa.cu se hace una instalación idéntica a la del post anterior sobre Jitsi Meet.
Una vez se halla terminado dicha instalación le configuramos los siguientes parámetros, los cuales son necesarios para lograr el balanceo de carga.
- Se debe abrir el puerto 5222 TCP en el servidor conferencias.empresa.cu
Editar:
root@conferencias:~# nano /etc/prosody/prosody.cfg.lua
Al principio del archivo se agrega la siguiente línea:
component_interface = "0.0.0.0"
Ahora se deben buscar los archivos:
/etc/jitsi/videbridge/config /etc/jitsi/video-bridge/sip-communicator.properties
Y descargarlos a nuestra pc, ya que van a ser utilizados en la configuración del los otros puentes de video.
Ahora pasamos a instalar jvb1.empresa.cu
Para comenzar se hacen las siguientes pruebas:
root@jvb1:~# hostname jvb1 root@jvb1:~# hostname -f jvb1.empresa.cu
Se instalan algunos paquetes necesarios:
root@jvb1:~# apt install gnupg2 apt-transport-https sudo -y root@jvb1:~# apt install openjdk-8-jre-headless -y
Establecemos JAVA_HOME como una variable de entorno con las dos líneas siguientes:
root@jvb1:~# echo "JAVA_HOME=$(readlink -f /usr/bin/java | sed "s:bin/java::")" |tee -a /etc/profile root@jvb1:~# source /etc/profile
Se agregan los repositorios de Jitsi Meet:
root@jvb1:~# wget -qO - https://download.jitsi.org/jitsi-key.gpg.key |apt-key add - root@jvb1:~# sh -c "echo 'deb https://download.jitsi.org stable/' > /etc/apt/sources.list.d/jitsi-stable.list" root@jvb1:~# apt update
Y se instala el puente de video solamente:
root@jvb1:~# apt install jitsi-videobridge2 -y
Durante la instalación nos pedirá el nombre de host, ahí le ponemos: jvb1.empresa.cu
De esta manera queda instalado el puente de video, ahora se pasa a instalar el otro puente de video el cual no explicare porque se hace siguiendo los mismos pasos anteriores, solo que durante la instalación cuando pide el nombre de host se le pone jvb2.empresa.cu
Ahora pasamos a configurar el jvb1, editamos los dos archivos que habíamos guardado anteriormente en la pc:
root@jvb1:~# nano/etc/jitsi/videbridge/config
Se deja de la siguiente manera:
# Jitsi Videobridge settings # sets the XMPP domain (default: none) JVB_HOSTNAME=conferencias.empresa.cu # sets the hostname of the XMPP server (default: domain if set, localhost otherwise) JVB_HOST=conferencias.empresa.cu # sets the port of the XMPP server (default: 5275) JVB_PORT=5347 # sets the shared secret used to authenticate to the XMPP server JVB_SECRET=lggPvwSw # extra options to pass to the JVB daemon JVB_OPTS="--apis=rest,xmpp" # adds java system props that are passed to jvb (default are for home and logging config file) JAVA_SYS_PROPS="-Dconfig.file=/etc/jitsi/videobridge/jvb.conf -Dnet.java.sip.communicator.SC_HOME_DIR_LOCATION=/etc/jitsi -Dnet.java.sip.communicator.SC_HOME_DIR_NAME=videobridge -Dnet.java.sip.communicator.SC_LOG_DIR_LOCATION=/var/log/jitsi -Djava.util.logging.config.file=/etc/jitsi/videobridge/logging.properties"
Luego editar:
root@jvb1:~# nano /etc/jitsi/video-bridge/sip-communicator.properties
Se deja de la siguiente manera:
org.ice4j.ice.harvest.DISABLE_AWS_HARVESTER=true org.ice4j.ice.harvest.STUN_MAPPING_HARVESTER_ADDRESSES=meet-jit-si-turnrelay.jitsi.net:443 org.jitsi.videobridge.ENABLE_STATISTICS=true org.jitsi.videobridge.STATISTICS_TRANSPORT=muc org.jitsi.videobridge.xmpp.user.shard.HOSTNAME=conferencias.empresa.cu org.jitsi.videobridge.xmpp.user.shard.DOMAIN=auth.conferencias.empresa.cu org.jitsi.videobridge.xmpp.user.shard.USERNAME=jvb org.jitsi.videobridge.xmpp.user.shard.PASSWORD=lggPvwSw org.jitsi.videobridge.xmpp.user.shard.MUC_JIDS=JvbBrewery@internal.auth.conferencias.empresa.cu org.jitsi.videobridge.xmpp.user.shard.MUC_NICKNAME=b82d2e1e-e6c6-4cb5-b6cb-9c83f3caf9af org.jitsi.videobridge.xmpp.user.shard.DISABLE_CERTIFICATE_VERIFICATION=true
Ahora se edita el archivo:
root@jvb1:~# nano /usr/share/jitsi/jvb/jvb.sh
Y se le agrega la siguiente línea al principio de dicho archivo:
sed -i "s/org.jitsi.videobridge.xmpp.user.shard.MUC_NICKNAME=.*/org.jitsi.videobridge.xmpp.user.shard.MUC_NICKNAME=$(cat /proc/sys/kernel/random/uuid)/g" /etc/jitsi/videobridge/sip-communicator.properties
De esta misma forma se configura el segundo puente de video llamado jvb2.empresa.cu.
Cuando se termine todo, se reinician los tres servidores y nos conectamos https://conferencias.empresa.cu
Para probar que todo esta bien es bueno que creen varias salas y se conecten varios usuarios a cada una de ellas, pueden ver el funcionamiento de los puentes de video en:
root@jvb1:~#tail -f /var/log/jitsi/jvb.log root@jvb2:~#tail -f /var/log/jitsi/jvb.log
Ahí se ve como se conectan y desconectan los usuarios, además se ve el consumo de los recursos según van aumentando la cantidad de usuarios y la cantidad de salas creadas.
Esto es todo, espero les guste y no olviden darle like.
Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/89.0.4389.82 Safari/537.36
Hola, excelente material.
Necesito eliminar la dependencia de jitsi a los puertos 10000-20000/udp y hacer que funcione desde el 443/tcp. ¿Me puedes dar alguna idea?
Tengo problemas cuando usuarios de otras redes intentan conectarse a mi servidor de videoconferencias usando squid proxy
Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:92.0) Gecko/20100101 Firefox/92.0
el tema proxy, es que el audio y video viaja UDP, squid no soporta UDP, por eso ellos llegan a la web pero no ven ni escuchan nada.