XMPP-Server

Aus bytewerk-Wiki
Zur Navigation springen Zur Suche springen

Ziel

Konkurrenzfähiger, zuverlässiger, selbst betriebener, erweiterbarer Instant Messenger mit allen derzeitig üblichen Funktionen.

Verantwortlich

Benutzerzugänge

Informationen für Anwender finden sich hier: https://xmpp.bytewerk.org/

<Bingo-Benutzername>@bingo-ev.de

Jedes Bingo-Mitglied hat automatisch einen Account.

Die JID ist identisch zur Bingo-E-Mail-Adresse, das Passwort ist das Bingo-E-Mail-Passwort.

Das Passwort kann nicht im XMPP-Client geändert werden, da zur Authentifizierung der Bingo-Mailserver benutzt wird.

<wunschname>@bytewerk.org

Accounts werden auf Zuruf erstellt (siehe oben "Verantwortlich"). Das Passwort kann im XMPP-Client geändert werden.

Zusätzlich kann jeder vorhandene Benutzer "Invite"-Codes erstellen und diesen anderen Personen zuschicken, die sich dann damit einen @bytewerk.org-Account anlegen können:

  1. In Converse.js anmelden
  2. Links oben auf das Zahnrad klicken
  3. Auf "Befehle" klicken
  4. Als Instanz "bytewerk.org" eingeben
  5. "Verfügbare Befehle auflisten" klicken
  6. Auf "Create new contact invite" klicken
  7. Die angezeigte Adresse zur "Invite web page" kopieren und der Einzuladenden zukommen lassen. Der Link ist eine Woche lang gültig.

Chaträume

Jeder kann nach Belieben Chaträume anlegen.

Folgende Chaträume werden automatisch angelegt:

Badges

Badges für Chaträume können über https://conference.<DOMAIN>/muc_badge/<MUC-JID> abgerufen werden.

Beispiele:


XMPP-Clients

Es kann jeder XMPP-Client verwendet werden. Empfehlenswerte Clients für Android, iOS, Linux, Windows und MacOS sind auf https://xmpp.bytewerk.org/ aufgeführt.

Webclients

Auf xmpp.bytewerk.org ist Converse.js installiert:

Grundsätzlich kann sich jeder XMPP-Nutzer an jedem XMPP-Webclient anmelden. Je nach URL werden nur ein paar Voreinstellungen passend zur Domain gesetzt um die Benutzung von Converse.js zu erleichtern.

Sonstige

In Thunderbird ist ein sehr einfacher Client (nur Text) integriert ("Konten" -> "Chat-Konto" hinzufügen).

Für Nextcloud gibt es mit der ojsxc-App 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 Fotos, Sprach- und Videonachrichten verwendet) - Dateigröße derzeit limitiert auf 100 MByte.
  • Gleichzeitiges Verwenden mehrerer Clients
  • Push

100% Compliance zu Conversations

Dateien und Chatverläufe werden nach einem Monat vom Server gelöscht.

Die Kosten der Freiheit

Die oben genannten Funktionen stehen nicht immer zur Verfügung, weil sich die bei der Kommunikation mit einem bestimmten Gesprächspartner zur Verfügung stehenden Funktionen aus der Schnittmenge des Funktionsumfangs der beteiligten XMPP-Server und der XMPP-Clients ergeben :)

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 selbst wenn es mein XMPP-Client und der Server unterstützt.

Obacht bei der gleichzeitigen Verwendung von mehreren Clients: 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 gerade online ist. Zwar prüfen die meisten XMPP-Clients beim Wieder-Online-Gehen, ob in der Zwischenzeit Nachrichten eingetroffen sind, aber eben nicht alle. Ebenso ist undefiniert, was passiert, wenn ein Videoanruf gestartet werden soll, der Gesprächspartner aber mit mehreren Clients online ist, von denen nicht alle Videotelefonie unterstützen. Threema, Whatsapp usw. umgehen das, indem sie weder parallele Nutzung noch Fremd-Clients 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: Statt 52% jetzt 100% "XMPP Specifications compliance" beim Conversations.im-Compliance-Test, A-Scores beim IM Observatory Client- und Server-Test
2021-02
Bingo-Domäne mit IMAP-Authentifizierung hinzugefügt, Conversejs aktualisiert
2021-08
Serverkonfiguration auf Ansible umgestellt, dabei kleine Fehler behoben, neue Funktionen hinzugefügt, Conversejs aktualisiert.
2022-08
Push-Services für Monal IM integriert

Files

Das Ansible-Playbook samt Inventory befinden sich hier: https://git.bingo-ev.de/xmpp

Im Gitlab-Wiki