Chat

Jabber/XMPP Chat

Before getting started with EzIsland's Jabber/XMPP chat service, make sure you have read the disclaimer and have signed up for an EzIsland account.

Jabber/XMPP

Jabber, also know as the eXtensible Messaging and Presence Protocol (XMPP), is an open standard for real time chat communications. Until recently, popular message apps like Facebook Messenger and WhatsApp used the XMPP protocol under hood. Now, XMPP is increasingly being dropped in favor of closed proprietary standards that discourage communication between independent servers.

In order to get started using EzIsland's Jabber/XMPP chat service you will need an an XMPP client. A client is an application on your phone or computer that will communicate with EzIsland to send and receive messages. To use an XMPP client, you will need your Jabber ID (JID), also called an XMPP address. A JID is similar to an email address and it is used to identify you on the XMPP network. Your EzIsland Jabber ID will be your EzIsland username followed by @ezisland.org, so if you signed up with the username alice, then your Jabber ID will be alice@ezisland.org.

Encryption

Unlike many proprietary messaging apps, Jabber/XMPP allows its users to encrypt their messages using what is called OMEMO encryption. OMEMO encryption works by generating encryption keys are your device and using these keys to encrypt messages for the intended recipient. When a message is encrypted, only the intended recipients are able to decrypt it. Since all messages sent through EzIsland are stored on the EzIsland server, it is important to use encryption to ensure your privacy in the unlikely event that this data is breached. Keep in mind that while many XMPP clients support encryption they may not have encryption enabled by default. Additionally, even if you have set up OMEMO encryption on your device, the people you are messaging might not. In this case, the messages you send will be encrypted, but the responses might not be. Most XMPP clients will let you know which messages are and aren't encrypted by displaying padlock or shield icons next to the encrypted messages.

Be aware that images, audio, video or any other non-text media will never be encrypted by the XMPP protocol even if your messaging client displays a padlock next to that message. The reason why this is the case has to do with how non-text media is handled by XMPP. To send an image to someone, the client will actually upload that image to the EzIsland server in an unencrypted format. The client will then send a link to that image so that the peer can subsequently download it. While this link may be encrypted so that other users won't know where to download the image, the image itself is stored unencrypted on the server. To send encrypted images, voice, or video you should use a different EzIsland service such as Email or VoIP SIP.

Jabber/XMPP Clients

I have listed the best clients available for each platform below along with instructions for how to install them and set up OMEMO encryption. All these clients are open source and free to use. When logging in for the first time with these clients, they will give you and option to either register an account, or log in to an existing account. You should always choose the option to log in to an existing account and use your Jabber ID (such as alice@ezisland.org) as the username and your EzIsland password as the password.

In order to reliably receive chat messages, you should make sure that your client is always running in the background on your computer or phone. If you are moving between different networks (such as between WiFi or data, or accross routers), you should also periodically reopen your client and allow it to reconnect to EzIsland. This ensures that EzIsland always knows where to route incoming messages. Finally, if you have multiple clients logged in at once (such as on your computer and on your phone), chat messages may only be sent to one of them. Usually the chat message is sent to the client that most recently reconnected or logged in.

Windows/Linux/MacOS

Gajim is currently the best open source XMPP client for windows and linux computers out there. Instructions for installation are available on Gajim's website. Gajim is also available for MacOS but requires knowledge of the command prompt to install. Mac users not familiar with the command prompt may want to try Monal first. Unfortunately, OMEMO encryption is not enabled by default on Gajim. To set up OMEMO encryption, you will need to open Gajim and navigate to the plugins menu item. From there, you should download the OMEMO plugin and enable it. Even after enabling the plugin your messages will still not be encrypted automatically. To use OMEMO encryption you must also click the padlock icon in the chat window and select OMEMO. After selecting it, Gajim will prompt you to trust the "fingerprint" of your peer. A "fingerprint" is a unique number that identifies your peer's public encryption key. Once you tell Gajim to trust this fingerprint, then you're done and you can send encrypted messages. Remember that the recipient of these messages must also set up OMEMO encryption on their own client to respond.

Android

Conversations is a free and open source client for Android phones. It by far the best XMPP client available on Android. There are two options for installing Conversations. While conversations is available on the Google Play store, the the store asks that you to give a "required donation" of $2.49 in order to support the developers of this free software. However, true to its open source mission, Conversations can be downloaded for free using the F-Droid package manager. F-Droid (Free Android) is a repository of free and open source Android applications which can be installed via their website. Once F-Droid is installed, it can be used to install Conversations for free.

Luckily, Conversations enables OMEMO encryption by default. However, one should still ensure that their messages are encrypted by selecting the padlock icon on the chat pages.

MacOS/iPhone

MacOS/iPhone is something of a special case because the current open source clients are not quite as stable or reliable as Gajim or Conversations. While Gajim is available for MacOS (not iPhone), it is complicated to install. If you are using iPhone or you can't install Gajim, you should try one of these clients which are all available on the app store: Monal (iPhone/MacOS), Beagle (MacOS), or Siskin (iPhone). None of these clients are particularly stable or bug free and due to the way iOS is designed they should also be kept running in the background and periodically checked in order to receive messages. While OMEMO is not enabled by default in any of these, it can be enabled on a per chat basis by clicking the padlock icon. Messages that are encrypted will be displayed using a similar padlock while unencrypted messages won't. Another client called ChatSecure is often considered the most stable and popular iOS client. However I unfortunately can't recomend it. Although the developers claim to have full support for OMEMO encryption, there are serveral known bugs that cause ChatSecure to silently drop OMEMO encrypted messages about 50% of the time.