pixel
Seite wählen

NETWAYS Blog

Videokonferenz – wie funktioniert das?

Während früher für Videokonferenzen dedizierte Soft- und teilweise auch Hardware erforderlich war, klappt das heutzutage mit jedem modernen Browser. Eine Grundvoraussetzung war sicher die heute verfügbare schnellere Hardware. Was früher zwingend nach optimierten Chips verlangte lässt sich heute problemlos in Software gießen und von jeder Smartphone-CPU umsetzen. Wobei unterstützende CPU-Befehlssatzerweiterungen (z.B. für Teilaspekte der Verschlüsselung) und in Hardware gegossene Unterstützung für den ein oder anderen Videocodec natürlich nicht schaden.

Der Großteil der Arbeit wird aber in Software umgesetzt, und die Grundlagen dafür wurden nicht komplett neu erfunden. Man hat auf bewährte Komponenten gesetzt, aber auch ein paar Dinge anders gemacht. Zusammengefasst wird das Ganze unter dem Begriff WebRTC. Dahinter versteckt sich eine ganze Reihe von Komponenten und Standards. Sowohl die IETF als auch das W3C waren und sind hier mit verschiedensten zugehörigen Standards involviert.

Heute möchte ich ein paar Teilaspekte des Ganzen beleuchten, um verständlicher zu machen welche Magie sich hinter diesem Begriff versteckt. Wir werden unter die Lupe nehmen, wie:

  • Webbrowser via JavaScript Zugriff auf Kamera und Mikrofon ermöglichen
  • mögliche Übertragungswege ermittelt werden (was “dank” NAT & Co nicht trivial ist)
  • mögliche Datenströme zwischen den Teilnehmern signalisiert werden
  • die eigentlichen Medienstreams übertragen werden
  • Verschlüsselung zustande kommt

Zugriff auf Kamera und Mikrofon

Der Zugriff auf Kamera etc ist bei der ganzen Geschichte der einfachste Teil. Alle namhaften Browser stellen Media Devices / Media Streams bereit. Wer damit experimentieren möchte kann sich entsprechend einlesen oder einfach mal dieses Schnipsel ausprobieren. Einfach in eine HTML-Datei speichern und im Browser öffnen. Wenn alles klappt, dann sollte es in etwa so aussehen:

Wenn jedoch z.B. der Zugriff auf die Kamera nicht gewährt wird, kümmert sich die Fehlerbehandlung darum, eine aussagekräftige Fehlermeldung prominent zu platzieren:

Desktopsharing ist übrigens mittlerweile ähnlich simpel, hier eine kleine Testseite von Mozilla.

Ice Ice Baby

Der nächste Schritt ist schon komplizierter. Eine provisorische Kommunikation zwischen zwei Browserfenstern lässt sich mit Hilfe von Google, Stackoverflow & Co vielleicht noch relativ einfach bewerkstelligen. Eine ernsthafte Software für Videokonferenzen ist aber erstens harte Arbeit und verlangt zweitens auch serverseitig nach entsprechenden Ressourcen.

Raketentechnik passt nicht in einen Blog-Post, aber die grundsätzlichen Prinzipien des Verfahrens möchte ich hier vermitteln:

STUN wird benutzt um mögliche eigene Kandidaten für potentielle Sessions zu ermitteln. Im Idealfall ergibt sich daraus die Möglichkeit, die eigentlichen RTP-Ströme direkt zwischen den Clients zu vermitteln. Dadurch entsteht abgesehen von der Signalisierung auf den Servern keine Last. Das lief schon vor über 10 Jahren wunderbar, und ermöglichte SIP-Providern den Großteil des Traffics gar nicht selbst stemmen zu müssen.

Während das mit dem User hinter einem x-beliebigen DSL-NAT-Router meist wunderbar klappt, scheitert das spätestens, wenn man an ein symmetrisches NAT gerät. Während man als SIP-Anbieter früher recht trickreich versuchte, dann die vermittelten Sessions on-the-fly umzuschreiben um die Datenströme dann über Proxy-Server mit öffentlichen IPs zusammenzuschalten, gibt es mittlerweile zum Glück Standards für dieses Verfahren.

