...
Table of Contents
Background
Instead of depending on a third-party provider, we will try to incorporate an open-source solution.
This Confluence page outlines the key factors to consider when evaluating OpenVidu and Jitsi for the integration of a video conferencing platform.
Both solutions have their strengths and considerations, and this guide aims to help you make an informed decision.
High-level Requirements
- The HCP will generate a unique link for the beneficiary
- The link will be sent to the beneficiary via SMS.
- Beneficiary can then join the meeting link via the browser.
...
1. Scalability and Performance
Both OpenVidu and Jitsi scale well for multiple parallel sessions.
OpenVidu
- Docker-based architecture for scalability.
- Efficient handling of large-scale conferences.
- Dynamic allocation of resources based on demand.
...
- Comprehensive API for easy integration into custom applications.
- Supports multiple programming languages.
- OpenVidu has a RestAPI that can programmatically generate sessions and tokens.
...
- Simple integration via iFrame or API.
3. Security and Privacy
By default, WebRTC works only on https. For the video transmission to happen, SSL certification is a must.
OpenVidu
- End-to-end encryption for increased security.
- Role-based access control.
- Token-based authentication.
...
- Followed self-hosting guide and was able to setup Docker env locally on laptop.
- Routing it via ngrok with https allowed starting meeting with audio and video.
- On accessing the URl via browser other participants can join.
- Challenges
- The first person who joins a link becomes the moderator. We should ensure that the HCP who initiates the meeting is the moderator.
- VIDEO_URL/<any-meeting-link> works for setting up a meeting. We will have to ensure that meeting links are generated and stored and only valid links are accessible.
Else anyone can use our video conferencing server to create meeting sessions. - A lot of Jitsi branding everywhere. This must be tweaked or removed to include Piramal logos and branding.
This can be changed by editing the JS assets.// Example: Change the logo
DEFAULT_LOGO_URL: 'images/my-custom-logo.png',
// Example: Change the watermark
DEFAULT_WATERMARK_LINK: 'images/my-custom-watermark.png',
// Example: Change the colors
TOOLBAR_BUTTON_BACKGROUND: '#007ACC',
TOOLBAR_BUTTON_HOVER_BACKGROUND: '#005eaa', - Jitsi Meet doesn't natively support user authentication or token-based access control by default. Jitsi will have to be integrated with an external authentication system.
...