summaryrefslogtreecommitdiff
path: root/README
blob: 0fb66c0ed3a422e37eb5174bede6f92b97465763 (about) (plain)
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
102
103
104
105
106
107
108
109
What is ratox?
==============

ratox is a client implementation of the rather popular tox protocol[0].
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.

There's also a set of scripts[1] developed by various people that build on
top of the FIFO interface.

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
==============

A typical filesystem structure is shown below along with some comments
to help explain the semantics of the individual files.

.
|-- .ratox.data			# ratox save file
|-- 0A734CBA717CEB7883D....	# friend's ID excluding nospam + checksum
|   |-- call_in			# arecord -r 48000 -c 1 -f S16_LE > call_in to initiate a call
|   |-- call_out		# aplay -r 48000 -c 1 -f S16_LE - < call_out to answer a call
|   |-- call_pending		# 1 if a call is pending, 0 otherwise
|   |-- file_in			# cat foo > file_in to send a file
|   |-- file_out		# cat file_out > bar to receive a file
|   |-- file_pending		# contains filename if transfer pending, empty otherwise
|   |-- name			# friend's nickname
|   |-- online			# 1 if friend online, 0 otherwise
|   |-- remove			# echo 1 > remove
|   |-- state			# {none,away,busy}
|   |-- status			# friend's status message
|   |-- text_in			# echo yo dude > text_in
|   `-- text_out		# tail -f text_out
|-- id				# our own ID
|-- name			# changing your nick
|   |-- err			# nickname related errors
|   |-- in			# echo my-new-nick > in
|   `-- out			# cat out to show your name
|-- nospam			# changing your nospam
|   |-- err			# nospam related errors
|   |-- in			# echo AABBCCDD > in
|   `-- out			# cat out to show your nospam
|-- request			# initiate/accept friend requests
|   |-- err			# request related errors
|   |-- in			# echo LONGASSID yo dude add me > in
|   `-- out			# echo 1 > out/LONGASSID to accept a request
|-- state			# changing your user state
|   |-- err			# user status related errors
|   |-- in			# echo away > in could be any of {none,away,busy}
|   `-- out			# cat out to show your user state
`-- status			# changing your status message
    |-- err			# status message related errors
    |-- in			# cat I am bored to death > in
    `-- out			# cat out to show your status message

Features
========

1 v 1 messaging: Yes
File transfer: Yes
Group chat: No
Audio: Yes
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: No
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: Yes
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.

Contact
=======

You can reach us through the freenode IRC network at #2f30.
If you have any patches, ideas or feedback feel free to join.

[0] https://tox.im/
[1] http://git.2f30.org/ratox-nuggets/