Messaging with the L5


That’s correct, depending on server features and client features, messages may or may not reach you or your contacts when one of you is offline. Most servers to implement XEP-0160 (offline messages) these days as well as MAM (XEP-0313), so the chances of messages NOT being stored by the server when a contact is offline are low.

The issue comes from libpurple and Conversations supporting only one or the other, and hard choices that have to be made by the server admins. In my case since my server is not used by many people, we chose to apply the fix below to send ALL messages straight to MAM rather than the offline messages storage, which hurts libpurple but helps Conversations.

I’m assuming most servers probably use the default, which is to store in offline messages store first, which hurts Conversations but helps most clients.

Hopefully Conversations adds support for Offline Messages soon…

Here is the fix I applied on my own server to send all messages to MAM, which Conversations can handle (but libpurple cannot). Since my main clients are Gajim (on desktop) and ChatSecure (on iOS), this was no problem:

Based on this , Conversations still doesn’t support XEP-0160 (offline messages).

None of this helps the OMEMO situation though, which IMO is a lot worse when it comes to libpurple+Lurch… I really should raise yet another issue on the Lurch github. I wonder if Purism has been trying it out and encountered these kinds of issues?


You would have to ask Andrea, the main Chatty developer directly in order to learn about her experiences dealing with Lurch and OMEMO. She is kind and (in my personal experience) fast to respond. I think you should ask her directly in the Chatty matrix channel …



Very good info, will do so!


That’s a mess, i hope someone will fix this issue asap.
If you talk with her please report here what’s new, hoping for good news
Thank you

Edit: in f droid i found atalk, dunno if will be more compatible with chatty/libpurple did you test it?


Have never tried atalk… Looks like it supports OMEMO. I suppose I could bring my android phone out of retirement and try it out…


If you can try it should be really welcome, i hope to use chatty with L5 and something else to my android friends phone at day one, let’s cross fingers


I have good news - not only is development continuing on Lurch, even though there are bugs and issues left, however:

  • I’ve updated my version of Lurch, and after some suggestions from Andrea on the Chatty matrix channel, was able to exchange OMEMO messages between Pidgin and ChatSecure!!
  • Moreover, I acquired the qemu image of the Librem 5 pureos, manually installed Lurch, and was able to use it in Chatty
  • And after some fiddling (mostly connecting/disconnecting plus sending plain text messages to let some kind of “handshaking” happen between the clients), eventually I was able to exchange OMEMO messages between all my clients - chatty, pidgin, gajim, chatsecure

I have yet to test atalk, however, I’m satisfied that things are heading in a postiive direction!


That’s awesome
Could you please try chatty-conversation and chatty-atalk mixing online and offline stuff from both clients? Just to be sure that everything work like “watsapp” so when purism release their xmpp i can finally switch friends and family to this service


Will try atalk tomorrow.

Conversations is working fine with both Chatty and pidgin, after the updates suggested by Andrea.

outside of my own server where offline messages are all directed to MAM, which is incompatible with Pidgin/Chatty, I’ve tried another public server, and Chatty was able to receive offline messages, even with OMEMO.

As it is, Pureos on the L5 (qemu image) does NOT have notifications it seems, and chatty is not running at boot, so no messages are coming in until chatty is manually launched. On the other hand, I’m pretty sure Pureos doesn’t kill tasks in the bg like iOs and Android do, because when I switch away to a browser on the L5, send messages to Chatty, and come back, the messages are already there.


So the only issue right now is to have an android client who is capable to use xep-0160 or chatty/libpurple to use xep-0313 otherwise the two clients can’t talk each other in offline mode, is it right?

So what i whould like to know when you try atalk if he handle the offline conversation with chatty or if he do not support xep-0160 too, in alternative do you know if chatty will support xep-0313?

I’m start to understand why people just use whatsapp and telegram :smiley:


I recently discovered the desktop version of Signal, which I now have running in Kubuntu. I like it a lot, with the only drawback being it will communicate only with other Signal users, meaning no SMS or MMS.

I’m assuming the desktop version will run on the L5, but I’d love to learn there will be a version of Signal for the L5 which functions like the Android app and allows me to communicate with my non-Signal-using contacts.


However, the desktop version is written with the electron framework which has as a direct consequence that (video) calls are not possible. Anything else works quite well though as far as i can tell.


I would also chime in with the hope that Signal might be able to run. It took me six months top drag most of my contacts from WhatsApp to Signal. I don’t know thLibrem at it will be so easy to get them to Librem.


Yes these centralized services do have the advantage of being mobile-first, unlike XMPP that had to retrofit a lot of functionality, and waiting for clients to catch up, and lots of different people coding things differently, leading to issues and incompatibilities (see Moxie of Signal fame and his rant about federated services on the Signal blog a few years ago).

atalk, first impressions: I can’t even get it to reliably connect or send or receive messages, or even have a UI that responds to my taps and swipes. Stick with Conversations lol.

As far as Offline messages vs MAM, probably the best combination is to have offlines messages + message carbons support in clients, so that there can at least be some synchronization of messages between clients. MAM is a nice bonus and libpurple will have it… one day… Most XMPP servers support Offline messages and don’t use the workaround I used to redirect all messages to the MAM, so everything should be fine overall.

Still getting some glitches in OMEMO chats between various clients and Chatty, it’ll take a while to figure all those bugs out,…


Don’t assume it. The desktop version is compiled for Linux on x86-64 architecture, so unless it’s recompiled for arm, then it won’t work on the L5. I’m not sure if the Signal devs have indicated they will do so or not, ro what the challenges involved are (due to the desktop version being based on Electron…)

The ideal of course would be an actual version using libhandy or origami rather than an electron monstrosity…


Having offline messages + carbons support what kind of experience will bring between chatty and conversation? i mean will the message sent to an offline contanct will be sended when he came online even with some delay or there is some other kind of issue compared to mam?
What kind of glitches do you suffer in omemo chats?
In both chatty and conversation how do you know if your conversation is unencrypted, encrypted with otr or omemo?


For me the situation is reversed. I’ll not use Signal as long as they ask for my phone number, and I will not use Signal before I can choose my server, esp. not in the Amazon cloud, but run by the local Internet cooperative. Also, their desktop client stinks: It’s based on Electron which I don’t like. OTOH, I don’t care much about Matrix, because XMPP works fine for me. On L5, I’ll either use Chatty or Dino or Gajim or Profanity. Let’s see…


Any opinions on this?


Never heard about it, but seems really interesting, i whould like to have more info about them because while their source code are on github i see no info about who they are and what’s their business model


At first glance… JavaScript non native client, which first makes me question inputting passwords on their servers for my accounts + question if omemo is secure.

Second glance, desktop app screenshot looks like an electron app.

EDIT: confirmed, it is an electron app, and also this note from their wiki:

This server provides a social network Web interface XMPP which will be the intermediary between the browser and the XMPP server that contains the user account.

In other words, not interested…