Tox: Text, voice, and video chats without a central server

Group Chats

Modern messengers need to support conversations with multiple contacts in addition to communication between two people. qTox offers the possibility to set up group chats for this purpose. The initiator of the chat group must have all the desired members as friends in their contact list. Now, tap the group chat icon below the contact list and then select the option to create a new group. The default name of the chat is Group name #1; use the context menu to rename the group appropriately.

In order for your friends to join the group, you have to send them an invitation. To do this, right-click the desired contact and select Invite to Group from the context menu. You can either use one of the previously created groups or create a new one directly. Repeat this step with all the contacts that you want to join the group chat. qTox will now notify your friends about the invitation. Once they accept the request, they can chime in. There is no chat log: If one of the contacts switches off their computer and thus the Tox client, they miss all the group messages sent in between.

Besides the classic text-based group chat, qTox also supports telephone conferences. To do this, tap the green phone icon above the chat history. At first glance, nothing changes, but as soon as the contacts in the group chat have enabled the telephony function, you can hear each other. Only people who enable this on their phones can hear the conversation. An option for video calls in a group is not available for qTox so far. The button for the video function is grayed out in the current version.

Advanced Functions

Tox's operating principle currently requires that both contacts on a call be online at the same time. The online status is visualized by a filled green or empty red dot to the right of the username in the contact list. Offline messaging is not yet supported by Tox. One of the reasons for this is that there is simply no central server that temporarily stores messages that cannot be delivered at the moment and then delivers them as soon as the addressee gets back online.

However, Tox users do not have to do without offline messages entirely. As a workaround, most Tox clients (including qTox) support pseudo-offline messages [13]. Write a message to a contact currently displayed as offline, and then the client keeps the message in memory. As soon as the contact gets back online, the program sends the reset message. Until then, qTox shows a rotating circle next to the text, which signals that delivery is still pending. However, that requires you to stay online as well.

The integration of real offline messages is on the developers' to-do list, as well as the possibility to use a Tox profile on multiple devices at the same time – for example, with qTox on the PC and in parallel with Antox on the smartphone. Currently, a profile can be exported and transferred to another computer, but clients with a copied profile must not be online at the same time. If you try it, Tox gets confused: Contacts come online and go offline again permanently, or messages and data transfers are lost.

Other Tox Clients

The Tox project maintains a list of compatible clients [14] on its website. The open source protocol underlying Tox allows independent developers to program additional Tox clients, and users have the opportunity to select a client that optimally fits their requirements. However, it is important to be careful when testing: Not all of the alternative clients have the same functionality as qTox. Depending on the stage of development, they may only support a feature subset (see Table 2).

Table 2

Tox Clients Compared

Function

qTox

uTox

Venom

Toxic

aTox

Antox

Contact management

+

+

+

+

+

+

Chats

+

+

+

+

+

+

Group chats

+

+

+

+

Group chats (audio)

+

+

Data transmission

+

+

+

+

+

+

Screen sharing

+

+

Audio chats

+

+

+

Video chats

+

+

+

Here are a few other things to know about these clients. Both qTox and uTox are reference implementations of the Tox protocol [15], and both applications are available for Linux, FreeBSD, macOS, and Windows. uTox has fewer dependencies than qTox as it does without the Qt framework and is more frugal with resources.

The Venom [16] client is optimized for Gnome. Venom is currently available as version 0.5.5 and integrates cleanly into the Gnome desktop as a GTK3 application, but voice and video chat support is not planned until release 0.6. Overall, the program cuts a good figure despite its young age. It clearly organizes the contact list and chats and already implements group chats (Figure 5). In the default configuration, Venom does not save anything except for the contact list; even the chats disappear into a black hole after the program is closed. To prevent this, go to the settings and then in the General tab, move the slider next to the Save chat history option to the right.

Figure 5: Venom, which is still in development, offers many features, but support for audio and video calls is still missing.

Toxic [17] is a text-based console client that can be found in the package sources of all major distributions. After installing the package of the same name, call Toxic from a terminal window via toxic.

