XMPP
XMPP 🇬🇧 (auch Jabber genannt) ist die Open-Source-Alternative zu den Protokollen von Instant-Messengern wie z. B. AIM, ICQ, MSN und Y!M - die im Folgenden, der Einfachheit halber, IM-Netzwerke genannt werden. Diese Einführung dient dem allgemeinen Verständnis von XMPP und ist als erster Anlaufpunkt für den Einstieg gedacht. Die Lektüre der Wiki-Artikel zu den einzelnen XMPP-Clients ist sehr empfehlenswert.
Für alle, die bereits ein XMPP-Nutzerkonto haben, gibt es nun auch im XMPP-Netzwerk einen Treffpunkt für Support und Erfahrungsaustausch. Hier die XMPP-Identität (JID) des Ubuntu-Chatraums im XMPP-Netzwerk: ubuntu@conference.ubuntu-jabber.de
Wie man einen Chatraum mit Hilfe so einer JID betritt, ist in den Artikeln zu den einzelnen XMPP-Clients beschrieben.
Was kann XMPP?¶
XMPP in all seinen Facetten zu beschreiben, würde dieses Wiki sprengen. Grundsätzlich kann XMPP alles, solange es einen XMPP-Dienst dafür gibt und dieser von einem XMPP-Client unterstützt wird. Wer Genaueres über die Funktionsweise von XMPP wissen will, der sollte den Links in der Quellenangabe unten folgen. Hier kann also nur ein grober Abriss gegeben werden über das, was man mit XMPP machen kann.
XMPP kann:
Kurzmitteilungen (Instant Messenger)
Chat, Gruppenchat
Dateiversand
Statusanzeige
Zu anderen IM-Netzwerken über sog. Transporte verbinden
RSS-Feeds empfangen und verwalten
Email-Empfang-Benachrichtigung
Email empfangen und versenden
SMS versenden
vieles mehr....
Funktionsweise¶
Das XMPP-Netzwerk besteht aus vielen eigenständigen XMPP-Servern, die alle untereinander in Kontakt stehen. Es reicht also vollkommen aus, auf nur einem dieser Server ein Nutzerkonto einzurichten, um mit allen Nutzern aller anderen Server in Verbindung treten zu können. Es ist ähnlich wie bei E-Mail. Dort benötigt man auch nur ein Nutzerkonto bei einem E-Mail-Anbieter und kann dann darüber allen anderen Email-Nutzern Mail schreiben und auch von allen Email empfangen - egal bei welchem Anbieter man ist. Man kann also jeden dieser einzelnen XMPP-Server als eigenen "XMPP-Anbieter" betrachten. Eine Ausnahme stellen in letzter Zeit aufkommende Insel-Netze wie Facebook 🇩🇪 dar, die zwar Chat via XMPP anbieten, aber nicht im XMPP-Server-Verbund hängen.
Eine XMPP-Adresse sieht aus wie eine E-Mail-Adresse und wird "JID" (Jabber Identifier) genannt.
Wenn man also bei dem XMPP-Server ubuntu-jabber.de 🇩🇪 mit dem Benutzernamen "jabbernaut" ein Nutzerkonto registriert, dann lautet die JID:
Benutzername | @ | Name des XMPP-Servers | . | TLD |
jabbernaut | @ | ubuntu-jabber | . | de |
Anhand dieser JID ist man für alle XMPP-Nutzer von allen Servern aus erreichbar.
Gruppenchat: MUC¶
Das XMPP-Protokoll stellt sogenannte MUCs (MUC = Multi-User Chat) für Gruppen-Diskussionen zur Verfügung. Es ist daher möglich, über den eigenen XMPP-Client und seiner JID auch mit mehr als einem Kontakt bzw. mit mehr als einem anderen Teilnehmer gleichzeitig zu chatten.
Da über die JID eine eindeutige Identifizierung möglich ist, können Zugangs- und Moderationsrechte über die einzelne Session hinaus vergeben werden. Ebenso kann über die JID eine Zugangskontrolle bewerkstelligt werden. Passwörter können, müssen daher nicht als Zugangsschlüssel zu MUCs dienen; genauso können Nutzer anhand ihrer JID "verbannt" werden. Der Nickname kann allerdings verändert werden, sodass lediglich Moderatoren und Administratoren die JID auslesen können.
Transporte¶
Die XMPP-Server stellen unterschiedliche Dienste zur Verfügung. Die Bezeichnung Transporte beschreibt im Allgemeinen die Dienste eines XMPP-Servers, welche eine Verbindung zu anderen IM-Netzwerken (AIM, ICQ, MSN, Y!M,...) herstellen. Oft werden Transporte auch als "Gateways" bezeichnet. Eine offizielle Bezeichnung dafür existiert nicht. Es gibt auch Dienste, die ganz andere Funktionen haben als eine Verbindung zu anderen IM-Netzwerken herzustellen. Allen XMPP-Diensten gemein ist, dass sie zusätzliche Funktionen eines XMPP-Servers darstellen. Die vielfältigen XMPP-Funktionen basieren also alle auf speziellen Diensten, die ein XMPP-Server anbietet. Ein XMPP-Client muss also lediglich das XMPP-Protokoll beherrschen, um vom XMPP-Server als "Vermittler" mit allen Diensten versorgt zu werden, die der Benutzer benötigt. Die Anzahl und Art dieser Dienste kann von Server zu Server stark variieren. Da alle Dienste eines Servers aber auch Nutzern anderer Server zur Verfügung stehen, macht es nichts, wenn der eigene Server nicht die passenden Dienste anbietet. Hat man z.B. ein Nutzerkonto auf dem Server "beispiel-server.org", dann kann man problemlos z.B. auch den ICQ-Transport (Dienst) eines anderen XMPP-Servers nutzen - ohne dafür dort ein zusätzliches Nutzerkonto einrichten zu müssen. Dieses dezentrale Prinzip trifft auf so ziemlich alle Dienste zu, die es im XMPP-Netzwerk gibt.
Dienste eines XMPP-Servers haben natürlich auch ihre eigene JID. Ein gutes Beispiel ist der anfangs erwähnte XMPP-Chatraum, der auf dem XMPP-Server ubuntu-jabber.de lokalisiert ist. Dies kann man aus seiner JID ableiten:
Raum-Name | @ | Name des Dienstes | . | Name des XMPP-Servers | . | TLD |
ubuntu | @ | conference | . | ubuntu-jabber | . | de |
Die meisten XMPP-Clients machen zwischen dem Namen des Dienstes und dem Namen des XMPP-Servers keinen Unterschied. Wenn man also die JID des Ubuntu-Chatraumes in die Eingabe-Maske eines XMPP-Clients eingibt, so wird oft alles hinter dem "@" komplett als Name des Servers erfasst. Dies aber bitte im entsprechenden Wiki-Artikel über den jeweiligen Client nachlesen.
Wo kann ich ein XMPP-Nutzerkonto registrieren?¶
Generell auf jedem der öffentlichen XMPP-Server. Die Anmeldung geschieht immer über einen XMPP-Client. Man muss sich also nicht auf einer Website des Servers erst anmelden, um dann die Konfigurationsdaten in den jeweiligen Client eingeben zu können. Die Registrierungs-Prozedur eines neuen Nutzerkontos ist leider nur in wenigen XMPP-Clients bereits integriert. Es empfiehlt sich hierfür Psi zu installieren. Eine Entscheidungshilfe zum "passenden" XMPP-Server kann die offizielle aktuelle offizielle Liste 🇬🇧 der öffentlichen XMPP-Server geben. Dort wird allerdings nicht angezeigt wie stabil und verfügbar der jeweilige Server in der letzten Zeit war. Ein instabiler XMPP-Server, der vielleicht sogar noch Probleme bei der Kommunikation mit anderen XMPP-Servern hat, kann einem den Spaß an XMPP schnell verderben. Der XMPP Compliance Tester 🇬🇧 bietet eine gute Übersicht über Server und deren Features und hier 🇬🇧 kann man die Verfügbarkeit einiger beliebter Server sehen.
Hier im Wiki existiert eine Seite XMPP/Server, wo ebenfalls Informationen zu Servern zu finden sind. Insbesondere kann jeder dort seine eigenen Erfahrungen zu Service und Stabilität der Anbieter ergänzen.
Habe ich vielleicht schon ein XMPP-Nutzerkonto?¶
Was viele nicht wissen: Viele E-Mail-Anbieter und soziale Netzwerke setzen für ihre eigenen Messenger das XMPP-Protokoll ein. Auf diese Weise hat man, wenn man ein Emailkonto bei einem dieser Anbieter besitzt, automatisch auch eine JID, die man in jedem XMPP-Client verwenden kann. Das ist meist auch nötig, da die von den Anbietern dargebotenen Programme (GMX-Multimessenger, 1und1-Messenger usw.) nur auf Windows laufen.
Auf der Seite XMPP/Server findet man neben öffentlichen Servern auch einige bekannte Anbieter, die XMPP(Jabber) von Haus aus mitbringen:
Andere Anbieter - Bekannte E-Mailprovider und Internetdienstanbieter
Geschlossene Server - Soziale Netzwerke (in der Regel ist hier nur eine Kommunikation im selben Netzwerk möglich)
Welche Clients kann ich unter Linux nutzen?¶
Es gibt eine Vielzahl von Programmen, die man aus den Quellen von Ubuntu installieren kann. Es ist jedoch zwischen Programmen zu unterscheiden, die nur XMPP unterstützen (was aber von Vorteil sein kann):
Converse.js 🇬🇧 (Browser Client)
Dino 🇬🇧, Paketname
dino-im
(GUI-Client, GTK)Gajim (GUI-Client, GTK)
MCabber (Konsolenclient)
Poezio 🇬🇧 (Konsolenclient)
profanity (Konsolenclient)
Psi (GUI-Client, QT)
und Programmen, die eine Vielzahl unterschiedlicher Protokolle unterstützen (Multi-Messenger), wie Empathy, Pidgin, Kopete oder Jitsi 🇬🇧.
Welches Programm gewählt wird, hängt von der persönlichen Vorliebe ab - einfach testen! Eine Liste aller verfügbaren XMPP-Clients findet man hier 🇬🇧. Wem Verschlüsselung am Herzen liegt, sollte ein Programm wählen, das OMEMO (Liste siehe hier 🇬🇧) oder Off-the-Record Messaging (Liste siehe hier) unterstützt.
Audio-/Videoanrufe¶
Einige Programme haben die freie Bibliothek libjingle integriert, was Audio- und Videoanrufe ermöglicht. Dazu gehören Pidgin, Empathy, Kopete, Psi, Gajim und Jitsi 🇬🇧.
Einen eigenen XMPP-Server aufsetzen¶
Wer einen eigenen XMPP-Server aufsetzen möchte, dem helfen die folgenden Seiten weiter:
Links¶
XMPP 🇬🇧
Instant Messenger - Einstiegsseite zum Thema Messaging
Anleitungen¶
JabJab 🇩🇪 - deutschsprachiges Wiki rund um XMPP (Jabber) mit ausführlichen Schritt-für-Schritt-Anleitungen
Sonstiges¶
wiuwiu.de 🇩🇪 - Deutscher XMPP-Server welcher großen Wert auf Datenschutz legt und auch über TOR erreichbar ist.
draugr.de 🇩🇪 - Website des Jabber-Servers, auf dem der ubuntu-Chatraum gehostet wird
ubuntu-jabber.de 🇩🇪 - Website des Ubuntu-Jabber-Chatraumes
ChaosComputerClub Video 🇩🇪 - Video vom 23C3 🇩🇪 zum Thema XMPP