Is the architecture of the the WebRTC-based solution explained somewhere? In particular, I'm seeking an overview of when it's p2p (how does it scale to large meetings), when it uses a central server, when call quality can degrade (eg: will one low-bandwidth user or an overloaded server wreck the call for everyone), and which links are encrypted. I'd like a reasonable understanding of these aspects before I recommend Jitsi to less tech-savvy friends and family.
Improving Scale and Media Quality with Cascading SFUs
https://webrtchacks.com/sfu-cascading/ (November 2018)
Edit: Based on another Jitsi dev's comment in this thread: SFU stands for "Selective Forwarding Unit", which was extracted to a standalone project, Jisti Videobridge.
https://github.com/jitsi/jitsi-meet/blob/master/doc/api.md
I've done this and created a UI for adding rooms, which is in my control.
At one point in time it gained the hability to do multi-party video conferencing, where one participant would become the "focus" and forward everyone's video to everyone else.
This was the inception of the concept of an SFU or Selective Forwarding Unit.
Then, in order to scale this up the SFU was extrated to a standalone project: Jitsi Videobridge.
Roughly around then, WebRTC became a thing and Jitsi was already doing many of the required things to bring the experience to the web, so work continued with Jitsi Meet, a WebRTC compatible video conferencing system.
Jitsi Meet is our present and future, but Jitsi (desktop) lives on both as pieces of the puzzle (Jitsi Videobriidge, Jigasi and Jicofo use parts of it) and as a community project, where people interested in keeping it alive ssubmit fixes / improvements.
Source: I've developed OSGi applications professionally for nearly 9 years.
btw I <3 Jitsi Meet
I read the bit on OSGi. It seems to support interfaces, runtime loading and unloading of modules, and a way to discover modules. Java 1.0 did all that stuff natively, though JPMS adds some more capabilities, since I guess people don’t like package private, etc.
C++ also supports these things. (C does too, but you need non-standard dynamic linker constructor/destructor extensions that are available on all platforms).
I can’t think of any widely used language without support of such things.
"Jitsi Desktop is a xmpp, sip desktop client which has audio video capabilities, but cannot interconnect with jitsi-meet."
[1] - https://community.jitsi.org/t/jitsi-desktop-for-use-with-jit...