Eine Kernkomponente stellen TURN-Server dar, welche bei Bedarf ein Relay auf sichere Weise bereitstellen können. Zudem wurde das ganze Verfahren zum Verbindungsaufbau unter dem Namen Interactive Connectivity Establishment (ICE) standardisiert und wird für die Kommunikation im Browser vorausgesetzt bzw mitgeliefert.

Wobei Browser hier durchaus raffiniert vorgehen und auch Erweiterungen wie Trickle zur Beschleunigung des Ganzen implementieren.

Signalisierung

ICE bringt uns direkt zum nächsten Thema, die Signalisierung. Informationen über mögliche Transportwege müssen nämlich zwischen den Teilnehmern ausgetauscht werden. Und das nicht nur beim Gesprächsaufbau, sondern auch mittendrin. Schaltet jemand sein Videosignal an oder aus, ergibt das eine Änderung an den benutzten Sessions. Wird die Videoqualität mitten im Gespräch erhöht oder verringert (passiert meist automatisch), dann werden ebenfalls neue Sessions ausgehandelt.

Mögliche Kandidaten für Streams und ausgewählte ebensolche müssen irgendwie definiert und beschrieben werden. Hier kommt ein alter Bekannter aus der SIP-Welt zum Einsatz, nämlich das Session Description Protocol (SDP). Die Art und Weise wie es in den Browsern in JSON eingepackt wird sieht zwar bereits vor, es irgendwann potentiell durch eine Alternative ersetzen zu können. Stand heute ist es aber meines Wissens die einzige Variante, die zum Einsatz kommt.

Einigen müssen sich die Teilnehmer auf Audio und/oder Videocodecs, die Anzahl der involvierten Streams – und nicht zuletzt die zugehörigen Transportwege. Während SDP bei SIP einen der möglichen Inhalte eines SIP-Pakets darstellt, wird es bei WebRTC hier komplizierter. Im Grunde kann jeder Anbieter selbst entscheiden, wie er die Session-Informationen welche sein JavaScript-Code in den jeweiligen Browsern ermittelt zwischen denen und/oder seiner Videoplattform austauscht. Theoretisch können auf dem Signalisierungsweg zwischen den Teilnehmern auch mehrere Server stehen. Auch der Transport zwischen diesen ist im Grunde nicht vorgeschrieben. Grundsätzlich nutzt man SIP (eher zwischen Servern) und/oder (vorzugsweise) XMPP.

Spätestens auf dem Weg zum Browser nutzt man besser einen Standard wie XMPP via BOSH oder Websockets, bei XMPP kommt zudem eine Erweiterung namens Jingle zum Einsatz. Zwingend ist aber die Unterstützung von JSEP, dem JavaScript Session Establishment Protocol. Um jetzt nicht zu sehr ins Detail zu gehen: stellt euch JSEP einfach wie einen JSON-Wrapper für SDP vor. Der Standard beschreibt nicht nur das einzelne Datenpaket und dessen Format, sondern auch den ganzen Ablauf des Auf- und Abbaus von Sessions. Wer es wirklich im Detail verstehen will kommt eh nicht umhin, sich die ganzen (vielen) involvierten Drafts und RFCs zu Gemüte zu führen.

Datenströme – Media Streams

Nachdem unsere Teilnehmer jetzt endlich wissen, was sie wohin senden (und woher empfangen) können, geht es endlich los: wir schicken unseren Stream auf die Reise. Zum Einsatz kommt auch hier ein alter Bekannter, das Real-Time Transport Protocol (RTP). Zum Glück ist auch RTPC, die Erweiterung zur Steuerung der Servicequalität zwingend vorgeschrieben. Bei SIP war das noch optional.

Das Protokoll übernimmt hier das Stückeln der aus dem gewählten Audio/Video-Codec fallenden Pakete. RTP muss sicherstellen, dass ein Stream kontinuierlich, synchron und linear ankommt. Laufzeitunterschiede (Jitter), also Schwankungen in der Übertragungszeit der einzelnen Pakete sollen ausgeglichen werden. Auch das ist eine Wissenschaft für sich.

Wer sich ansehen möchte, welche Streams gerade aktiv sind und wie viele Daten da drübergehen, kann das teilweise in seinem Browser machen – in Chrome z.B. unter chrome://webrtc-internals/. Via JavaScript sind diese Informationen (in unterschiedlicher Ausprägung) übrigens in allen Browsern verfügbar. Man sieht welche Codecs gerade zum Einsatz kommen, ob und wie laut gesprochen wird und wie viele Daten übertragen wurden und werden. Hier setzt übrigens an, wer die Gesprächs- und Videoqualität überwachen möchte.

