New Release of Ring: “Live Free or Die” Version

Montréal, July 25th, 2018 – Savoir-faire Linux, a leading open source software company in Canada, has launched a new release of its free and universal communication platform Ring, called “Live Free or Die“, which is also the official motto of the U.S. state of New Hampshire. This major release includes additions such as audio and video call recording, push notifications, as well as quality, security and stability improvements.

Since its inception, Ring has always aspired to become a truly universal and stable communication platform at the service of societies while respecting their privacy and their freedoms. Today, with its iOS application being released, it has closed the platform compatibility gap.

Everyone who uses any of the following platforms can benefit
from Ring and join its community of users.

  • GNU/Linux (Ubuntu, Debian, Fedora)
  • Android & Android TV
  • Windows
  • macOS
  • iOS (iPhone & iPad)

OpenDHT: The Technology Behind Ring

OpenDHT Logo Created by Ring’s Team

Ring is a fully distributed system based on OpenDHT technology Ethereum  Blockchain that doesn’t need any central authority, an enterprise or even a server to function. Consequently, it avoids keeping centralized registries of users and storing their personal data. In addition, Ring is based on standard security protocols and end-to-end encryption. Thus, it prevents decryption of communications over the network and consequently offers a high level of privacy and confidentiality. In addition, Ring’s technological capacity can be expanded to a wider industrial setting with use cases like Internet of Things’ projects, industrial systems as well as custom communication needs, to name a few.

Ring’s Key Features and Characteristics

  • Encrypted audio/video/messaging communications,
  • Screen sharing,
  • Audio and video call recording,
  • Push notifications,
  • Conferencing service available on GNU/Linux and Win32 clients,
  • Support of Ethereum Blockchain as a distributed public users’ database,
  • Distributed communication platform (OpenDHT),
  • Platform support on GNU/Linux, Android (4.3+), Windows (Win32 and UWP), macOS (10.10+) and iOS (9.3+),
  • Distributed under GPLv3+ license.


Sources and Information:
Marie Pelland (Director of Communications)
+1 514 276 5468 (ext. 328)


Push Notifications: A New Feature Added to Ring Project

Push Notifications: A New Feature Added to Ring Project

Push notifications are essential part of the effective end-user experience on mobile platforms. They tend to boost the app engagement and users find them useful and handy as they ease their communications. Although push notifications are widely considered an advantage for most apps, they are regarded most useful for messaging, email and other types of communication apps in general. For this reason, our team of developers have been working hard to make sure Ring is equipped with such critical feature in lockstep with Ring users’ expectations. Today, Ring’s push notification is available for its Android and iOS versions and the users can stay informed of their accounts’ developments while their phones have been idle.

For more details, visit :

For further information:

Ring Universal Communication Platform Now on Android TV!

Ring keeps surprising communication experts and enthusiasts! Ring is now available on Android TV box and other smart TVs. Ring has become the only  communication software available on the Google Play Store for Android TVs, since the discontinuation of support for the TV version of Skype in June 2016. This new release is quite different from its mainstream app which can be downloaded on a myriad of devices such as cellular phones, tablets, Mac and PCs.

Recall that Ring is a free, distributed and universal communication software, available under the GPLv3+ license. Ring users can communicate in different ways, using it as a telephone (VoIP), a media sharing tool (audio/video), a messaging system, or as a communication platform for connected devices such as the case of the Internet of Things (IoT). Ring is often seen as a free and open source alternative to Skype. Its success is based on a distributed and decentralized network that guarantees a high level of privacy and confidentiality for its users. The Ring project – which became a GNU package in 2016 – has the unwavering support of the community of developers around the world as well as the Free Software Foundation.

Rethinking Ring for the Android TV

In order to make sure you will have a satisfying and enjoyable user experience, our developers have reworked the user interface of the Android Ring application to adapt it to Android TV standards. To accomplish this task, it was necessary to rethink the ergonomics and navigation of the Ring application to ensure it functions with a remote control and graphic components offered by the platform.

In fact, the architecture pattern underlying Ring Android application allows  developers to transfer the entire dependencies and data parts of the mobile version onto the TV app so as to be able to completely focus their attention on the GUI part.

Usability constraints have led developers to focus on key features like:

  • Contact search,
  • Online audio/video calls,
  • Shared screen display from the caller.

These features remain small, but the development continues to offer in coming weeks, expanded use possibilities. Having been designed with the objective of simplicity, stability and user-friendliness,  Ring can serve both domestic and professional needs. It can be used on Android TVs to connect family members together, or simply replace conference phones in corporate meeting rooms.  In fact, availability of the Ring as a TV app on the Google Play Store makes it an easier-to-use communication platform, in comparison to a secondary computer or display setup.

