XMPP Glossary

XMPP is widely used these days, and is here to stay for a while. We have just published an XMPP glossary for you.

Roster, JID, full JID or bare JID, BOSH, caps, component, C2S and S2S, MUC, federation, dialback, PubSub, service discovery, resource, priority, transport, stanza, IQ, spim, ICE/STUN/TURN, presence, Jingle, and… Jabber. Maybe most of all these terms mean something to you. But some may not have a meaning in the XMPP context, or some just do not mean anything.

A

Address book: see roster

Ad-Hoc Commands: wizard-type commands exchanged between 1

Affiliation: in MUC, it is a long-lived privilege set

Attention: specific packet sent to get attention from a contact

Attribute: XML key-value pair that qualifies an element, example <element key=’value’ /> (see element)

Authentication: process by which an XMPP server verifies that a user is really legitimate to connect to an account

Avatar: image chosen by a user to visually represent himself

B

Bare JID: JID without the resource, in the form username@domain

Bind: process by which a client-to-server (C2S) connection is linked to a resource name

Blocking: exhaustive framework for filtering incoming and outgoing traffic via Privacy Lists, as well as simple user blocking via Simple Communications Blocking

Bookmark: server-side saved links to chat rooms (and optionally HTTP links)

BOSH: technique simulating a TCP connection with two long-lived HTTP requests

Bot: a client or component that behaves automatically, usually used as a service or a game

C

Caps: entity capabilities transported by presence

CAPTCHA: challenge for robots, helps identify humans

Chat: real time/synchronous textual conversation

Chatroom: virtual place where multiple users can chat together (see Multi-User Chat)

Chat State Notifications: notifications telling a user is giving attention to a chat, is writing, etc.

Chat theme: set chat window decorations

Client: user-side software the connects to a server and lets the user interact with contacts

Component: server-side software linked to a server

Compression: enables traffic compression between two connected entities (it can be based on stream or TLS)

Contact: another entity generally in the user’s roster

Contact list: see roster

C2S: client-to-server connection

D

Dial-back: in S2S, a mechanism in which a servers calls another one then hangs up, then the second one must callback the first one: this prevents server identity theft

Directory: list of users and search interface on a server

Disco: see Service discovery

E

Element: basic atomic in XML, for example <element/> or <element>content</element>, see XML

Entity: an addressable client, server or component

Event: in PubSub, a notification or payload

E2E: end-to-end encryption, encryption from the sender entity to the receiver entity, even the intermediary servers can’t read the content

F

Federation: interconnection of multiple servers, that enables the users to interact all together

File transfer: process of file exchange between two (or more) entities, it may be synchronous or not

Full JID: JID including the resource, in the form username@domain/resource

G

Gateway: see transport

Geo-location: location transported by PEP

Group: in the roster, a group of contacts is a label put on roster items

Group-chat: see MUC

H

HTTP Binding: see BOSH

HTTP Polling: deprecated method of doing XMPP over HTTP

I

ICE: NAT traversal technique mixing direct connection STUN and TURN

Instant messaging: or IM, also called chat, lets people chat interactively instantaneously

Invitation: packet sends from a room or an entity inviting another entity to join a room

In-band: traffic inside the <stream/> element, see out-of-band

Info-Query: IQ, see query

IQ: short for Info-Query, see query

J

Jabber: former name of XMPP

Jabber address: see JID

Jabber ID: see JID

JEP: former name of XEP

JID: the addressable name of an entity in the form of user@domain (user is optional), see bare JID and full JID

Jingle: negotiation technique enabling voice, video, file transfer, reatime collab apps, and any other heavy binary duty that is not suitable in-band

Jingle Relay Nodes: distributable piece of software that acts as a relay for out-of-band data for peers

Join: process of joining a MUC

JSF: stands for “Jabber Software Foundation”, see XSF

JUD: Jabber User Directory

K

Keep-alive: white-spaces that are sent between two entities directly connected to avoid network hops timeouts

L

Location: see geolocation

M

Message: XML element, first child of the <stream/> element, conveys textual messages between users (and more, like meta data), notation <message/>

MUC: see Multi-User Chat

Multi-User Chat: service for chatrooms

N

Namespace: method to avoid element name conflicts

