Jitsi Videobridge and Jitsi Meet

Meeting Place

Article from Issue 183/2016
Author(s): , Author(s):

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.

Figure 1: Jitsi Meet generates random names on request for the virtual conference rooms. Alternatively, users can define something of their own in the box at the top.

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.

Figure 2: The camera and the microphone can only be switched off on a second visit.

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.

Figure 3: Jitsi Meet provides information about the connection quality.

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.

Figure 4: Prezi presentations appear as independent conference participants in Jitsi Meet.

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.

Figure 5: Users with SIP phones can take part in Jitsi Meet conferences thanks to Jigasi.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

SINGLE ISSUES
 
SUBSCRIPTIONS
 
TABLET & SMARTPHONE APPS
Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • Jitsi

    If you are looking for an alternative to commercial videoconferencing platforms, Jitsi offers an open source solution that lets you build and deploy online videoconferences.

  • Easy Video Telephony

    A video telephony system with huge user benefits does not have to be complex. This project starts a phone call with just a single button press and switches channels automatically on a TV.

comments powered by Disqus
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.

Learn More

News