Note - you are muted
by default
Please enter your name - click on “me” to edit
Chat window
Raise hand to get moderator’s attention
Intro from the President (Wyatt)
Reminder: due payments (Brad)
Moderated roundtable (Troy)
Hands on with
Overview, Installation, Configuration
Troy Denton, P.Eng.
May 2020
Intro to Jitsi
Intro to Jitsi
Intro to Jitsi
Intro to Jitsi
Dive in - no install required
What about E2EE?
What about E2EE? 2 parties
Signalling, https
Video, DTLS-SRTP
What about E2EE? - 3+ parties
Why would my organization use Jitsi?
Case study: 24-7 Intouch
Case study: 24-7 Intouch
What worked well:
Case study: 24-7 Intouch
What didn’t work so well:
Jitsi Installation
Jitsi Installation
Jitsi Installation
Set up the Fully Qualified Domain Name (FQDN) (optional)
If the machine used to host the Jitsi Meet instance has a FQDN (for example meet.example.org) already set up in DNS, /etc/hostname must contain this FQDN; if this is not the case yet, change the hostname.
Then add the same FQDN in the /etc/hosts file, associating it with the loopback address:
127.0.0.1 localhost your.fqdn.org
Jitsi Installation
Install wget, not in debian by default.
Add the Jitsi package repository
echo 'deb https://download.jitsi.org stable/' | sudo tee /etc/apt/sources.list.d/jitsi-stable.list
wget -qO - https://download.jitsi.org/jitsi-key.gpg.key | sudo apt-key add -
Jitsi Installation
Install Jitsi Meet
Note: The installer will check if Nginx or Apache is present (in that order) and configure a virtualhost within the web server it finds to serve Jitsi Meet. If none of the above is found it then defaults to Nginx. If you are already running Nginx on port 443 on the same machine turnserver configuration will be skipped as it will conflict with your current port 443.
apt-get install apt-transport-https
apt-get update
apt-get -y install jitsi-meet
Jitsi Installation
Jitsi Installation
Jitsi Installation
Generate a Let's Encrypt certificate (optional, recommended)
In order to have encrypted communications, you need a TLS certificate. The easiest way is to use Let's Encrypt.
Note: Jitsi Meet mobile apps require a valid certificate signed by a trusted Certificate Authority (such as a Let's Encrypt certificate) and will not be able to connect to your server if you choose a self-signed certificate.
Simply run the following in your shell:
sudo /usr/share/jitsi-meet/scripts/install-letsencrypt-cert.sh
Enter your email and hit enter. If your DNS and hosts file are in order, it will complete automatically.
Jitsi Installation
Thats it for the base installation!
Behind the curtains - multiple daemons
Webserver, web app content
Behind the curtains - multiple daemons
Room creation and management logic
Behind the curtains - multiple daemons
Extensible xmpp server
Behind the curtains - multiple daemons
Video stream processor
“Selective Forwarding Unit”
Behind the curtains - SFU
Selective Forwarding Unit : instead of mixing all video on the server, send last N relevant streams to all participants. Let clients do the video rendering.
“Last N: The SFU only forwards a fixed number of video streams (N) to each endpoint, and changes the set of forwarded streams dynamically according to audio activity.”
Behind the curtains - relevant services
Systemd services:
Managed with systemctl, eg. ‘sudo systemctl restart jitsi-videobridge2’
Behind the curtains - pertinent files
Logs:
Behind the curtains - pertinent files
Config directories:
Customization 1: Let’s change the logo
Logo is the “watermark.png” located in /usr/share/jitsi-meet/images
Simply replace it
E.g., with
http://muug.mb.ca/images/muug-ca-logo-hires.png
Customization 2: moderator auth
The default behaviour is that anyone can start a meeting, and every attendee has moderator privileges. Sometimes, more control is desired.
The installation can be configured such that a moderator must unlock the room first
The following steps come from this forum post:
Customization 2: moderator auth
Configuration of prosody, set authentication
In /etc/prosody/conf.avail/your.fqdn.org.cfg.lua
Step 1) Change authentication from “anonymous” to “internal_plain”:
VirtualHost "your.fqdn.org"
authentication = "internal_plain"
Customization 2: moderator auth
Step 2) In the same file, add a new VirtualHost at the bottom of the file:
-- Allow our guests to join a conference without the need for a password
-- BELOW VIRTUALHOST NAME SHOULD NOT(!) BE REGISTERED IN DNS!
VirtualHost "guest.your.fqdn.org"
authentication = "anonymous"
c2s_require_encryption = false
Customization 2: moderator auth
Add moderators to Jitsi
In the terminal run following command:
sudo prosodyctl register igor your.fqdn.org
Customization 2: moderator auth
Configuration of jicofo
/etc/jitsi/jicofo/sip-communicator.properties
Add a new authentication line at the bottom of this file:
org.jitsi.jicofo.auth.URL=XMPP:your.fqdn.org
Customization 2: moderator auth
Uncomment anonymousdomain and set the domain to enable guests to join us:
/etc/jitsi/meet/meet.myfirewall.org-config.js
hosts: {
// XMPP domain.
domain: 'meet.myfirewall.org',
// When using authentication, domain for guest users.
// BELOW VIRTUALHOST NAME SHOULD NOT(!) BE REGISTERED IN DNS!
anonymousdomain: 'guest.your.fqdn.org',
Customization 2: moderator auth
Restart all services and test the changes:
systemctl restart prosody jicofo jitsi-videobridge2
Test out at https://jitsi-demo.troydenton.ca - should prompt for moderator to begin the room. Once it’s started, guests can join anonymously.
Customization 2: moderator auth
An observation: prosody may give you an error as follows. Apparently it is not an issue:
Further configurations
Jitsi has other integrations you can install and configure, including:
End of prepared material
Questions?