Why use Jitsi?

by Javier Puerto
Tags: Open Source

The pandemic brings us a new reality where people cannot be near each other and social relationships take a new breath. Staying at home is not easy for anyone, and that is why the video calls are gaining popularity. This post explains why we choose to implement Jitsi as our video call system instead of other alternatives.

Video calls panorama

Video calls have been around for a long time, but they weren't very popular… until now. The longing for loved ones, the closeness to people, staying at home is more difficult than we thought. The video calls solutions had experienced a boom due to the quarantine, and the old alternatives have grown up dramatically, even though we have never heard of them before. Some of these alternatives are:

  • Whatsapp video calls. They have been available for some time but were not used frequently; lately, they have had to introduce changes in order to increase the capacity and the number of participants.
  • Hangouts from Google has always been a good solution, it works in an excellent way.
  • Skype from Microsoft, probably the oldest on the list, allows creating rooms with many participants.
  • Zoom meeting has become very popular lately.
  • FaceTime from Apple is also a great solution with the limitation that it can only be used by Apple users.
  • Discord is also a well-know application to create groups of people that allow video calls.

There are more alternatives, but here I have exposed the ones that are "free" but managed by companies. There are also open source solutions like:

  • Jitsi was developed by Atlassian for the HipChat service and lately converted into an open source project.
  • Rocket chat provides a collaborative environment for people. It is based on Jitsi for video calls.
  • Nextcloud Talk application allows team integration.
  • Jami uses the GPLv3 license, and it is a distributed service with nodes everywhere.

But… why use Jitsi?

Why use Jitsi?

Jitsi logo Jitsi logo

Jitsi has experienced a boom with the pandemic. People were looking for a quality and easy to use solution for video calls, and Jitsi provides that. Furthermore, apart from being very easy to use, Jitsi hides a high complexity and capacity with many useful features for business.

  • High performance: The core of the service is the videobridge node; this service is responsible for managing the video streams, and it does it very well. Usually the CPU will not be the problem just with a desktop CPU, the problem will be the bandwidth as all the streams have to be received by the videobridge that will choose which one will be sent to each participant.
  • Security: Chat rooms live only while they are used, so every time a room is used, it is fresh, which makes it impossible for other people to connect to an existing room to gather information. Rooms or access to Jitsi can be protected by a password making it more secure. Encryption is also made automatically over the streams, so communication from clients to server is secure. As the server can be hosted by you, all the communication is keet under your infrastructure.
  • Scalability: As it is based in services, the system can easily grow up horizontally. Usually, the critical part is the video bridge service, and horizontal scaling feature comes out of the box. If more participants are needed, then more services can be added and configured, so Jitsi meet can distribute the load.
  • Connects to SIP providers with Jigasi service allowing to include phone calls into a room or call to a room directly from your phone.
  • Screen sharing is possible with the Chrome plugin Jidesha.
  • Collaborative documentation by using the integrated service Etherpad makes this solution awesome for business.
  • Allow recording sessions and/or streaming directly to YouTube Live if the service Jibri is configured properly.
  • Allows authenticated users or guests to join to rooms. Very handy for business.

As you can see by the list of features, Jitsi is very complete and does the job very well. Other alternatives may include more features, but Jitsi does what it does very well.

Setting up a Jitsi service

Architecture

Jitsi is composed of multiple services:

  • jitsi-meet-web is the web interface in conjunction with lib-jitsi-meet that provides the libraries related to video support.
  • jicofo (the name comes from Jitsi COnference Focus) is a server side focus component.
  • jitsi-videobridge is the service that handles the video streams.
  • jigasi is a service that allows connecting to the SIP services.
  • jibri (the name comes from JItsi BRoadcasting Infrastructure) allows recording or publishing video calls.
  • prosody is an XMPP server to manage the rooms and mix up all the services.
  • etherpad is a highly customizable online editor that provides collaborative editions in real time. Jitsi can integrate it in the rooms.

Jitsi architecture Jitsi architecture

Installing

As far as I know, there are basically two ways to install Jitsi. One way is to install the services directly into the server, from the distribution packages or by downloading from the repositories. The other way is to use the Docker version: this is the way that we choose, and we will comment here how to install it.

This quick guide is not complete, so I recommend visiting the official documentation for a complete reference.

Using docker configuration is pretty simple.

  • The first step is to clone the docker-jitsi-meet repository.
  • Copy the env.example file as .env file and edit it as needed.
  • Generate passwords by running .\gen-passwords.sh.
  • Create the CONFIG directories, by default in ~/.jitsi-meet-cfg with the command:

` mkdir -p ~/.jitsi-meet-cfg/{web/letsencrypt,transcripts,prosody/config,prosody/prosody-plugins-custom,jicofo,jvb,jigasi,jibri}`

  • Run docker-compose up -d.
  • Use it! Visit https://your.domain.com:<yourport>.

That is all! If you want to expose the service to the world, do no forget opening the communication ports and if you want, enable authentication.

Conclusion

Jitsi has proved to be a wonderful solution for small businesses and even for personal use. If you need to set up an instance for your business, here at BeCompany we can help you by installing, configuring and maintaining a service according to your needs.