=====================================
== Ravi Dwivedi's personal website ==
=====================================

A guide to set up your XMPP account

This is a guide to set up an account on XMPP, which is a federated chatting system. (Federation allows separate deployments of a communication service to communicate with each other - for instance, a mail server run by Google federates with a mail server run by Microsoft when you send email from @gmail.com to @hotmail.com)

I will use the freedom-respecting software Conversations app for demonstration. Conversations app is available for Android only. Conversations is a paid app on Google Play Store. If you would like to support the development of Conversations app, then you can download it from Google Play Store. Otherwise, you can follow the steps below to download Conversations app free of cost. If you would like to download a free-of-cost XMPP app from Play Store, then check out Monocle or Blabber app.

Some examples of XMPP apps for other platforms are- Dino for GNU/Linux, Gajim for Windows, Monal for macOS and iOS, and Siskin IM for iOS. You can choose any XMPP app, and this guide probably works for all of them. A list of XMPP apps is here and all of them support OMEMO encryption by default.

You don’t need to give any personal details, like phone number or email, to create an account. If you would like to register an XMPP account using your phone number (similar to how you set up in WhatsApp), then you can try Quicksy app, which respects your freedom as you can still connect to people using any XMPP app and XMPP service provider (remember that XMPP is federated!).

Steps to set up an account on Conversations app:

Step 1: Download F-Droid from here.

F-Droid is a repository of free software apps. It is a privacy respecting alternative of Google Play Store. One difference is that F-Droid only contains apps which are freedom-respecting (they respect all four freedoms mentioned here) and verified by the F-Droid community for malicious features.

F-Droid will also ensure that your app receives all the future updates. F-Droid community also builds apps from the source code which ensures that the source code indeed matches the app you download in your system.

Step 2: Search for “Conversations” app in F-Droid and install it.

Step 3: Register an XMPP account on any xmpp server. You can choose an XMPP service provider from this list.

Step 4: Open the Conversations app and then click on ‘I already have an account’ option.

Step 5: In the XMPP address option, put your xmpp address, which will be of the format username@domain – depending on which site you used to sign up. Click ‘Next’.

Step 6: You can add a profile picture if you wish and then click ‘Publish’. If you do not want to add a profile picture, select ‘Skip’.

Step 7: Conversations app will ask you permission to access your contacts. You can click on ‘Deny’. And it will then ask to stop battery optimization for the app. You can enable Conversations to run in the background.

Step 8: Conversations app will then ask you to stop battery optimization for the app. I suggest you to allow Conversations to run without optimizing the battery. The developer of Conversations app has explained how this permission has virtually zero impact on battery life.

Step 9: To add a contact, press the ‘+’ button at the bottom of the Conversations app and click on ‘Add Contact’.

Step 10: Type the XMPP address of the XMPP user you want to contact. In the image, I have entered my own XMPP address - ravi@poddery.com - as an example.

Step 11: Just send an introduction message to your friend to exchange your OMEMO keys.

Congratulations on setting up your XMPP account. All the messages will be OMEMO encrypted by default – means that only you and the person you are exchanging messages with can read them. Conversations app also support voice call and video call to any XMPP app that supports the same.