Jabber Identifier

Ein Jabber Identifier (kurz JID; auch Jabber-ID) ermöglicht die Adressierung einer „Entität“ (hier ein realer Benutzer, ein Bot, ein XMPP-Server, ein Dienst oder eine Mischung aus vorgenanntem) innerhalb eines XMPP-Netzwerkes.

Ein Jabber Identifier (kurz JID; auch Jabber-ID) ermöglicht die Adressierung einer „Entität“ (hier ein realer Benutzer, ein Bot, ein XMPP-Server, ein Dienst oder eine Mischung aus vorgenanntem) innerhalb eines XMPP-Netzwerkes.

Schema eines Jabber Identifiers

Er hat die Form alice@example.com/home und erinnert dabei an eine E-Mail-Adresse:

  • Der erste Teil der Adresse ist der node (hier alice), der einen Benutzernamen angibt. Dieser ist optional, jedoch fehlt er i. d. R. nur bei Servern oder Diensten.
  • Darauf folgt, durch ein @ getrennt, die Domain (hier example.com, alternativ auch IP-Adresse[1]), die den XMPP-Server bestimmt, auf dem der Account registriert ist.
  • Ebenfalls optional ist die Angabe einer Ressource (hier home), die nach einem "/" folgt. Diese Zeichenkette ist vom Benutzer frei wählbar.

Ressource

Bearbeiten

Eine Ressource ist eine frei wählbare Zeichenkette, mit der man beispielsweise angeben kann, von wo man gerade eingeloggt ist (z. B. pda oder office). Mit Hilfe dieser Ressource kann der Server eine Unterscheidung treffen, so dass ein Nutzer mit dem gleichen JID von mehreren Rechnern aus eingeloggt sein kann.

Bei eintreffenden Nachrichten wird anhand eines Prioritätswerts festgelegt, an welchen Client die Nachricht ausgeliefert wird, falls das genaue Ziel durch die Ressource nicht bereits feststeht. Dieser Prioritätswert wird vom Benutzer der JID in den Clients festgelegt, wobei größere Zahlen vor kleineren Zahlen Vorrang haben. Der gültige Bereich geht von −128 bis +127. Negative Werte haben eine besondere Bedeutung: Clients mit negativer Priorität bekommen keine Nachrichten zugestellt, die nicht explizit über die Ressource-Kennung an sie adressiert sind. Auch erscheint der Nutzer des Accounts als offline, wenn kein Client mit nicht-negativer Ressource online ist. Dieses Verhalten ist beispielsweise für Bots nützlich.

URI-Schema

Bearbeiten

Zum Verlinken von JIDs existiert der Internet-Standard IRIs and URIs for XMPP, welcher als RFC 4622 bei der IETF vorliegt.[2] Dem vorausgegangen ist das XMPP Extension Protocol 147.

Diese Links bieten ein enormes Potential zur Steuerung von Clients. Sie beginnen mit dem Präfix "xmpp:", worauf der JID folgt:

xmpp:alice@example.com?message

Solch ein Link weist den Client an, ein Nachrichtenfenster zu alice@example.com zu öffnen. Auf das ?message kann oft verzichtet werden, da dies die Standardaktion ist. Nicht zu verwechseln ist diese Angabe mit

xmpp://bob@example.com/

mit dem sich bob auf dem Server example.com anmeldet.

Die beiden vorgenannten kombiniert folgender Link, der bob@example.com anmeldet und ein Nachrichtenfenster zu Alice öffnet:

xmpp://bob@example.com/alice@example.com

Der XMPP Registrar definiert darüber hinaus eine große Anzahl an „Querys“ – also durch ein ? getrennte Befehle – durch die sich Aktionen wie „Benutzer hinzufügen“, „Konferenz beitreten“ etc. verlinken lassen.

Transport-Konventionen

Bearbeiten

Kommen XMPP-Transports zur Anwendung, so gibt es häufig Vorgaben, wie der Namensraum des angesprochenen Protokolls auf den Nodeanteil der JID abgebildet wird. Während das @-Zeichen und die Domain in der JID ihre Funktion wie gewohnt erfüllen und den gewünschten (Transport-)Server adressieren, wird der Node-Anteil der JID protokollspezifisch erweitert. Meist wird das @-Zeichen der Zieladresse des Legacy-Protokolls durch ein %-Zeichen ausgetauscht, um die Eindeutigkeit der URI-Komponenten zu wahren.

Ein Beispiel für das IRC-Protokoll:[3]

#lobby%irc.gentoo.org@jabber.co.uk
conan%irc.gentoo.org@jabber.co.uk

Hier wird jabber.co.uk aufgefordert, eine Nachricht an den Raum #lobby auf dem IRC-Server irc.gentoo.org zu versenden. In der folgenden Zeile findet sich eine Möglichkeit, die bekannten „Querys“ – also Nutzer-zu-Nutzer-Nachrichten – zu versenden.

Weitere gesichtete Kennungen

Bearbeiten
  • Telefonnummern ergeben sich beim Empfang (möglicherweise auch beim Senden) von SMS über SMS2Jabber-Dienste so:
+4917234567890@aspsms.swissjabber.ch
  • ICQ-Nummern werden direkt als Node angegeben.

Jabber-E-Mail-Header

Bearbeiten

Um in versendeten E-Mails eine Jabber-Adresse angeben zu können, sodass z. B. im Mail-Programm der Online-Status des Gegenübers angezeigt werden kann, wurde der Vorschlag zum Internet-Standard „The Jabber-ID Email Header“ eingereicht. Mit diesem reicht es z. B. für Alice aus,

Jabber-ID: alice@example.com

als zusätzlichen E-Mail-Header einzufügen. Dies ist mit fast jedem E-Mail-Client einfach zu realisieren.

Bearbeiten
  • XMPP URI Scheme Query Components. XMPP Extension Protocol 147 (englisch)
  • XMPP URI/IRI Querytypes. XMPP Registrar (englisch)
  • RFC: 4622 – Internationalized Resource Identifiers (IRIs) and Uniform Resource Identifiers (URIs) for the Extensible Messaging and Presence Protocol (XMPP). Juli 2006 (englisch).
  • Implementationsstatus von XMPP-URIs. xmpp.org-Wiki (englisch)
  • The Jabber-ID Header Field. Internet-Draft (englisch)
  • Implementationsstatus von Jabber-E-Mail-Headern. xmpp.org-Wiki (englisch)
  • Jabber Ressourcen. elektronik-projekt.de Wiki, mit Prioritäten der wichtigsten Clients (deutsch)

Einzelnachweise

Bearbeiten
  1. RFC: 6122 – Extensible Messaging and Presence Protocol (XMPP): Address Format. März 2011 (englisch).
  2. RFC: 4622 – Internationalized Resource Identifiers (IRIs) and Uniform Resource Identifiers (URIs) for the Extensible Messaging and Presence Protocol (XMPP). Juli 2006 (englisch).
  3. Beispiele für IRC-Transport-Identifier. xmpppy.sourceforge.net