Verschlüsselung und Sicherheit

Nicht zuletzt geht es spätestens bei den Streams natürlich auch um die Frage der Sicherheit. Die gute Nachricht zuerst: zumindest die Implementierung der Verschlüsselung ist im WebRTC-Standard für alle beteiligten Komponenten vorgeschrieben. Bei den Protokollen finden sich wiederum alte Bekannte, zumindest für den, der sich schon mal mit VoIP-Sicherheit auseinandergesetzt hat:

* Datagram Transport Layer Security – DTLS erlaubt TLS auch für UDP
* Secure Real-Time Transport Protocol – SRTP ist eine effiziente Verschlüsselung für RTP

Nicht verschlüsselt sind Header-Informationen wie z.B. die Lautstärke. Man “sieht” also auch ohne die Verschlüsselung zu knacken, ob jemand gerade spricht oder nicht. Vor bei SRTP denkbaren MITM-Angriffen schützt bei WebRTC übrigens der Verbindungsaufbau via DTLS.

Die Verschlüsselung erfolgt End-to-End. Auch wenn die Streams über einen TURN-Server geleitet werden kann der Anbieter sie nicht entschlüsseln. Wer sich tiefer in das Thema einarbeiten möchte, dem empfehle ich als Einstiegspunkt A Study of WebRTC Security. Dazu sollte man vielleicht noch sagen, dass hier lediglich versprochen wird, dass die Verbindung zu meinem Gegenüber verschlüsselt ist. Wer aber letztlich mein Gegenüber ist und ob das wirklich mein Gesprächspartner ist, ob dem in der Zwischenzeit jemand das Notebook geklaut hat oder ob gar ein Proxy verschlüsselt mit uns beiden spricht und dabei in der Mitte hängt – das zu unterscheiden ist für den Endnutzer leider nicht mit vertretbarem Aufwand möglich.

Schwieriger wird das Thema Sicherheit zudem, wenn Konferenzen mit mehreren Teilnehmern stattfinden. Wenn nämlich jeder Teilnehmer seinen Stream zu jedem anderen sendet ist bei einer gewöhnlichen DSL-Leitung das Ende der Fahnenstange schnell erreicht. Mischt der Anbieter die Streams zu einem (bzw zu mehreren, weil Teilnehmer teilweise andere Codecs unterstützen), dann ist die schöne End-zu-End-Verschlüsselung aber leider im Eimer.

Eine mögliche Lösung sind SFUs (Selective Forward Units), die kennt man bereits aus der guten alten RTP-Welt. Die brauchen zwar nicht in die Streams zu sehen, können es per Definition aber leider. Eine schöne Lösung bieten hier Insertable Streams, welche mittlerweile in aktuellen Versionen von Firefox, Safari und Chrome verfügbar sind. Ein zugehöriges Jitsi-Issue liefert dem interessierten Leser einen tiefen Einblick in den aktuellen Stand der Technik und die Fortschritte der einzelnen Browserhersteller.

Jitsi ist übrigens eine wunderschöne OpenSource-Lösung für Videokonferenzen. Wer den Aufwand des Betriebs scheut oder es einfach mal ausprobieren möchte kann das jederzeit bei uns machen. Und wenn wir anderweitig zu dem Thema beratend zur Seite stehen können, machen wir das natürlich auch sehr gerne.

Thomas Gelf
Thomas Gelf
Principal Consultant

Der gebürtige Südtiroler Tom arbeitet als Principal Consultant für Systems Management bei NETWAYS und ist in der Regel immer auf Achse: Entweder vor Ort bei Kunden, als Trainer in unseren Schulungen oder privat beim Skifahren in seiner Heimatstadt Bozen. Neben Icinga und Nagios beschäftigt sich Tom vor allem mit Puppet.

3 Gründe, wieso Du Jitsi verwenden solltest

Ich muss sagen, ich bin wirklich dankbar und schätze mich sehr glücklich, dass ich zum einen die Möglichkeit habe, von zu Hause aus arbeiten zu können und zum anderen die Möglichkeit bekomme, von zu Hause aus zu arbeiten.

