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/