Diferencia entre revisiones de «Instalación de Servidor Jitsi-meet»
(Página creada con «* Instalación de Servidor Jitsi-meet») |
Sin resumen de edición |
||
Línea 1: | Línea 1: | ||
== 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 - <nowiki>https://download.jitsi.org/jitsi-key.gpg.key</nowiki> | apt-key add - | |||
Añadimos el repositorio: | |||
sh -c "echo 'deb <nowiki>https://download.jitsi.org</nowiki> 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<nowiki/>', | |||
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 <abbr>DNS</abbr> 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=<nowiki>XMPP:jitsi.riu.edu.ar</nowiki> | |||
'''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 - <nowiki>https://download.jitsi.org/jitsi-key.gpg.key</nowiki> | apt-key add - | |||
Añadimos el repositorio: | |||
sh -c "echo 'deb <nowiki>https://download.jitsi.org</nowiki> 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 <nowiki>http://www.deb-multimedia.org/pool/main/d/deb-multimedia-keyring/deb-multimedia-keyring_2016.8.1_all.deb</nowiki> | |||
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 - <nowiki>https://dl-ssl.google.com/linux/linux_signing_key.pub</nowiki> | apt-key add | |||
echo "deb [arch=amd64] <nowiki>http://dl.google.com/linux/chrome/deb/</nowiki> 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 <nowiki>http://chromedriver.storage.googleapis.com/$CHROME_DRIVER_VERSION/chromedriver_linux64.zip</nowiki> -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 | |||
<code>fileRecordingsEnabled: true,</code> | |||
<code>''liveStreamingEnabled: true,''</code> | |||
<code>hiddenDomain: 'recorder.jitsi.riu.edu.ar',</code> | |||
= 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:''' | |||
-- <nowiki>https://modules.prosody.im/mod_lib_ldap.html</nowiki> | |||
-- <nowiki>https://modules.prosody.im/mod_auth_ldap2.html</nowiki> | |||
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 <abbr>DNS</abbr> 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=<nowiki>XMPP:jitsi.riu.edu.ar</nowiki> |
Revisión actual - 13:24 3 jul 2023
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