Jitsi Meet, an Open Source Video Conferencing Server

Jitsi Meet LogoAre you thinking of replacing Google Meet, Skype, and Zoom with an open source video conferencing server? Hosting a video conferencing server by yourself provides your calls with more privacy than using a centralized service. The performance of WebRTC, the protocol that Jitsi Meet is based on, is comparable to, if not better than the proprietary codecs used by apps such as Zoom.

On low-bandwidth connections, WebRTC falls back to standard definition more gracefully instead of completely dropping the call. In our experience using Jitsi, calls automatically reconnect within several seconds even when the network connection is changed, for example when disconnecting and reconnecting to a Wi-Fi network.

For two-way calls with Jitsi, a P2P connection is established between the two callers whenever the network connections permit so. In most cases, Jitsi uses STUN and TURN servers to determine the public IP address of each caller, even if a device is behind a NAT or firewall such as a home router or business gateway. The benefit of peer-to-peer connections are better call quality over UDP, reduced bandwidth usage, and the content of the calls stay private, even from the Jitsi server itself.

For three-way calls or more, a standard Jitsi deployment includes the Jitsi Video Bridge (JVB) component “out of the box.” The JVB is a selective forwarding unit (SFU) that rebroadcasts the video and audio streams to the devices participating in the call. When installed on a typical VPS or dedicated server, Jitsi supports calls with 32 participants or more, as long as the Jitsi server has adequate bandwidth. A cloud server with a gigabit connection (1 Gbps) or 10GbE connection (10 Gbps) is recommended for deploying Jitsi Meet.

Even though all the streams for a call with 3 participants or more pass through the Jitsi Meet server, you have much more peace of mind compared to using Zoom because you control the server and its encryption keys yourself. Using TLS encryption, it is impossible for anybody to trivially tap into your calls. Moderators can protect their meetings with a meeting password & kick out unwanted attendees at any time, preventing anybody who doesn’t know the password from joining the meeting.

Jitsi Meet vs NextCloud Talk (not free and open source)

Jitsi Meet is a truly free and open source video conferencing server, with no limitations, unlike other solutions such as NextCloud Talk which advertise themselves as open source, but ship with limitations. NextCloud Talk cannot easily support calls between more than 5 or 6 participants without purchasing the “High Performance Backend” from Struktur AG, a company that is closely associated with NextCloud GmbH. The “High Performance Backend” starts from $4500/year for a minimum of 50 users (additional users are $90/year). It consists of a SFU, STUN, TURN, and SIP gate – components that are included for free with Jitsi.

Jitsi Meet even has additional features such as authentication using JWT or LDAP through Prosody modules, ability to record calls to Dropbox, and live stream to YouTube Live. The Jigasi component integrates Jitsi with a SIP gateway to allow attendees to dial-in to a meeting from a telephone number. Using the live stream option, Jitsi Meet can be used to broadcast webinars without the complexity or cost of applications like GoToMeeting or GoToWebinar.

It is somewhat deceptive of the parent company of NextCloud to advertise Talk as open source, when all of the components that make it scale beyond a few users have been ripped out of the source code. These limitations are not even disclosed up front when a user downloads the Talk app from the App store. It’s important to do your research before implementing a voice & video conferencing solution to avoid being locked in to “freemium” solutions like NextCloud Talk.

Meet.jit.si is a public instance of Jitsi Meet maintained by the Jitsi Meet team (supported by 8X8, a publicly traded VoIP provider in the US). It is free for anybody to try, but for performance and privacy considerations, it is better to deploy your own instance of Jitsi Meet before rolling it out to your team – especially in an enterprise setting.

The Jitsi interface can be customized with your organization’s branding and logo, and menu items can be shown or hidden, based on which features you want your users to have access to. Jitsi also integrates with RocketChat, allowing team or community members to start voice & video calls using your Jitsi server, from a private message, public, or private channel with a single click of a button.

Jitsi Voice & Video Meeting Interface

The deployment of Jitsi is done on a Linux server using a Docker stack, which includes the JVB, Jicofo, Prosody, and web components. Jitsi is written in Java, so Docker automatically gathers all the dependencies needed to deploy it on your server. It also enables you to easily update Jitsi Meet in the future.

The initial configuration of Jitsi requires technical knowledge how to forward the correct ports into the containers, setting the NAT IP address correctly if Jitsi is running behind a NAT (Docker network), and configuration of STUN and TURN for optimal call quality. It also requires setting up a reverse proxy such as NGINX to serve up the web front end of Jitsi, where new rooms can be created, and calls themselves are held. If this all sounds reasonably complicated to you, fear not, contact our cloud consultants with the number of users who will use Jitsi in your organization, and we can help.