Orbifx's compendium

Instant messaging the open way

| | | topics: computing | keywords: im, instant messaging, jabber, xmpp
id: 1d678bc9-d013-418e-98b1-46d98c7aa730

Instant messaging over the internet, in general, means to have a dialogue of short messages.

Instant messaging (IM) is a type of online chat which offers real-time text transmission over the Internet. Short messages are typically transmitted bi-directionally between two parties, when each user chooses to complete a thought and select "send". More advanced instant messaging can add file transfer, clickable hyperlinks, Voice over IP, or video chat.

-- Wikipedia: https://en.wikipedia.org/wiki/Instant_messaging

The variations are endless and differences between them fuzzy, but the main point is that having a discussion over instant messenger means the gap between exchanges are short (seconds, minutes, hours tops). Email could be used for this purpose, but it has been disassociated with this practice, probably because applications are not designed with that use in mind.


XMPP is an established open standard for instant messaging. There are others, like tox (more here) but few have the qualities of XMPP: open, federated and established.


Firstly, to use XMPP you need an application and being a popular open standard means there is an abundance of options:


XMPP requires a server to relay the messages. A server is a computer owned by the provider, which runs a set of programs continuously for the benefit of people. The people's programs utilising these services are typically referred to as "clients".

  server (provider) <-----> clients (people)

Depending on the service, a provider may require an account for a client to access it. XMPP providers require an account to identify and verify people.

An important advantage of XMPP is that servers can be federated, like email. You don't need to have an account on the same provider as your friend (peer).

To find a list of servers with public registrations go to https://xmpp.net/directory.php

Some advice when picking from this list:

There are two ways to register on servers: either via a web-page, or "in-band" via your programs. The name for your account must not be taken and once your provider grants you with a name (nickname, alias), you will have an address in the form of username@server.xyz, e.g. john@example.com. This address identifies you and how your contacts can reach you, just like email.

Inviting friends

Once you have a program and you have set up the server connection, it's time to add your friends or peers to your contacts, using their XMMP addresses. Adding someone requires sending an invite, which they must accept.

XMPP is a presence protocol as well as a messaging protocol, so it can be used to announce custom status messages (online, busy, baking pizza, etc).