« Jitsi » : différence entre les versions

De Reliable Brain
 
(15 versions intermédiaires par le même utilisateur non affichées)
Ligne 11 : Ligne 11 :


== Installation ==
== Installation ==
=== Ubuntu Server 20.04 ===
* Prérequis :
<source>
apt install curl gnupg2 nginx-full software-properties-common apt-transport-https
</source>
* Suivre ceci : https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-quickstart
=== Ubuntu 18.04 ===
J'utilise un CT avec Ubuntu Server 18.04.4
J'utilise un CT avec Ubuntu Server 18.04.4


Ligne 21 : Ligne 29 :
=== Modifications effectuées ===
=== Modifications effectuées ===
==== Fichier /etc/jitsi/meet/visio.<domaine>-config.js =====
==== Fichier /etc/jitsi/meet/visio.<domaine>-config.js =====
    disableModeratorIndicator: false,
    disableReactions: false,
    liveStreamingEnabled: false,
     enableInsecureRoomNameWarning: true,
     enableInsecureRoomNameWarning: true,
    enableAutomaticUrlCopy: true,
    toolbarButtons: [
        'camera',
        'chat',
        'closedcaptions',
    /    'desktop',
    //    'download',
    //    'embedmeeting',
    //    'etherpad',
    //    'feedback',
    //    'filmstrip',
        'fullscreen',
        'hangup',
        'help',
    //    'invite',
    //    'livestreaming',
        'microphone',
        'mute-everyone',
        'mute-video-everyone',
        'participants-pane',
        'profile',
        'raisehand',
    //    'recording',
        'security',
    //    'select-background',
        'settings',
    //    'shareaudio',
        'sharedvideo',
        'shortcuts',
        'stats',
        'tileview',
        'toggle-camera',
        'videoquality',
        '__end'
    ],
     enableDisplayNameInStats: true,
     enableDisplayNameInStats: true,
     disableThirdPartyRequests: true,
     disableThirdPartyRequests: true,
    hideLobbyButton: true,
    requireDisplayName: true,
    defaultLocalDisplayName: 'moi',
    defaultRemoteDisplayName: 'Autre participant',
     defaultLanguage: 'fr',
     defaultLanguage: 'fr',
     noticeMessage: 'Bienvenue sur la plateforme de webconférence sécurisée de l\'Ambassade de France en Italie !',
     noticeMessage: 'Bienvenue sur la plateforme de webconférence sécurisée de l\'Ambassade de France en Italie !',
     enableAutomaticUrlCopy: true,
 
     disableInviteFunctions: true,
 
    enableLipSync: true,
    liveStreamingEnabled: false,
 
 
A tester :video
hideConferenceSubject: false,
hideConferenceTimer: false,
hideParticipantsStats: true,


==== Fichier /var/www/jitsi-custom/interface_config.js ====
==== Fichier /var/www/jitsi-custom/interface_config.js ====
On va maintenant copier le fichier suivant dans un répertoire accessible de NGINX
<source>
mkdir /var/www/jitsi-custom
mkdir /var/www/jitsi-custom
cp /usr/share/jitsi-meet/interface_config.js /var/www/jitsi-custom
cp /usr/share/jitsi-meet/interface_config.js /var/www/jitsi-custom/interface_config.js
 
</source>
Puis on modifie le fichier ainsi copié :
<source>
nano /var/www/jitsi-custom/interface_config.js
     BRAND_WATERMARK_LINK: 'https://it.ambafrance.org/',
     BRAND_WATERMARK_LINK: 'https://it.ambafrance.org/',
    DISABLE_VIDEO_BACKGROUND: true,
    DISPLAY_WELCOME_FOOTER: false,
     ENABLE_DIAL_OUT: false,
     ENABLE_DIAL_OUT: false,
     GENERATE_ROOMNAMES_ON_WELCOME_PAGE: false,
     GENERATE_ROOMNAMES_ON_WELCOME_PAGE: false,a
     HIDE_INVITE_MORE_HEADER: true,
     HIDE_INVITE_MORE_HEADER: true,
    LANG_DETECTION: false, // Allow i18n to detect the system language
    SHOW_BRAND_WATERMARK: true,


