25 July 2018
3 July 2018
Improving SIP Support for Ring
Sometimes when calling a public service or a company, you are answered by a bot and must select an option. To go through the menu, you need to click on your dialpad, and generally, at the end, you will be transfered to the person or department you are looking for.
As a SIP client, Ring needs to be able to answer interactive menus or, if used from the other side, to transfer the call to the right person.
To this end, we have improved these features. Now when using a SIP account on Ring, you will be able to engage with interactive menus. If you use the GNOME client you just have to press numeric keys on the keyboard. As easy as pie!
Moreover, the call transfer feature is available in the GNOME client, and will be added to other clients as soon as possible. So, in case you are using a SIP account and you receive a call you want to forward to another person, you can easily click on the "transfer" button and choose someone, either from your contact list or by entering a phone number.
We hope you enjoy these improvements.
11 June 2018
Video Recording for Ring Calls
A commonly requested feature in Ring has been the possibility to record a video call. Because Ring already supports recording audio calls, although not with ideal settings, this feature was also in demand.
We are proud to announce that Ring now officially supports video recording during calls! Ring's new video recorder tapes what you see in the GUI: your peer's video feed, while placing a preview of the local video in the bottom right corner.
A journalist or an employer can now record an interview for later reviewing and/or archival purposes. A user can record a call with a loved one. Vloggers/youtubers can record themselves all while having their reaction in real time seamlessly. In short, video recording allows users to accomplish work or practice their hobby without relying on a centralized service.
On the more technical note, video recording has been implemented in such a way that Ring users would know exactly what is being recorded without having to worry about what's going on. With the new video recording also comes some improvements for audio recording, namely compression. Ring now encodes audio with the Opus codec, instead of saving raw audio. This means that an audio call will no longer take up so much space on your drive. As for video, Ring uses VP8 for compression. Audio calls are saved as Ogg files (.ogg), while video is saved as Matroska files (.mkv). All the aforementioned technologies are free (as in free speech) and open, and as an added bonus, royalty and patent free. Best of all, these formats are widely supported, and are compatible with your favorite media player.
With video recording now implemented, Ring is one step closer to gaining a voicemail system. More customization options are sure to come. While video recording is only available on GNU/Linux for now, our team is hard at work to bring it to other platforms. On GNU/Linux, recording is as easy as it gets. All you have to do is click on the red record button (a red circle) to start recording, and click it once again to stop.
31 May 2018
Launching Our GitLab Instance!
Ring is a universal communication platform (and a free software project) the development of which heavily benefits from contributions of its community members. As such, the contribution process should be as easy and painless as possible.
Thus far, we have been relying on Tuleap as a means to facilitate collaborations, but it was intimidating for newcomers, to say the least. Tuleap's bug tracker and wiki are hard to find, particularly by those who are new to the project. For this and many other reasons, we decided to launch a new collaboration platform: https://git.ring.cx. This easy to navigate platform has two (2) main advantages over the retired one.
First, GitLab reduces the entry barrier especially for those who join the Ring community for the very first time and is easy to navigate.
It does not matter if you are a frequent member, a lurker, or a casual or even one-time contributer, you can just do your thing without being required to sign up for an account, as it was the case with Tuleap. Second, GitLab is an integrative platform. You can log onto it using your already existing GitLab or a GitHub account without new sign-ups; or, you can register an account on git.ring.cx, but you do not have to. Moreover, to make sure everyone has still access to the old information and repositories, we have migrated all issues to GitLab. As for the Wiki, it is available as usual on Ring's webpage at https://git.ring.cx/savoirfairelinux/ring-project/wikis/home. In addition, please note that Gerrit will still be used for managing patches and code review (see Gerrit's tutorial).
To sum up, we have made it easier to contribute to the Ring project and we invite you to join the community. We highly value our community fellows and we believe it has been because of their support that we have come this far. If you are wondering how to support Ring, you may consider these pathways:
- maintaining a Ring package on your distribution;
- submitting design issues;
- improving the documentation;
- filing tickets on the bug tracker; and
- supporting users or by translating Ring.
All can be accomplished through visiting our GitLab instance. And as a tip, please note that the issues on GitLab can be marked as "good first bug" or "help wanted". These could be great for your first code contribution to Ring.
14 May 2018
A Meeting with Richard Stallman: On the Future of Ring As a GNU Package
Ring Team Attenting the 5th Libre Seminar of ADTE 2018
On May 2nd, a small delegation of the Ring team attended the 5th Colloque libre de l’Adte 2018; a colloqium about free software, open data and open science as well as free access to resources and research for higher education purposes. This year, ADTE was held at The Université du Québec à Montréal (UQAM), a public university based in Montreal, Quebec, Canada.
The event was a packed one-day long seminar with many talks, interesting participants from academia, industry as well as the provincial and federal governments of Canada. The seminar hall was full of young students (some travelling from other cities and provinces) interested in learning about the implications of taking an open and libre approach to data and software production, distribution, and management.
Richard Stallman Visiting the Ring Team
At the event, we attended Richard Stallman's keynote, and exhibited Ring to the general public and participants alike. This seemed like a good opportunity to invite Richard to our office to disucss with him about Ring in more detail.
Richard is the founder of the Free Software Foundation (fsf.org). He started and shaped the GNU project and inspired many free software developers around the world. On both social and technological levels, he has helped the Ring project to evolve and for this reason he visited our Montreal office to have a face-to-face steering discussion with the team.
Richard Stallman is familiar with the project. In fact, Ring is a GNU package, and has made it to the list of the high priority projects of FSF in late 2016. For this reason, we find it important and encouraging to personally meet with Richard and discuss our ideas, the technical challenges we face, and in general the future direction of the project development.
In this meeting, we discussed the following key topics:
Further Protecting Privacy of Ring Users. We debated some concerns around Firebase powered push notification feature of Ring for mobile devices and its implications for the privacy of users. In line with this matter, the team explained their technical strategies and action plan they have put in place to deal with these issues.
Pursuing Ring’s Capacity as a Global Project. Richard posed the question of the capacity of Ring for serving millions of users and brought into light what technical issues might ensue as a result of such large scale use of Ring. The team explored this issue further through the lens of private blockchain.
Creating a Sound Brand Strategy for Ring as a GNU Package.
Moreover, questions about robustness of Ring's user-name system, the current load capabilities of the distributed network and Ring's use-cases for educational purposes were also raised and attended to. We also asked for his advice on debatable issues associated with Ring's website.
Overall, spending the day with Richard Stallman seemed like a crash course on the most interesting topics of Free Software, and indeed an enduring cherished memory for us all.
26 April 2018
Modern Mailboxes with Take&Send
Keeping Ring a Stable Platform
Last week we have all made a great effort to improve the stability of various Ring clients such as macOS, GNU/Linux and Android. Our developers managed to fix multiple issues in the account deletion part, and the GNU/Linux (GNOME) client received several fixes addressing issues with new account creation or network disconnection.
Privacy, Security and Stability Matters, so does Innovation
Creativity and innovation are very important aspects of our daily job as Ring developers. Whether adding a file sharing feature or maintaining the fully distributed platform of Ring, every Ring developer tries to be as innovative as s/he can. Lately, we discussed about the user experience improvements made by adding the image sending feature to the Ring App. It was indeed a cool project. Today, we are focused on another little but imapctful innovation: Scheduled Take&Send feature! Let's discover it in more details together.
Ins and Outs of Modern Mailboxes: Introducing Take&Send
A short while ago, Hugo Lefeuvre, a Karlsruhe Institute of Technology's Computer Science undergrad and a Debian Developer, joined our development team. Hugo is a free software enthusiast who will shoulder the task of developing the new Take&Send feature. This added functionality will allow Ring users to take pictures, record short videos/voices directly from the Ring client and send it to their contacts within just a few clicks.
What's more? Images and videos will be directly accepted (with size restrictions), images will be directly displayed and videos will be represented by a thumbnail. All of this is possible because of work already done to create image sending feature. However, received audio tracks will be displayed using a dedicated message layout.
Additionaly, this new functionality will lead to the development of a modern «mailbox» system. On the occasion where your call is not responded, this mailbox system is capable of recommending the user to record and send a video/audio message to the called contact. So, if your friend is busy now, don't worry, they will eventually get your message. Ring can function just fine as a mailbox. Such additions, however marginal, enrich Ring users' experience by adding variety to their communications, in form of text, emojis, audio, picture or video calls and messages.
Getting Your Hands on Take&Send
Summer will definetly keep us busy, entertained and creative with development and testing of these cool additions, but with the fall of beautiful fall leaves you can hopefully have your first-hand experience! The first release will be for devices running GNU/Linux (GNOME), but we will not keep you long on your toes. Our team will make sure this feature will be available on all platforms as soon as they can.
10 April 2018
Messaging improvement on Android
During the last few months we mostly focused on major new features for Ring such as file transfer, push notifications, and iOS support. Among other things, we have also discussed a few cosmetic features in order to offer users a more pleasant user experience while interacting with Ring.
Text messaging is the prime communication channel for many people, allowing for direct or asynchronous commuincations between users. Recently, we have noticed that the text messaging experience on Ring does not live up to Ring users' expectations so we decided to make several improvements to the conversation view such as sending images and displaying emojis, with the goal of making using Ring as pleasant as possible for every user.
Sending images is done through using the file transfer feature, added recently. Users are most likely to use Ring's file sharing feature to exchange images, therefore we have made an effort to make sure users swap pictures as easily and conveniently as possible. To this end, we focused on small images (less than 20MB) and designed the app to automatically accept, download and show images that come from the user's contact list. Also, by tapping on an image in the chat window, it automatically opens to full screen mode with a transition animation. Easy, convienent and fun!
Raw text messages are often dull as they lack context and emotions. Indeed, many users tend to add emojis to their messages in order to convey more meaning and be more effective. Sometimes a message only contains emojis followed by no text or even an image. In this case, Ring's conversation now shows emoji-only messages without any background(see the screenshot below), to stand out better and have a stronger impact. After all, emojis speak louder than words!
10 April 2018
File Sharing: Now Available in Ring
A Ring feature supporting secure file transfers has been recently added. So far, the Linux (GNOME), macOS, Android, and iOS clients have implemented this new feature. While files of any size can be transferred, special care has been given to the transfer of smaller image files (less than 20MB), which will be automatically accepted and immediately displayed in the chat view.
Secure peer to peer file transfer has never been this easy!
On the iOS platform, all accepted files are saved in the application documents’ folder which can be accessed using Xcode or third party applications. To make access even easier, the files can be copied into the Photos or Files applications, as well as shared via social networking directly from Ring. More specifically, in order to send a file, a user has two options: 1) select an existing file or a photo; or 2) send a new photo. While some images on iOS could have HEIC or HEIF format, Ring always transforms them into a PNG image format while preparing them for a transfer.
The Android platform along with the Linux (GNOME) and macOS desktop versions offer similar options, with a more flexible file access system.
We hope this new feature serves the Ring users well, and please do not forget to communicate with us to share your experience and feedback.
5 April 2018
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.
What Is a Push Notification?
When a smartphone is idle, certain applications are still capable of receiving notifications. This is mostly the case when a new message or an email is received. This notification, coming from an external server, forces the device to wake up from its standby mode and therefore is called “push notifications”. Adding this feature to Ring enables its users to be duly informed of a new message, a new call or even a friend request even when their application is not open or their phone is sleeping.
Why Is It a Challenge to Add a Push Notification to Ring?
Platforms like iOS refuse to have an application running in the background while the device is idle. Android now has similar restrictions (with Doze), at least for apps published on the Play Store. However, because Ring is fully distributed, powered by OpenDHT, it requires a DHT node to continuously listen to the network to be able to be notified of new messages or calls. To work with push notifications, a mobile device should request a remote DHT node (also referred to as a DHT proxy), in order to be able to receive push notifications and perform operations on the distributed network. While the device is listening for push notifications through a proxy node, Ring on the user's phone is automatically woken up upon receiving a trigger such as a new call or message. It would then retrieve the piece of information from the network, decrypt it, and eventually notify the user.
How Do Push Notifications work in Context of Ring?
When a user starts using Ring, a DHT node is automatically started. This node will do the job of exchanging information with the other DHT nodes available in the Ring network. Since Ring runs on a distributed network, the Ring app can operate in a distributed manner without any central server, thereby the network acts in place of an external centralized server.
However, we know that from a technical standpoint, the push notification system must be centralized. This is mainly because a push notification must travel through the push provider which is a service owned and provided either by Google (usually FCM) in case of Android, or by Apple (APN) for iOS devices. Equally important, the push gateway is a second service that is responsible for creating the notifications and passing it to the FCM or APN. Using information necessary for authentication (a password or a certificate) with the push provider, the push gateway must also be centralized.
Today, Savoir-faire Linux hosts the push gateway for the Ring app on a server “GoRush”. The specifications of which can be found in GitHub.
The push gateway is however accessible from any node of the OpenDHT network. This gateway can also be hosted on any other server, however, in this case the user is required to re-sign the Android or iOS application with the appropriate certificates to use push notifications.
It is noteworthy to mention that since the respect for privacy is our core value and of utmost importance in Ring project, we made sure that no sensitive user data goes through push notifications. Since the push server and push gateway have access to some potentially sensitive metadata (receiver IP address and device ID, time of events), and because push notifications require a central service, push notifications will always be optional.
A Closer Look into How Push Notifications Operate
By the end of 2017, with the help of the Free software community, we managed to make sure that OpenDHT has the capability to connect the user’s application to the main OpenDHT network through a proxy node. This makes sure that the node representing the user on the hash table can in fact connect to the proxy node and make a request to listen to the distributed network while being in its original place on the distributed network. The proxy, consequently, sends back the data to the user’s node to be decrypted. The ability to perform operations on the distributed network using proxy node can drastically reduce the consumption of mobile data. The user's local node is no longer synchronized with the rest of the network, but is only connected to the proxy. The feedback or information exchange between the node and the proxy can be done either directly, with a simple HTTP/TCP connection, or through a push notification. If the user chooses to go through push notifications, the proxy will send notifications and authentication information to the push provider via the push gateway hosted by Savoir-faire Linux.
Push notifications through the DHT proxy now allow Ring users to receive calls and messages at any time, even when their device is sleeping, while reducing mobile data and battery usage.
18 November 2017
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.