Mobile video conferencing with Jitsi

key points

  • Mobile consumption through apps or browsers varies by use case and scenario
  • Jitsi offers a collection of open source components as well as managed services to build solutions that support video conferencing.
  • Some solutions tend to be more native apps, while others will focus on mobile browser consumption
  • Since the development effort is high in each, it’s important to decide what your goal is and how users prefer to consume your service

Jitsi is a collection of free and open source cross-platform voice, video conferencing, and instant messaging applications for the web, Windows, Linux, macOS, iOS, and Android platforms. It is one of the most popular open source real-time media servers out there.

When used on mobile devices, Jitsi can be used from both a mobile app and a web browser. What is the most popular approach? Interestingly, there is no single answer here. And at the end of the day, it may depend on the use case you provide to your users.

Developers who want to host their own virtual meeting service or embed video calls into their app can make use of Jitsi. How does Jitsi do it? Using a technology called WebRTC. Next, let’s now start with the Jitsi ecosystem.

Jitsi architecture and ecosystem

Jitsi has been around for as long as WebRTC, with Jitsi Videobridge first introduced in 2013. Over the years, it has grown in size and features. The following diagram illustrates the technical architecture of a typical Jitsi deployment:

The main components of Jitsi are:

  • Jitsi Videobridge (JVB), the heart of the Jitsi service, is modeled as an SFU that acts as an intelligent routing server capable of hosting group video calls at scale.
  • Prosody, the signaling server used by Jitsi, which uses XMPP as its signaling protocol. It is used as an intermediary that allows users to join rooms and communicate with each other on Jitsi.
  • Jitsi Meet, the front-end web interface implementation. This is rather unique to Jitsi as it offers a fully functional and ready-to-deploy meeting experience. It is built with React and React Native.
  • Jitsi Conference Focus (jicofo), a load balancer that handles and manages horizontal scaling for Jitsi.
  • Jitsi Broadcasting Interface (jibri), a recording/broadcasting service for JVB. In essence, it relies on headless Chrome and ffmpeg to deliver a single video stream from an ongoing Jitsi video meeting.
  • Jitsi Gateway to SIP (jigasi), the gateway Jitsi provides for those who need to connect telephony services to Jitsi meetings.

A typical deployment will have JVB, Prosody, Jitsi Meet and jicofo and optionally include jibri and jigasi.

Interestingly, this component-based approach used by Jitsi differs from other open source media servers, which focus on providing only one media server component, with references or samples on how to handle the rest of the necessary pieces: Janus and mediasoup. . This gives Jitsi an edge for those looking for quick solutions for general-purpose video meetings, while alternatives are better at offering more implementation flexibility and specific optimizations to use your communications architecture.

Jitsi’s commercial and open source offering

Although Jitsi started as a pure open source project, this has changed over the years. Jitsi was developed and maintained by BlueJimp with the premise of providing support and customization services. Once BlueJimp was acquired (first by Atlassian and then by 8×8), that changed. Support and customization services were dropped, which meant that those who needed support services had to rely on third-party providers, who do not necessarily directly maintain the master branch of the Jitsi source code.

Instead, 8×8 introduced a SaaS model called JaaS – Jitsi as a Service. With it, companies can customize the Jitsi experience with their own branding or incorporate it into their own business workflow without having to host it themselves, which is handled by the Jitsi team. JaaS is similar to other CPaaS (Communication Platform as a Service) solutions such as Twilio Programmable Video and Vonage Video API, where developers can build their own solutions on top of an infrastructure managed by third parties.

For most of its existence, Jitsi also offered a demo service, Meet Jitsi, as a kind of showcase for Jitsi. Over time, it evolved into its own free, standalone meeting service. Think of it as the freemium component of the Jitsi ecosystem to get developers and users hooked on the Jitsi technology stack.