</source>
Puis on modifie le fichier de configuration de Nginx afin qu'il utilise les ressources modifiées
<source>
cp /etc/nginx/sites-available/visio.domaine.fr.conf /etc/nginx/sites-available/visio.domaine.fr.conf.bak
nano /etc/nginx/sites-available/visio.domaine.fr.conf
</source>
On ajoute les redirections suivantes :
<source>
    location = /interface_config.js {
        alias /var/www/jitsi-custom/interface_config.js;
    }
    location = /images/watermark.png {
        alias /var/www/jitsi-custom/watermark.png;
    }
  location = /images/watermark.svg {
      alias /var/www/jitsi-custom/watermark.png;
  }
</source>
Et on relance le serveur Nginx pour prendre en compte ces modifs
<source>
nginx -t && nginx -s reload
</source>
Enfin on modifie directement le fichier des libellés :


    TOOLBAR_BUTTONS: [
==== Fichier /usr/share/jitsi-meet/libs/app.bundle.min.js ====
        'microphone', 'camera', 'closedcaptions', 'desktop', 'fullscreen',
Ce fichier contient l'écran affiché par défaut en anglais. Il peut et doit être modifié si le texte affiché par défaut ne convient pas.
        'fodeviceselection', 'hangup', 'profile', 'chat',
# Rechercher "headerTitle" et modifier la valeur associée. Les caractères accentués sont autorisés, mais les apostrophes doivent impérativement être précédées d'un anti-slash \
    // 'livestreaming', 'etherpad',
# Rechercher "headerSubtitle" et modifier sa valeur de la même façon.
    // 'sharedvideo',
# Enregistrer
        'settings', 'raisehand',
# Relancer le navigateur en forçant le rechargement du cache.
        'videoquality', 'filmstrip',
    // 'invite',
        'feedback', 'stats', 'shortcuts',
        'tileview',
    // 'videobackgroundblur',
        'download', 'help', 'mute-everyone', 'security'
    ],


==== Fichier /usr/share/jitsi-meet/lang/main-fr.json ====
==== Fichier /usr/share/jitsi-meet/lang/main-fr.json ====
         "headerTitle": "Plateforme de visioconférence de l'Ambassade de France en Italie",
         "headerTitle": "Plateforme de visioconférence de l'Ambassade de France en Italie",
         "headerSubtitle": "Webconférences sécurisées",
         "headerSubtitle": "Webconférences sécurisées",


Voir aussi ici :  
Voir aussi ici :  
Ligne 63 : Ligne 152 :
* Mettre un serveur STUN : https://community.hetzner.com/tutorials/install-turn-stun-server-on-debian-ubuntu-with-coturn
* Mettre un serveur STUN : https://community.hetzner.com/tutorials/install-turn-stun-server-on-debian-ubuntu-with-coturn


=== Autres supports pertinents ===
* Pour tout comprendre de Jitsi : https://www.aduneo.com/ameliorer-lacces-aux-visioconference-jitsi/
* Customiser : https://www.sixmedium.com/category/jitsi/page/2/
* Jitsi Meet Torture : https://github.com/jitsi/jitsi-meet-torture
=== SIP et Jigasi ===
=== SIP et Jigasi ===
# Installer JIGASI <source>apt install jigasi</source>
# Installer JIGASI <source>apt install jigasi</source>
Ligne 150 : Ligne 243 :
==Extensions Navigateurs==
==Extensions Navigateurs==
* https://jitsi-hacks.cketti.eu/
* https://jitsi-hacks.cketti.eu/
== Jibri ==
* https://github.com/jitsi/jibri/blob/master/README.md


== Customisation ==
== Customisation ==

Dernière version du 17 décembre 2021 à 09:29

Généralités

JITSI est un serveur de visio-conférence libre et gratuit.

Les premiers essais n'ont pas été très conclusifs pour les raisons suivantes :

  • Ne fonctionne bien qu'avec Chrome et les applications Jitsi-Meet, mais aussi avec les applications basées sur Electron.
  • Ne fonctionne pas avec Firefox hélas
  • Je n'avais pas employé le FQDN pour la création du serveur... En reprenant tout, c'est passé comme une lettre à la poste.

Nouveautés

Il existe désormais un site qui reprend toutes les informations : https://jitsi.github.io/handbook/

Installation

Ubuntu Server 20.04

  • Prérequis :
apt install curl gnupg2 nginx-full software-properties-common apt-transport-https

Ubuntu 18.04

J'utilise un CT avec Ubuntu Server 18.04.4

