From LinuxReviews
Jump to navigationJump to search

Jami is both a peer to peer voice over IP client program which supports secure voice and video communication over the Internet using SRTP to carry communications data and a custom protocol for service discovery using a distributed hash table (DHT). Jami does not rely on or need central servers to call other people using the same program. Jami is a great choice for making secure phone calls over the Internet using Android phones as long as those you want to talk to are also using Jami. The Linux version is utterly useless.

A GNU Project

GEEKO at the beach.jpg

Jami has been a GNU project since 2016.

History and (in)compatibility

Jami started out as a standard SIP voice over IP client with the name "sflphone". That original program is still in a lot of distributions repositories. As an example, Fedora 30 offers a wildly outdated packages called sflphone-kde and sflphone-gnome which were last updated in 2014.

sflphone was re-named to Ring late 2016. The name Ring did sort-of not stick; Ring was re-named to Jami' in December 2018. However, Jami is still called "Ring" in quite a few instances. dl.jami.net refers to the package repositories for Linux distributions as ring-nightly.

Jami can no longer be used as a client for traditional SIP and IAX services. This functionality has been stripped from the program.

Jami has it's own unique DHT service discovery protocol. One person running Jami on a phone can "discover" and call another person running Jami regardless of what network they are on without going through any central server. This may appear to be fantastic and in principle it is. However, Jami is the only program implementing the "jami" DHT protocol. You can not call someone using the Tox protocol using Jami. You can also not call or be called by anyone using traditional SIP/IAX VOIP software such as Zoiper. Jami's service discovery is limited to discovery of other people using Jami. There is also a compatibility problem between older and newer versions of Jami. The version included in the older Debian 9 Stretch uses the beta2 version of the DHT protocol and this version is not compatible with the final version used by modern versions.

Features and Usability

Jami is available for several platforms including Android, Linux, Windows and macOS.

The Linux version


The GNU/Linux version of Jami is built on the GNOME libraries and design principles. It is utterly useless and a complete waste of time. It will start up and launch a dialog box asking for a username and password. You can create a new "Jami" ID if you do not already have one. This step works fine.

Jami's register dialog box

Jami will present a window with no contacts - since you don't have any the first time you use it - upon the first launch. It looks like this:

Jami's main window

The main window has a button for sharing a QR code with your user-id with others. There is no button, option or method of adding other users. None. This is a pretty glaring oversight for a program which is meant for communicating with others. It's laughable - to put it mildly.

Someone with the Android version of Jami who's in front of your desktop computer can scan your QR code and add you. This will pop up a dialog box prompting you to confirm or deny the contact. That contact will be added to your list if you accept the friend invitation. This is the only way of adding contacts to the Linux version of Jami. If you and a friend run Jami on your laptops you're out of luck - even if you are in the same room - since there is no way of adding someone using just the Linux version.

There is a button where some options can be changed. There is no menu or anything like that since it's a GNOME-style program.

In conclusion: The Linux of version of Jami is a useless joke and a complete waste of time.

The Android Version

Jami version 20190602-01 from the free F-droid is more feature-complete than the GNU/Linux version.

The Android version of Jami.

The Android version of Jami has one default setting which completely breaks it: It will by default not run as a background service and therefore not accept calls. This can be changed by entering Settings where Run in the background can be enabled under "System". This will increase the phone's battery use while idle. However, it is required for the program to accept calls when it's not open. Jami is pointless if it only accepts calls when you're looking at it so enabling this option on your phone as well as the phones of people you want to call is essentially.

Adding and removing contacts on Jami for Android can be done by sharing a QR code or scanning a QR code. It's not possible to import a QR code from an image, it has to be scanned. You can share your QR code by e-mail or other programs. Those who receive it would have to open it on some other device and scan it using their phone.

Communicating with registered contacts works as long as the other party has their the Jami running and they configured it to run as a background service. It is possible to make voice and text calls. It is also possible to send text and files stored on the phone. The chat interface does have a Camera button in addition to a pick file icon. Clicking the Camera button does not do anything.

Voice calls sound clear as a regular phone calls when the call is made between people on high-speed broadband in the same area. This does not tell you much about the call quality over a typical Internet connection so take it with a grain of salt.

Verdict and conclusion

Jami's interesting technology. Using DHT for service discovery instead of central servers means you can just install it and use it without asking anyone. Calls are encrypted using secure encryption so Jami's got privacy and security covered.

Jami can only be used to call other people who have Jami installed and running and this severely limits it's usefulness as a general-purpose communications tool. You will have to make everyone you want to talk to install and run it if you want to use it regularly.

The Android version is quite nice and it may be useful if you manage to make a large amount of friends install it. The Linux version is basically useless.

The Android version is available from the free software F-Droid appstore as a package named f-droid.org: cx.ring.

Linux distributions will either have a really old version of Jami in their repositories or not have it at all. Up to date versions for Debian, Ubuntu and Fedora are available from https://jami.net/download-jami-linux/

Technical details

The Jami git repository has a wiki page with technical protocol information.

Add your comment
LinuxReviews welcomes all comments. If you do not want to be anonymous, register or log in. It is free.