Das bedeutet im Umkehrschluss natürlich, die Kolleg*innen nicht mehr jeden Tag „in echt“ zu sehen, sich mit dem mittelmäßigen Filterkaffee zu Hause zufrieden zu geben und somit nicht mehr den hervorragenden Kaffee im Office zu genießen. Für ersteres gibt es aber – zumindest virtuell – eine Lösung, und zwar Jitsi!

 

Wieso Jitsi?

Damit nicht nur offline, sondern auch online, unser aller Schutz sichergestellt ist, gibt es hier 3 Gründe, die für Jitsi sprechen: Ein Video Conferencing Tool, das es ermöglicht, einfach und unkompliziert mit Arbeitskolleg*innen in Kontakt zu bleiben und Meetings abzuhalten.

1. Deine Sicherheit hat bei uns Priorität! Auch bei der Kommunikation. Daher sind unsere Server dort, wo Du und ich zuhause sind – in Deutschland. Um genauer zu sein, hosten wir Deine Daten in Nürnberg. Ach so, Du lebst nicht in Nürnberg? Auch gut! Egal, wo Dein Zuhause ist, Deine Daten sind in unseren Rechenzentren sicher, Dein Traffic unsichtbar für alle, die ihn nicht sehen sollen.

2. Nimm‘ an Meetings oder Calls teil, wo immer Du gerade bist und von welchem Gerät Du möchtest! HD-Video Calls funktionieren auch in größerer Runde reibungslos. So sieht man sich zumindest virtuell „in echt“.

3. Teile Deinen Screen mit alle am Meeting teilnehmenden Personen, sodass Deine Präsentation, in die Du viel Herzblut gesteckt hast, von jeder*m gesehen wird und sich nicht jede*r einzeln selbst durch die Seiten klicken muss.

Wir im Marketing zum Beispiel nutzen Jitsi jeden Morgen, um unser Stand Up abzuhalten und die Aufgaben des Tages zu besprechen.

 

Noch nicht überzeugt?

Du brauchst noch weitere Gründe? Dann schau’ Dir das folgende Video an und sieh’ selbst, wie schnell (und anscheinend auch manchmal lustig) es sein kann, Jitsi zu verwenden:

 

Außerdem geben wir Dir die Möglichkeit, Jitsi momentan kostenfrei zu nutzen.  So siehst Du demnächst Dein Team dann online!

Happy video conferencing!

 

PS: Filterkaffee ist eigentlich ganz ok.

 

Jessica Kupfer
Jessica Kupfer
Online Marketing Manager

Jessica ist seit September 2020 bei NETWAYS dabei und freut sich unglaublich darüber! Unser Marketing Team bereichert sie mit ihrem Wissen über Social Media und Performance Marketing. Nach 3 Jahren als Au Pair in Boston, L.A. und London und weiteren 6 Jahren in Wien, hat es die gebürtige Saarländerin mit ungarischen Wurzeln nun nach Nürnberg verschlagen. In ihrer Freizeit besucht sie am liebsten Freunde & Familie, reist gerne und ergreift jede sich bietende Chance, Hunde...

DSGVO: Grün für Open Source Videokonferenzdienste

Jitsi Open Source Video Conferencing

Bei einer Prüfung der Berliner Datenschutzbeauftragten Maja Smoltczyk sind die führenden Videokonferenzplattformen Zoom, Teams und Skype von Microsoft sowie Google Meet, GoToMeeting, Blizz und Cisco Webex durchgefallen. “Leider erfüllen einige der Anbieter, die technisch ausgereifte Lösungen bereitstellen, die datenschutzrechtlichen Anforderungen bisher nicht”, erklärte sie. Den entsprechenden Bericht könnt ihr hier nachlesen.

Wörtlich ist dazu in dem Bericht vom 3. Juli 2020 zu lesen: “Rot markiert sind Anbieter, bei denen Mängel vorliegen, die eine rechtskonforme Nutzung des Dienstes ausschließen und deren Beseitigung vermutlich wesentliche Anpassungen der Geschäftsabläufe und/oder der Technik erfordern…”.

Grün abgeschnitten haben in Deutschland gehostete Open Source Videokonferenzlösungen wie Big Blue Button und auch unser Jisti Angebot in den NETWAYS Web Services.

