Since I promote the use of e2ee communication apporaches due to the frustrating experience brought to me by CMCC , I will write an registration guide for the most endorsed libre IM protocol, Jabber.

First of All: Jabber and XMPP Usually Refers To the Same Thing

Jabber originally referred to the open-source instant messaging protocol that was developed in the late 1990s. Over time, Jabber evolved into XMPP, which is the formalized standard for the protocol. XMPP is maintained by the Internet Engineering Task Force (IETF) and includes a set of specifications that define how messaging and presence information should be exchanged.

Therefore, if you see some people say Jabber, while some people say XMPP, they usually refers to the same thing. I prefer to say Jabber, therefore I will say Jabber in this guide.

Choose a Client

Like many other IMs, Jabber needs a client to operate. Below is a list of popular XMPP clients (refers to xmpp.org, sorted in the alphabetical order):

For GNU/Linux and Microsoft Windows I recommend Gajim, which is feature-rich and easy to use. For Android I recommend Conversations for the same reason. Since I have neither an iPhone nor an Mac, I cannot give recommendations to iOS users and macOS users, so just go through the list and pick one to your liking. This guide will proceed with Gajim and Conversations.

Gajim Tutorial

Step 1: Obtain Gajim

For GNU/Linux users Gajim is generally already available in your distro’s official repository. For Debian, Trisquel, Ubuntu or other APT-based distros:

 $ sudo apt install gajim

Windows users please go to the official website to download the executable.

Step 2: Add an Account

You will be embraced with this window. If you already have an account, fill in your credentials and click Log In, then skip to Step 5. If you don’t have an account, Click Sign Up here.

P1 Add Account Window

Step 3: Choose a Server

You will be asked to choose a “provider.” A Jabber service provider is where your Jabber account lives, just like your email account lives on your email service provider. If you don’t know which to choose, proceed to this list . I only recommend the servers listed in the Category A. In this tutorial we will proceed with jabber.fr.

P2 Create New Account Window

Step 4: Set a Username And a Password

Choose a username and a password. The syntax of JIDs will be username@example.org , following the syntax of email addresses. I suggest a strong password that contains both uppercase and lowercase letters, numbers, symbols, and have a length of at least 60 characters. Once completed, click Sign Up.

P3 Create Account Window

Step 5: Account Added Window

You will see a window that indicates that your account has been added. Click Connect to continue.

P4 Account Added Window

Step 6: Start a Chat and Enable Encryption

Click “Start Chatting…”, and fill in the JID of whom you want to chat to.

P5 Main Window

P6 Start / Join Chat Window

THEN HERE CAMES THE MOST IMPORTANT STEP! Gajim doesn’t use end-to-end encryption by default, therefore you should enable encryption every time after adding a contact. Click the lock in the bottom-right corner, and choose OMEMO.

Besides, if you add contacts on another client, ENCRYPTION WON’T BE ENABLED ON GAJIM AS WELL. THEREFORE, ALWAYS CHECK WHETHER ENCRYPTION IS ENABLED EVERY TIME BEFORE CHATTING WHEN USING GAJIM IS A GOOD HABIT.

P7 Main Window

That’s it.

Conversations Tutorial

Step 1: Obtain Conversations

First you need to install the client. Coversations is available in the F-Droid official repository .

Step 2: Add an Account

You will be embraced with this screen. If you already have an account, click “I already have an account,” fill in your credentials and click Next, then skip to Step 4. If you don’t have an account, Click “Create new account” here.

P8 Join the Conversation Screen

Step 3: Choose a Server, Set a Username And a Password

You will be asked to choose a “provider.” A Jabber service provider is where your Jabber account lives, just like your email account lives on your email service provider. If you don’t know which to choose, proceed to this list . I only recommend the servers listed in the Category A. In this tutorial we will proceed with jabber.fr. Click “Use my own provider.”

P9 Pick your XMPP provider Screen

Choose a username and a password, and fill in the XMPP address (aka. JID) in the syntax of username@example.org , following the syntax of email addresses. I suggest a strong password that contains both uppercase and lowercase letters, numbers, symbols, and have a length of at least 60 characters. Once completed, click Sign Up.

P10 Register new account Screen

Step 4: Publish an avatar

Here you can publish an avatar for your Jabber account. Or if you don’t want to just click Skip.

P11 Publish avatar Screen

Step 5: Start a Chat

If Conversations ask you for any permissions, just grant.

P12 The Window Asking for Permissions

That’s it.

Click the “+” icon, choose “Add contact,” and fill in the JID of whom you want to chat to. Conversations uses OMEMO by default, so on Conversations you don’t need to explicitly enable encryption every time when you start a chat.

P13 New chat Screen

Step 6: Disable Battery Optimizations

After going back to the main screen, you will see a window to ask you to disable battery optimizations. Click Next and then Allow to disable battery optimizations, allowing Conversations to fetch new messages at background.

P14 The Window Asking to Disable Battery Optimizations