Introduction to Jabber/XMPP

This is an introduction to using the Jabber/XMPP system for chat or IM, aimed at novice users. This guide should be readable without any advanced computing knowledge.

You are possibly already using a proprietary version of Jabber (the Gtalk, Facebook Chat and WhatsApp programs use XMPP internally) - using "open" Jabber is similar to using these programs.

Quick Start

  1. Sign up for a free account at jabber.org or one of the alternatives listed below.

  2. Install a client (i.e. app) for your computer/phone/tablet/etc. Some of the popular ones:

    Windows and Linux PCs

    Pidgin is a popular cross-platform client that supports many other chat protocols.

    Mac OSX PCs

    Apple ichat (may be already installed) or Adium (based on Pidgin)

    Android Devices

    Xabber; many others available.

    Apple IOS Devices

    ChatSecure; unlike most other IOS Jabber apps, it is free and open source.

  3. Run the application from step 2 and when prompted, give it the details to the account you created in step 1.

  4. Add people you know to your account.

Getting an Account

Free Accounts

You can get a Jabber/XMPP account for free from many online services. A full list is available from xmpp.net

Many apps also allow you to create a new account from the app.

Paid/Hosted Accounts
Many providers provide hosted XMPP accounts, often along with other paid servers or services. For example, Dreamhost provides Jabber hosting as a complimentary service along with their standard web and Unix server hosting services.
My Hosted Accounts
If you know me and ask very nicely, I can usually make you an account on most of the sites I run (including this one, if you really want a someonenotdylan@dylanleigh.net username).

Other Jabber Applications and Plugins

Just like web browsers and servers (which use the HTTP protocol), there are a wide variety of clients/apps which use the XMPP protocol. If you don't like the ones mentioned in the quick start above, xmpp.org has a list of clients for various systems.

Encrypted Chat

Jabber supports client to client encryption (so the server cannot read your messages - unlike most commercial chat systems).

Most good Jabber clients will enable this form of encryption by default. Editing the encryption settings is probably beyond the scope of a beginner.

Frequently Asked Questions

Why use Jabber instead of WhatsApp/Facebook/Imessage/etc?

Most importantly, Jabber/XMPP is an open protocol - unlike a closed or proprietary network, it isn't tied to a single company or app. Just as you can call or text from one phone to another even if they are different models, the same is true for any two Jabber applications.

Anpther reason is security and privacy. Most of the proprietary networks listen in on your chat sessions, and collect all your contact details and sell them to their advertising partners. This occurs even if they claim to offer "encryption", because they only encrypt the data between you and their server, not between you and the person you talk to.

By using a chat client which you control, combined with client-side encryption, you can prevent anyone (even the server) from reading your conversation, and you can keep your contact details (and those of your friends) private.

What is WhatsApp's relationship to XMPP?

The WhatsApp protocol is a slightly modified bersion of XMPP; it is deliberately modified so that it can only be used with the WhatsApp program available from the company of the same name.

WhatsApp "harvests" all your contact details, all your friends contact details (like their phone numbers and addresses) and listens in on your chat and analyses it for marketing/advertising purposes. WhatsApp also has an extremely poor security record, allowing chat encryption to be easily broken.

XMPP can support all the features that WhatsApp does, without the spying and poor security. Not all XMPP clients support all features, but the popular ones will support photo sharing, VoiP etc.

What is Facebook and Google's relationship to XMPP?

Facebook Chat and Gtalk internally use the Jabber protocol. Unlike WhatsApp, these companies used to allow reguular XMPP clients to connect to their chat service, so you could use any Jabber program to chat with someone on Facebook or Gtalk.

Since I originally wrote this guide (early 2013; now mid 2017) this seems to be no longer the case; you can only connect to Facebook with their proprietary client.

Why is it called Jabber and XMPP? Which is correct?
The name Jabber was initially used during development; the formal name of the protocol after it was standardised is "Extensible Messsaging and Presence Protocol" (XMPP). By that time, there were already open-source and commercial products with the name "Jabber", so both are used regularly.