Jitsi

Jitsi ist eine super Lösung, um schnell Videokonferenzen im Browser aufzusetzen oder zu chatten, mit Möglichkeit zum Screensharing und ist sowohl am Desktop als auch mobil nutzbar.

Jitsi lässt sich für den Online-Unterricht von Schulen und Akademien und für Videokonferenzen in Unternehmen einsetzen. Und wie man oben sehen kann, nutzen wir für unsere Videokonferenzen im Homeoffice natürlich auch Jitsi :-).

Der Einstieg bei uns ist ganz einfach: Mit wenigen Klicks steht bei den NETWAYS Web Services deine Videokonferenz – sicher in Deutschland gehostet und 30 Tage kostenfrei zum Testen!

Wir haben uns sehr darüber gefreut, dass unser Jitsi-Angebot gegen große Videokonferenzsystem so gut abschließen konnte. Wenn ihr weitere Informationen zu Jitsi und unseren Leistungen haben möchtet, meldet euch einfach bei uns.

Natalie Regn
Natalie Regn
Junior Marketing Manager

Natalie macht seit September 2019 ihre Ausbildung zur Kauffrau für Büromanagement hier bei NETWAYS. Vor ihrer Zeit bei NETWAYS war sie ein Jahr als Au-pair in Schottland unterwegs. Passend dazu widmet sie sich seit vielen Jahren dem Spielen der Great Highland Bagpipe. Natalie ist in ihrer Freizeit nicht nur musikalisch unterwegs, sondern auch sportlich. Sie trainiert im Fitnessstudio, geht gerne in den Kletterpark und in die Trampolinhalle.

Monthly Snap March 2020

As most of you have already noticed, the NETWAYS family is officially in home-office.
This is very strange experience for most of us, but we are adapting to the new situation and are grateful for being able to work from home. As Leonie wrote in her blog NETWAYS @home we have a great Internal Support department, that helps with any issue we may have, and of course Bernd sends us regular updates.
In case you missed it: our NWS team offers a #stayathome-special: Rocket Chat, Jitsi and Nextcloud for free for 30 days! Check it out! These tools are very helpful for teamwork, telephone conferences etc, and help us stay in touch and cooperate despite being apart. It might be just the thing for your team!
And although business might not be quite as usual, we are still there for our customers! You can write us, phone us, order shop-products etc.

So, let us see what else NETWAYS wrote about in March!

 

NEWS from our Shop

STARFACE im Home-Office! Read Natalie`s Blog on how to use Starface while working from home, and that Starface UCC premium licences are for free till the end of May! Further, Natalie provided information on the HW group STE2: Netzwerk-Thermometer Set zum kleinen Preis. Just the thing for your server-room. Also read her second blog on the subject: HW group STE2: Netzwerk-Thermometer Set – Teil 2. And Nicole shared the advantages of the STE und STE PoE for those of us who don`t need the extra features of the STE2.

DevOpsDays Berlin

Julia informed us of DevOpsDays Berlin: Call for Papers open. Get involved! There are three different formats for talks. Read about them and send us your proposal for a talk in Berlin in October!

 

Icinga for Windows

Despite the Home-office situation the webinars are still taking place! Christian gave us an overview on topics and dates in the new webinar series Icinga for Windows – Webinar Kalender. Which leads us to Alexanders blog on his part in creating Icinga for Windows with PowerShell in Was war, ist und wird sein – ein Azubi & PowerShell. He is truly impressed with Christians work, and has learnt a lot in the process.

 

Techie topics

Artur wrote about his first experiences with Docker – ein erster Eindruck! In Privat: Better Late than never – Graphite-Web-Installation unter Debian 10 – Part 1 David kept his promise to his blog-readers and shared a thorough how-to. Why should you test tmux? Christoph gave us some reasons in tmux – terminal multiplexer. And Daniel`s blog Jitsi Best Practice und Skalierung helps with installing and using Jitsi. Julia annonced that NWS now hosts Kubernetes in NETWAYS Managed Kubernetes. Auf in die Welt der Container! The next blog is hilarious and cool at the same time! Read Tobias` Icinga Web Themes coming soon – Bayerisch, Fränkisch, Österreichisch!

 

#lifeatnetways

