Introduction
XMPP is an instant messaging protocol. It stands for Extensible Messaging and Presence Protocol. It supports most
things you would expect from a messaging protocol such as: Audio and video calls, Chatrooms and End to End encryption.
The problem with using XMPP is that most clients for it could be a lot better. Most lack features or are just overall
buggy, but it's fine for the most part.
Registration
You can register through your client. Your JID (Jabber ID) will be username@chat.qwik.space. People will use this
address to contact you.
Clients
There are several clients to choose from. Here is a list of my client recommendations for different platforms.
- Android
- iOS
- macOS
- Linux
- Windows
Chatrooms
XMPP allows you to create public chatrooms, also known as MUCs (Multi-User Chats). You are able to create one through your client.
When you are creating one, you may be prompted to provide an address. There you should write "name@muc.qwik.space"
You may be prompted to choose between a private and public room. The difference being that a private room supports encryption and to
enter a private room you have to be invited. You are able to enter a public room if you know the address or have been invited.
Once created you can invite your friends through the client or give them the address. It's also possible
to create invite links, you can do this like following:
xmpp:qwik@muc.qwik.space?join
Audio and video calls
Some XMPP clients supports audio and video calls. If your client supports it, there will be a call button. It requires that the one on the other end has a
supported client and is online. The calls are encrypted if you are using OMEMO, which I highly I recommend using.
Encryption
XMPP supports two different encryption methods: OMEMO and OTR. I personally don't recommend using anything other than OMEMO. It's the easiest to use
and all the clients mentioned above supports it. Some clients support OTR, but I don't recommend using it because it doesn't support encryption for audio and video
calls. It also lacks support for MUCs.
note: Gajim on Linux may require you to install an external package depending on distribution: gajim-omemo