Main features
- Group video and voice calls in the browser
- End-to-end encrypted calls
- Federated calls across Matrix homeservers
- Standalone web app or widget inside Element Web and Element X
- Screen sharing
- Background blur
- Raise hand and emoji reactions
- Spotlight and grid layouts
- Guest access and knock-to-join for rooms
- LiveKit selective forwarding unit for larger calls
What Element Call does
Element Call is a group video and voice calling app from Element, the company behind the Matrix client of the same name. It is built on MatrixRTC, the real-time layer of the Matrix protocol, and uses a LiveKit selective forwarding unit (SFU) to carry the media. It can run as a standalone web app that people open by link, or embedded as a widget in Matrix clients, which is how calls work in Element Web and the Element X mobile apps. An experimental React component is also available.
The meeting features are focused on the call itself: video and voice, screen sharing, background blur, raise hand, emoji reactions, and a choice between spotlight and grid layouts. Rooms can let guests in or ask them to knock and wait to be admitted.
Encryption and federation
End-to-end encryption is a core feature, not an option. Media passes through a LiveKit SFU, but the keys are shared between participants through Matrix events, so the SFU forwards streams it cannot decrypt. Calls are also federated: users on different Matrix homeservers, run by different organizations, can join the same call, and there is no central server that every call depends on. Each site runs its own LiveKit backend, and a call uses the backend of its first participant.
Self-hosting Element Call
Self-hosting has two parts. For calls inside Element Web and Element X you need a Matrix homeserver with several experimental features enabled (in Synapse, MSC3266, MSC4140 delayed events, MSC4222 and MSC4519 through experimental_features), a dedicated LiveKit SFU for your site, and the MatrixRTC Authorization Service (lk-jwt-service) behind a reverse proxy. The guide also covers homeserver rate limits sized for encryption key sharing.
The standalone web app currently has to be built from source with pnpm until prebuilt archives are available, then served by any web server with a fallback to index.html. Letting people without accounts join needs a homeserver with open registration, and the guide recommends a new homeserver whose accounts have not joined normal rooms, optionally with federation turned off.
Hosted version
call.element.io is a live demo run by Element, and call.element.dev is the continuously deployed development version. The repository does not describe a separate hosted Element Call product.
Limitations
The prerequisites are the main hurdle: a Matrix homeserver with experimental features, LiveKit and an authorization service, all kept in step. The standalone mode is less polished than in-app calling. The documentation does not cover a chat panel inside the call, recording, breakout rooms or phone dial-in, which many Zoom users expect. Proprietary products that embed it must meet the AGPL or buy a commercial license from Element.
Who it suits
Element Call suits organizations already running Matrix and Element that want encrypted calls for their own users and for partners on other homeservers. Teams without Matrix who need a stand-alone meeting tool will find Jitsi Meet or La Suite Meet easier to deploy.
License details
AGPL-3.0-or-later. Dual-licensed by New Vector Ltd (Element): AGPL-3.0-or-later, or a paid Element Commercial License.
Technical details
Self-hosting needs
- Matrix homeserver (Synapse)
- LiveKit
- MatrixRTC Authorization Service
Built with
- TypeScript
- React
- LiveKit
- Matrix
GitHub topics
- matrix
- matrixrtc
- videoconference
- voip
Reviewed by the OpenSourcePicks editors from the project's repository and documentation. Something out of date? Tell us.