XMPP-Server
Ziel
Konkurrenzfähiger, zuverlässiger, selbst betriebener, erweiterbarer Instant Messanger mit allen derzeitig üblichen Funktionen.
Bingo-Mitglieder sollen automatisch einen Zugang erhalten. Für Bytwerk-Mitglieder soll es Accounts mit Wunschnamen geben. Bestehende Bytewerk-Zugänge sollen erhalten bleiben.
Verantwortlich
Ansatz
XMPP (früher: Jabber) als Protokoll: Weit verbreitet, gute Clients verfügbar, Server ist Freie Software.
Auf der VM "xmpp.bytewerk.org" läuft bereits Prosody. Dessen Konfiguration wird korrigiert und fehlende Funktionen eingetragen. DNS-Einträge werden geprüft und ergänzt. Für Jingle wird ein TURN-Server installiert.
XMPP wird wie bisher auf der Domain "bytewerk.org" angeboten und zusätzlich auf "bingo-ev.de":
- Accounts für die bytewerk.org-Domain werden, wie bisher auch, lokal angelegt und verwaltet.
- Benutzer der bingo-ev.de-Domain sollen gegen den IMAP-Server "mail.bingo-ev.de" authentifiziert werden: Werden Benutzername und Passwort vom Mailserver bestätigt, so soll der Nutzer auch den XMPP-Server benutzen dürfen. Um es möglichst einfach zu halten soll auch die JID identisch zur E-Mail-Adresse sein.
Implementierung
Auf der VM xmpp.bytewerk.org laufen folgende Dienste:
- Prosody als XMPP-Server
- PostgreSQL als Datenbank
- Coturn für TURN und STUN (für Jingle/WebRTC, d.h. Audio-/Videotelefonie und Dateiübertragung von Client zu Client)
Benutzerzugänge
<wunschname>@bytewerk.org
Accounts werden auf Zuruf erstellt.
Das Passwort kann direkt im XMPP-Client geändert werden.
<Bingo-Benutzername>@bingo-ev.de
Jedes Bingo-Mitglied hat automatisch einen Account.
Passwort ist das Bingo-E-Mail-Passwort, die JID ist identisch zur E-Mail-Adresse.
Da zur Authentifizierung der Bingo-Mailserver benutzt wird, kann das Passwort nicht im XMPP-Client geändert werden.
Empfehlenswerte Clients
- Android: Conversations.im, Quicksy.im
- iOS: Monal.im
- Windows/Linux/BSD: Gajim
- macOS: PSI
Ein sehr einfacher Client (nur Text, keine Gruppenchats) ist in Thunderbird eingebaut ("Chat-Konto").
Für Nextcloud gibt es mit der ojsxc-App (https://apps.nextcloud.com/apps/ojsxc) einen sehr gut ausgestatteten webbasierten Client.
Unterstützte Funktionen
- Gruppen
- Audio- und Videotelefonie
- Ende-zu-Ende-Verschlüsselung
- Dateiup- und Download (wird auch für Sprach- und Videonachrichten verwendet) - Dateigröße derzeit limitiert auf 20 MByte.
- Gleichzeitiges Verwenden mehrerer Clients
Die bei der Kommunikation mit einem bestimmten Gesprächspartner zur Verfügung stehenden Funktionen ergeben sich aus der Schnittmenge des Funktionsumfangs der beteiligten XMPP-Server und XMPP-Clients.
Beispiel: Ist mein Gesprächspartner ein Shellskript, das mir eine Nachricht schickt wenn die Waschmaschine fertig ist, werde ich kein Videotelefonat mit dem Skript führen können auch wenn es der Server unterstützt.
Obacht bei der Verwendung von mehreren Clients gleichzeitig: Eine Nachricht gilt als zugestellt, wenn sie an EINEM Client des Empfängers angekommen ist. Das kann bei wackeliger Internetverbindung dazu führen, dass Nachrichten scheinbar nicht zugestellt wurden - sie landen dann nur bei dem Gerät, dass online war. Nicht alle Clients prüfen beim Wieder-Online-Gehen, ob in der Zwischenzeit Nachrichten für den Benutzer eingetroffen sind, die bereits an einem anderen Client zugestellt wurden. Threema, Whatsapp usw. umgehen das, indem sie keine parallele Nutzung zulassen.
Fortschritt
- 2021-01
- Neukonfiguration des bestehenden XMPP-Servers mit Korrektur der DNS-Einträge und Installation zusätzlicher benötigter Dienste
- 2021-02
- Implementierung abgeschlossen: Bei compliance.conversations.im statt 52% jetzt 100% "XMPP Specifications compliance".
- 2021-02
- Bingo-Domäne mit IMAP-Authentifizierung hinzugefügt
Probleme
- Plattenplatz sehr gering
- keine IPv6-Unterstützung: Die Prosody-VM hat zwar eine IPv6-Adresse, diese ist aber nicht öffentlich erreichbar
Wenn Coturn als TURN-Server statt "nur" als STUN-Server durch Prosody benutzt wird, funktioniert Audio- und Videotelefonie nur noch mit bytewerk.org-Usern und nicht mehr mit Externen.- XMPP-Webclient unter https://jabber.bytewerk.org funktioniert nicht mehr.
ToDo
- Testen! Insbesondere:
* Funktioniert alle XMPP.Funktionen auch mit Nutzern aus anderen Domänen? * Verhalten sich Mobilgeräte wie erwartet? (iOS Pushnachrichten, Stromsparmodus, Verzögerungen,...)
- Vom http[s]://bingo-ev.de/.well-known/host-meta und http[s]://bingo-ev.de/.well-known/host-meta.json per Redirect umleiten zu http://xmpp.bytewerk.org/.well-known/...
- Mehr Plattenplatz
- Backup
- Monitoring