NAT: stands for “Network Address Translation”, IP-level network device meant to remap addresses

Nick, nickname: pseudonym used in the context of MUC

Node: in the context of PubSub, a please where a publisher publishes information

Notification: event meta-data, which may contain a payload, and may be pushed or polled

O

Offline messages: messages saved by the server, and delivered to the receiver after his reconnection

Out-of-band: traffic outside the <stream/> element

P

Payload: actual content of a notification

PEP: see Personal Eventing Protocol

Personal Eventing Protocol: also known as PubSub on JID

Ping: XMPP-based mechanism to ping an XMPP entity

PLAIN: method of authentication where the password is sent unencrypted, but hashed, via SASL

Port: IP-based addressing number to multiplex traffic

Presence: stanza distributed to subscribed contacts, notation <presence/>

Priority: weight to prioritize client connections using the same bare JID

Privacy lists: lists of filters for stanzas

Private XML Storage: per-account server-side storage space

Protocol: set of rules that define a way to communicate

Proxy: network device that relays requests and/or traffic

Proxy65: XMPP protocol extension based on SOCKS5 to allow out-of-band file transfers

PubSub: specification and implementation of a publish-subscribe messaging pattern

Publish-subscribe: see PubSub

Push: technique that enables a sender to transmit data to receivers, instead of having the receivers polling the sender

Q

Query: stanza <iq/> that needs a response, that enables an entity to query/send info or make actions to another entity

R

Receipts: acknowledgements that a message is received by an entity

Registration: creation of an account

Resource: name given to differentiate client connections to the same account. There can not be two connections with the same resource. Different policies apply: either the new or the old one is disconnected by the server, or the new one is forbidden.

Robot: see bot

Roles: in MUC, it is a short-lived privilege set

Room: a MUC room, where participants send and receive presence and messages

Roster: a contact list (or address book) containing JIDs, nicknames, groups (like labels) and subscriptions to each other’s presence

S

SASL: stands for Simple Authentication and Security Layer, it is a framework for authentication and data security in Internet protocols

Server: network entity that manages C2S, S2S, etc.

Service: an XMPP service, like MUC, PubSub, or transport

Service discovery: a mechanism to browse the services offered by an entity

Simple Communications Blocking: enables the blocking of all communications with a specific contact, see Privacy Lists

SOCKS5: proxy-based file transfer mechanism

Spim: spam on IM

SSL: see TLS

Standards Track: XMPP specifications that are valid for implementation

Stanza: the first-child element of a stream, the smallest unit of XML exchanged between two connected entities, may be <IQ/>, <message/>, or <presence/>

Status: a natural language sentence, transported by presence

Stream: root element or an XMPP traffic

STUN: mechanism to exchange external IP addresses for entities behind a NAT

Subscription: a mechanism for an entity manually authorize another to subscribe to his presence

S2S: server-to-server connection, enables federation

T

TCP: lossless low-level transport for network packets

Thread: within the context of a chat, linked messages that form a consistent conversation

TLS: mechanism to encrypt the stream-level traffic, used for C2S and S2S traffic

Traffic shaping: server-side mechanism to limit the incoming traffic from a client

Transport: a service that provides a gateway to a third party IM (or other communication mean)

TURN: media relay proxy

U

UDP: low-level transport for network packets

URI: unique address of an entity

V

vCard: self-filled set of information about a user, aka profile

W

Whiteboard: real-time collaborative draw

X

XEP: specification that extends XMPP

XHTML-IM: chat formatting

XML: markup language used as the basis of almost all XMPP communication

XMPP: realt-ime communication protocol

XSF: XMPP Standards Foundation, the standards organization that edits XEP and promotes the protocol

5

5222: standard C2S port

5223: legacy SSL port

5269: standard S2S port

5280: standard BOSH port

If you find that a definition is lacking, if you find an error, or if you simply want to extend it, please feel free: you are highly encouraged to contribute.


Let us know what you think 💬


2 thoughts on “XMPP Glossary

    • Hello,
      Thank you for your feedback.
      We have made this Glossary available directly within the article from now on.
      Have a nice day!

Leave a Comment


This site uses Akismet to reduce spam. Learn how your comment data is processed.