2018-06-07 No More WhatsApp

So, I want to move away from WhatsApp. What should I tell my friends and family?

Or we could use XMPP. I could self host.

F-Droid

@switchingsocial suggested I take a look at Ring. It looks interesting!

@switchingsocial

Ring

@RussSharek suggested Rocket.Chat or Zulip. @Nuntius said that Rocket Chat wouldn’t federate. Well... it might still work, I guess?

@RussSharek

Rocket.Chat

Zulip

@Nuntius

Right now, though, Signal doesn’t look too bad after all!

I’ll take another look, tomorrow.

Matrix and Riot

Matrix is the cool new thing but Riot is a client I don’t find appealing. One particular concern I have with Riot is that some of the people I want to chat with teenagers in my RPG group and when I use Riot I’m confronted with a huge list of public rooms and I’d like to avoid that.

Wire

The advantage of Wire and Signal over Threema is that they are Free Software. Or parts of them, at least. The advantage of Wire over Signal is that you can sign up with multiple accounts. But I was unable to do it!

I had Wire installed on my phone and decided to try and create a second account. But their website shows you stuff depending on your browser and I could not find a way to do it. When @aendi sent me the direct link to create an account on their website, it showed me a blank page, using Safari on the iPad I get a message telling me to download the latest Google Chrome, Mozilla Firefox, Opera or Microsoft Edge; using Google Chrome on the iPad doesn’t work either, even if using “Desktop Version”. And on the phone itself, I cannot create a second account because the phone number is “in use” and when I try to remove it from my existing account I cannot (and I think there’s a message telling me more somewhere hidden behind the number keyboard on iOS which I can’t read).

@aendi

create an account on their website

Needless to say, this is frustrating. So at this point, Wire is at the same level as Signal, for me: one account tied to my phone number.

XMPP

Many people have suggested XMPP and some have suggested self hosting. @codingquark suggested installing Prosody on Debian. So I did that. I went through the config file and things were looking good until I came to the section about chatrooms. This is pretty essential for me. After all, that’s what WhatsApp and Threema both offer and it’s the killer feature. It allows family channels (for all the overlapping sets of an international patchwork family), various groups for all the disjoint interest groups, gaming, school, whatever. But XMPP must have added this with a completely different use case in mind. I’m looking at the configuration instructions, which point me to the chatrooms instructions, which point me to the DNS instructions because chatrooms happen on a subdomain. This puts more burdens on me and is very annoying.

@codingquark

configuration instructions

chatrooms instructions

DNS instructions

Well, I did all that. And after getting all the TLS stuff right, here we are: In ChatSecure, I add an account: `alex@campaignwiki.org`, with a password – the same I used to create it using `prosodyctl adduser alex@campaignwiki.org`, and click on the check mark...

And watch the logs on the server...

Jun 07 23:49:42 c2s5562d9922ee0	info	Client connected
Jun 07 23:49:42 c2s5562d9922ee0	info	Client disconnected: closed

That’s it. ChatSecure doesn’t realize this, however, and the wait animation keeps spinning. This is super sad!

Perhaps self hosting is not the answer.

@megfault suggested I just use established servers. @nipos suggested `jabber.de`, and he told me about two other clients: Zom is supposed to look “like an normal messenger” and then there is Conversations (for Android). I think on iOS the client to use would be ChatSecure.

@megfault

@nipos

Zom

Conversations

ChatSecure

​#Privacy ​#Instant Messengers

Regarding TLS...

@algernon said:

@algernon

Interesting. I had no trouble with TLS. Grabbed a cert from LetsEncrypt, `prosodyctl --root cert import /etc/letsencrypt/live`, and done. The last step is important, ’cos Prosody by default does not have access to the LE certs.

See https://prosody.im/doc/letsencrypt

https://prosody.im/doc/letsencrypt

@ckeen said:

@ckeen

If you have enabled http_upload and http you can try that port with a web browser to check whether the certificate is correct. The default port is: 5281 for TLS

Regarding encryption, @algernon said:

@algernon

I used the Prosody 0.11 packages via stretch-backports, the default config worked out of the box. The “roster” and “pep” modules need to be enabled for OMEMO. For encryption to work, you will have to first log in with a client that supports encryption (Dino, Empathy, Conversations, Converse.js were the ones I found working, Movim did not support OMEMO).

@ckeen said:

@ckeen

The conversations client site has a list of peps you should enable for the best experience.

https://conversations.im/​#xmpp and compare with https://prosody.im/doc/xeplist

https://conversations.im/​#xmpp

https://prosody.im/doc/xeplist

@algernon

their config

Thank you both! 🙂

@polychrome

ejabberd vs. Prosody

TL;DR: Use ejabberd. Set up a cron job to trim message history and network activity logs - they *will* go out of hand.

Back in 2018 @mbirth and @jrswab had both mentioned ejabberd, too.

@mbirth

@jrswab

One day, maybe. 🙂