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.
Evaluation Criteria
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.
Jitsi
- Designed for scalability with the ability to handle a significant number of participants.
- Optimized for WebRTC-based communication.
2. Ease of Integration
OpenVidu
- Comprehensive API for easy integration into custom applications.
- Supports multiple programming languages.
- OpenVidu has a RestAPI that can programmatically generate sessions and tokens.
Jitsi
- 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.
- Role-based access control.
- Token-based authentication.
Jitsi
- Secure by default with TLS encryption.
- Support for password-protected meetings.
- Open-source and auditable for transparency.
4. User Interface and User Experience
OpenVidu
- Minimalistic UI for ease of use.
- Customizable UI components for integration with existing platforms.
Jitsi
- Intuitive and user-friendly interface.
- Support for additional features such as chat and screen sharing.
5. Customization and Extensibility
OpenVidu
- Extensible architecture for adding custom modules.
- Customizable UI components.
Jitsi
- Open-source codebase allows for extensive customization.
- Ability to add plugins and extensions.
- Provides additional SDKs for mobile. This might be helpful in integration to CHO/FLW App later.
6. Community and Support
Both OpenVidu and Jitsi are open-sourced. It looks like Jitsi has a more active community.
7. Cost Considerations
Both solutions are
- Open-source
- No licensing fees.
8. Documentation and Resources
Available for both platforms.
Notes on Setup
Jitsi
- 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.