In summary, the Jitsi ecosystem has three main variants:

  1. Jitsi, the open source project

    1. The target “customer” here is developers who want to build and maintain their technology stack
    2. Install and configure the servers yourself
    3. You are responsible for maintaining them, patching them, and updating them over time
    4. You are responsible for scaling and monitoring the system yourself.

  2. Meet Jitsi, the managed video calling service (also available as part of the 8×8 Unified Communications offering)

    1. The target “customer” here is the end users. People who want to communicate with each other using an existing tool
    2. You use it as an end user
    3. Send meeting links to people and think of it as a free/open alternative to Zoom, for example.

  3. JaaS, the video API/CPaaS solution

    1. The target “customer” here is companies and developers who want to tag, brand and embed an existing video calling solution within their own application or business process.
    2. Embed it in your own application
    3. White label the hosted service
    4. Don’t worry or worry about the constant maintenance and scaling of your video infrastructure.

Different vendors and developers take different approaches to what they end up using in the Jitsi ecosystem. What I’m interested in here is trying to understand how end-user behavior manifests on mobile devices for these video calling services. Why is it important? Because of the underlying technology: WebRTC.

WebRTC, browsers and mobile devices

Let’s take a look at WebRTC – the underlying communication technology used by Jitsi.

Simply put, WebRTC is an open standard that defines a real-time media engine API that can be used to implement communication applications such as voice and video calls. WebRTC is available in all modern browsers so that web developers can develop these applications on their own. For this, a background infrastructure that processes data in real time is needed.

The question remains what to do with mobile devices. WebRTC is available for mobile devices also through mobile browsers, but much of the media traffic on mobile devices comes from native apps that users install. That’s why many of the communication apps for mobile devices take an open source implementation of WebRTC (the one developed and maintained by Google) and use it within their mobile apps. It takes a little more care and attention to use and deploy, but if you need a mobile app, that’s something you’ll have to do (or buy from someone else).

For a long time, many assumed that the correct way to use WebRTC on mobile devices was through native apps. Others, who saw WebRTC as a browser technology, envisioned a world where the browser ruled mobile activities. Neither is correct. The truth, as always, is somewhere in the middle.

To understand how the story of WebRTC and Jitsi has played out on mobile platforms, let’s start by understanding user behavior and preferences when it comes to virtual meetings. And what better place to start than with my own preferences?

Desktop or mobile?

I conduct over 90% of my meetings at my desk. I don’t like participating in video calls on my smartphone, although I do occasionally when I’m on the go and my laptop or desktop is out of reach. This is not the case for others, however.

Different people have different preferences. It depends on your inclination and the setting. As a communication app developer, should you invest your time and focus on a mobile or desktop experience?

Also, on mobile devices, should you go for a mobile web solution or take the time to build and deploy a native mobile app? Let’s focus here on the mobile case and see if we can reach an understanding.

Mobile web or mobile native?

The mobile experience is driven by native apps. People just don’t open their web browsers on mobile. They spend their time on smartphones within apps. eMarketer estimated that in the US, about 90% of time spent on smartphones is spent on apps:

With these estimates, you may wonder why anyone would invest in a mobile web experience. The answer to that is “it depends”.

It depends on who your target audience is and what the use case is. You can see this very well by reviewing the usage patterns of the Jitsi ecosystem.

Meet Jitsi vs. JaaS

As mentioned, Jitsi is an open source multimedia framework that makes use of WebRTC. Many companies and developers have adopted it and deployed their own instances. That said, if you’re looking for a managed hosted solution, then 8×8, the man behind Jitsi has got you covered:

  1. Jitsi Meet, a free group video calling service, showcasing what’s available with Jitsi. It acts as a great demo as well as a testbed for the Jitsi team for new features and framework optimizations.
  2. JaaS (Jitsi as a Service). A programmable managed Jitsi Meet service offering. One that developers can use as a white label solution for their own communication needs

Looking at a month of data provided by Jitsi for the writing of this article shows some interesting usage patterns and behaviors for…

Leave a Comment

Your email address will not be published. Required fields are marked *