I’m fed up with the word “alternative.” There, I said it. When you use alternative to refer to an open source application, you are sure to get on my wick. “Linux is an alternative to Windows,” “GIMP is an alternative to Photoshop,” “LibreOffice is an alternative to Microsoft Office,” and so on. The word “alternative” gives a subtle connotation of inferiority to the thing it’s describing. It suggests it’s what we have to make do with, because for Linux there’s nothing better.
It is like when you say Ring is an alternative to Skype. No, no, it’s not. Skype is ghastly. It is proprietary; it is demonstrably insecure; there is evidence that Microsoft uses Skype to siphon off conversations to the NSA; and the GNU/Linux version still lags behind the Windows one. So no, Ring is not an alternative to Skype. Ring is a full-featured, open source product that you need to know about.
Installing Ring is pretty straightforward on many Linux distros. The project’s website gives (simple) instructions on how to get the software you need for several platforms.
On the likes of Debian and Ubuntu, you add a repository, update, and install using APT. On the latest Debian (9 at the moment of writing), you would do this:
sudo sh -c "echo 'deb http://nightly.apt.ring.cx/debian_9/ ring main' > /etc/apt/sources.list.d/ring-nightly-man.list" sudo apt-key adv --keyserver pgp.mit.edu --recv-keys A295D773307D25A33AE72F2F64CD5FA175348F84 sudo apt-get update && sudo apt-get install ring-gnome
For the latest Ubuntu (16.04 at the moment of writing), you would do this:
sudo sh -c "echo 'deb http://nightly.apt.ring.cx/ubuntu_16.04/ ring main' > /etc/apt/sources.list.d/ring-nightly-man.list" sudo apt-key adv --keyserver pgp.mit.edu --recv-keys A295D773307D25A33AE72F2F64CD5FA175348F84 sudo add-apt-repository universe sudo apt-get update && sudo apt-get install ring-gnome
Likewise for Fedora:
sudo dnf config-manager --add-repo http://nightly.dnf.ring.cx/fedora_23/ring-nightly-man.repo sudo dnf install ring-gnome
If you are an Arch user, you can find Ring in the AUR, and you even have a choice between the GNOME or KDE clients. Look for ring-gnome or ring-kde.
As for openSUSE, it turns out Ring is packaged in the openSUSE’s user repositories. It installed without a problem for me, and I was able to use the client’s chat functionality. However, the back end would die every time I received or tried to place a call. I sent a bug report, and the Ring developers are very active and responsive, so maybe by the time you read this, the problem will be sorted.
Installing on Android
Getting Ring to work on Android is also quite easy. First, it is on Google Play so you can grab it from there.
However, if you are a bit paranoid about whether Google messes with its downloads, you can also find Ring on F-Droid, the independent marketplace for Free and Open Source Android software. You can enable F-Droid by grabbing and installing its apk. Remember, you must have “Allow installation from sources other than Pay Store” activated on your device — this option is usually one of the Security options within your Settings. You can then use F-Droid to install and download Ring from the repository.
Placing a Call
Now that you have it installed, let’s phone someone.
For the desktop, you’re best option is Ring’s GNOME client, because it requires very little in the way of dependencies (even on non-GNOME desktops) and I found it to be much more stable than the KDE client. You will also see how to use the Android client.
Although you may see two components when you go to install Ring from your software administration program (and, yes, you have to install both client and daemon), when you run the client, the daemon runs automatically. There’s no need to run it by hand with systemd or anything like that.
The first time you run Ring, it will register you within its system (it relies on a p2p network) and assign you an identifier in the shape of a long string of hexadecimal numbers. Ring does not have a centralized server and nodes do not store information of your calls, but you do need to be uniquely identified to get calls routed to and from you. Having said that, this is the only identifier you will ever need. Ring does not require you input a name, email, or anything else (Figure 1).
Your details and configuration are saved in your home folder under .config/ring/dring.yml. That is the file you have to save if you switch computers or reinstall your operating system and overwrite your home directory.
Once you have your identification number, you can send it to other Ring users so they can call you. You can also send it to yourself, to, for example, your smartphone and then import it into your Android client so you can use one account across multiple devices.
When you get a number from a friend, copy and paste it into the search box at the top of the panel on the left. Then, click on the phone icon to place your first call. Once you have been authorized by the receiving party (i.e., they accept your call), you can start chats or video calls or add the contact to your address book (Figure 2). Right-click on your contact’s number to see all the options.
The same goes for the Android client, except you can also scan a QR code from your friend’s desktop or phone, and then press the phone icon to place your first call — use the QR icon in the upper right-hand corner of the screen to do this (Figure 3). Once authorized, you can tap on the contact and start a text chat, voice or video call, or add the number to your contacts (Figure 4).
While placing a video call from the GNOME client (Figure 5), if you hover over the video stream, a series of buttons appear along the bottom of the panel. They allow you to, among other things, mute your microphone, disconnect your video, and record the audio from the conversation.
In the GNOME client, you have a tabs at the bottom of the panel on the left of the window. Use the the left- and right-pointing arrows to cycle through Conversations (i.e. text chats), Contacts (your address book), and History, which contains the logs of your placed and received calls.
Finally, probably the coolest feature in Ring is that you can use it to organize conference calls with several users simultaneously. At the moment, you can only organize conference calls from a desktop client, but any client — even Android clients — can participate.
It is not very clear by just looking at the interface how to start a conference call, and there is no option or menu. However, it is really simple. First, just place call from the GNOME client to one of the participants and wait for her to pick up. Once she does, go to the Contacts tab in the left panel and grab the names of the other people you want to invite and drag and drop them onto your friend’s name. Hey presto! Multi-user conference!
Ring as SIP client
You can also configure a Ring client, be it GNOME, KDE, or Android, to use your existing VoIP system transparently. In the GNOME client, click on the gear icon in the upper right-hand corner and choose the Accounts tab. At the bottom of the panel on the left, click on the drop-down menu and pick SIP, then press the + on the right.
The panel on the right will now show all the fields you need to configure your SIP account.
In Android, tap the menu icon in the upper right-hand corner and choose Manage accounts. Tap the + symbol and choose Add your SIP account.
Although I did hit some bumps with Ring due to its beta status, this is a project well worth following and supporting if you are considering an open and secure live communication system for your friends, family or business.
Seriously, Ring is a pretty cool piece of software. Not only it is free (as in beer *and* freedom), distributed under a GPLv3 license, it is also based on open and standard protocols. It will also integrate well with your existing VoIP framework. Additionally, consider all the privacy features it comes with: point-to-point strong encryption, no central server thanks to its P2P network of nodes, and no need to register personal data with a third party.
Couple all that up with it’s great multi-user conferencing feature, and you’ve got everything but an “alternative” to something else.