Ring on Android TV

Help us to improve Ring!

Ring is constantly improving to offer the best of communication. As the software is in active development process, some bugs remain and many challenges still await our team of developers. The assessments provided by the community of users, testers, and developers on the quality and use of the platform are then essential to help us identify problems, resolve them, and improve the experience.

For the next release of Ring on Android TV, lot of questions are focused on the compatibility of systems and webcams, other than Logitech as well as NVHI hardware. Also, we encourage curious, free software users and enthusiasts to test Ring on different medias and different systems. Your experience was a success? or crashes remain with your TV or TV box? Send us your comments at You will also contribute to the success of Ring!

Download Ring on Android TV

If you want to experience this new communication platform, just download it for free from Google Play Store!

For further information:


Research : UQAM adresses technical challenges raised by the Ring project

At the leading edge of innovation, the Ring project — a secure and distributed voice, video and chat communication platform — paves the way for complex theoretical challenges. Through a research agreement, Savoir-faire Linux and Université du Québec à Montréal (UQAM) collaborate to improve the data persistence and indexation in its underlying distributed hash table software library, OpenDHT.

Blue brain design

With the financial support of the Natural Sciences and Engineering Research Council of Canada (NSERC), a group of IT students at UQAM are modeling the problems raised by the high technicality of Ring, and implementing robust codes to resolve them. As the research can lead to innovative solutions, Professor Alexandre Blondin Massé who is in charge of the project, is planning to publish the results within the next year.

Already conclusive results: enabling data persistence and reliable data stored for a limited time on the DHT network

Simon Désaulniers is now completing a Bachelor of Computer Science. He has just modeled and implemented a solution to store data for a limited time on the DHT network. With this progress, the users of Ring will soon access messages that are sent to them while they are not connected. This new process makes sure that each message is encrypted when it is stored and intact when it is received.

A major challenge: Solving the DHT Indexation by data research from any related element

Graduate and PhD students seek to resolve the question of DHT Indexation. To contact a Ring user, it is necessary to know his 40-character ID. The DHT indexation will allow users to look for another user’s Ring ID through information he has made public such as his name or a public alias, while preserving his anonymity. Wondering how it’s possible? Marco Rebado, Sylvain Labranche and Simon Désaulniers are precisely devising a solution. In the meantime, feel free to communicate confidentially with Ring!


Say Hello to Ring ― Ultimate Privacy and Control for your Voice, Video and Chat Communications

Joint the Ring!I am very excited about an initiative that we are spearheading at Savoir-faire Linux which takes aim at the secure communication market. The major issue at large is that you cannot have privacy when there is a centralized server or service which can monitor and measure your communication with others – Big Brother is always watching. The solutions on the market today require that you connect via their service so that they can define a revenue model such as selling advertising or charging usage fees.

Being true to our roots of supporting and developing free software, SFL is developing a communication platform that requires no centralized server to communicate and this leave the power of privacy in the hands of the user.

By adopting the same technology that is used by popular Torrent networks – Distributed Hash Tables (DHT) – the platform creates its own secure network over the Internet by which it can distribute directory functions, authentication and encryption across all systems connected to it – we call it Ring.

So maybe you are asking yourself now:

Okay, it sounds cool but what does that mean for me?

Let’s take a look at some of the advantages:

  • There is no centralised server so no one can track you and the service can never go down
  • You control whom you give your ID key to – without knowing your key there is no way to reach you
  • Its free – as in no charge and also as in GPL
  • It doesn’t require any configuration setup and no password
  • It is all encrypted – communication is point to point encrypted for chat, video conference and voice calling up to AES128
  • It is available on multiple platforms – Linux, Mac, Windows, IOS, Android, and potentially more

At the Heart of Ring: OpenDHT — A Distributed Hash Table


This article aims to explore OpenDHT technology, briefly explain its underpinning theoretical logic, and explain why cryptography is vital to it.

The need for efficient public distributed systems is becoming increasingly important. Particularly, as the influence of the Net giants centralizing information and communications is growing exponentially, we are faced with a paradox. The Internet gives network nodes the unprecedented opportunity to exchange directly, without centralized processing point. Yet, most networks rely on centralized systems for sharing and storing data! In order to address this issue, we have developed a technology known as OpenDHT – a free and open library implementing a distributed hash table – and implemented it in our innovative decentralized communication project: Ring.

What Is A Distributed Hash Table?

DHT (distributed hash table) is a class of distributed systems that provides access to a shared dictionary of keyvalue pairs from any node of the network where data are distributed among the participants. Currently, the most popular DHT networks such as Mainline DHT (BitTorrent) are used for peer to peer file sharing. On these networks, the key is the identifier of the torrent file – also called “Magnet links“– and the values are the IP addresses of the seeders, i.e. the clients sharing the torrent.

