.Dd December 8, 2014 .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 Ar savefile .Sh DESCRIPTION .Nm is a client implementation of the tox protocol providing only FIFOs, files and folders 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 SOCKS5 proxy as specified in \fIconfig.h\fR. .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 folders interfacing a single parameter. The set of slots makes up the \fIinterface\fR. .Ss Global slots Global slots are folders 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. .Pp .Bl -tag -width xxxxxxxxxxxxx .It Ar name/ Name slot. .It Ar nospam/ Nospam slot (8 digit hexadecimal). .It Ar state/ State slot (none | away | busy). .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. .El .Ss Friend slots Each friend is represented with a folder in the base-directory named after their Tox ID without its nospam-value. Each folder contains slots to interface with the friend. .Pp .Bl -tag -width xxxxxxxxxxxxx .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). .El 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. .Pp .Bl -tag -width xxxxxxxxxxxxx .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. .El 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. .Pp .Bl -tag -width xxxxxxxxxxxxx .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 (\fBnone\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 Misc files .Bl -tag -width xxxxxxxxxxxxxxxxxxxx .It Ar id Contains your Tox ID. .El .Sh AUTHORS .Nm was written by Dimitris Papastamos and Laslo Hunhold .