XMPP-Server: Unterschied zwischen den Versionen

keine Bearbeitungszusammenfassung
Keine Bearbeitungszusammenfassung
* 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.
 
 
 
==Benutzerzugänge==
=== <wunschname>@bytewerk.org ===
 
Accounts werden auf Zuruf erstellt.
 
Das Passwort kann direkt im XMPP-Client geändert werden.
 
Webclient: https://xmpp.bytewerk.org/conversejs-bytewerk
 
 
=== <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.
 
Webclient: https://xmpp.bytewerk.org/conversejs-bingo
 
== 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 der 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 [https://compliance.conversations.im/server/bytewerk.org/ compliance.conversations.im] statt 52% jetzt 100% "XMPP Specifications compliance".
;2021-02: Bingo-Domäne mit IMAP-Authentifizierung hinzugefügt, Conversejs aktualisiert
 
==Probleme==
* Plattenplatz sehr gering
* keine IPv6-Unterstützung: Die Prosody-VM hat zwar eine IPv6-Adresse, diese ist aber nicht öffentlich erreichbar
* <del>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.</del>
* Verbindung mit Websocket funktioniert nicht (und ist darum deaktiviert): Verbindung wird aufgebaut, dann gibt's einen Timeout.
* Conversejs ist stellenweise etwas umständlich zu bedienen. So muss z.B. zum Anlegen eines MUC die komplette Domain des eigenen XMPP-Servers eingegeben werden. Um das zu umgehen gibt es jeweils eine Conversejs-URL für @bingo-ev.de und @bytewerk.org, bei der durch entsprechende Vorkonfiguration das Anlegen von MUCs auch ohne Eintippen des Domainnamens funktioniert. Mittelfristig kann Conversejs eventuell durch [https://github.com/movim/movim/ Movim] ersetzt werden. Movim ist allerdings Stand 2/2021 noch zu buggy (siehe Issues [https://github.com/movim/movim/issues/964], [https://github.com/movim/movim/issues/972], [https://github.com/movim/movim/issues/974]).
 
==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,...)
* Mehr Plattenplatz
* Backup
* Monitoring
 
== Implementierung ==
 
=== XEP-0368: .well-known-URLs ===
Der Webserver bytewerk.org muss per Reverse Proxy für die URL https://bytewerk.org/.well-known/host-meta(.json) auf http://xmpp.bytewerk.org/.well-known/... verweisen. Ein Redirect reicht nicht, da die CORS_HeaderCORS-Header in Prosody konfiguriert und gesetzt werden. Gleiches gilt für den bingo-ev.de-Webserver.
 
 
Kommentierte Konfigurationsdatei "/etc/coturn/turnserver.conf"
 
==Benutzerzugänge==
=== <wunschname>@bytewerk.org ===
 
Accounts werden auf Zuruf erstellt.
 
Das Passwort kann direkt im XMPP-Client geändert werden.
 
Webclient: https://xmpp.bytewerk.org/conversejs-bytewerk
 
 
=== <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.
 
Webclient: https://xmpp.bytewerk.org/conversejs-bingo
 
== 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 der 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 [https://compliance.conversations.im/server/bytewerk.org/ compliance.conversations.im] statt 52% jetzt 100% "XMPP Specifications compliance".
;2021-02: Bingo-Domäne mit IMAP-Authentifizierung hinzugefügt, Conversejs aktualisiert
 
==Probleme==
* Plattenplatz sehr gering
* keine IPv6-Unterstützung: Die Prosody-VM hat zwar eine IPv6-Adresse, diese ist aber nicht öffentlich erreichbar
* <del>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.</del>
* Verbindung mit Websocket funktioniert nicht (und ist darum deaktiviert): Verbindung wird aufgebaut, dann gibt's einen Timeout.
* Conversejs ist stellenweise etwas umständlich zu bedienen. So muss z.B. zum Anlegen eines MUC die komplette Domain des eigenen XMPP-Servers eingegeben werden. Um das zu umgehen gibt es jeweils eine Conversejs-URL für @bingo-ev.de und @bytewerk.org, bei der durch entsprechende Vorkonfiguration das Anlegen von MUCs auch ohne Eintippen des Domainnamens funktioniert. Mittelfristig kann Conversejs eventuell durch [https://github.com/movim/movim/ Movim] ersetzt werden. Movim ist allerdings Stand 2/2021 noch zu buggy (siehe Issues [https://github.com/movim/movim/issues/964], [https://github.com/movim/movim/issues/972], [https://github.com/movim/movim/issues/974]).
 
==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,...)
* Mehr Plattenplatz
* Backup
* Monitoring
 
==Verwandte Artikel==
 
==Files==
TBD
 
 
[[Category:Projekt]]
190

Bearbeitungen