Toxic requires a little more explanation, because it's not immediately obvious how to access the different functions. An initial overview is provided by the help feature, which you call by typing /help. For example, you can invite contacts via /add <Tox-ID> "Message". You can discover your own ID using the /myid command. Ctrl+O and Ctrl+P let you switch between the status window, the contact list, and the individual chats, which are organized in tabs in Toxic.

Since Toxic does not necessarily require a graphical interface, Toxic can run on a server that is accessible via SSH, for example. You will always be online there and continuously reachable, so that you will never miss any group message. On a computer with a graphical interface, you do not have to do without audio and video chats despite working with a command-line program. /lsdev in and /lsvdev in, respectively, tell Toxic to list the input devices for image and sound that exist on the system. You can then use /sdev in <ID> and /svdev in <ID> to select the microphone and webcam.

You can then start a video call (with a picture) from an active chat with /call or /vcall. Toxic plays the corresponding videos in windows that pop up (Figure 6). In the default configuration, the program initially displays only the image of the other person; you need to explicitly enable your own camera with the /video command. Toxic uses the minimum resolution of the webcam. With a command like /res <800> <600> you can adjust the quality to utilize the available bandwidth and the technical limits of the webcam.

Figure 6: Toxic, intended for use in the terminal, supports pretty much everything. Launched on a system with a graphical desktop, the client even supports video calls.

Antox [18] and aTox are clients for Android smartphones. Antox copes well with phone calls and video calls, but does not yet support group chats (Figure 7). If you try to invite a contact to a group via qTox, which is connected to the Tox network via Antox, this fails. The corresponding menu item is grayed out in the dialog of the program. This smartphone app has the advantage of being virtually always online. The capability for pseudo-offline messages is therefore of little consequence here. However, Antox still has a few issues to work out. Sending and receiving messages worked reliably in our tests, but opening a sent picture always resulted in a crash.

Figure 7: The Antox Android client copes well with audio and video calls but does not yet have group chats.

The alternative aTox [19] proves to be more stable: Chats and sending pictures and data worked without complications with the Android app. However, it cannot handle audio and video chats, nor can it handle groups. aTox does not even tell you that it does not support these functions. In qTox, for example, the invitation function (as opposed to an Antox contact) remains enabled, but the invitation simply fails. Moreover, the program is not yet available from any app store, neither on Google Play nor on the open-source F-Droid marketplace. Installation therefore relies on the APK file provided on the project's GitHub page.

Buy this article as PDF

Express-Checkout as PDF
Price $2.95
(incl. VAT)

Buy Linux Magazine

SINGLE ISSUES
 
SUBSCRIPTIONS
 
TABLET & SMARTPHONE APPS
Get it on Google Play

US / Canada

Get it on Google Play

UK / Australia

Related content

  • Yahoo Chat Tools

    Kopete and Gyachi bring Yahoo videochat services to Linux.

  • Matrix

    One tool to rule all online communication: one tool to find them, one tool to bring them all in, and the Matrix to bind them. An open standard for decentralized communication enters the scene.

  • Chat Freely with Jami

    The messenger app Jami offers clients for all popular operating systems and promises maximum anonymity for chats, as well as voice and video calls, by dispensing with central servers.

  • Skype for Linux

    The old Microsoft gave the cold shoulder to Skype for Linux, neither updating it nor equipping it with new features. The new Microsoft promises to do better, with a brand new alpha prerelease version of a Linux client for the famous telephony tool.

  • Perl: IMAP Chat Log

    Are you interested in storing, organizing, and searching instant messaging conversations on your IMAP server? The Perl script in this month’s column can help you do just that.

comments powered by Disqus
Subscribe to our Linux Newsletters
Find Linux and Open Source Jobs
Subscribe to our ADMIN Newsletters

Support Our Work

Linux Magazine content is made possible with support from readers like you. Please consider contributing when you’ve found an article to be beneficial.

Learn More

News