What Is OpenDHT?

OpenDHT is a light and robust network project DHT written in C++11 proposing a simple to use interface for application developers. Originally inspired by the DHT library developed by Juliusz Chroboczek and used, for example, by the BitTorrent client Transmission, OpenDHT includes a number of important innovations. It can store different data types; it has a listening function, and it is simple to work with.

OpenDHT provides the ability to store any type of data – not just IP addresses – with a limit value of 64 KB. It has also a listening function (listen) enabling a node to be informed of changes in key values. Since we needed these crucial features for the Ring project, we pushed to create OpenDHT with the counterparty to make its protocol incompatible with the Mainline DHT network of BitTorrent.

For the Ring project, the listen function is, for example, used to enable receiving calls or messages. This is even the case for computers behind NATs. In conjunction with the ICE technology, OpenDHT then allows the robust establishment of peer-to-peer connections.

OpenDHT is published on GitHub under the The GNU General Public License v3.0 with its earlier documentation available here. By the way, comments and patches are kindly welcomed.

OpenDHT is simple to use, thus reducing the cost and difficulty of developing applications that benefit from it. For example, starting a new node on local port 4222, and connecting to the network through a known node is as simple as these three lines written in C++:

dht::DhtRunner node;, dht::crypto::generateIdentity(), true);
node.bootstrap("", "4222");

Then storing any value on the network is achieved with a single line of code:

node.put("my_key", std::vector(5, 10));

The key to use will then be the SHA1 condensate of the text string “my_key”. The value will be a sequence of 5 bytes worth 10.

Later retrieve this value from another node will be as simple as this:

node.get("ma_clé", [](const std::vector & values) { 
   for (const auto & value : values) 
      std::cout << "Valeur trouvée: " << *value << std::endl;
   return true; 

The Theory Underpinning DHTs

In the most popular type of DHT network (i.e. Kademlia) used by OpenDHT, each node (i.e. participant program) of the network has a unique identifier evenly distributed in the identifiers space – a 160-bit space in our case.

Similarly, each data stored on the network is characterized by an identifier which is its key. The keys are uniformly distributed in the same 160-bit space as the node identifiers. Multiple values can share the same key.

The binary operator XOR (⊕) is defined as the distance operator between key, or between keys and node IDs. To recap, the XOR result is true if both operands have different Boolean values. This implies that the XOR result of two 160-bit keys is the “binary distance” between these keys: A ⊕ A = 0 for every key A. For two distinct keys A and B with X = A ⊕ B, the number of zero bits at the beginning of X will be equal to the number of bits common to the beginning of A and B.

This interesting property offers the ability to partition each node’s routing table using a binary tree. In fact, each node maintains and updates a routing table including mainly the neighboring nodes (in the sense of distance of the XOR operator introduced above).

Fig. 1. To find the R node with the values for the key h (close to R), the S node contacts A which is the closest to h in its routing table. The response of A includes the IP address of B, now the closest to h in the table of S, and which is contacted, and so on.

A data element, that is to say a key-value pair (K, V), will be stored on the L nodes that are closest to key K (typically with L = 8). Any node knowing K will be able to find V by an iterative algorithm which will lead him to contact nodes whose identifiers are increasingly closer to K (Fig. 1).

Queries including the K key and the reply of each node include a list of other nodes known as closest to K. V value will be found in just O (log (N)) iterations — N representing the number of nodes on the network.

Cryptography: A Critical Step in Network Security

Just like the Internet, public DHT are inherently unreliable networks. They involve trusting many other programs randomly on the network to store data.

Instead of trying to make the protocol resistant and withstanding any type of malicious node, which would be illusive, the OpenDHT approach is to consider the network itself as untrustworthy and build over an optional cryptographic layer public key, using the Public Key Cryptography Standards (PKCS) infrastructure, and to verify the author and message integrity (signature) and encrypt the latter with public certificates published on the DHT network.

Knowing the identifier of the contact_id public key of a contact, storing an encrypted data for this contact on the DHT network is as simple as:

node.putEncrypted("my_key", contact_id, value);

The cryptography layer (or identity layer) then will transparently retrieve the certificate of the contact, use the public key to encrypt the data, and then store it on the network.

This layer will also transparently check the signature of signed data received. If the check fails, the data is not presented to the application. Similarly, only encrypted data that can be decrypted are passed to the application.

Ring implements these cryptographic operations to securely exchange invitations, initiation of calls and private messages. The network can therefore be realistically used as a public meeting place – making Ring a truly distributed universal communication platform.


For further information: