Jitsi Videobridge and Jitsi Meet
Meeting Place
Jitsi Videobridge and its front end Jitsi Meet offer video and audio conferences in web browsers with real-time chat, Prezi presentations, screen sharing, and Etherpad document editing.
Many video conferences these days use a Google or Microsoft solution. The two providers stand out primarily because they are user friendly and have very good video and audio quality; however, the downside is obvious: The data moves through a foreign server. The Jitsi project [1] provides an open source, encrypted, and sustainable alternative. In addition to the messenger available for Linux, Windows, and OS X desktops, the developers also provide a web application called Jitsi Meet [2].
Two components – Jitsi Videobridge and Jitsi Meet – work together to help images and sound reach the users' computers. Videobridge is a web real-time communication (WebRTC)-compatible Selective Forwarding Unit (SFU) that expands the Jitsi Messenger desktop client to add videoconferencing capabilities. Jitsi Meet is the front end to Videobridge and is implemented in JavaScript. The Nginx web server [3] and the Prosody XMPP server [4] are also required on the server side. (See the "Test Environment" box for a description of the server on which Jitsi Meet was run and the computer and Internet connections of the participants.)
Test Environment
In our lab, Jitsi Videobridge and Jitsi Meet were installed on a LAMP server with six CPU cores, 8GB of memory, 300GB of disk space, and a 64-bit version of Debian Jessie 8.2. The Jitsi components came from the nightly build repository described in the Quick Install Guide [5]. Jitsi Meet and Jitsi Videobridge were stored on the disk on September 24, 2015, and the Jigasi component on October 7, 2015.
The testers also met in a conference room that ran on a server from the Jitsi project [6]. They accessed Jitsi Meet instances from Berlin via a VDSL 50 connection (50Mbps), from Karlsruhe, Germany via cable (also 50Mbps), and from Altena, Germany with T-DSL 1000 (1Mbps). In doing so, they used various operating systems and browsers: Linux Mint 17.2 with Firefox 41.0, OS X Yosemite 10.10.4 with Chrome 45.0.2454.99 and Firefox 40.0.3, and Ubuntu 15.04 with Chromium 45.0.2454.85 and Firefox 41.0. Two tablets were also used: a Samsung Galaxy Tab 3 and Tolino Shine 8.9 (both with Android 4.2.2).
Users can take part in meetings with WebRTC-enabled browsers. The current versions of Opera, Google Chrome, and Mozilla Firefox already support the standard; additional functions such as desktop sharing require browser add-ons. Microsoft's Internet Explorer and Apple's Safari browser do not currently include this technology.
Debian server administrators have an easy task. As described in the Quick Install Guide [5], they just need to add the nightly build repository to the software sources and install the jitsi-meet
package. The package manager automatically installs additionally required components Nginx, Prosody, OpenJDK 7, Jitsi Meet, and some graphics, video, and audio libraries.
Administrators need to intervene twice: to enter the domain name or IP address in a dialog box for the computer via which Jitsi conferences should be accessible and to designate an SSL certificate on the server. Alternatively, you can press Enter and Jitsi Meet creates a self-signed certificate.
Anyone using a different distribution just needs to follows the server installation instructions [7], which explain how to set up the Prosody XMPP server and the Nginx web server; look after the Java Runtime Environment; download, unzip, and configure the Jitsi Videobridge sources; and set up the Jitsi Conference Focus and Jitsi Meet components.
Conference Room
Once the installation has been completed, users can call up the Jitsi Meet instance address in their browser. They need to enter either a unique name for the virtual conference room in the box at the top or confirm the random identifier by pressing Go (Figure 1). In some tests at the end of September, the software refused to allocate unique names, and Jitsi Meet conferences fell victim to error 404. This was the case on both their own servers and in the Jitsi project. The bug now seems to be fixed.
The first participant automatically receives moderator rights as the initiator of the conference and can mute individual or all participants, protect the room, or throw people out. It is not possible to designate further visitors as moderators. Upon entering the conference room, all participants first confirm that Jitsi Meet is allowed to access the camera and the microphone. It is only possible to disable the transmission hardware when visiting a second time. To do so, users need to move the mouse to the top to show the Jitsi Meet icons, open the pretty lean Settings (Figure 2) by clicking the tool icon, and remove the checkmarks.
Which icons are displayed at the top depends on the extensions installed. Here, users can find buttons to lock the room to further visitors, access the invitation link, open the chat bar on the right edge, switch to full-screen mode and leave the conference.
The project server [6] provides two to three extra buttons – depending on the type of day – for access to Etherpad and Prezi files and your own desktop. However, instructions for installing these modules are missing, and the testers didn't succeed in getting the modules going on their own server.
Jitsi Meet displays the participants at the bottom and the moderator is marked with an star. If you move the mouse over a thumbnail and the small bars, information about the connection quality is displayed. Only your own thumbnail provides information about the IP address, upstream and downstream, and package loss via Additional Information (Figure 3). Clicking the icons in the bottom right displays the conference participants in the right sidebar, the text chat, or a contact list.
Generous
Screen sharing isn't completely problem free, as Jitsi founder and project manager Emil Ivov reports in the video cast FLOSS Weekly [8]. The ability to view another user's desktop directly from within the browser opens up vulnerabilities that websites could exploit with malicious code.
The feature therefore needs an additional browser plugin on the client side. Chrome users will find the Jitsi Desktop Streamer extension in the Chrome Web Store [9]. There is currently an experimental add-on called Jidesha [10] for Firefox.
Desktop sharing didn't work with either Firefox or Chrome on the test server. The testers had a bit more success in a conference room on the Jitsi server – but not with Firefox. The Chrome user only saw incomplete windows and black surfaces instead of an xterm.
The shared Prezi presentation, which only ran on the Jitsi server and not on the test server, gave a slightly better impression. Conference participants had to enter the address for a Prezi into the field provided; the presentation then appeared as a new participant with a preview window at the bottom. In this way, visitors could choose at any time whether they wanted to look at a different user or the Prezi, through which they could move independently (Figure 4). However, control remains with the participant who loaded it in the conference – all the others follow this participant's movements through the document.
Loading the Prezi takes several minutes, and not everything went smoothly. Even with participants connected via VDSL, everything appeared with a few minutes' delay. The Jitsi server also showed all of the controlling owner's actions to the other users with a second time delay. One of the participant's Chrome browser also had trouble with alignment – the Prezi appeared back-to-front.
Thanks to the SIP gateway Jigasi [11], conference participants can add users with SIP phones to the meetings in the browser. It doesn't matter whether it's a hard phone or a soft phone. Administrators can install the Jigasi extension on the Jitsi Meet server. Debian users will find a corresponding package in the Jitsi repository. Everyone else should check out the GitHub repository and build the tool from the resources. A SIP account is also required because Jigasi itself acts as an SIP client, which Jitsi Meet uses to call other participants from the conference.
Visit from the Outside
The Debian package configuration routine requests the necessary settings for the SIP account (server, username, and password), writes them in the Jigasi setup file /etc/jitsi/jigasi/sip-communicator.properties
, and stores an entry in the XMPP server configuration (/etc/prosody/conf.avail
). Admins who install Jigasi manually take care of the necessary settings themselves. They then need to replace the <<JIGASI_SIPUSER>>
, <<JIGASI_SIPSERVER>>
, and <<JIGASI_SIPPWD>>
tags in the /etc/jitsi/jigasi/sip-communicator.properties
file with the SIP account data. The password must be base64
coded.
Next, the admin turns to the XMPP server to enter the callcontrol
subdomain for the gateway component and the associated secret key into the configuration file in the /etc/prosody/conf.avail
directory. System administrators who have installed the Jigasi Debian package should also take a look at the Prosody configuration file. The testers installed and removed the Jigasi component several times, but a new entry ended up in the file for each installation.
Systemd appeared to be responsible for the Jigasi start on the Debian test machine. Administrators need to restart the service after changing the configuration using:
systemctl restart jitsi-videobridge systemctl restart jigasi
Anyone who has compiled the sources themselves needs to start the Jigasi service using the
/usr/share/jigasi/jigasi.sh
script, as described in the instructions.
A small phone icon appears in conference rooms in the web interface; clicking on it opens a box in which the inviting participant needs to enter the SIP ID (Figure 5). If the person being called picks up, that individual can take part in the conversation, but not with video support.
Buy this article as PDF
(incl. VAT)
Buy Linux Magazine
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters
Support Our Work
Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.
News
-
Fedora Asahi Remix 41 Available for Apple Silicon
If you have an Apple Silicon Mac and you're hoping to install Fedora, you're in luck because the latest release supports the M1 and M2 chips.
-
Systemd Fixes Bug While Facing New Challenger in GNU Shepherd
The systemd developers have fixed a really nasty bug amid the release of the new GNU Shepherd init system.
-
AlmaLinux 10.0 Beta Released
The AlmaLinux OS Foundation has announced the availability of AlmaLinux 10.0 Beta ("Purple Lion") for all supported devices with significant changes.
-
Gnome 47.2 Now Available
Gnome 47.2 is now available for general use but don't expect much in the way of newness, as this is all about improvements and bug fixes.
-
Latest Cinnamon Desktop Releases with a Bold New Look
Just in time for the holidays, the developer of the Cinnamon desktop has shipped a new release to help spice up your eggnog with new features and a new look.
-
Armbian 24.11 Released with Expanded Hardware Support
If you've been waiting for Armbian to support OrangePi 5 Max and Radxa ROCK 5B+, the wait is over.
-
SUSE Renames Several Products for Better Name Recognition
SUSE has been a very powerful player in the European market, but it knows it must branch out to gain serious traction. Will a name change do the trick?
-
ESET Discovers New Linux Malware
WolfsBane is an all-in-one malware that has hit the Linux operating system and includes a dropper, a launcher, and a backdoor.
-
New Linux Kernel Patch Allows Forcing a CPU Mitigation
Even when CPU mitigations can consume precious CPU cycles, it might not be a bad idea to allow users to enable them, even if your machine isn't vulnerable.
-
Red Hat Enterprise Linux 9.5 Released
Notify your friends, loved ones, and colleagues that the latest version of RHEL is available with plenty of enhancements.