Tox Is Your New Secure Chat Application
In a previous article, I talked about the Ring communication app. The article proved quite popular and aside from drawing a bit of attention -- or maybe because of it -- that article also drew some criticism, including "What about Tox?" That’s a totally fair question, so here we are.
I have talked about about TOX elsewhere, albeit very briefly. And, when I saw the turn Skype was taking, I re-wrote parts of the ever-evolving Multimedia section in Ubuntu User magazine and included Tox as a recommended IM/video conferencing solution, with the caveat that it was still rough around the edges. Some time has passed since then, and now it’s time to check out TOX and see how the project is coming along.
Tox is open source, encrypts messages, uses a P2P network to relay messages, and has clients for a wide range of platforms, including mobile devices. So far, so cool. What Tox isn't is one, defined, closed application. It is actually a bunch of projects that revolve around the central toxcore project. In consequence, there are several clients and other bits and pieces you can use to communicate over Tox. Because most of us are end users, I’ll look at the project from that point of view and show how to get some clients up and running.
It seems that no official PPA for qTox is currently supported for Ubuntu, and the instructions on the Tox site are outdated and do not work. Don’t despair though. Although the site recommends compiling from source if you can't install from a repository, there will be no need for that today. The qTox's GitHub site says there are packaged versions of the client for many of the most popular distros compiled by a kind openSUSE user.
To install qTox on Ubuntu, for example, you can do the following:
sudo sh -c "echo 'deb http://download.opensuse.org/repositories/home:/antonbatenev:/tox/xUbuntu_16.04/ /' >> /etc/apt/sources.list.d/qtox.list" wget http://download.opensuse.org/repositories/home:antonbatenev:tox/xUbuntu_16.04/Release.key sudo apt-key add - < Release.key sudo apt-get update sudo apt-get install qtox
Installing on openSUSE was surprisingly simpler: Just click on your version of openSUSE in the link above, and Yast does the rest.
The uTox client is even easier to install. The project developers supply a package that is statically compiled -- no need to even modify repositories, install dependencies, and so on. Just download, and decompress with
tar xvf utox_linux_x86-64.tar.xz
An executable file called (unsurprisingly) utox will appear in your folder. Run that and you're in business.
Antox is the most popular Tox client for Android and you can install it from Google Play.
uTox has the added advantage of being more lightweight than qTox, but at the cost of features. One such feature that makes me favor qTox over uTox for the desktop is its easy profile import/export feature. qTox allows you to import profile files from over clients (like uTox), so you can go from uTox to qTox and not lose your contacts or details. But you can't do this the other way around, because uTox has no easy way to import profiles.
qTox's profile import/export feature comes in handy also when you want to port your profile to another device, such as your smartphone. To do this, set up your profile on qTox by clicking on the profile picture and then scroll down to the bottom.
You will see a series of buttons that allow you to manage your profile and password (Figure 1).
The one you need is, of course, Export. Click that and then choose a place in which to store the Tox profile file.
Next, send the file to your phone, open Antox for the first time, and you'll see a button that allows you to import a profile file (Figure 2).
Locate the file you copied over from your desktop machine to your phone and open it. If you are using a password on your desktop client, Antox will tell you that the file is encrypted and ask you to enter a password. Use the password you use to open your desktop client.
Before you call a friend, you'll need to mutually authorize each other (Figure 3). In qTox, you do this by clicking on your profile image in the panel on the left and, as with Ring.cx, your Tox client will provide you with a long hexadecimal string to pass around to your colleagues.
qTox also generates a QR barcode you can snap with your phone instead of having to copy out the long list of numbers and letters (Figure 4).
You can also sign up to an ID server like toxme.io so that other users can find you easily. To sign up to this service, again click on your profile picture and scroll down until you see the Toxme register section.
Once you have your friend's ID, you can send of a friend request. Friend requests may take up to several minutes to arrive at their destination and then slightly less to be confirmed back. But, once this first interaction is solved, communication is more or less instantaneous and you can start chatting immediately (Figure 5).
Audio and video calls are very straightforward (Figure 6). Click on the phone button in the upper right-hand corner to start an audio call, and click on the camera button for video. You may have to configure your video device first though.
To do this, click on the little gear icon at the bottom of contact list. The setting tabs will open in the panel on the right. Click on Audio/Video, scroll down until you see the Video Settings section and choose your device from the Video device drop down.
This is, by the way, also how you would share your desktop. In the Video device drop down, pick Desktop and... Voilà! desktop sharing.
qTox and uTox don't have major issues with audio and video conferencing, but the support on Antox is very experimental at this stage. The Android client crashes a few seconds after placing a call, so basically it is just the instant messaging features available that work well at the moment.
The uTox project is working on a version of its client for Android. This is interesting because, if it contains all the features of the desktop version, we will finally get audio and video conferencing using Tox on Android. At the moment, however, the uTox port to Android is not very usable.
Group chats are also desktop-only for the moment, but Antox shows a message saying the feature is "coming soon" when you try to start one on Android.
On qTox, to start a Group chat (Figure 7), click on the Group tab at the bottom of the contact list and then click on Create new group at the top of the view that opens in the right panel. You can edit the name of the group before contacting your friends. Click on the room to open it in the panel on the right.
To add new users to the chat room, in theory, you would be able to drag and drop contacts onto the room to invite them to attend, but that worked only sometimes for me. What does work is right-clicking on a contact and choosing Invite to group from the context menu that pops up and then picking the name of the chat room from a list.
It seems that group video chatting is not available at the moment in qTox, because the camera button remains grayed out while in a shared chat room. Audio group conferences, however, do work, although the parties involved have to know when to pick up the call, because there is no sign from qTox, audible or otherwise, that you are being called.
Tox is a really good project right on the verge of becoming something great. But, like many projects in the shadow of big, proprietary projects, it is marred by not having much support, which means its resources are limited.
Some may argue that the project is not widely supported because users don't need security, they need convenience. So, why should they use Tox if their friends don't? And, they might add that Tox is redundant. In answer to these points, I say that setting up Tox takes all of 5 minutes; that apps everybody uses come and go; and, that in a world where any reasonably stocked supermarket offers 20 varieties of mayonnaise, I don't even know what redundant means anymore.
I do know is that Tox is respectful with users' privacy, it is full-featured, and more or less everything works. Thus, if you are at all interested in open source software and the principles behind it, you should give Tox a whirl. And, if you think it has any merits at all, you should at least offer the developers your moral support and constructive feedback.
Learn more about Linux System Administration! Check out the Essentials of System Administration course from The Linux Foundation.