En ces temps de confinement, il peut être intéressant de se retrouver entre amis, ou entre collègues. Mais difficile de choisir la bonne application, tout en respectant les règles dictées par la DSI de son entreprise, ou simplement les bonnes pratiques en matière de confidentialité. Nous allons parler aujourd’hui de Jitsi.

jitsi-homepage-visio-video-conference

Jitsi, d’où ça sort ?

Jitsi Meet va à contre-courant de tout ce qui existe. Plus proche d’une solution de réunion vidéo comme Zoom, Jitsi Meet est une solution gratuite, libre, et accessible sur toutes les plates-formes. Ici, les utilisateurs ne s’appellent pas directement en choisissant un ou plusieurs contacts. Le service vous demandera, en amont, de créer une sorte de salle de réunion que vos proches, amis et collègues pourront rejoindre une fois que vous leur aurez partagé les informations d’accès. Jitsi Meet est accessible directement depuis votre navigateur web ou depuis les applications mobiles iOS et Android.

Installation de Jitsi

Les prérequis

Pour installer Jitsi, il vous faudra un serveur dédié, ou mutualisé, avec un accès root. Nous utiliserons les repos officiels de Jitsi pour son installation afin de rester Up to Date pour les futurs mises à jour.

Tuto réalisé sur une instance Scaleway sous Ubuntu 18.04.4.

Récupération des sources, dépôt et clé GPG

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

Installation

Si vous partez d’une fresh Install, utilisez la commande suivante :

apt -y install jitsi-meet

Si vous utilisez un serveur existant, disposant déjà d’un serveur Web Nginx ou Apache, utilisez plutôt celle-ci :

apt install --no-install-recommends jitsi-meet

Durant l’installation, il vous sera demandé :

  • Le hostname du serveur, il s’agit ici du server_name utilisé pour le virtualhost.
  • Le type de certificat SSL à utiliser. Certificat auto signé, ou Let’s Encrypt. Le challenge utilisé est le challenge HTTP. Si vous choisissez Let’s Encrypt, faites en sorte que votre domaine pointe bien sur votre serveur. Sinon, vous aurez la possibilité de réaliser cette génération ultérieurement avec la commande suivante :
/usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh

Configuration

Au niveau firewall, il y a quelques ports à ouvrir, les voici :

  • 443/TCP
  • 4443/TCP
  • 10000/UDP

Il vous faudra ensuite modifier un fichier de configuration, celui de Jitsi videobridge. Ouvrez donc le fichier /etc/jitsi/videobridge/sip-communicator.properties et ajoutez ces deux lignes :

org.ice4j.ice.harvest.NAT_HARVESTER_LOCAL_ADDRESS=<Local.IP.Address>
org.ice4j.ice.harvest.NAT_HARVESTER_PUBLIC_ADDRESS=<Public.IP.Address>

Et commentez cette ligne :

org.ice4j.ice.harvest.STUN_MAPPING_HARVESTER_ADDRESSES

Redémarrez les services :

service jitsi-videobridge2 restart

Enfin, visitez le domaine renseigné en début d’installation. Vous êtes sur la homepage de votre propre serveur de visio conférence !

Problèmes fréquents

L’installation quick-install fournie par Jitsi sur un Ubuntu 20.04, installe la version 15 de Java. Cette dernière pose problème lors de la création d’un slot de conférence. Il se peut que vous rencontriez les erreurs suivantes :

Unrecognized VM option 'UseConcMarkSweepGC'
Error: Could not create the Java Virtual Machine.
Error: A fatal exception has occurred. Program will exit.

Il se peut également que lors du démarrage de la solution, le service ne démarre pas correctement et soit en status loading.

Pour contourner ce problème, nous allons modifier quelques variables systèmes et installer la version 8 de Java

Configuration Système

Modifiez le fichier /etc/systemd/system.conf et décommettez les lignes suivantes en modifiant les valeurs :

DefaultTasksMax=65000
DefaultLimitNPROC=65000
DefaultLimitNOFILE=65000

Rechargez la configuration et testez-là :

systemctl daemon-reload
systemctl show --property DefaultLimitNPROC

Vous devriez donc voir apparaître les nouvelles valeurs.

Configuration Jitsi

Modifiez le fichier /etc/jitsi/jicofo/sip-communicator.properties et ajoutez la ligne suivante :

org.jitsi.jicofo.HEALTH_CHECK_INTERVAL=-1

Installation de Java 8

Nous allons désormais installer la version 8 de Java et modifier la configuration système pour utiliser cette dernière en version par défaut :

apt install default-jre
apt install openjdk-8-jre-headless

Ensuite, lancez la commande suivante pour modifier la configuration par défaut :

update-alternatives --config java                
There are 4 choices for the alternative java (providing /usr/bin/java).

  Selection    Path                                                Priority   Status
------------------------------------------------------------
  0            /usr/lib/jvm/java-15-openjdk-amd64/bin/java          1511      auto mode
  1            /usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/bin/java   1081      manual mode
  2            /usr/lib/jvm/java-11-openjdk-amd64/bin/java          1111      manual mode
  3            /usr/lib/jvm/java-15-openjdk-amd64/bin/java          1511      manual mode
* 4            /usr/lib/jvm/java-8-openjdk-amd64/jre/bin/java       1081      manual mode

Press <enter> to keep the current choice[*], or type selection number:

Ici, sélectionnez le numéro correspondant à la version 8, puis testez en exécutant la commande suivante :

java -version
openjdk version "1.8.0_275"

Redémarrage des services

Enfin, redémarrer les services Jitsi :

service jicofo stop
service jitsi-videobridge2 stop
service jicofo start
service jitsi-videobridge2 start

Tout devrait désormais fonctionner correctement :

systemctl status jitsi-videobridge2        
● jitsi-videobridge2.service - Jitsi Videobridge
     Loaded: loaded (/lib/systemd/system/jitsi-videobridge2.service; enabled; vendor preset: enabled)
     Active: active (running) since Sat 2020-11-21 10:13:26 UTC; 1h 50min ago
    Process: 701082 ExecStartPost=/bin/bash -c echo $MAINPID > /var/run/jitsi-videobridge/jitsi-videobridge.pid (code=exited, status=0/SUCCESS)
   Main PID: 701081 (java)
      Tasks: 52 (limit: 65000)
     Memory: 399.9M

 

Pour plus d’informations sur la configuration, vous pouvez suivre la procédure officielle : https://github.com/jitsi/jitsi-meet/blob/master/doc/quick-install.md#advanced-configuration