In our blog series NETWAYS stellt sich vor new colleagues share a bit about themselves. Read about our apprentices Natalie and Nathaniel

Catharina Celikel
Catharina Celikel
Office Manager

Catharina unterstützt seit März 2016 unsere Abteilung Finance & Administration. Die gebürtige Norwegerin ist Fremdsprachenkorrespondentin für Englisch. Als Office Manager kümmert sie sich deshalb nicht nur um das Tagesgeschäft sondern übernimmt nebenbei zusätzlich einen Großteil der Übersetzungen. Privat ist der bekennende Bücherwurm am liebsten mit dem Fahrrad unterwegs.

Bleib dran: #StayAtHome! Rocket.Chat, Jitsi, Nextcloud – 30 Tage gratis

Wir sind überwältigt von der positiven Resonanz auf unsere #StayAtHome-Kampagne! Dass unser Angebot so rege genutzt wird, freut uns sehr und wir hoffen, damit zur Verbesserung der Arbeitssituation einiger Menschen beizutragen. Schreibt uns gerne in den Social Media-Kanälen, wie es bei euch im Homeoffice so läuft oder aus welchem Kommunikationsschlamassel euch die Apps befreit haben. Wir freuen uns auf euer Feedback!

Die Idee & wie es weiter geht

Die Idee hinter unserer Aktion StayAtHome: Unternehmen, Organisationen, Einrichtungen und ihre Mitarbeiter*innen darin unterstützen, von zu Hause aus zu arbeiten. Da eine der größten Herausforderungen im Homeoffice häufig die wegfallende persönliche Kommunikation ist und wir genau dafür Lösungen anbieten, nämlich die Apps Rocket.Chat, Jitsi und Nextcloud, wurde aus der Idee schnell ein Schuh.

Genauso schnell habt ihr reagiert – und so sind wir mit den Ressourcen, die wir dafür bereitgestellt haben, bereits am Limit. #StayAtHome #WirbleibenZuhause: Die Sache läuft – das freut uns!

Aber auch für alle, die jetzt erst auf unsere Aktion aufmerksam werden, haben wir gute Nachrichten:

Ihr könnt die Apps auch jetzt noch kostenfrei nutzen! Mit dem Code STAYATHOME bekommt ihr 30 Tage gratis. Einfach auf den Link zur entsprechenden App klicken und den Code bei Registrierung angeben.

Und hier nochmal die Vorteile von Rocket.Chat, Jitsi und Nextcloud

  • Rocket.Chat: Ermöglicht das Organisieren mehrerer Nutzer in Chat-Kanälen, Face-to-face-Konversationen via Video-Chat, einfaches Teilen von Dateien und Desktops, mit Zugriff über jedes Gerät für Linux, Windows, Mac.

Rocket.Chat gratis starten

  • Jitsi: Eine simple Lösung, um schnell Videokonferenzen im Browser aufzusetzen oder zu chatten, mit Möglichkeit zum Screensharing. Sowohl am Desktop als auch mobil nutzbar.

Jitsi gratis nutzen

  • Nextcloud: Daten auf einem sicheren, deutschen Server speichern und von mehreren Rechnern oder Geräten auf einen konsistenten Datenbestand zugreifen. Höchste Sicherheit und Privatsphäre, einfacher Zugriff von jedem Gerät und Erweiterungen wie Kontakte, Kalender und Video-Calls.

Nextcloud gratis einrichten

Die von der Politik beschlossenen Maßnahmen werden uns noch eine Weile begleiten. Jetzt heißt es durchhalten und dran bleiben! Bleibt weiterhin gesund! Und wenn möglich zu Hause! #StayAtHome #WirbleibenZuhause

Mehr zur Aktion StayAtHome auf nws.netways.de/stayathome.

Julia Hornung
Julia Hornung
Lead Senior Marketing Manager

Julia ist seit Juni 2018 bei NETWAYS. Mit ihren Spezialgebieten Texte/Konzepte, Branding und PR ist sie für Tone of Voice und Wording von NETWAYS und Icinga verantwortlich. Davor war sie als Journalistin und in der freien Theaterszene spannenden Geschichten auf der Spur. Ihre Leidenschaft gilt gutem Storytelling, klarer Sprache und ausgefeilten Texten. Ihre innere Mitte findet sie beim Klettern und Yoga.

Trainings

Web Services

Events