88 lines
4.9 KiB
Markdown
88 lines
4.9 KiB
Markdown
%%-
|
|
title: XMPP - qwik docs
|
|
header: XMPP
|
|
date: 1st August 2022
|
|
-%%
|
|
|
|
# Introduction
|
|
XMPP is a protocol for instant messaging. It stands for *Extensible Messaging and Presence Protocol*.
|
|
It supports most things you'd expect from an instant messaging software, like: chat (duh?), sending images/videos/other
|
|
files, chatrooms (group chats), and even calling (both voice and video). It also supports another great thing: encryption.
|
|
|
|
The biggest problem with XMPP is that many of the clients (apps/programs you use to chat with people) could be better.
|
|
To some extent, all clients lack features or are buggy or even poorly designed - although, for the most part, it will be
|
|
fine.
|
|
|
|
# Usage
|
|
To use XMPP you will need a client. Below you can see our recommendations of clients for different platforms.
|
|
|
|
## Clients
|
|
**Linux**
|
|
* Gajim ([Website](https://gajim.org/))
|
|
* Dino ([Website](https://dino.im/))
|
|
|
|
**Windows**
|
|
* Gajim ([Website](https://gajim.org/))
|
|
|
|
**macOS**
|
|
* Monal IM ([Mac App Store](https://apps.apple.com/app/id1499227291))
|
|
* Siskin IM ([Mac App Store](https://apps.apple.com/us/app/siskin-im/id1153516838))
|
|
* Beagle IM ([Mac App Store](https://apps.apple.com/us/app/beagleim-by-tigase-inc/id1445349494))
|
|
|
|
**Android**
|
|
* blabber.im ([F-Droid](https://f-droid.org/en/packages/de.pixart.messenger/)*, [Google Play](https://play.google.com/store/apps/details?id=im.blabber.messenger))
|
|
* Conversations ([F-Droid](https://f-droid.org/en/packages/eu.siacs.conversations/)*, [Google Play](https://play.google.com/store/apps/details?id=eu.siacs.conversations))
|
|
|
|
**iOS**
|
|
* Monal IM ([App Store](https://apps.apple.com/us/app/monal-xmpp-chat/id317711500))
|
|
* Siskin IM ([App Store](https://apps.apple.com/us/app/tigase-messenger/id1153516838))
|
|
|
|
There might be other XMPP clients that we have missed, but this covers the main ones we know about.
|
|
We primarily use gajim and blabber.im.
|
|
|
|
*\* [F-Droid](https://f-droid.org/) is a repository containing free and open source Android apps.*
|
|
|
|
## Registration
|
|
To register you would need a server to register on. Kind of in the same way you can register an email at different domains.
|
|
(@gmail.com, @outlook.com, @protonmail.com, etc.) XMPP works in a similar manner where your *JID* (Jabber ID) is formatted as
|
|
`username@server.com`. You can choose between thousands of server, but we'd be happy if you joined our server.
|
|
|
|
If you want to use our server, you'll have the register an account. This can be done through the [qwik account manager (qam)](https://qam.qwik.space/). Once you've registred your JID would become `username@qwik.space` (assuming you used our server). Your friends will
|
|
use this address to contact you.
|
|
|
|
## Encryption
|
|
XMPP supports two types of encryption: OMEMO and OTR. We personally recommend using OMEMO as it is the easiest to use and all
|
|
previously mentioned clients support it*. Even though OTR is supported by some clients, we don't recommend using it as it doesn't
|
|
support support encryption of calls or MUCs.
|
|
|
|
If you are more of an "advanced" user, we recommend turning of *blind trusting* in your client and manually trust OMEMO fingerprints.
|
|
|
|
*\* If you are using gajim on linux you might need to install an external package to get support for OMEMO: `gajim-omemo`*
|
|
|
|
## Chat rooms (group chats)
|
|
XMPP allows you to create chat rooms with multiple participants, they are called *MUCs* (Multi-User Chats). You can create one
|
|
through most clients. If you are prompted for a *room address* when creating a room, simply input `name@muc.qwik.space` where
|
|
`name` is the name of the chat room.
|
|
|
|
You might be prompted to choose between a public and a private room. The difference is that private rooms supports encryption
|
|
and you must be invited to enter it. Public rooms, on the other hand, only requires you to know the address to join, although
|
|
you can also be invited to a public room. **Public rooms do not support encryption**.
|
|
|
|
Once you have created a room you should be able to invite your friends through the client, otherwise you could try giving them
|
|
the address. You can also create invite links with the following format: [xmpp:qwik@muc.qwik.space?join](xmpp:qwik@muc.qwik.space?join).
|
|
You would replace `qwik` with the name of your room.
|
|
|
|
## Calls
|
|
To use calls (audio or video) your client must support it. Not all clients support calls, but if your client supports calls
|
|
you should see a call-button somewhere on the screen. For your recipient to recieve the call their client must also support
|
|
calls. The last requirement is that the server must support calls as well (our server does support calls).
|
|
|
|
If you use OMEMO, the calls will be encrypted.
|
|
|
|
## Tor and I2P
|
|
You can use the following hostnames to connect over a darknet:
|
|
|
|
| Darknet | Port | Hostname |
|
|
| ------- | ---- | -------------------------------------------------------------- |
|
|
| Tor | 5222 | qwikoouqore6hxczat3gwbe2ixjpllh3yuhaecixyenprbn6r54mglqd.onion |
|
|
| I2P | 5222 | a4rmtevnz6mgfdt7jxwuejcuztlhdaavr3wjlat2twhsgfkboxpa.b32.i2p | |