Jitsi - Teknisk overblik

Indsigt i Jitsi's komponenter

Flere komponenter arbejder sammen for at levere løsningen som er Jitsi. Alle Jitsi-komponenternes individuelle - og særdeles aktive - udvikling kan følges på Jitsi's GitHub side. Som udgangspunkt vil en basis Jitsi installation gøre brug af komponenterne Jitsi-Meet, Jicofo og en eller flere Videobridges samt open source løsningerne NGINX og Prosody IM. Denne side giver et dybere indblik i løsningen og hvordan komponenterne kommunikerer med hinanden. Her ses et eksmpel på en basisinstallation:


Figur 1 - Forsimplet overblik over Jitsi komponenterne og deres kommunikation med hinanden

Når en bruger tilgår Jitsi domænet vil NGINX reverse proxy serveren svare med HTML, CSS og JS fra Jitsi Meet. Endvidere proxy-forwarder Nginx til Prosody IM (Instant messenger) som er en XMPP (eXtensible Messaging and Presence Protocol) kommunikations server - og hjertet af Jitsi løsningen.

Prosody serveren er opbygget af flere "MUCs" (Multi User Chats) / gruppechats, som forbindes til af de andre Jitsi komponenter således at de indbyrdes kan kommunikere via XMPP protokollen. Komponenterne Jitsi Videobridge og Jicofo (JItsi COnference FOcus) har administrator adgang til alle disse MUCs under brugernavnene hhv. "jvb" og "focus" som de benytter til at orkestrere møder og opsætte forbindelser mellem mødedeltagere og videobridge(s). Når et nyt møde instantieres vil "focus" brugeren (Jicofo) automatisk være den første der tilslutter sig. Når mødet skal til at starte vil Jicofo få besked på at sende sin focus bruger til rummet og oprette en peer-2-peer (p2p) forbindelse mellem deltager og videobridge ved brug af WebRTC. Forbindelsen oprettes ved at benytte XMPP-udvidelsen "Jingle".

Alle deltagere opretter en p2p forbindelse til Videobridgen - og Videobridgen sender video- og lydstrømmen videre til alle andre brugere. I den forstand kan man vælge at se Jitsi Meet som en peer-to-peer-to-peer løsning - eller klient-til-videobridge-til-klient(er):

Figur 2 - Video og lyd streaming komponent, Jitsi Videobridge

Mens Prosody er hjertet hvor igennem alle komponenter kommunikerer via XMPP-protokollen, er Jicofo hjernen i løsningen. Som beskrevet vil Jicofo koordinere, invitere og forbinde brugere med Videobridgen, men ydermere vil Jicofo også stå for loadbalancing og optimering af mediastrømmen. Dette kan den gøre ved at blive fodret med information fra Videobridgen, såsom upload / download bitrate, RTT og resolution som monitoreres for hvert endpoint (deltager) som Videobridgen er forbundet til. På bagrund af disse statistikker vil Jicofo administrere videokvaliteten for at sørge for den bedste oplevelse.

Hvad der adskiller Jitsi fra lignende løsninger er at videostrømmene ikke bliver mixet til en sammensat strøm, men i stedet agerer Videobridgen udelukkende som relæ. Dette betyder at serveren skal have god internetforbindelse, men at CPU ikke er meget kritisk for drift.

Er du interesseret i at opsætte din egen Jitsi server? Følg Semaphor's guide her, eller kontakt os for mere info.