What is ratox?

ratox is a client implementation of the rather popular tox protocol.
Unlike other clients relying on GUIs as an interface to the user, ratox is developed with the UNIX-philosophy in mind and allows complete interaction through named pipes.

Getting started

Get the latest version from the git-repository; build and install it.
Run ratox in an empty directory and it will create a set of files and directories allowing you to control the client. Read the manpage to understand how to use it.

RATOX(1) FreeBSD General Commands Manual RATOX(1)

NAME

ratoxFIFO based tox client

SYNOPSIS

ratox [-4 | -6] [-E | -e] [-tp] [savefile]

DESCRIPTION

ratox is a client implementation of the rather popular tox protocol. Unlike other clients relying on GUIs as an interface to the user, ratox is developed with the UNIX-philosophy in mind and allows complete interaction through FIFOs.

OPTIONS

-4
Switch to IPv4-only mode. This is the default.
-6
Switch to IPv6-only mode.
-E
Enable save file encryption.
-e
Disable save file encryption.
-t
Enable TCP mode. By default, tox operates with UDP and is recommended, as TCP mode implies certain security considerations.
-p
Enable TCP SOCKS5 proxy as specified in config.h when the package was built. By default when this option is enabled, ratox will use a proxy on 127.0.0.1:8080.
savefile
Specify the path of the save file to load a profile from or create a new one at.

CONFIGURATION

ratox is configured by modifying config.h and recompiling the code. Apart from the command line options there are a few more options that can be tweaked at compile time.

You can encrypt/decrypt your save file by setting encryptsavefile to 1 | 0 or specifying -E | -e respectively. In the former case it will prompt you for a new passphrase, in the latter it will ask you to enter your current passphrase and will then write the save file unencrypted.

Trying to load or decrypt an encrypted save file, ratox will ask you to supply a passphrase.

FILESYSTEM STRUCTURE

Global slots

Each of the following global slots contain an in, out and err file or directory respectively. Piping data into the in FIFO modifies the state of the respective slot. If any output is expected it will be found by reading out. Errors are reported via err.
name/in
Change the name.
name/out
Contains the current name.
nospam/in
Change the nospam value.
nospam/out
Contains the current nospam.
state/in
Change the user state. Possible values are none, away and busy.
state/out
Contains the current user state.
status/in
Change the status message.
status/out
Contains the current status message.
request/in
Initiate a friend request by echoing your friend's tox-id to the input FIFO.
request/out/<tox-id>
Echo 1 or 0 to accept or reject the friend request respectively.

Friend slots

Friend slots allow you to communicate with your friends. They handle sending text messages, files or starting a voice call.
call_in
Initiate a call by attaching an audio source to this FIFO. For example arecord -r 48000 -c 1 -f S16_LE > call_in.
call_out
Answer an incoming call by piping it into an audio sink. For example aplay -r 48000 -c 1 -f S16_LE < call_out.
call_state
Reports the call state, possible values are none, pending and active.
file_in
Initiate a file transfer. For example cat file > file_in.
file_out
Accept an incoming file transfer. For example cat file_out > file.
file_pending
Contains the filename if transfer is pending, empty otherwise.
name
The friend's name.
online
It is 1 if the friend is online, 0 otherwise.
remove
Echo 1 to remove a friend.
state
The friend's user state. Possible values are none, away and busy.
status
The friend's status message.
text_in
Send a text message to the friend by echoing data to this FIFO.
text_out
Receive text messages from the friend by reading from this file. For example tail -f text_out.

Misc files

id
Contains your tox-id.

AUTHORS

ratox was written by Dimitris Papastamos <sin@2f30.org> and Laslo Hunhold <dev@frign.de>.
December 8, 2014 FreeBSD 10.3