Instalación de Servidor Jitsi-meet
Instalación de Servidor web
Jitsi nos da la posibilidad de utilizar nginx o apache2
apt install apt-transport-https
instalacion de nginx
apt install nginx
instalacion de apache2
apt install apache2
Instalacion de jitsi-meet
Por defecto, Jitsi Meet no viene disponible en los repositorios de Debian 9, para ello deberemos de añadir el repositorio oficial:
wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | apt-key add -
Añadimos el repositorio:
sh -c "echo 'deb https://download.jitsi.org stable/'> /etc/apt/sources.list.d/jitsi.list"
Actualizamos los repositorios e instalamos el paquete necesario:
apt update apt install jitsi-meet
Durante la instalación, tendremos que añadir nuestro hostname:
Pantalla N°1
En la siguiente pantalla podemos elegir, entre usar un certificado genérico o usar nuestros propios certificados, en el caso de usar los genéricos mas adelante se puede usar un script que viene con la aplicacion para generar certificados Let's Encrypt
Pantalla N°2
Accediendo a Jitsi Ahora tenemos Jitsi instalando. Así que si abrimos el navegador y escribimos https://jitsi.midominio.com deberemos de poder acceder y ver lo siguiente:
Pantalla N°3
pd: Jitsi tiene una aplicación para celulares, para poder usar la misma hay agregar una cadena de certificados en el servidor web, si dejamos la configuración del servidor web que genera jitsi por defecto la aplicación del celular no va a funcionar.
Parámetros a configurar:
- Editamos el archivo /usr/share/jitsi-meet/interface_config.js
DEFAULT_REMOTE_DISPLAY_NAME: 'Usuario Anónimo',
DEFAULT_LOCAL_DISPLAY_NAME: 'Yo',
SHOW_JITSI_WATERMARK: true,
JITSI_WATERMARK_LINK: 'http://www.riu.edu.ar',
APP_NAME: 'Video Conferencia RIU',
NATIVE_APP_NAME: 'Vídeo Conferencia RIU',
- Los siguientes parámetros no son necesarios modificar, pero mejoran el rendimiento de la aplicación, cuando hay mas de 15 usuarios conectados:
DISABLE_FOCUS_INDICATOR: true,
DISABLE_DOMINANT_SPEAKER_INDICATOR: true,
Editamos el archivo /usr/share/jitsi-meet/css/all.css
En este archivo podemos cambiar la marca de agua, buscamos watermark.png y lo reemplazamos por nuestro logo.
Editamos el archivo /etc/jitsi/meet/jitsi.midominio.edu.ar-config.js
Este parámetro obliga a los usuarios que ingresen a una sala a identificarse
requireDisplayName: true,
En este parámetro se selecciona el idioma por defecto
defaultLanguage: 'es',
Habilitar IPv6
useIPv6: true,
Enviar mensaje a los usuarios:
noticeMessage: 'El servicio va a entrar en mantenimiento el Lunes 27 de Abril de 2020',
En este archivo también se puede modificar parámetros para mejorar el rendimiento:
disableAudioLevels: true,
constraints: {
video: {\\ aspectRatio: 16 / 9,\\ height: {\\ ideal: 240,\\ max: 480,\\ min: 180\\ }\\ }\\ },\\
Dominio Seguro
Jitsi por defecto permite que cualquier persona cree una sala para una video conferencia, para evitar esto, es posible permitir solo usuarios autenticados para crear nuevas salas de conferencias. Cada vez que se va a crear una nueva sala, Jitsi Meet solicitará el nombre de usuario y la contraseña. Una vez creada la sala, otros podrán unirse desde un dominio anónimo. Esto es lo que debe configurarse:
Habilitar la autenticación en nuestro dominio principal:
VirtualHost "jitsi.riu.edu.ar" authentication = "internal_plain"
Agregue un nuevo VirtualHost con un método de inicio de sesión anónimo para los invitados:
VirtualHost "guest.jitsi.riu.edu.ar" authentication = "anonymous" c2s_require_encryption = false
(Tenga en cuenta que guest.jitsi.midominio.com es interno de jitsi, y no necesita (y no debe) crear un registro DNS para él, ni generar un certificado SSL / TLS, ni realizar ninguna configuración de servidor web. )
Editar el archivo /etc/jitsi/meet/jitsi.riu.edu.ar-config.js
var config = { hosts: { domain: 'jitsi.riu.edu.ar', anonymousdomain: 'guest.jitsi.riu.edu.ar', ... }, ... }
Al ejecutar Jicofo, especifique su dominio principal en una propiedad de configuración adicional. Jicofo aceptará solicitudes de asignación de conferencias solo del dominio autenticado.
Agregar una nueva linea en el archivo /etc/jitsi/jicofo/sip-communicator.properties:
org.jitsi.jicofo.auth.URL=XMPP:jitsi.riu.edu.ar
Crear los usuarios que van a poder crear salas de video conferencia
prosodyctl register <username> jitsi.riu.edu.ar <password>
Reinicio los servicios
systemctl restart prosody systemctl restart jicofo
Balanceo de carga
Una instalación por defecto soporta hasta 3 vídeo conferencias simultaneas con 60 participantes, en caso que se deseen hacer mas VC simultaneas hay que agregar un videobridge mas. Por cada videobridge que le agrego a una instancia de jitsi le permito hacer 3 VC simultaneas mas.
Servidor con jitsi-meet
Para poder realizar esto se necesita otro servidor con Debian9 y en este se va a instalar el videobridge extra.
hay que habilitar las estadísticas de PubSub en el videobridge del jitsi para esto editamos el archivo /etc/jitsi/videobridge/sip-communicator.properties y agregamos las siguientes lineas:
org.jitsi.videobridge.ENABLE_STATISTICS=true org.jitsi.videobridge.STATISTICS_TRANSPORT=pubsub org.jitsi.videobridge.PUBSUB_SERVICE=jitsi.riu.edu.ar org.jitsi.videobridge.PUBSUB_NODE=sharedStatsNode
Editamos el archivo /etc/jitsi/videobridge/config y modificamos el siguiente parametro:
JVB_HOSTNAME=jitsi.riu.edu.ar
Luego editamos el archivo /etc/prosody/conf.d/jitsi.riu.edu.ar.cfg.lua y agrego las siguientes lineass dentro de VirtualHost “jitsi.midominio.com”
admins = { "jitsi-videobridge.jitsi.riu.edu.ar", "videobridge2.jitsi.riu.edu.ar", } Component "jitsi-videobridge.jitsi.riu.edu.ar" component_secret = "lVNL#Ne@" Component "videobridge2.jitsi.riu.edu.ar" component_secret = "6a0l6ale" #Esta contraseña la sacamos de /etc/jitsi/videobridge/config del segundo debian9
Habilitamos para que el servicio prosody atienda en una IP.
component_ports = { 5347 } component_interface = "xxx.xxx.xxx.xxx"
Nuevo servidor con jitsi-videobridge
En el nuevo servidor debian9 instalamos el paque jitsi-videobridge. para ello deberemos de añadir el repositorio oficial:
wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | apt-key add -
Añadimos el repositorio:
sh -c "echo 'deb https://download.jitsi.org stable/'> /etc/apt/sources.list.d/jitsi.list"
Actualizamos los repositorios e instalamos el paquete necesario:
apt update apt install jitsi-videobridge
Editamos el archivo /etc/jitsi/videobridge/config y modificamos los siguientes parametros:
JVB_HOSTNAME=jitsi.midominio.com JVB_HOST=jitsi.midominio.com JVB_OPTS="--apis=rest,xmpp --subdomain=videobridge2"
Luego editamos el archivo /etc/jitsi/videobridge/sip-communicator.properties y agregamos las siguientes lineas:
org.jitsi.videobridge.AUTHORIZED_SOURCE_REGEXP=focus@auth.jitsi.riu.edu.ar/.* org.jitsi.videobridge.ENABLE_STATISTICS=true org.jitsi.videobridge.STATISTICS_TRANSPORT=pubsub org.jitsi.videobridge.PUBSUB_SERVICE=jitsi.riu.edu.ar org.jitsi.videobridge.PUBSUB_NODE=sharedStatsNode
Habilitar Live Streaming and Record
SERVIDOR JIBRI
Instalamos la ultima version del paquete linux-image
apt install linux-image-4.9.0-12-amd64
Habilitamos los modulos ALSA loopback y nos aseguramos que carguen en el inicio:
echo "snd-aloop">> /etc/modules modprobe snd-aloop
Chequeamos que estén funcionando:
lsmod | grep snd_aloop
Jibri requiere una instalación ffmpeg relativamente moderna con captura x11 compilada. Agregamos los repositorios de multimedia deb http://www.deb-multimedia.org stretch main contrib non-free Para poder instalar desde estos repositorios hay que instalar la firma
wget http://www.deb-multimedia.org/pool/main/d/deb-multimedia-keyring/deb-multimedia-keyring_2016.8.1_all.deb dpkg -i deb-multimedia-keyring_2016.8.1_all.deb
Ahora actualziamos e instalamos el paquete ffmpeg
apt update apt install ffmpeg
Google Chrome stable & Chromedriver
Se debe usar la última versión estable de Google Chrome.
apt install curl curl -sS -o - https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add echo "deb [arch=amd64] http://dl.google.com/linux/chrome/deb/ stable main"> /etc/apt/sources.list.d/google-chrome.list apt update apt install google-chrome-stable
Agregue el archivo de políticas administradas de Chrome y establezca CommandLineFlagSecurityWarningsEnabled en falso. Ocultará advertencias en Chrome. Puedes configurarlo así:
mkdir -p /etc/opt/chrome/policies/managed echo '{ "CommandLineFlagSecurityWarningsEnabled": false }'>>/etc/opt/chrome/policies/managed/managed_policies.json
Chromedriver también es necesario y puede instalarse así:
CHROME_DRIVER_VERSION=`curl -sS chromedriver.storage.googleapis.com/LATEST_RELEASE` wget -N http://chromedriver.storage.googleapis.com/$CHROME_DRIVER_VERSION/chromedriver_linux64.zip -P ~/ unzip ~/chromedriver_linux64.zip -d ~/ rm ~/chromedriver_linux64.zip sudo mv -f ~/chromedriver /usr/local/bin/chromedriver sudo chown root:root /usr/local/bin/chromedriver sudo chmod 0755 /usr/local/bin/chromedriver
Herramientas varias necesarias
Instalación de paquetes necesarios:
apt install default-jre-headless ffmpeg curl alsa-utils icewm xdotool xserver-xorg-input-void xserver-xorg-video-dummy
Instalación y configuración de Jibri
apt install jibri
Archivo de Configuración
Editar el archivos config.json (ubicado por defecto en /etc/jitsi/jibri/config.json)
{ "recording_directory":"/tmp/recordings", "finalize_recording_script_path": "/path/to/finalize_recording.sh", "xmpp_environments": [ { "name": "prod environment", "xmpp_server_hosts": [ "jitsi.riu.edu.ar" ], "xmpp_domain": "jitsi.riu.edu.ar", "control_login": { "domain": "auth.jitsi.riu.edu.ar", "username": "jibri", "password": "123456" }, "control_muc": { "domain": "internal.auth.jitsi.riu.edu.ar", "room_name": "JibriBrewery", "nickname": "jibri-nickname" }, "call_login": { "domain": "recorder.jitsi.riu.edu.ar", "username": "recorder", "password": "123456" }, "room_jid_domain_string_to_strip_from_start": "conference.", "usage_timeout": "0" } ] }
SERVIDOR JITSI
Modificar jicofo
Editar el archivo /etc/jitsi/jicofo/sip-communicator.properties y agregar las siguientes lineas:
org.jitsi.jicofo.jibri.BREWERY=JibriBrewery@internal.auth.jitsi.riu.edu.ar org.jitsi.jicofo.jibri.PENDING_TIMEOUT=90
Editamos el archivo /etc/prosody/conf.d/jitsi.midominio.com.cfg.lua y agregamos lo siguiente:
VirtualHost "recorder.jitsi.riu.edu.ar" modules_enabled = { "ping"; } authentication = "internal_plain"
Creo las dos cuentas que va a utilizar jibri, las contraseñas que voy a utilizar son las mismas que puse en el archivo /etc/jitsi/jibri/config.json
prosodyctl register jibri auth.jitsi.riu.edu.ar 123456 prosodyctl register recorder recorder.jitsi.riu.edu.ar 123456
Modificamos JITSI-MEET
editamos el archivo /etc/jitsi/meet/jitsi.midominio.com.config.js
fileRecordingsEnabled: true,
liveStreamingEnabled: true,
hiddenDomain: 'recorder.jitsi.riu.edu.ar',
Autenticación LDAP
Jitsi por defecto permite que cualquier persona cree una sala para una video conferencia, para evitar esto, es posible permitir solo usuarios autenticados para crear nuevas salas de conferencias. Cada vez que se va a crear una nueva sala, Jitsi Meet solicitará el nombre de usuario y la contraseña. Una vez creada la sala, otros podrán unirse desde un dominio anónimo.
Primero instalamos los módulos necesarios:
apt install prosody-modules lua-ldap
Creamos el archivo /etc/prosody/conf.avail/ldap.cfg.lua y dentro del mismo ponemos lo siguiente:
-- https://modules.prosody.im/mod_lib_ldap.html -- https://modules.prosody.im/mod_auth_ldap2.html authentication = 'ldap2' ldap = { hostname = 'ldap.riu.edu.ar', bind_dn = 'cn=admin,dc=riu,dc=edu,dc=ar', bind_password = 'Contraseña', use_tls = true, user = { usernamefield = 'uid', basedn = 'dc=riu,dc=edu,dc=ar', filter = '(objectClass=*)', -- admin? namefield = 'cn', }, }
Creo un link de la configuración al directorio config
ln -sf /etc/prosody/conf.avail/ldap.cfg.lua /etc/prosody/conf.d/
Habilitar la autenticación en nuestro dominio principal:
VirtualHost "jitsi.riu.edu.ar" authentication = "ldap2"
Agregue un nuevo VirtualHost con un método de inicio de sesión anónimo para los invitados:
VirtualHost "guest.jitsi.riu.edu.ar" authentication = "anonymous" c2s_require_encryption = false
(Tenga en cuenta que guest.jitsi.midominio.com es interno de jitsi, y no necesita (y no debe) crear un registro DNS para él, ni generar un certificado SSL / TLS, ni realizar ninguna configuración de servidor web. )
Editar el archivo /etc/jitsi/meet/jitsi.midominio.com-config.js
var config = { hosts: { domain: 'jitsi.riu.edu.ar', anonymousdomain: 'guest.jitsi.riu.edu.ar', ... }, ... }
Al ejecutar Jicofo, especifique su dominio principal en una propiedad de configuración adicional. Jicofo aceptará solicitudes de asignación de conferencias solo del dominio autenticado.
Agregar una nueva linea en el archivo /etc/jitsi/jicofo/sip-communicator.properties:
org.jitsi.jicofo.auth.URL=XMPP:jitsi.riu.edu.ar