JitsiMeetJS API Reference

website·Indexed 30 days ago

https://jitsi.github.io/handbook/

Technical documentation for the JitsiMeetJS library, including internal modules, classes like ProxyConnectionService and AudioMixer, interfaces such as IIceServer and ILoadScriptOptions, and enumerations for connection errors, transcription status, and VideoSIPGW constants.

Tokens
113.3K
Snippets
798
Records
986
Agent score
75%

What's inside JitsiMeetJS

  1. Overview of E2EEcontext for End-to-End Encryption

    The E2EEcontext class encapsulates the cryptography required for End-to-End Encryption (E2EE) in Jitsi. It leverages the WebRTC Insertable Streams API to access and transform encoded frames. The design ensures that existing SFUs do not require changes, VP8 metadata is retained, SFUs can rewrite SSRCs/timestamps/pictureIds, and keys can be rotated frequently.
  2. Overview of Jitsi Meet deployment options

    Jitsi Meet is a set of open-source projects for deploying secure, scalable video conferencing platforms. Users can access Jitsi Meet through three primary methods:

    1. Public Instance: Use the freely available instance at meet.jit.si.
    2. Self-Hosting: Deploy the platform on your own infrastructure using Debian packages or a Docker setup.
    3. Jitsi as a Service (JaaS): An enterprise-ready managed platform by 8x8 that provides the power of Jitsi on a global platform, removing the complexity of self-hosting and scalability management.
  3. Overview of Jitsi infrastructure components

    Jitsi is composed of several interconnected projects and external software to provide scalable video conferencing:

    • Jitsi Meet: A WebRTC compatible JavaScript application (built with React and React Native) for the end-user interface.
    • Jitsi Videobridge (JVB): A WebRTC compatible server that routes video streams between participants.
    • Jitsi Conference Focus (jicofo): A server-side component that manages media sessions and acts as a load balancer between participants and the videobridge.
    • Jitsi Gateway to SIP (jigasi): A server-side application enabling regular SIP clients to join Jitsi Meet conferences.
    • Jitsi Broadcasting Infrastructure (jibri): Tools for recording or streaming conferences by launching a Chrome instance in a virtual framebuffer and encoding output via ffmpeg.
    • Prosody: An external XMPP server used for signaling.
  4. Overview of Jitsi video conferencing platform

    Jitsi is an open-source, secure video conferencing platform designed for ease of use and self-hosting. It is composed of a collection of Open Source projects.
  5. Overview of AvgRTPStatsReporter

    The AvgRTPStatsReporter class is an internal utility that reports average RTP statistics (arithmetic mean) to the analytics module. It tracks metrics such as bitrate, bandwidth, and packet loss. It distinguishes between P2P and JVB conference modes, using a p2p. prefix for events in P2P mode. Whenever the conference switches between P2P mode, previously collected data is reset and averages are recalculated from scratch.
  6. Overview of Jitsi bridge-based transcription

    The transcription proxy is a real-time service that Jitsi Videobridge (JVB) connects to via WebSocket. JVB forwards participant Opus audio to the service, which decodes it and relays it to a speech-to-text backend (OpenAI, Deepgram, Google Gemini, or xAI). The results are streamed back and injected into the conference. This bridge-based path (JVB → transcription service) replaces the deprecated Jigasi-based transcription.
  7. Overview of JitsiConference.OlmAdapter

    The OlmAdapter class implements an End-to-End Encrypted (E2EE) communication channel between every two peers in a conference using libolm. This channel is primarily used to exchange the secret keys that participants use to encrypt actual media (managed by E2EEContext).

    It uses a JSON-based request-response protocol transmitted via XMPP MUC private messages with the following message types:

    • session-init: Initiates olm session establishment (sent by a joining participant to others).
    • session-ack: Completes session establishment; may contain the sender's current key.
    • key-info: Provides the sender's most up-to-date key information.
    • key-info-ack: Acknowledges receipt of a key-info request and may provide the sender's key.
    • error: Indicates a request processing error.