Jitsi Meet - Secure, Simple and Scalable Video Conferences that you use as a standalone app or embed in your web application. https://jitsi.org/meet
  • TypeScript 75.1%
  • JavaScript 9.5%
  • Lua 8.9%
  • Java 2.5%
  • Objective-C 1.5%
  • Other 2.4%
Find a file
damencho 94ef9e0479 test(recording): retry startRecording when jicofo is not ready yet
A startRecording iframe-API command sent right after
videoConferenceJoined can reach jicofo while the conference is still
being set up; jicofo then rejects the jibri start IQ with
policy-violation (type=wait) and the recording silently never starts
(the client surfaces it only as an unhandled promise rejection).

Waiting for the JVB session before sending the command is not an
option: jicofo does not allocate a session for a lone participant at
all — it only does so when a second endpoint (e.g. jibri) is on its
way — so such a gate deadlocks.

The error type means 'retry later', so model exactly that: send the
command, wait up to 5s for a live FILE session to appear in the
recording state, and re-send if it does not (3 attempts).
2026-07-03 16:15:54 +03:00
.devcontainer chore(node): Increment node ver to 20 (#13445) 2024-05-16 12:39:02 -05:00
.github chore: Only run prosody test action on pushes to master. (#17464) 2026-06-04 01:41:27 -05:00
android fix(audio-mode): re-assert in-communication mode when the system resets it mid-call 2026-06-26 10:10:54 +03:00
css feat(ux): allow recording and transcription to be started and stopped independently (#17469) 2026-06-23 15:44:26 +03:00
debian fix(debian): Fixes initial install and certs in trust store. 2026-02-21 15:12:03 -06:00
doc Disable colibri (JVB) WebSocket proxy in nginx/apache config by default (#17431) 2026-05-27 01:26:47 -05:00
fonts chore(fonts) drop no longer used font 2022-11-10 11:16:22 +01:00
images fix(readme): Fixes badge icon and f-droid link. 2025-01-09 12:38:11 -06:00
ios fix(ios): bump react-native-video to 6.19.1 2026-07-03 12:17:37 +03:00
lang feat(translation) Support realtime translations in conferences (#17538) 2026-07-01 12:38:03 -04:00
metadata feat(fastlane) metadata i18n ru 2024-04-28 11:07:30 +02:00
modules feat(screenshare): direct-cast screenshare over a plain RTCPeerConnection (#17553) 2026-06-28 07:23:17 -05:00
patches feat: disable Giphy analytics to prevent beforeunload handlers (#16314) 2025-08-07 16:34:07 +02:00
react fix(recording): play the off sound when a local recording stops 2026-07-03 16:15:54 +03:00
react-native-sdk chore(rn): remove IPv6 address synthesis for remote SDP 2026-06-02 10:19:30 +02:00
resources fix(polls): validate answer structure from participants 2026-07-02 16:50:34 +03:00
sounds fix(recording): update notification audio files with natural-sounding voices (#17357) 2026-04-29 09:42:55 -05:00
static fix: Fixes excalidraw in the deb package. 2026-03-31 10:31:32 -05:00
tests test(recording): retry startRecording when jicofo is not ready yet 2026-07-03 16:15:54 +03:00
twa chore(typos) fix various typos 2024-12-20 07:58:31 +01:00
.editorconfig chore(editorconfig) extend to include Android and iOS indentation rules 2025-10-28 09:37:53 +01:00
.eslintignore test(prosody-plugins): add integration and unit tests with Allure reporting (#17327) 2026-05-04 10:16:19 -05:00
.eslintrc.js feat(lint) update to eslint-config-jitsi v6 2025-03-20 17:17:41 +01:00
.gitattributes react-native 0.40.0 2017-01-22 12:32:08 -06:00
.gitignore chore(react-native): enable new architecture 2026-06-01 21:07:21 +03:00
.luacheckrc feat(ci): using .luacheckrc 2023-01-27 10:59:07 +01:00
.npmrc fix(deps) override xmldom dependency from strophe.js 2023-04-20 19:13:43 +02:00
.nvmrc feat(build) use Node 24, the current LTS 2026-03-02 20:15:07 +01:00
.watchmanconfig Merge jitsi-meet-react's mobile support 2016-10-12 10:31:52 -05:00
_unlock feat: Switches by default to using websockets. 2025-03-31 11:48:15 -05:00
app.js feat(custom) provide a custom.js entry point for custom javascript (#17524) 2026-06-26 11:34:45 +02:00
babel.config.js dep(react-native-worklets-core): Replace duktape to align with Android 16kb page size alignment (#16393) 2025-09-09 12:46:11 +03:00
base.html fix: revert base.html clearing (#13161) 2023-04-03 14:59:03 -05:00
body.html Adds a hook to insert body & head html. (#4843) 2019-11-12 13:37:48 +00:00
CLAUDE.md docs: fix Contributing Guidelines link 2026-01-09 17:07:01 +01:00
conference.js feat(screenshare): direct-cast screenshare over a plain RTCPeerConnection (#17553) 2026-06-28 07:23:17 -05:00
config.js feat(multi-screen): render a meeting surface on a second screen via the iframe API (#17527) 2026-06-23 08:56:05 -05:00
CONTRIBUTING.md fix(docs) update contributing 2025-03-23 10:15:03 +01:00
custom.d.ts feat(whiteboard): Lazy load the whiteboard dependeny. 2026-04-01 15:08:18 -05:00
custom.js feat(custom) provide a custom.js entry point for custom javascript (#17524) 2026-06-26 11:34:45 +02:00
fonts.html feat(index.html): Add fonts.html SSI. 2021-12-10 10:20:54 -06:00
Gemfile fix(ios,build) add missing dependencies for fastlane 2025-02-17 17:24:54 +01:00
Gemfile.lock chore(react-native): enable new architecture 2026-06-01 21:07:21 +03:00
giphy-analytics-stub.js feat: disable Giphy analytics to prevent beforeunload handlers (#16314) 2025-08-07 16:34:07 +02:00
globals.d.ts chore(react-native): enable new architecture 2026-06-01 21:07:21 +03:00
globals.native.d.ts chore(react-native): enable new architecture 2026-06-01 21:07:21 +03:00
head.html Adds a hook to insert body & head html. (#4843) 2019-11-12 13:37:48 +00:00
index.android.js [RN] Drop no longer needed polyfills 2018-08-05 17:04:19 -05:00
index.html fix: Fixes excalidraw in the deb package. 2026-03-31 10:31:32 -05:00
index.ios.js feat(web/RN): update React to v16 and React Native to 0.49 2017-11-02 14:32:35 +01:00
inlang.config.js feat(i18n) add i18next compatible IDE-extension for i18n handling 2023-07-07 14:59:25 +02:00
interface_config.js refactor(settings): show shortcuts in settings if it is in the list 2026-05-05 10:06:34 -05:00
LICENSE Moves original contribution note 2015-09-19 12:23:54 -05:00
Makefile feat(virtual-background) Introduces TF.js body seg using WebGPU/WebGL context. 2026-05-18 13:23:16 -04:00
manifest.json fix(pwa) move manifest to the root 2020-10-22 16:17:18 +02:00
metro.config.js feat(rn, ios): build fixes and metro-config updates (#14251) 2024-01-18 14:48:59 +02:00
package-lock.json fix(ios): bump react-native-video to 6.19.1 2026-07-03 12:17:37 +03:00
package.json fix(ios): bump react-native-video to 6.19.1 2026-07-03 12:17:37 +03:00
plugin.head.html Adds empty SSI templates to avoid 404. 2015-03-31 11:17:26 +02:00
pwa-worker.js feat(pwa) add pwa specifics 2020-10-13 13:40:31 +02:00
react-native.config.js dep(@giphy/react-native-sdk): fixes 2026-05-06 17:35:41 +03:00
readme-img1.png feat(doc) revamp README 2021-09-09 16:37:32 +02:00
README.md fix(readme): Fixes badge icon and f-droid link. 2025-01-09 12:38:11 -06:00
SECURITY.md Update SECURITY.md (#15085) 2024-09-04 09:47:40 -05:00
title.html fix(favicon) make favicon visible in dark-themed browser 2023-11-24 17:48:28 +01:00
tsconfig.native.json chore(deps): upgrade @jitsi/js-utils to 6.3.2 2026-05-12 18:17:41 -05:00
tsconfig.web.json chore(deps): upgrade @jitsi/js-utils to 6.3.2 2026-05-12 18:17:41 -05:00
webpack.config.js feat(virtual-background) Introduces TF.js body seg using WebGPU/WebGL context. 2026-05-18 13:23:16 -04:00

Jitsi Meet

Jitsi Meet is a set of Open Source projects which empower users to use and deploy video conferencing platforms with state-of-the-art video quality and features.



Amongst others here are the main features Jitsi Meet offers:

  • Support for all current browsers
  • Mobile applications
  • Web and native SDKs for integration
  • HD audio and video
  • Content sharing
  • Raise hand and reactions
  • Chat with private conversations
  • Polls
  • Virtual backgrounds

And many more!

Using Jitsi Meet

Using Jitsi Meet is straightforward, as it's browser based. Head over to meet.jit.si and give it a try. It's scalable and free to use. All you need is a Google, Facebook or GitHub account in order to start a meeting. All browsers are supported!

Using mobile? No problem, you can either use your mobile web browser or our fully-featured mobile apps:

Android Android (F-Droid) iOS

If you are feeling adventurous and want to get an early scoop of the features as they are being developed you can also sign up for our open beta testing here:

Running your own instance

If you'd like to run your own Jitsi Meet installation head over to the handbook to get started.

We provide Debian packages and a comprehensive Docker setup to make deployments as simple as possible. Advanced users also have the possibility of building all the components from source.

You can check the latest releases here.

Jitsi as a Service

If you like the branding capabilities of running your own instance but you'd like to avoid dealing with the complexity of monitoring, scaling and updates, JaaS might be for you.

8x8 Jitsi as a Service (JaaS) is an enterprise-ready video meeting platform that allows developers, organizations and businesses to easily build and deploy video solutions. With Jitsi as a Service we now give you all the power of Jitsi running on our global platform so you can focus on building secure and branded video experiences.

Documentation

All the Jitsi Meet documentation is available in the handbook.

Security

For a comprehensive description of all Jitsi Meet's security aspects, please check this link.

For a detailed description of Jitsi Meet's End-to-End Encryption (E2EE) implementation, please check this link.

For information on reporting security vulnerabilities in Jitsi Meet, see SECURITY.md.

Contributing

If you are looking to contribute to Jitsi Meet, first of all, thank you! Please see our guidelines for contributing.



Built with ❤️ by the Jitsi team at 8x8 and our community.