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
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
|
.Dd March 10, 2017
.Dt RATOX 1
.Os
.Sh NAME
.Nm ratox
.Nd FIFO based tox client
.Sh SYNOPSIS
.Nm
.Op Fl 4 | Fl 6
.Op Fl E | Fl e
.Op Fl T | Fl t
.Op Fl P | Fl p
.Op Fl q
.Op Ar savefile
.Sh DESCRIPTION
.Nm
is a client implementation of the tox protocol providing only FIFOs, files
and directories as interfaces.
.Sh OPTIONS
.Bl -tag -width Ds
.It Fl 4 6
Use IPv4/IPv6 only.
.It Fl E e
Enable/Disable save file encryption.
.It Fl T t
Enable/Disable TCP mode. Avoiding UDP in tox implies certain security
considerations.
.It Fl P p
Enable/Disable TCP HTTP/SOCKS5 proxy as specified in \fIconfig.h\fR.
.It Fl q
Enable quiet mode.
.It Ar savefile
Path of the file to load a profile from or create a new one in.
.El
.Sh CONFIGURATION
.Nm
is configured with \fIconfig.h\fR at compile-time. Apart from command line
options and other parameters it contains the list of DHT-nodes.
.Pp
If there is a mismatch between save file status and encryption setting,
.Nm
writes the save file according to the latter.
.Sh INTERFACE
A \fIslot\fR is a set of FIFOs, files and directories interfacing a single
parameter. The set of slots makes up the \fIinterface\fR.
.Ss Global slots
Global slots are directories containing an \fBin\fR FIFO, \fBout\fR and
\fBerr\fR file or directory respectively.
The slot parameter is set by piping data to \fBin\fR and accessed
with \fBout\fR. Any errors are reported in \fBerr\fR.
.Bl -tag -width 13n
.It Ar name/
Name slot.
.It Ar nospam/
Nospam slot (8 digit hexadecimal).
.It Ar state/
State slot (\fBavailable\fR | \fBaway\fR | \fBbusy\fR).
.It Ar status/
Status message slot.
.It Ar request/
Request slot. Send a friend request by piping the Tox ID to \fBin\fR. Incoming
requests are listed as FIFOs in \fBout/\fR. Echo \fB1\fR | \fB0\fR to
accept | reject them.
.It Ar conf/
Conference management slot. A conference is created by writing its title to \fBin\fR. Invites
to conferences are FIFOs in \fBout/\fR. Their name is id_cookie (the cookie is random data).
They behave like request FIFOs.
.El
.Ss Friend slots
Each friend is represented with a directory in the base-directory named after
their Tox ID without its nospam-value. Each directory contains slots to
interface with the friend.
.Bl -tag -width 13n
.It Ar call_in
Initiate a call by piping data to this FIFO.
.It Ar call_out
Answer an incoming call by opening it for reading.
.It Ar call_state
Reports the call state (\fBnone\fR | \fBpending\fR | \fBactive\fR).
The sample format is \fBmono signed 16-bit little
endian at 48kHz\fR.
The call is \fBterminated\fR if
.Nm
receives both an EPIPE trying to read from call_in
and ENXIO trying to open call_out for writing.
.It Ar file_in
Initiate a file transfer by piping data to this FIFO.
.It Ar file_out
Accept an incoming file transfer by opening it for reading.
.It Ar file_pending
Contains the incoming filename if transfer is pending, empty otherwise.
Given
.Nm
can't know how much data a given pipe is going to provide, it
will send until the pipe is drained or EPIPE received.
That's why it's possible to stream arbitrary data, including
audio and video transmissions, even to other clients.
.It Ar name
Contains the friend's name.
.It Ar online
Contains the friend's online status (\fB1\fR | \fB0\fR).
.It Ar remove
Echo \fB1\fR to remove the friend.
.It Ar state
Contains the friend's state (\fBavailable\fR | \fBaway\fR | \fBbusy\fR)
.It Ar status
Contains the friend's status message.
.It Ar text_in
Send a text message by piping data to this FIFO.
.It Ar text_out
Contains text messages from the friend.
.El
.Ss Conference slots
Each conference is represented with a directory in the directory named after the
8-digit conference number. The files in the conference directory are an interface
for the respective conference.
.Bl -tag -width 13n
.It Ar members
Contains a list of members of the conference.
.It Ar invite
Write the Tox ID of a friend to this FIFO to invite him to the conference.
.It Ar leave
Write to this file to leave the conference.
.It Ar title_in
Write here to change the title of the conference.
.It Ar title_out
Contains the title of the conference.
.It Ar text_in
Echo \fBmessage\fR to send a text message to the conference.
.It Ar text_out
Contains the messages send in the conference so far.
.El
.Ss Misc files
.Bl -tag -width 13n
.It Ar id
Contains your Tox ID.
.El
.Sh AUTHORS
.An Dimitris Papastamos Aq Mt sin@2f30.org ,
.An Laslo Hunhold Aq Mt dev@frign.de ,
.An z3bra Aq Mt contact@z3bra.org ,
.An pranomostro Aq Mt pranomestro@gmail.com .
|