Jitsi-Meet is a video conferencing solution. The project aims to provide a totally free video conferencing platform that is open source and community-based.1 The use cases range from quick chats between friends to embedded video calls in large applications.
Where is it used
Generally, every user of Jitsi-Meet will use it for an online video meeting, ranging in scale from a small group meeting to a conference with hundreds of people. In this scenario, the main requirements are that each user must have the best possible quality video and must be able to hear and speak to everyone in the current meeting. Besides this, the users also want to have a secure and encrypted environment to have a meeting in. The importance of this concept rises when Jitsi-Meet is used for business meetings rather than meetings with friends for example.
Another key concept of Jitsi-Meet is the flexibility in your Jitsi-Meet setup. You can host it in your own environment, or you can use a publicly available server for your meetings. You can use it for free, or use the paid version within a service from a company called 8x8 Ltd2, which is responsible for most of the funding for Jitsi-Meet. This way customers can have a customized version without having to customize Jitsi in-house.
The final key concept is the fact that Jitsi-Meet is open source, so therefore anyone who wants to can study the source code, contribute to the project, and completely adapt it to their own use case.
These concepts fundamentally influence the main capabilities of the software.
How do you use it
Because of the flexibility of the platform the Jitsi-Meet UI is kept very simple and easy to use.
When the user wants to start a video conference, a Jitsi-Meet meeting can easily be created from meet.jit.si or from a local environment when the instance is self-hosted.3 Once the user is in the meeting, they can invite people via many common methods, such as sending an email, sharing the URL of the meeting, or embedding the meeting on a web page.
Once multiple users are in a meeting, they can mute and unmute themselves for the other participants, as well share their screen, use the built-in chat functionality to text other people in the meeting, or use the “raise your hand” functionality to indicate to the presenter or others in the meeting that you have a question. This is only a part of the functionality that each user can do while they are in a meeting.
Once the meeting is over, all the users can then leave the meeting and continue doing what they were doing before the meeting.
Besides having a simple and easy to use UI, the technical context is also comprihensible.
The dependency tree is installed automatically and consists of4:
- Prosody: Jabber/XMPP server written in Lua
- Jicofo: JItsi COnference FOcus is a server-side focus component used in Jitsi-Meet conferences
- Videobridge: Jitsi Videobridge is an XMPP server component that allows for multi-user video communication.
In Jitsi-Meet it is possible to embed YouTube videos during meetings, to watch it together. It is also possible to stream the meeting to YouTube if more than the maximum number of 300 users want to observe the meeting. Furthermore, the developers have recently added features to save the recorded stream to Dropbox and made a plugin to create meetings from Microsoft Outlook.
This simplicity of use gives Jitsi-Meet a low barrier of entry and a large potential user base.
Context of the system
Currently, Jitsi-Meet is mostly used in a school or business context, as there is no account or special software required to access a meeting room. This simplicity is also very convenient when having a large conference-like meeting. Jitsi-Meet supports a maximum of 300 users per call. Jitsi-Meet is not broadly adopted. For example, ITPro does not mention it in this list on video convferencing software5. Jitsi-Meet seems mostly used within companies where popular meeting applications, like Microsoft Teams, are not used a lot.
The users that attend a meeting or host Jitsi-Meet themselves need the platform to be intuitive to use, easily deployable and manageable, affordable to use, and it to be secure with their data. Besides regular end-users, there are many parties with a stake in Jitsi-Meet.
The main stakeholders can be characterized into 5 general categories:
- The before mentioned end-users
- 8x8 Inc.
- Software developers involved in the project
- Organizations with paid subscriptions
- Organizations that have embedded it in their own project.
The holders of the Jitsi trademark and employer of the main developer team of the open-source project is the California based company 8x8 Inc. They depend on the Jitsi-Meet framework to power several of their own services that they sell to their clients, and can be seen as the main stakeholder. Their main needs are to have a stable, up-to-date, and secure video conferencing platform that can be easily embedded into their own services.
The programmers consist of a mix between passionate volunteers and programmers paid by companies, who make up a sizable part of the online community. Their main needs are to have a well-functioning community for reporting issues and to develop with, an architecture and project setup that enables easy development and maintenance, and that it is open source.
Organizations that use Jitsi as a Service (JaaS) pay the core team at 8x8 to host and manage the system, therefore their needs are not related to the technical aspects of hosting the platform. Their needs are to have their users be able to efficiently and securely use the service.
Organizations that embed Jitsi-Meet into their own services have similar needs as the owners in this case as they also embed the platform into their own services. Thus their main needs are also to have a stable, up-to-date, and secure video conferencing platform that can be easily embedded.
Besides the obvious need that the platform is capable of hosting video conferences, the stakeholders all have needs related to the project in order to maximize their benefits gained from the Jitsi-Meet platform.
Key quality attribute targets
The most important external quality attributes, meaning what is seen by the user, are the performance and the usability of the system. The most relevant internal quality attribute, which addresses the perception of the developers, is reusability.
In terms of performance, it is key that video quality and latency enable a fluent meeting. Usability is key in the sense that Jitsi-Meet was designed with usability in mind: Users can join a meeting with just the link, directly in the browser. Deployability was improved by releasing a docker build in 2018 and with the introduction of JaaS deployability is completely satisfied for companies that do not want to self-host.
Besides these, security and scalability are mentioned as important quality attributes. Jitsi-Meet is meant to keep working fluently for up to 300 participants, which has become more of a focus during the COVID19 pandemic. Security concerns are addressed in the security section.
An active aspect of the Jitsi-Meet software is reusability. Many of the developers have their own use cases for the software, and besides contributing to the project tweak a copy of Jitsi-Meet to their own needs. This is indicated by the fact that the GitHub repo has been forked almost 5000 times.6
Besides ensuring the quality of code while it is written it is important to have a clear long-term goal to base architectural decisions on. Usuall, this is formalized in a road map.
Product road map
However, the developers from Jitsi-Meet believe that the platform is too dynamic to create an architecture roadmap that stays relevant.7 Therefore there are currently no explicit roadmaps or milestones that denote the future direction of the platform. There are two ways short-term goals are handled. There is a biweekly community meeting where the core development team gives updates on the most important features and the future of the platform is discussed. In the community call of February 22, the developers mention that their main focuses are optimizing support for large calls and implementing background blur and virtual backgrounds. Besides the community call, there is an active community forum8 where developers and users of the platform discuss ideas and possible features. Both the community call and forum discussions give rise to issues on Github. The core development team can label issues as confirmed when they are on the core team’s horizon.
At the time of writing, there are 387 open issues. 125 are labeled as feature-request and six of these requests are labeled as confirmed:9
- Streaming to RTMP endpoint
- Ability to change Push To Talk shortcut
- Add a mute button to the Android app
- Change sound notification for incoming chat messages
- Integration with CalDav for Jitsi meetings
- Dark theme support
Examples of unconfirmed requests with a significant amount of forum traction are:
- Screen sharing on the mobile app
- A shared whiteboard
- Breakout rooms
- Local recording
These GitHub issues mostly address the short to medium term. Discussion on long-term vision and architecture decisions for the project are held, but these discussions are interwoven with the other discussions, making it difficult to get a clear picture. This is the case for us looking into the long-term vision for the project, but might also be the case for the community itself, resulting in unfulfilled potential for the project. A relatively straightforward and easy to implement solution to this could be to have a long term or architecture section in the forum, either stand-alone or as a subcategory under Developers, partitioning these more long-term discussions into a separate place. Having this makes it easy to distinguish short-term feature, bug, and optimization discussions from long-term planning and architectural deliberations and naturally lead to an overview for the “community consensus” on the topic. However, it does not force commitment to formal road maps or specifications.
An example of where this works well is the forum topic on security, where discussions on this topic can easily be read and joined. This is important because security and privacy-related concerns are the central ethical considerations for the Jitsi-Meet project.
From a security perspective, Jitsi-Meet has been created with the best security practices10. The connections from the user to the server are encrypted over SSL, decrypted on the server, re-encrypted, and send to the other attendees of the meeting. Since Jitsi-Meet is open source, contrary to its main competitors, the security should be less of a concern as issues such as back-doors are not likely. However, it can never be guaranteed that the platform is completely safe.
Users do not have to log in, therefore minimal user-specific information is logged. Although the software is free, the user is not “the product” so no trackers or third-party cookies are present.
However, since no login is required, uninvited persons can easily join a meeting when the URL is known, especially when the chosen URL is too generic. This specific issue can be prevented by setting up a password for the meeting.
Jitsi-Meet GitHub README [https://github.com/jitsi/jitsi-meet/blob/master/README.md(https://github.com/jitsi/jitsi-meet/blob/master/README.md) ↩︎
Self hosting guidehttps://github.com/jitsi/jitsi-meet/blob/master/README.md ↩︎
Jitsi-Meet dependencies https://jitsi.github.io/handbook/docs/architecturech ↩︎
ITPro article, The most popular video conferencing software of 2020 https://www.itpro.com/software/video-conferencing/357648/the-most-popular-videoconferencing-software-of-2020 ↩︎
GitHub API call that returns number of forks https://api.github.com/search/repositories?q=user%3Ajitsi+repo%3Ajitsi-meet ↩︎
Community forum post https://community.jitsi.org/t/jitsi-meet-official-roadmap/77813 ↩︎