Il faut bien suivre scrupuleusement ces sites, et utilisant systématiquement le FQDN créé.

  1. Installation de base : https://jitsi.github.io/handbook/docs/devops-guide/devops-guide-quickstart
  2. Customisation : https://framacloud.org/fr/cultiver-son-jardin/jitsi-meet
  3. Sécurisation : https://crosstalksolutions.com/how-to-enable-jitsi-server-authentication/

Modifications effectuées

Fichier /etc/jitsi/meet/visio.<domaine>-config.js =

   disableModeratorIndicator: false,
   disableReactions: false,
   liveStreamingEnabled: false,
   enableInsecureRoomNameWarning: true,
   enableAutomaticUrlCopy: true,
   toolbarButtons: [
       'camera',
       'chat',
       'closedcaptions',
   /    'desktop',
   //    'download',
   //    'embedmeeting',
   //    'etherpad',
   //    'feedback',
   //    'filmstrip',
       'fullscreen',
       'hangup',
       'help',
   //    'invite',
   //    'livestreaming',
       'microphone',
       'mute-everyone',
       'mute-video-everyone',
       'participants-pane',
       'profile',
       'raisehand',
   //    'recording',
       'security',
   //    'select-background',
       'settings',
   //    'shareaudio',
       'sharedvideo',
       'shortcuts',
       'stats',
       'tileview',
       'toggle-camera',
       'videoquality',
       '__end'
   ],
   enableDisplayNameInStats: true,
   disableThirdPartyRequests: true,
   hideLobbyButton: true, 
   requireDisplayName: true,
   defaultLocalDisplayName: 'moi',
   defaultRemoteDisplayName: 'Autre participant',
   defaultLanguage: 'fr',
   noticeMessage: 'Bienvenue sur la plateforme de webconférence sécurisée de l\'Ambassade de France en Italie !',
   disableInviteFunctions: true,
   enableLipSync: true, 
   liveStreamingEnabled: false,


A tester :video hideConferenceSubject: false, hideConferenceTimer: false, hideParticipantsStats: true,

Fichier /var/www/jitsi-custom/interface_config.js

On va maintenant copier le fichier suivant dans un répertoire accessible de NGINX

mkdir /var/www/jitsi-custom
cp /usr/share/jitsi-meet/interface_config.js /var/www/jitsi-custom/interface_config.js

Puis on modifie le fichier ainsi copié :

nano /var/www/jitsi-custom/interface_config.js
    BRAND_WATERMARK_LINK: 'https://it.ambafrance.org/',
    DISABLE_VIDEO_BACKGROUND: true,
    DISPLAY_WELCOME_FOOTER: false,
    ENABLE_DIAL_OUT: false,
    GENERATE_ROOMNAMES_ON_WELCOME_PAGE: false,a
    HIDE_INVITE_MORE_HEADER: true,
    LANG_DETECTION: false, // Allow i18n to detect the system language
    SHOW_BRAND_WATERMARK: true,

Puis on modifie le fichier de configuration de Nginx afin qu'il utilise les ressources modifiées

cp /etc/nginx/sites-available/visio.domaine.fr.conf /etc/nginx/sites-available/visio.domaine.fr.conf.bak
nano /etc/nginx/sites-available/visio.domaine.fr.conf

On ajoute les redirections suivantes :

    location = /interface_config.js {
        alias /var/www/jitsi-custom/interface_config.js;
    }
    location = /images/watermark.png {
        alias /var/www/jitsi-custom/watermark.png;
    }
   location = /images/watermark.svg {
       alias /var/www/jitsi-custom/watermark.png;
   }

Et on relance le serveur Nginx pour prendre en compte ces modifs

nginx -t && nginx -s reload

Enfin on modifie directement le fichier des libellés :

Fichier /usr/share/jitsi-meet/libs/app.bundle.min.js

Ce fichier contient l'écran affiché par défaut en anglais. Il peut et doit être modifié si le texte affiché par défaut ne convient pas.

  1. Rechercher "headerTitle" et modifier la valeur associée. Les caractères accentués sont autorisés, mais les apostrophes doivent impérativement être précédées d'un anti-slash \
  2. Rechercher "headerSubtitle" et modifier sa valeur de la même façon.
  3. Enregistrer
  4. Relancer le navigateur en forçant le rechargement du cache.

Fichier /usr/share/jitsi-meet/lang/main-fr.json

       "headerTitle": "Plateforme de visioconférence de l'Ambassade de France en Italie",
       "headerSubtitle": "Webconférences sécurisées",

Voir aussi ici :

Autres supports pertinents

