Conversations is a Jabber/XMPP client for Android 5.0+ smartphones that has been optimized to provide a unique mobile experience.
Don’t stop at text messages. Conversations allows you to easily share files with your contacts and embeds images directly into your chat. Even in conferences.
Have something personal to say? Turn on end-to-end encryption for extra privacy.
Wondering if your contact has read your messages? Conversations will tell you.
And if you don’t want your contacts to know whether you have read a message yourself you can simply disable that feature in the settings.
Conversations will automatically load the message history from your server when you need it.
If you are using more than one device at the same time, both your sent and received messages will show up on all devices.
Creating group chats has never been easier. Simply choose Invite contact from the menu to start a group chat. Conversations will automatically create the group chat on your server and invite your contacts to it.
And of course you don’t have to miss out on your contacts profile pictures when using group chats either.
Even though Conversations keeps its own connection to the XMPP server and thus is independent of Google’s push messaging system (GCM), it does a lot of work to keep the impact on battery life as low as possible.
The entire source code of Conversations is publicly available on Codeberg and licensed under the GPLv3, which means you can not only review the code and verify its correct behaviour but also modify it to your own wishes.
XMPP is a federated protocol, which means you can freely choose a trustworthy server for yourself while still chatting with contacts that are using other servers. The communication between Conversations and the XMPP server as well as the communication between the individual servers is TLS encrypted.
This way, not only your messages are safe but more importantly it is impossible for an outside attacker to intercept your meta data (with whom you are chatting) without attacking your server first.
On top of that, Conversations gives you the choice to enable one of two end-to-end encryption mechanisms. The first one is OMEMO, a state of the art multi-end-to-multi-end encryption method which is very easy to setup and gives you forward secrecy and plausible deniability.
For backwards compatibility reasons Conversations also supports OpenPGP.
XEP-0027 | Current Jabber OpenPGP Usage |
XEP-0030 | Service Discovery |
XEP-0045 | Multi-User Chat |
XEP-0048 | Bookmarks |
XEP-0084 | User Avatar |
XEP-0115 | Entity Capabilities |
XEP-0163 | Personal Eventing Protocol |
XEP-0166 | Jingle |
XEP-0184 | Message Delivery Receipts |
XEP-0191 | Blocking command |
XEP-0198 | Stream Management |
XEP-0234 | Jingle File Transfer |
XEP-0237 | Roster Versioning |
XEP-0245 | The /me Command |
XEP-0249 | Direct MUC Invitations |
XEP-0260 | Jingle SOCKS5 Bytestreams Transport Method |
XEP-0261 | Jingle In-Band Bytestreams Transport Method |
XEP-0280 | Message Carbons |
XEP-0313 | Message Archive Management |
XEP-0333 | Chat Markers |
XEP-0352 | Client State Indication |
XMPP is an extensible protocol. These extensions are defined in so called XEPs. Conversations supports a couple of those XEPs to improve reliability and all in all provide for a better user experience.
There is a chance that your current XMPP server does not support these extensions; therefore to get the most out of Conversations you should consider either switching to an XMPP server that does or — even better — run your own XMPP server for you and your friends.
We also made it very easy to register an account on our very own XMPP server conversations.im.
The internet connection on cell phones is rather unstable. It constantly switches between WiFi and 3G and might even drop out on occasion. The XEP-0198: Stream Managment allows Conversations to survive those switches. Instead of having to establish a completely new session the servers gives the client a 5 minute window to resume a previously established session. Messages that arrived in the mean time will be redelivered automatically.
Stream management also minimizes traffic by sparing the client from fetching static information (contact list, conference bookmark, avatars) on every connect.
Using XEP-0352: Client State Indication Conversations communicates to the server whether or not the client is in the background right now. Based on this information, the server can withhold unimportant packages and thus allowing the client to stay in deep sleep for longer.
You are no longer limited to one device. If you are online with multiple devices simultaneously, the XEP-0280: Message Carbons will be used to send copies of both your sent and received messages to all devices.
If you are installing Conversations on a new device or catching up after being offline for a while, Conversations will use XEP-0313: Message Archive Management to fetch the message history from your server.
Your contact isn’t responding immediately? Conversations uses XEP-0333: Chat Markers to inform you when
your messages have been read.
And since Conversations cares about your privacy you can
easily opt-out of this feature as well.
Are your contacts still using old, unreliable clients? Turn on XEP-0184: Message Delivery Receipts in the expert settings to make sure your contacts have successfully received your messages.
Put a face to your contacts. Conversations lets you upload a profile picture (Avatar) to your server for all your contacts to see by utilizing the PEP based XEP-0084: User Avatar. Contrary to other methods of publishing avatars, the PEP based approach handles data usage more efficiently by separating data and meta data.
On top of that, Conversations allows you to use the contact name and pictures provided by the Android address book.
Conversations gives old features a new spin. Being able to organize your contacts into groups
has been an XMPP feature for a long time. However, instead of the tree-like representation
most XMPP clients provide, Conversations uses a tag based approach, letting you easily search for any group or status.
To keep Conversations as simple as possible, this feature is turned off by default. If you
need to handle a large contact base, you can enable it via the Show dynamic tags
switch in the settings.
If you have a general question about Conversations that has not been answered by our FAQ, you can join the Conversations group chat on: conversations@conference.siacs.eu
Do you want to use Conversations in your company and require assistance in setting up a suitable XMPP server or are you having problems getting started with Conversations?
Contact the maintainer Daniel Gultsch to purchase professional support.
This is a short excerpt of the entire, much more detailed FAQ that can be found in the README.md at our Codeberg repository.
Conversations is entirely open source and licensed under GPLv3. So if you are a software developer, you can check out the sources from Codeberg and use gradle to build your APK file.
The more convenient way — which not only gives you automatic updates but also supports the further development of Conversations — is to buy the App in the Google Play Store.
Buying the App from the Play Store will also give you access to our beta test.
XMPP, like email, is a federated protocol, which means that there is not one company you can create an official XMPP account with. Instead there are hundreds, or even thousands, of providers out there. One of those providers is our very own conversations.im. If you don’t like to use conversations.im use a web search engine of your choice to find another provider. Or maybe your university has one. Or you can run your own. Or ask a friend to run one. Once you've found one, you can use Conversations to create an account. Just select register new account on server within the create account dialog.
Using your own domain not only gives you a more recognizable Jabber ID, it also gives you the flexibility to migrate your account between different XMPP providers. This is a good compromise between the responsibilities of having to operate your own server and the downsides of being dependent on a single provider.
Learn more about conversations.im Jabber/XMPP domain hosting.
If you already have a server somewhere and are willing and able to put the necessary work in, one alternative-in the spirit of federation-is to run your own. We recommend either Prosody or ejabberd. Both of which have their own strengths. Ejabberd is slightly more mature nowadays but Prosody is arguably easier to set up.
For Prosody you need a couple of so called community modules most of which are maintained by the same people that develop Prosody.
If you pick ejabberd make sure you use the latest version. Linux Distributions might bundle some very old versions of it.
Conversations will automatically look up the SRV records for your domain name, which can point to any hostname port combination. If your server doesn’t provide those, please contact your admin and have them read this document on the prosody wiki. If your server operator is unwilling to fix this you can enable advanced server settings in the expert settings of Conversations.
The address book integration was designed to protect your privacy. Conversations neither uploads contacts from your address book to your server nor fills your address book with unnecessary contacts from your online roster. If you manually add a Jabber ID to your phones address book, Conversations will use the name and the profile picture of this contact. To make the process of adding Jabber IDs to your address book easier, you can click on the profile picture in the contact details within Conversations. This will start an add to address book intent with the JID as the payload. This doesn’t require Conversations to have write permissions on your address book, but also doesn't require you to copy/paste a JID from one app to another.
Conversations is being developed on Codeberg by a team of volunteers under the lead of project founder and maintainer Daniel inputmice Gultsch. Translations are being managed on Weblate.
The Conversations Team is always looking for new volunteers to fix bugs, develop new features or for simply providing unique and fresh ideas that help Conversations to stay the most advanced and easiest to use XMPP client out there.
Start out by searching our issue tracker for open tickets or get to know us in our group chat on conversations@conference.siacs.eu
We are also looking for translators. Transifex provides a very easy to use GUI. You just need to create an account and request to join a language team.
If you bought the App on Google Play, you can get access to the latest beta version by joining the testing program using this link.
Conversations also provides you with a great base to create your own instant messenger for your customers or employees. If you don’t have the time or resources to do this yourself you can hire the lead developer Daniel Gultsch to provide you with the solution you need.
Daniel added a couple of features we needed to be able to roll out Conversations to our users, one was support for server side group bookmarks, the other one was avatars. Development was professional and we got early snapshots to test ourselves, the features then got added to the next public release. I can highly recommend hiring Daniel.
Daniel has consistently impressed us with the quality of his code and responsiveness. Definitely one of the best and most professional programmers we've encountered.
Copyright 2014–2024 Daniel Gultsch