Jami

Private Conversations

Author(s):

The messenger app Jami offers clients for all popular operating systems and promises maximum anonymity for chats, as well as voice and video calls, by dispensing with central servers.

AOL, ICQ, MSN – the list of these once extremely popular messengers could be extended considerably. Today they are consigned to internet history, although some online providers still try to sell especially short or easy to remember ICQ numbers for thousands of US dollars.

But the world today uses WhatsApp. Over 1.5 billion users use this messenger, which Facebook acquired in 2014 for $19 billion [1]. Away from the mainstream, smaller messengers such as Wire, Signal, and Telegram have carved out a niche for themselves. At the top of the list of reasons why users choose one of these alternatives is the desire for more privacy.

Most messengers require central servers in the background, and this, in turn, means registering with your email address or phone number. This is not true for the open source Jami. In a similar approach to BitTorrent, the Jami messenger uses a distributed hash table to set up its own network and can therefore do without central registration [2]. You only need to register with the service if you want to have a unique username that can be found using the messenger's search function – but this does not mean supplying any personal data. Jami is available for Linux, Mac OS X and Windows, as well as for smartphones with Android [3] and iOS [4], and TV sets with Android TV.

Installation

The developers provide installation files and package sources for Fedora, Debian, and Ubuntu. Listing 1 shows you how to install Jami on Ubuntu 19.04; instructions for other distributions can be found on the project's website [5].

Listing 1

Install Jami on Ubuntu 19.04

$ echo 'deb https://dl.jami.net/ring-nightly/ubuntu_19.04/ ring main' | sudo tee -a /etc/apt/sources.list.d/ring-nightly-main.list
$ sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys A295D773307D25A33AE72F2F64CD5FA175348F84
$ sudo add-apt-repository universe
$ sudo apt update
$ sudo apt install ring

If you don't want to add a package source to your system right away, you can also pick up deb packages for Ubuntu (16.04 to 19.04) and Debian 9 and 10. However, at the time of writing, the links to the 32-bit version of the program pointed into a black hole. Users of Arch Linux will find the program, dubbed jami-gnome here, directly in the distribution's repositories.

After the install, you can load the program by selecting the Jami entry in the application menu. Jami will not work without a user account; you can create one by clicking on Create local account. You can also choose to restore an account that was saved previously (Figure 1). Click on Advanced… for the option to create a SIP account, (see the "Jami Today" box).

Figure 1: On the first launch, you will need to create a new Jami account, but you do not need to prove your identity to the service with an email address or a mobile phone number.

In the screen that then appears, Jami asks you to enter a profile name. You can enter an image that can also be captured directly via webcam (Figure 2). You can protect the account against unauthorized access with a password. Whether or not you register a username is up to you. With a Jami account, you can claim a unique and freely selectable username that gives other Jami users the ability to find you using the program's search function. However, the messenger does not store anything else in the account; the operator cannot log chats or your contact list. Communication is also encrypted end-to-end and therefore protected against sniffing by third parties.

Figure 2: Anyone who wants to can remain completely anonymous with Jami. The Register username option is only there to help other people find you through the search feature.

First Chats

At first, Jami shows you very little in the main window. The sidebar contains a search function and, later on, your saved contacts. In the middle, you will find your Jami username – if you use one – or your ID in the form of a cryptic combination of letters and numbers.

To contact friends or acquaintances, you need to get their IDs or just their usernames. If your contact uses Jami on a smartphone, you can alternatively set up the connection using a QR code, which you call up using the button next to the ID (or name) and then scan it using the Jami mobile app.

When the first message appears, you are asked if you want to accept the contact. From now on, the chat will appear in the sidebar. If your contact uses a Jami account, you will find the chat under that username. Otherwise Jami will only show the cryptic ID; the chat cannot be renamed as yet.

In addition to text-only messages, Jami supports sending files and audio and video conversations with two or more participants in resolutions up to 4K (Figure 3). In the latest version, Jami also gives users the ability to send audio and video messages, much like WhatsApp.

Figure 3: Jami supports audio and video chats, and video chats with multiple callers. The number of callers is only restricted by the bandwidth of the call initiator's Internet connection.

Another new feature of the revised version is support for transferring your own desktop. To do this, start a video call and then right-click on the image. In the context menu you can then choose between sharing a screen section and sharing the entire screen. On Linux, however, screen sharing only works in combination with the X server. Users with Wayland will first need to switch to the classic Linux desktop.

You also have the option to transfer a video file by selecting the Import file menu item. The More Information option provides statistics and details, such as the frame rate or the audio and video codecs used.

Configuration

Jami hides all settings options behind the gear icon that you find next to the account name in the application's header bar. Go to General and you can then configure, say, whether Jami always starts automatically when you power on the system, and which events it should notify you about. In Media, you can define the audio and video devices to be used along with the webcam resolution for video chats. This is also where you enable hardware acceleration.

In everyday use, the last tab, Account, turns out to be the most important. This is where you register a Jami username, define an image for the account, and temporarily deactivate or reactivate the account (Figure 4). You will also want to export the account, because a backup of this type is the only way to restore an existing account when you install a new system.

Figure 4: A Jami account can be used on multiple devices. However, because the service does not store messages centrally, you will not see the same message history everywhere.

In the lower section of the dialog, Jami offers the option to use the active account on multiple devices, such as a smartphone or a second PC. To do this, select Link another Device and enter the password for the account in the following screen. Click on Export to network to initiate the connection. Jami will then generate a PIN in the form of an abbreviation like nix66ilp. Note that you need to complete the next step quickly, as the PIN code expires after a few minutes.

Now create a new account on the second device, but select the option Import from device. Then enter the Password and the previously created PIN. You will now see the previously created contacts on the second device, too, and will be able to start chats. Since Jami only stores the chat history locally, and not on a central server, you will only see the conversations that took place on the individual device. There is also no archive of the previous chats.

In practice, this means that you will automatically receive incoming messages on all connected devices. However, you will only ever see your replies on the device on which you wrote them. So you can't seamlessly switch between two devices with Jami. Data synchronization across multiple devices would require a central storage location, which Jami deliberately avoids in favor of privacy.

Conclusions

Testing Jami left me with some reservations. Text chats work reliably, but quickly become confusing if you communicate with many people who do not have a Jami account and therefore do not have a username. In the sidebar, there are many chats that only show the contact's ID as a distinguishing criterion. The developers urgently need to improve this, a suggestion has already been posted to the project's bug tracker [6].

When sending messages, problems repeatedly occurred in hands-on tests. Jami delivered text messages reliably, even to accounts that were used on several devices (such as on a PC and a smartphone) at the same time. Pictures or documents sent via Jami's encrypted network often got stuck. The client then reported Initialize File Transfer, but nothing happened at the recipient's end.

Jami was impressive in video chats with two or more participants. It is one of the few messengers in the package sources of common distributions that support videoconferencing without the need to register with a service. You will definitely want to give the program a chance and experience it for yourself.

Jami Today

What is now Jami used to go by the name of SFLphone and then later on Ring. Originally the program was intended as a plain vanilla softphone for SIP providers. The function still exists, even though the messenger functions are now the main focus. The current "Free as in Freedom" version now offers cross-platform videoconferencing (until now, this function was only available in the Linux version), audio and video messaging in the style of WhatsApp, and a dark theme. In addition, Jami now allows users to broadcast their own desktop or individual windows instead of a webcam image.