|
Contents
This is about installing, setting up and using the XMPP messenger Conversations. This is a pioneer and benchmark for other current XMPP messengers with OMEMO support and even has the ability to bring other apps back from power saving mode via “unified push” (external) and “wake them up” so that they can connect to their actual service provider/server.
The app is “made in germany”, which may explain why bug fixes and a certain quality of code have priority over new features. The original page of Conversations (external) on the net is only available in English. Therefore, here is a makeshift translation (external) by volunteers.
There are various Conversations variants and forks. All are based on the original Conversations source code and therefore belong to the Conversations family:
Conversations is the standard recommendation and the “classic”. Clear, up-to-date, secure.
The Play Store version differs slightly from the F-Droid version due to Google restrictions: In the Play Store version, the “integrated search for public chat rooms” and “contact integration” functions are deactivated. Both functions work when obtained via the secure F-Droid store :-) However, Google Push is not used here as this is not a free component.
Sources of supply: F-Droid / Play Store
Release notes/change history: https://codeberg.org/iNPUTmice/Conversations/src/branch/master/CHANGELOG.md (external)
This special version of the Conversations developer is intended to make it easier for WhatsApp users to get started with messaging using the standard XMPP protocol or to switch over.
The same basic code is used - but there is only one chat account here, which, in conjunction with the use of the telephone number, enables very simple and automated chat account creation. The function of identifying contacts by phone number without uploading the complete phone book makes Quicksy suitable for those switching from WhatsApp who do not want to do without a certain level of convenience. Otherwise, the range of functions and the look are identical to the standard Conversations.
You can think of the system as WhatsApp/Signal, in which all users are logged in with their phone number and use it to recognize and contact each other. So you log in to Quicksy with your phone number and are then suggested the corresponding other Quicksy users for your contacts in the address book. What is the difference to WhatsApp/Signal/…? !?
The big difference is that all users of Quicksy.im can communicate not only with each other but also openly with all other contacts on other XMPP servers. Quicksy is therefore a different/more convenient entry into the provider-independent chat universe: a “starting island” that is open to the outside world.
In addition, users who have their account on other servers can store their chat address together with their telephone number on the Quicksy.im server. This means that Quicksy also automatically recognizes contacts with chat addresses from “foreign” servers in the address book. In contrast to the free use of Quicksy (=Conversations with special telephone function), the entry and registration of chat addresses with associated telephone numbers is generally not free of charge and therefore serves to finance the system. However, there are exceptions where free registration in the quicksy.im directory is possible: existing customers of conversations.im as well as registration with a correspondingly valid registration voucher, such as with the introduction of Quicksy.
As with other systems, a verification SMS with a numerical code is sent to the telephone number provided. This code must then be entered as confirmation when registering.
Note: Telephone numbers are not necessarily worse than other identifiers. Just like the phone number, the chat address (Jabber ID/JID), Matrix ID or Threema ID are also linked to people and are also used as selectors to assign data.
Quelle: https://de.wikipedia.org/wiki/Selektor_(Geheimdienstabfrage) (extern)
So the typical use case is not that a new Quicksy user pays for a registration but: An enthusiastic friend of independent messaging wants to make it easier for his friends to get started and “invests” the amount (just under 5 euros) in registering his address+phone number. All his friends can install Quicksy for free and then have the same convenience as with WhatsApp/Signal - combined with the freedom to use a different client or multiple chat addresses at any time.
For existing users, nothing changes at all, as the addresses of Quicksy users are structured like normal chat addresses (“+491234567890@quicksy.im”) and can also be used as normal.
Tip for Quicksy users:
If you want to use other/multiple chat accounts at a later date, you can simply create your existing chat account in other compatible programs such as Conversations and continue to use it. This is interesting, for example, if you also want to chat via the same chat address (‘+telefonnummer@quicksy.im’) on your PC or if you want to use a second chat account, e.g. for work/club/public chat groups.
With Prav App there is now even an offshoot for the Indian region. This app is also available via F-Droid.
There is no other phone number-based messenger system that offers its users (and their friends) more freedom and is also open source.
Important: |
When entering public chat rooms, Quicksy users are advised to use an alias, as otherwise all other participants will see the phone number as the user name. |
Sources of supply: F-Droid / Play Store
Project page: https://quicksy.im (external) / https://prav.app (external)
This version is based on the current Conversations and the blabber.im (external) monocles chat (not further developed since 2022) and offers the current best German translation (better than the original) and other special changes and practical additions.
Differences to Conversations:
BUT: monocles chat is a one-man project. As with blabber.im, it is possible that the developer may drop out at short notice or take a break.
Sources of supply: F-Droid / Play Store / direct
Project page: https://codeberg.org/Arne/monocles_chat (external)
Change history: https://codeberg.org/Arne/monocles_chat/releases (external)
For IT friends who want to provide their own family or friends with their own server - or simply use the app (Conversations with minimal changes) as a client. Easy to set up, easy to maintain, no external users on your own server.
Special feature:
The Snikket app can be used by anyone and independently of a Snikket server - you don’t need an invitation from another Snikket user. It is currently (as of October 2024) the only way to install an app with the full functionality of Conversations free of charge for friends via the Google Play Store.
This is interesting because you can create accounts for a group of people (school, kindergarten, play/sports group) in advance with a self-selected server and then give people an easy entry into provider-independent messaging without using their mobile phone number (see Quicksy).
Sources of supply: F-Droid / Play Store
Project page: https://snikket.org (external)
The focus is on functions that are useful for users who also want to contact people in other networks, e.g. with SMS-enabled telephone numbers. Cheogram bundles a number of services that connect open communication networks (functions for gateway users) so that all contacts can be reached via a single app. For example, JMP.chat, Vonage and Twilio to connect with your contacts in the telephone network. But we are also working on the connection to SIP and e-mail.
Differences to Conversations:
Sources of supply: F-Droid / Play Store
Project page: https://cheogram.com (external)
In addition to the recommended apps listed above, there are also a large number of simple copies, some of which differ only in different colors and are probably not better than the original. In some cases, a violation of the Conversations license cannot be ruled out, because the source (Gultsch/Conversations) must actually be referenced.
Examples of less recommendable Conversations copies are: AgriChat, c0nnect messenger PRO, Fnord, KwikChat, Ninja chat, Onion Messenger, Storiz IM, TenguChat, XMPP Jabber Client, …
Anyone who already knows F-Droid will certainly use this top source. This also applies to Google-free devices such as the “Fairphone”.
The F-Droid versions have no Google restrictions: The app’s helpful address book integration is activated and the search option for public chat rooms is not switched off either. In addition, all apps from F-Droid are free of charge (donations are welcome).
… if provider-independent chat is to be used on an Android device with Google standard settings and F-Droid cannot/will not be used. Due to Google restrictions, helpful functions such as address book integration or the search for public chat rooms are deactivated here.
There are public chat rooms where anyone can read along and ask questions about Conversations:
German chat room for „Chat standard XMPP (Jabber)“ xmpp:chatstandard@chat.openim.de | |
English chat room for „Conversations“ xmpp:conversations@conference.siacs.eu |
A “good” manual should be up-to-date, clear and illustrated. “Messtome” has provided an excellent example of this:
Support wanted: |
Unfortunately, the previous author no longer maintains the instructions. If anyone is interested in updating them for Free Messenger, please let me know: >>Contact<< |
The entire manual can be downloaded as a print file and shared freely: Instructions Conversations (PDF file)
The source file in Scribus format is available here for customization: Instructions (Scribus file) (Scribus version 1.5x) (ZIP file)
But there are also many good instructions for Conversations forks on the net:
note:
Found better/more up-to-date instructions on the net? Then I would be pleased to receive a short information: >>Contact<<
If the program is executed for the first time, the following selection appears:
With the F-Droid version, Conversations may then point out that battery optimization may have been set and ask whether battery optimization should be ignored (this is explained in more detail below in the expert tips).
You should then briefly check the settings, especially for “Privacy” and “Notifications”. Under the further heading “User interface”, I recommend the following settings:
Recommendation:
Also look at the “Advanced” section and the “Expert settings” (there are some interesting options) and select in the expert settings whether contacts are allowed to correct their messages afterwards or not. If there are problems with notifications of new messages, the option “Run service in foreground” can also be activated here.
Some functions in Conversations can be controlled by short taps or long presses on certain areas or by swipe gestures. Some functions are also only accessible via an icon and not via a menu.
Start conversation / join group chat
Briefly tap on the round, green symbol at the bottom right with the rectangular speech bubble. Then either select a contact from the list, create a contact or switch to the group chat view.
End chat (and remove from view)
Conversations can be ended by simply “swiping away”. To do this, tap on the desired entry in the list of current conversations and swipe it to the left/right. Chats that have been accidentally swiped away can be displayed again via a message that appears for a few seconds. Otherwise, the conversation must be added again regularly via the contact list. Ending conversations or leaving group chats does not delete messages - these are still/again available when restarting later.
In group chat: Address a contact directly. In the chat history, briefly tap on the profile picture of the contact, then the name is inserted into the input field followed by a colon.
In group chat: Write to a contact personally
It is possible to send a personal message to an individual contact in a group. This message is only intended for this contact and will only be sent/displayed to them. To do this, press long on the profile picture of the contact so that the text “Send private message to xy …” appears in the input field.
Important:
The send button (symbolic paper airplane) shows the online status of the contact:
Access account details directly
Short tap on the profile picture of your own message.
Edit status message
In the Account details at the top, tap on the square speech bubble with the “!” next to the “Share” symbol.
Display barcode (own barcode)
In the Account details using the “Share” function. If successfully scanned and checked, a green sign with a white tick is displayed next to the key.
Scan QR code (own QR code e.g. from another device)
In the Account details, a long press on the key brings up a context menu. If there are several devices, it does not matter which one is used to select the scan function, the key is automatically assigned correctly during the check.
A long press on a contact displays the associated context menu:
Contact details in normal 1:1 chats
Within a normal chat, a short tap on the contact’s profile picture brings up the corresponding details (options for sending/receiving online status and the keys used)
Scan barcode (that of a contact)
In the Contact details, the function is hidden at the bottom (“Scan barcode”) again with the OMEMO fingerprints.
-> A long press on the key shows a context menu.
Device no longer trusted
A long press on an OMEMO key already marked as trustworthy in the Contact details displays the corresponding context menu.
Long press on a group chat to display the associated context menu:
A long press on the profile picture of a contact, which is displayed in a chat next to the respective received text, displays the corresponding context menu:
You can send messages to “yourself”. These are then only displayed once and not again or not twice (as “sent” and “received”). This function is useful for:
If you have written a text but do not want to send it, you can quickly delete it via a “detour”:
First tap and hold on a profile picture (as if sending a private message) - then cancel the function and the text is gone.
You can create new groups not only via the “Create group chat” function, but also via the “Join group chat” function. If the chat room does not yet exist, it is created with the specified name of the room to be “joined” and initially has no members. This has the following advantages:
Not only the displayed name, but also the “address name” can be selected individually.
This is important and very advantageous for public groups, as the address is directly related to the topic (e.g. free-messenger@conference.jabber.de). For normal groups (private groups) the address is unimportant.
You can first set up the room completely (displayed name, description, group profile picture if applicable, setting the group chat options) and then invite the members.
Android automatically closes “unused” apps when memory is required or to save power. Logically, a messenger can then no longer receive messages. This unwanted behavior can usually be prevented by the following settings:
deactivate battery optimization (“doze” power-saving mode or “app standby”).
run Conversations in the foreground
There is also the option to keep the app permanently active:
Sometimes the handset symbol for A/V calls is not displayed. Prerequisites (detailed description: Where is the call button (external)) for this are:
With the version of Conversations installed via the Playstore, push notifications are sent to and from the Google server to the end devices. The system is called Firebase Cloud Messaging (“FCM”) and is the current version of the former Google Cloud Messaging (“GCM”).
With the version installed via F-Droid - which is Google-free - Conversations keeps the connection to the XMPP server open, which may mean a little more power consumption.
Conversations only receives a push message for incoming messages via the external service if there is no usable TCP connection between the client and server. If a TCP connection is open (this is done via a so-called keep-alive packet every quarter of an hour, which has no significant meaning in terms of data consumption or power consumption), the message is transmitted directly without anything being sent to an external push service.
Special knowledge for those interested in technology: https://github.com/iNPUTmice/p2/blob/master/README.md (external)
The use of Google Push by Riot (Matrix) works differently: >> here <<
As of Conversations 2.3.6 (version from the Google Play Store), Android version 8 and higher displays a permanent, forced notification. However, this Android setting can be manually deactivated:
Instructions in English: https://github.com/siacs/Conversations/blob/master/README.md#im-getting-this-annoying-permanent-notification (external)
Note: For the F-Droid version, no forced notifications are displayed.
Conversations also runs without access to the app permissions “Camera”, “Contacts”, “Microphone” and “Location” (of course, the corresponding functions are then no longer available!):
This information is not a recommendation but rather a hint that these can be deactivated if necessary and the basic functionality is still retained. It should also be noted that after selecting “Do not ask again” when deactivating functions, you will no longer receive a system message as to why certain menu items do not work (or Conversations may then crash on some devices). In this case, you must remember to reactivate the corresponding authorization in the Android app settings.
Sometimes the password of a chat account is forgotten (recommendation: use a password manager!). The saved password for chat accounts can only be displayed with root authorization (i.e. administration rights at Android level). It is stored in the file /data/data/eu.siacs.conversations/databases/history
(different for Quicksy).
via Android Debug Bridge (ADB)
adb shell "su -c 'cat /data/data/eu.siacs.conversations/databases/history'" > history && sqlitebrowser ./history
More detailed information on other manufacturers/devices (to prevent system-induced termination of apps) can be found >> here <<.
Only for experts & only with Linux:
Conversations is optimized for standard users. Extracting data is definitely something for specialists, which is why an export function is deliberately not available in the app.
Under Linux, however, backup copies of the local account data (e.g. message history, OMEMO key, login data) can still be created via detours, which are stored encrypted in files with the extension “.CEB” (“Conversations Encrypted Backup”). The passphrase for the login is usually also the passphrase for the backup encryption. To open or convert a backup file on a desktop computer, for example, there are various CEB tools (external) such as ceb2txt, ceb-extract, ceb2xml and ceb-tools.
Background information on the versioning procedure: https://semver.org/lang/de/ (external)
If you want to know the different variables/default values such as the values for video compression (external) of Conversations, you can find them in the program code sources:
https://github.com/siacs/Conversations/blob/master/src/main/res/values/arrays.xml (external)
Extensions (plugins)
… for the former version “Conversations Legacy” (1.x). The extensions are no longer required from version 2.x of “Conversations” as they are integrated into the app. However, you can still use the “Location Plugin “ if you prefer GoogleMaps. The “Voice Recording Plugin “ is no longer required by Conversations, but is technically still usable by other apps (which is why it has not yet been removed from the Android stores).
Explanation of emoji compatibility:
If a crossed-out rectangle is displayed instead of a received emoji, the operating system has a different emoji list than that of the sender. The crossed-out rectangle indicates that the emoji sent by the other party cannot be displayed correctly.
This can happen when Android and iOS users talk to each other, as Apple is responsible for the updates and can usually introduce new emojis more quickly. However, the crossed-out rectangle can also sometimes appear between individual Android users if different Android versions are used.
To solve this problem, Google has created “EmojiCompat”, which works from Android 4.4 KitKat. This is a program library that recognizes the emojis received by the Android system that cannot be displayed and replaces them accordingly.
The emojis therefore look the same everywhere and are virtually “compatible”.