SIP et Jigasi

  1. Installer JIGASI
    apt install jigasi
  2. Modifier le fichier "/etc/jitsi/jigasi/sip-communicator.properties"
  3. Créer un compte jigasi :
    prosodyctl register jigasi visio.cahuet.fr mdp_jigasi

prosodyctl check prosodyctl cert generate example.org auth.example.org

I went into /etc/prosody/conf.d/domain.com.cfg.lua and changes storage="empty" to storage="memory". Suddenly it started working.

Modifier les fichiers nano /etc/jitsi/videobridge/config JVB_ENABLE_APIS=rest,colibri

nano /etc/jitsi/videobridge/sip-communicator.properties org.jitsi.videobridge.ENABLE_STATISTICS=true org.jitsi.videobridge.STATISTICS_TRANSPORT=muc,colibri org.jitsi.videobridge.STATISTICS_INTERVAL=5000

Voir https://community.jitsi.org/t/quick-install-cant-get-colibri-stats-working/26461 http://192.168.100.208:8080/colibri/stats

upgrades

Documentation

Particularités

  • Je n'hébergeais pas de serveur jusqu'à présent sur mon proxmox. Il a donc fallu faire quelques adaptations pour mettre en place ce service.
  • Créer un dyndns qui pointe vers mon adresse IP publique (via OVH et pfSense, pas de difficulté)
  • Créer les règles de nattage afin de renvoyer les flux http, https et 10000 vers le serveur en DMZ
  • Mise en DMZ du pfSense sur le modem opérateur

Clients

Ordinateurs

Sur Mac, Windows ou Linux, nécessité d'utiliser le navigateur Chrome de Google.

Sinon, télécharger le logiciel Jitsi Meet adapté à votre environnement sur https://github.com/jitsi/jitsi-meet-electron/releases/tag/v2.0.0 ou ici : https://github.com/jitsi/jitsi-meet-electron

Pour Mac

Installer homebrew si ce n'est pas déjà fait, et utiliser la commande :

brew cask install jitsi-meet

Android ou iPhone/iPad

Installer le logiciel Jitsi Meet puis configurer le serveur avec https://jitsi.cahuet.fr En profiter pour renseigner votre prénom.

Effectuer la demande de certificats Let's Encrypt

Executer le script suivant, et bien renseigner le FQDN

  • /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh

Automatiser la mise à jour des certificats

modifier le fichier crontab et ajouter les deux lignes suivantes : crontab -e

  • 4 * * 0 /usr/local/sbin/certbot-auto renew >> /var/log/certificates-renew.log
  • 4 * * 0 systemctl restart nginx

Supervision

Voir Supervision Serveurs

http://172.30.1.101:3000/d/mcfIHGrZz/serveur-visioconference?orgId=1&refresh=30s

  1. Installer Grafana : https://grafana.com/docs/grafana/latest/installation/debian/
  2. installer InfluxDB : https://portal.influxdata.com/downloads/
  3. Récupérer le numéro du DashBoard : 11969 (https://grafana.com/grafana/dashboards/11969)
  4. Créer son propre Dashboard : https://community.jitsi.org/t/how-to-to-setup-grafana-dashboards-to-monitor-jitsi-my-comprehensive-tutorial-for-the-beginner/38696

Architecture

Tuning

LoadBalancing

Extensions Navigateurs

Jibri

Customisation

Ajout des fonctions de diffusion

Cela passe par l'isntallation d'un serveur JIBRI qui permet de diffuser une visioconférence sur YouTube : https://community.jitsi.org/t/tutorial-jibri-overview-troubleshooting-tips-tricks-solve-your-jibri-problems-quickly/86054

Comparatif solutions visio

Quelques références

  1. Installation de base : https://github.com/jitsi/jitsi-meet/blob/master/doc/quick-install.md
  2. Customisation : https://framacloud.org/fr/cultiver-son-jardin/jitsi-meet
  3. Promotheus Exporter : https://github.com/karrieretutor/jitsi-prom-exporter
  1. Jitsi-Videobridge : https://jitsi.org/jitsi-videobridge/
  2. Evaluation des performances : https://jitsi.org/jitsi-videobridge-performance-evaluation/
  3. https://www.howtoforge.com/tutorial/how-to-create-your-own-video-conference-using-jitsi-meet-on-ubuntu-1804/
  4. https://www.scaleway.com/en/docs/setting-up-jitsi-meet-videoconferencing-on-debian-buster/