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.
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 (hierexample.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
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
Zum Verlinken von JIDs existiert der Internet-Standard IRIs and URIs for XMPP, welcher als RFC 4622 bei der IETF vorliegt. 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
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:[2]
#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
- 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
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.
Weblinks
- 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) (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)