1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
|
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
folders allowing you to control the client.
File structure
==============
In the following paragraph, / refers to the directory ratox has been started in.
Global slots (name/, status/, request/)
---------------------------------------
Global slots allow you to change your name and status message and send and
accept friend requests. Each slot contains an in, out and err file or
directory respectively. The in-file is a pipe waiting for user-input.
If you want to change your name or status, just pipe it to it. To send a
friend request, pipe the Tox-ID to request/in. The out-file contains the
current state of a given parameter. In request/, out is a directory
containing named pipes for each pending request. To accept or reject a
friend request, pipe a 1 or 0 to a FIFO respectively.
Friend slots
------------
For each friend added, ratox will create a folder in / named after the friend's ID.
It contains files and FIFOs to interact with your friends. text_in and file_in allow
you to send messages and files just by piping them to them. text_out and file_out allow
you to read your friend's messages and accept file-transmissions. Accepting a file
transmission is as easy as just piping the file_out to a file or other stream.
online, name, status and file_pending are state-files giving you information on the
friend's status. If you pipe a 1 to remove, the friend will be removed.
id file
-------
/id contains your own Tox-ID to pass on to your friends if you want them to add you.
Command Line Options
====================
-4 and -6 allow you to switch between IPv4 and IPv6 mode respectively.
-t enables TCP mode. By default, Tox operates with UDP and is recommended, as
TCP mode implies certain security considerations.
-p enables the TCP SOCKS5-proxy as specified in the config.h. Running ratox behind
a ssh-proxy is as simple as setting
static char proxyaddr[] = "localhost";
static uint16_t proxyport = 8080;
in config.h (already set by default) and running ssh -C2qTnN -D 8080 user@example.org
in a separate terminal and launching ratox with ratox -p.
Features
========
1 v 1 messaging: Yes
File transfer: Yes
Group chat: No
Audio: No
Video: No
DNS discovery: No
Chat logs: Yes
Proxy support: Yes
Offline message: Yes
Offline transfers: Yes
Contact aliases: No
Contact blocking: No
Save file encryption: Yes
Multilingual: Yes
Multiprofile: Yes
Typing notification: No
Audio notifications: No
Emoticons: No
Spell check: No
Desktop sharing: No
Inline images: No
File resuming: No
Read receipts: No
Message splitting: Yes
Changing nospam: No
toxi URI: No
NOTE: Some of these features are not intended to be developed
in ratox itself but rather in external scripts that are built upon
ratox.
Portability
===========
Builds and works on *BSD and Linux, probably others as well.
|