- Projekt-Seite: Auf Codeberg.org
- Aktuelle Version: Planado 0.1.0
- Lizenz: AGPL-3.0 (Freie, Opensource Software)
Planado ist ein Planungs- und Raumbuchungswerkzeug für die Freie Videokonferenzsoftware Jitsi Meet. Jitsi-Meet ist eine hervorragende Videokonferzsoftware, die allerdings keine Möglichkeit bietet Konferenzen im Voraus zu planen, ohne dass die Gefahr besteht, dass der Raum zuvor von Anderen belegt wird. Planado versucht diesen Umstand durch ein simples Buchungssystem und geschickte Weiterleitung von Nutzer:innen zu lösen.
Planado sitzt Transparent auf Jitsi-Meet auf, ohne dass eigene Konfigurationen an Jitsi-Meet selbst nötig sind und ohne, dass der Jitsi-Meet Server überhaupt über die Existenz von Planado wissen muss. Dies führt darüber hinaus zu keiner Mehrbelastung des Jitsi-Meet Server. Damit ist es unter Anderem möglich Planado ohne Nachteile für beide Seiten für externe Jitsi-Meet Hostings zu betreiben. Unsere Demo-Version von Planado nutzt beispielsweise den öffentlichen, offiziellen Jitsi-Meet Server des Jitsi-Projekts.
Planado verfolgt hierbei einen einfachen und Privatsphäre schonenden Ansatz. Der Dienst verarbeitet und speichert so wenig Informationen wie nur nötig und gibt keine Daten an Jitsi-Meet weiter. Es werden zudem zu keinem Zeitpunkt identifizierbare oder personenbezogene Daten gespeichert, was Planado zu einem gleichermaßen datenschutzfreundlichen Dienst wie Jitsi-Meet selbst macht.
Es ist zudem hoch flexibel konfigurierbar, kein einfach mit zusätzlichen Funktionen erweitert und in andere Dienste integriert werden.
Planado nutzen
Der Planungs- und oder Buchungsprozess verläuft in wenigen simplen Schritten:
Die Daten (Name, Datum, Uhrzeit, Wiederholungsrythmus) einer Konferenz werden in ein Buchungsformular eingetragen.
Planado erzeugt einen einzigartigen Einladungslink für die Konferenz, der an Andere verschickt werden kann. Es ist zudem möglich über die “Admin-URL” die bereits gebuchte Videokonferenz zu bearbeiten, um beispielsweise das Datum zu verändern.
Es besteht des Weiteren die Option ein Kalender-Event zum Importieren in Thunderbird, Outlook oder ähnlichen Kalenderprogrammen (auch auf dem Smartphone).
Per Knopfdruck lässt sich die Einladung (samt Kalender-Event) entweder kopieren, um sie beispielsweise über beliebige Messenger zu versenden oder mittels eines zweiten Knopf per E-Mail zu versenden. Bei keiner der beiden Optionen ist es für Planado möglich zu erfahren, an wen die Einladungen verschickt werden.
Wird der Einladungslink geöffnet, überprüft Planado ob der Startzeitpunkt der jeweiligen Konferenz bereits erreicht wurde. Ist dies nicht der Fall, erscheint ein “Bitte warten” Bildschirm. Sobald der angegebene Startzeiptunkt erreicht wird, leitet Planado automatisch an den (bis zu diesem Zeitpunkt geheimen) Videokonferenzraum auf Jitsi-meet weiter.
Technischer Hintergrund
Planado ist vollständig in der serverseitigen Skriptsprache PHP umgesetzt. Zur Speicherung und zum Abrufen der Konferenzdaten nutzt Planado das Datenbanken-System MariaDB, bzw MySQL-kompatible Alternativen. Kleinere optionale Zusatzfunktionen werden mit wenigen Zeilen Javascript implementiert. Dies gewährleistet hohe Performance auch auf schwachen Endgeräten der Nutzenden bei gleichzeitig niedriger Belastung für den Hosting-Server, selbst bei großen mengen simultaner Anfragen und macht Planado zudem nutzbar für ein großes Feld an modernen und legacy Endgeräten, so lange diese über einen Webbrowser verfügen.
Eine API ist für kommende Versionen geplant und auch schon in Teilen implementiert, sodass Planado auch in anderen Projekten und Webseiten integriert werden kann.
Werden die Daten über das Formular an Planado weitergegeben, erzeugt dieses aus ihnen und einer zufälligen Komponente mehrere 16-stellige Zufallsnummern. Die erste Dienst als tatsächliche Raumnummer, welche später zur Weiterleitung an Jitsi-Meet genutzt wird und zunächst (bis zum Start der Videokonferenz) vor den Benutzenden geheim gehalten wird. Die zweite Nummer dient als Einladungskennung und kann genutzt werden um einer Konferenz beizutreten, beziehungsweise dem Wartebildschirm aufzurufen, sollte die Konferenz noch nicht gestartet haben. Dieses Prinzip der geheimen Raumkennung und der öffentlichen Einladungskennung ist eine Anlehnung an das Zwei-Schlüssel-Prinzip, welches von etablierten asymmetrischen Verschlüsselungsalgorithmen wie z.B. PGP/GPG bekannt ist. Eine letzte Zufallsnummer wird als “Admin-Kennung” genutzt, um eine nachträgliche Änderung der Konferenzdaten durch die Person zu erlauben, welche die Konferenz ursprünglich erstellt hat.
Planado speichert die drei Kennungen zusammen mit dem Startzeitpunkt (in UNIX time) sowie mit Informationen über den Wiederholungsrhytmus bei Wiederkehrenden Konferenzen in der Datenbank. Die gespeicherten Informationen haben in Planado die Form von:
iid | |rid | |aid | |time | |recev | |rectype |
---|---|---|---|---|---|
0...1 | |1...7 | |1...5 | |1623852469 | |5 | |1weekly |
Weitere Informationen wie beispielsweise der Konferenzname werden in Planado nicht gespeichert, sondern stattdessen (clientseitig) wenn benötigt wieder an Planado übergeben, z.B. zur Erzeugung eines Kalendereintrags.
Betreibende einer Planado-Instanz können somit sehen für wann ein Event geplant ist, welche Einladungs-ID & Admin-ID hierfür hinterlegt sind und welcher Jitsi-Meet Raum hierfür benutzt werden wird, allerdings kann nicht erfasst werden, wer diese Konferenz geplant hat, wer dafür eingeladen wurde und zu welchem Zweck.
Die Kalenderfunktion von Planado verfügt nicht über die Möglichkeit auf die Datenbank zuzugreifen, wodurch es – zwar unwahrscheinlich aber dennoch nicht unmöglich wäre, dass Unbefugte den Startzeitpunkt einer Konferenz herausfinden könnten. Stattdessen werden alle für den Kalendereintrag benötigten Informationen direkt per URL-Parameter an das Skript übergeben. Nachdem eine Konferenz gebucht wurde, stellt Planado in der Übersicht einen Download-Link für die Kalenderdatei mit den entsprechenden Parameter bereit (inkl. Konferenzname). Dieser wird auch über die Einladungen an andere Verschickt, sodass diese sich eigene Kalendereinträge (mit identischem Inhalt) generieren können.
Der Nachteil an diesem Verfahren ist, dass neue Download-Links für den kalendereintrag immer dann an alle beteiligten verschickt werden müssen, wenn sich beispielsweise das Startdatum oder Uhrzeit einer Konferenz ändert.
Wird ein Einladungslink aufgerufen, überprüft Planado anhand der Datenbank, ob der dort für die jeweilige Einladungs-ID hinterlegte Startzeitpunkt der Videokonferenz bereits erreicht wurde. Ist dies nicht der Fall, wird ein Wartebildschirm eingeblendet. Dieser lädt alle 30 Sekunden neu, wodurch der Zeitabgleich von neuem Beginnt. Wurde der Startzeitpunkt jedoch erreicht, nutzt Planado die in der Datenbank hinterlegte Raumkennung rid
um die Benutzer:innen an Jitsi-Meet weiterzuleiten und zwar indem die Raumkennung einfach als Jitsi-Meet Raum genutzt wird.
Unser bereits angesprochene Demo-Server leitet Aufrufe also automatisch an https://meet.jit.si/rid
weiter.
Die Hauptbedingung für Planado liegt also darin, dass die vor Beginn der Konferenz für alle beteiligten unbekannte 16-stellige Raumkennung so schwer (und dementsprechend unwahrscheinlich) zu erraten ist, dass der genutzte Jitsi-Meet Raum in jedem Fall noch nicht belegt ist und auch keine uneingeladenen Personen während der Nutzung zufällig beitreten. Durch den 16-stelligen numerischen Raumnamen gibt es insgesamt 100.000.000.000.000.000 verschiedene mögliche Kombinationen, bzw mögliche Raumnamen. Selbstverständlich kann nach Betreten des Raumes in Jitsi-Meet ein Raumpasswort erstellt und/oder sogar die Ende-zu-Ende Verschlüsselung aktiviert werden. Raumkennung.
Schlussendlich existiert ein letztes Modul, welches Daten vergangener Konferenzen endgültig aus der Datenbank löscht und die Funktion wiederkehrender Konferenzen umsetzt. Standardmäßig werden vergangene Konferenzen 23h nach dem hinterlegten Startzeitpunkt aus der Datenbank gelöscht. Bei wiederkehrenden Veranstaltungen wird nach diesem Zeitpunkt der recev
Zähler in der Datenbank um 1
verringert und der nächste Startzeipunkt anhand des rectype
(z.B. um 1 Woche, 1 Monat, usw) in die Zukunft verschoben.
Dieses “Aufräum-Modul” wird standardmäßig jedes mal aufgerufen, wenn Planado selbst aufgerufen wird. Alternativ lässt es sich auch direkt durch den Server per PHP aufrufen, beispielsweise mittels eines Cron-Jobs.
Mehr Informationen über Planado, wie es auf dem eigenen Server installiert & konfiguriert und wie an der Entwicklung des Projekts mitgewirkt werden kann, findet sich auf der Projektseite (extern auf Codeberg.org).
Planado
Planen Sie Ihre Jitsi Meet Konferenzen.