Key findings
- Mobile consumption through apps or browsers varies by case and scenario
- Jitsi provides 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 in nature, while others will be focused on using mobile browsers
- Since the development effort is large in each, it is important to decide what you focus on and how your users prefer to consume your service
Jitsi is a collection of free, cross-platform, open-source voice, video conferencing, and instant messaging apps for the web, Windows, Linux, macOS, iOS, and Android. It is one of the most popular open source real-time media servers.
When used on mobile devices, Jitsi can be used from both a mobile application and a web browser. Which is the more popular approach? Interestingly, there is no single answer here. And ultimately, it may depend on the use case you are providing to your users.
Developers who want to host their own virtual meeting service or embed video calls into their app can use Jitsi. How does Jitsi do this? By using a technology called WebRTC. More on that later, for now let’s start with the Jitsi ecosystem.
Jitsi Architecture and Ecosystem
Jitsi has been around as long as WebRTC, with the Jitsi Videobridge first introduced in 2013. It has grown in size and features over the years. The diagram below illustrates the technical architecture of a typical Jitsi implementation:
The main components of Jitsi are:
- The 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. This is used as an intermediary to allow users to join rooms and communicate with each other on Jitsi.
- Jitsi Meet, the implementation of the front-end web interface. This is quite unique to Jitsi as it offers a fully functional, ready-to-deploy dating experience. It is built using React and React Native.
- Jitsi Conference Focus (jicofo), a load balancer that manages and handles horizontal scaling for Jitsi.
- Jitsi Broadcasting Interface (jibri), recording/streaming service for JVB. It’s basically built around headless Chrome and ffmpeg to offer a single video stream from an ongoing Jitsi video meeting.
- Jitsi Gateway to SIP (jigasi), the gateway that Jitsi offers for those who need to connect phone services in Jitsi meetings.
A typical implementation 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 that focus on offering only one component of a media server, with references or examples of how to handle the rest of the necessary parts – Janus and mediasoup come to mind here. This gives Jitsi an edge for those looking for a quick, general-purpose video meeting solution, while the alternatives are better at providing more flexibility in the specific implementation and optimizations to leverage from their communications architecture.
Jitsi’s open source and commercial offering
While Jitsi started out as a pure open source project, that has changed over the years. Jitsi is developed and maintained by BlueJimp with the premise of providing support and customization services. After BlueJimp was acquired (first by Atlassian and later by 8×8), that changed. Support and customization services were removed, which meant that those who needed support services had to rely on third-party vendors who did not necessarily directly support the main branch of the Jitsi source code.
Instead, 8×8 introduced a SaaS model called JaaS – Jitsi as a Service. With it, companies can leverage the Jitsi experience with their own branding or embed it into their own business workflow without having to host it themselves – the Jitsi team takes care of that. JaaS is similar to other CPaaS (communications platform as a service) solutions, such as Twilio Programmable Video and Vonage Video API, where developers can build their own solutions on top of infrastructure managed by a third party.
For most of its existence, Jitsi also offered a demo service, Meet Jitsi, as a sort of showcase for Jitsi. Over time, it evolved into its own free, stand-alone dating service. Think of it as a freemium component in the Jitsi ecosystem to get developers and users hooked on the Jitsi technology stack.
To summarize, the Jitsi ecosystem has three main variants:
- Jitsi, the open source project
- The target “customer” here is developers who want to build and maintain their technology stack
- You install and configure the servers yourself
- You take care of maintaining them, correcting them and building on them over time
- You handle scaling and monitoring the system yourself.
- Meet Jitsi, the managed video calling service (also available as part of the 8×8 Unified Communications offering itself)
- The target “customer” here is the end users. People who want to communicate with each other using an existing tool
- You use it as an end user
- You send meeting links to people and think of it as a free/open alternative to zoom, for example.
- JaaS, video API/CPaaS solution
- The target “customer” here is businesses and developers who want to white label, brand and embed an existing video meeting solution into their own application or business process
- Embed it in your own application
- Hosted Service Note
- Don’t care or worry about the ongoing 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 plays out on mobile devices for these video calling services. Why is this important? Because of the underlying technology – WebRTC.
WebRTC, browsers and mobile devices
Let’s take a look at WebRTC – the core communication technology used by Jitsi.
In short, WebRTC is an open standard that defines a real-time media engine API that can be used to implement communications applications such as voice and video calls. WebRTC is available in all modern browsers so that web developers can develop such applications themselves. This requires a backend infrastructure that works with real-time data.
The question remains what to do with mobile devices. WebRTC is also available for mobile devices through mobile browsers, but much of the media traffic on mobile devices comes from native applications that users install. That’s why many of the mobile communication apps adopt an open source WebRTC implementation (developed and maintained by Google) and use it in their mobile apps. It takes a bit more care and attention to use and implement, but if you need a mobile app, it’s something you’ll have to do (or buy from someone else).
For a long time, many assumed that the proper way to use WebRTC on mobile devices was through native applications. Others who viewed WebRTC as a browser technology envisioned a world where the browser rules mobile activities. Neither is correct. The truth, as always, is somewhere in the middle.
To understand how the story of WebRTC and Jitsi developed for mobile platforms, let’s start by understanding user behavior and preferences when it comes to virtual meetings. And what better place to start than my own preferences?
Desktop or mobile?
I conduct over 90% of my meetings on my desktop. I hate participating in video meetings on my smartphone, although I do occasionally when I’m on the go and my laptop or desktop is out of reach. However, this is not the case for others.
Different people have different preferences. It depends on their inclination as well as the scenario. As a communications app developer, should you invest your time and focus on a mobile experience or a desktop experience?
Also, on mobile, should you choose a mobile web solution or spend time building and deploying your own mobile app? Let’s focus here on the mobile box and see if we can come to an understanding.
Mobile network or mobile network?
The mobile experience is driven by native apps. People just don’t open their web browsers on mobile devices. They spend their time on smartphones in apps. eMarketer estimates that in the US, about 90% of time spent on smartphones is spent in apps:
With such valuations, you might ask, why would anyone invest in a mobile web-based experience? The answer to that is “it depends.”
It depends on who your target audience is and what your use case is. You can see this really well by looking at the usage patterns of the Jitsi ecosystem.
Meet Jitsi vs JaaS
As mentioned, Jitsi is an open source media framework that uses WebRTC. Many enterprises and developers have adopted it and implemented their own instances. However, if you’re looking for a hosted managed solution, then 8×8, supported Jitsi has you covered:
- Jitsi Meet, a free group video calling service that shows what’s readily available with Jitsi. It acts as a great demo as well as a testing ground for the Jitsi team for new features and framework optimizations
- JaaS (Jitsi as a Service). Jitsi Meet Programmable Managed Service Offering. One that developers can use as a white label solution for their own communication needs
Looking at a month’s worth of data, kindly provided by Jitsi for editing this article, shows some interesting patterns of usage and behavior for…
Add Comment