95 lines
5.1 KiB
Markdown
95 lines
5.1 KiB
Markdown
%%-
|
|
title: XMPP - qwik docs
|
|
header: XMPP
|
|
date: 9th August 2021
|
|
-%%
|
|
|
|
# Introduction
|
|
XMPP is a protocol for instant messaging. It stands for *Extensible Messaging and Presence Protocol*.
|
|
It supports most things you'd expect from 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 would need a client. Under here 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/eu.siacs.conversations/)*, [Google Play](https://play.google.com/store/apps/details?id=eu.siacs.conversations))
|
|
* Conversations ([F-Droid](https://f-droid.org/en/packages/de.pixart.messenger/)*, [Google Play](https://play.google.com/store/apps/details?id=im.blabber.messenger))
|
|
|
|
**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, @outllok.com, @protonamil.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.
|
|
|
|
Most, if not all, clients allow you to register an account directly in the app, but if you have problems to register through the
|
|
app then you can use [this page](https://qwik.space:5443/register/). If you want to register at our server use the server address
|
|
`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.
|
|
|
|
When you've registered on our server you should get a welcome message kind of like this:
|
|
> Welcome to qwik.space!
|
|
> You can find more information at https://qwik.space/xmpp.html
|
|
>
|
|
> If you have any questions regarding the server, send a message on XMPP to furo@qwik.space
|
|
|
|
## 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
|
|
You can also connect using Tor, use the following information:
|
|
Hostname: qwikxcv6qo7ochwil3ihobsclz6ulfkszvngy6cna4rx6a6a4bedktad.onion
|
|
Port: 5222 |