tREADME - ratox - FIFO based tox client
 (DIR) Log
 (DIR) Files
 (DIR) Refs
 (DIR) README
 (DIR) LICENSE
       ---
       tREADME (5792B)
       ---
            1             __                    
            2            /\ \__                 
            3  _ __   __ \ \ ,_\   ___   __  _  
            4 /\`'__/'__`\\ \ \/  / __`\/\ \/'\ 
            5 \ \ \/\ \L\.\\ \ \_/\ \L\ \/>  </ 
            6  \ \_\ \__/.\_\ \__\ \____//\_/\_\
            7   \/_/\/__/\/_/\/__/\/___/ \//\/_/
            8                                    -- by sin and FRIGN
            9 ======================================================
           10 
           11 
           12 What is it?
           13 ===========
           14 
           15 ratox is a client implementation of the rather popular tox protocol[0].
           16 Unlike other clients relying on GUIs as an interface to the user, ratox is
           17 developed with the UNIX-philosophy in mind and allows complete
           18 interaction through named pipes.
           19 
           20 There's also a set of scripts[1] developed by various people that build on
           21 top of the FIFO interface.
           22 
           23 
           24 Getting started
           25 ===============
           26 
           27 Get the latest version from the git-repository; build and install it.
           28 Run ratox in an empty directory and it will create a set of files and
           29 folders allowing you to control the client.
           30 
           31 
           32 File structure
           33 ==============
           34 
           35 A typical filesystem structure is shown below along with some comments
           36 to help explain the semantics of the individual files.
           37 
           38 .
           39 |-- .ratox.data                        # ratox save file
           40 |
           41 |-- 0A734CBA717CEB7883D....        # friend's ID excluding nospam + checksum
           42 |   |-- call_in                        # 'arecord -r 48000 -c 1 -f S16_LE > call_in' to initiate a call
           43 |   |-- call_out                # 'aplay -r 48000 -c 1 -f S16_LE - < call_out' to answer a call
           44 |   |-- call_state                # (none, pending, active)
           45 |   |-- file_in                        # 'cat foo > file_in' to send a file
           46 |   |-- file_out                # 'cat file_out > bar' to receive a file
           47 |   |-- file_pending                # contains filename if transfer pending, empty otherwise
           48 |   |-- name                        # friend's nickname
           49 |   |-- online                        # 1 if friend online, 0 otherwise
           50 |   |-- remove                        # 'echo 1 > remove' to remove a friend
           51 |   |-- state                        # friend's user state; could be any of {none,away,busy}
           52 |   |-- status                        # friend's status message
           53 |   |-- text_in                        # 'echo yo dude > text_in' to send a text to this friend
           54 |   `-- text_out                # 'tail -f text_out' to dump to stdout any text received
           55 |
           56 |-- 00000000
           57 |   |-- members                 # list of people in the conference
           58 |   |-- invite                  # 'echo 0A734CBA717CEB7883D.... >invite' to invite
           59 |   |-- leave                   # 'echo 1 >leave' to leave the conference
           60 |   |-- title_in                # 'echo new-title >title_in' to update the conference title
           61 |   |-- title_out               # contains the current title
           62 |   |-- text_in                 # 'echo blablahumbla >text_in' to message the other conference members
           63 |   |-- text_out                # contains the messages sent so far in the conference
           64 |
           65 |-- id                                # 'cat id' to show your own ID, you can give this to your friends
           66 |
           67 |-- conf                        # managing conferences
           68 |   |-- err                        # conference related errors
           69 |   |-- in                        # 'echo 't group title' >in' for creating a new text group
           70 |   |-- out                        # 'echo 1 >out/ID_COOKIE' for joining a conference
           71 |
           72 |-- name                        # changing your nick
           73 |   |-- err                        # nickname related errors
           74 |   |-- in                        # 'echo my-new-nick > in' to change your name
           75 |   `-- out                        # 'cat out' to show your name
           76 |
           77 |-- nospam                        # changing your nospam
           78 |   |-- err                        # nospam related errors
           79 |   |-- in                        # 'echo AABBCCDD > in' to change your nospam
           80 |   `-- out                        # 'cat out' to show your nospam
           81 |
           82 |-- request                        # send and accept friend requests
           83 |   |-- err                        # request related errors
           84 |   |-- in                        # 'echo LONGASSID yo dude add me > in' to send a friend request
           85 |   `-- out                        # 'echo 1 > out/LONGASSID' to accept the friend request
           86 |
           87 |-- state                        # changing your user state
           88 |   |-- err                        # user status related errors
           89 |   |-- in                        # 'echo away > in' to change your user state; could be any of {none,away,busy}
           90 |   `-- out                        # 'cat out' to show your user state
           91 |
           92 `-- status                        # changing your status message
           93     |-- err                        # status message related errors
           94     |-- in                        # 'cat I am bored to death > in' to change your status message
           95     `-- out                        # 'cat out' to show your status message
           96 
           97 
           98 Features
           99 ========
          100 
          101 1 v 1 messaging: Yes
          102 File transfer: Yes
          103 Group chat: Yes
          104 Audio: Yes
          105 Video: No
          106 DNS discovery: No
          107 Chat logs: Yes
          108 Proxy support: Yes
          109 Offline message: Yes
          110 Offline transfers: Yes
          111 Contact aliases: No
          112 Contact blocking: No
          113 Save file encryption: Yes
          114 Multilingual: No
          115 Multiprofile: Yes
          116 Typing notification: No
          117 Audio notifications: No
          118 Emoticons: No
          119 Spell check: No
          120 Desktop sharing: No
          121 Inline images: No
          122 File resuming: No
          123 Read receipts: No
          124 Message splitting: Yes
          125 Changing nospam: Yes
          126 toxi URI: No
          127 
          128 NOTE: Some of these features are not intended to be developed
          129 in ratox itself but rather in external scripts[1] that are built upon
          130 ratox.
          131 
          132 Group chats do not have audio yet.
          133 
          134 
          135 Examples
          136 ========
          137 
          138 SSH over TOX for the practical paranoid
          139 ---------------------------------------
          140 
          141 On the sender side (the client):
          142 1) cd into the friend's directory (the server)
          143 2) nc -lv 1234 > file_in < file_out
          144 
          145 On the receiver side (the server):
          146 1) cd into the friend's directory (the client)
          147 2) cat < file_out | nc localhost 22 > file_in
          148 
          149 Now on the client run the following:
          150 ssh -o ProxyCommand="nc %h 1234" user@localhost
          151 
          152 This can of course be more easily achieved by using
          153 [tuntox](https://github.com/gjedeer/tuntox).
          154 
          155 Screencasting using ffmpeg and mplayer
          156 --------------------------------------
          157 
          158 On the sender side:
          159 ffmpeg -f x11grab -r 10 -s 1366x768 -i :0.0 -vcodec libx264 \
          160         -pix_fmt yuv420p -preset fast -tune zerolatency -b:v 500k \
          161         -f flv pipe: > file_in
          162 
          163 On the receiver side:
          164 mplayer -cache 1024 file_out
          165 
          166 You may have to play about with the cache size.
          167 
          168 
          169 Portability
          170 ===========
          171 
          172 Builds and works on *BSD and Linux.  To build on OSX you need
          173 to apply a patch[2].
          174 
          175 
          176 Contact
          177 =======
          178 
          179 You can reach us through irc.2f30.org/6697 at #2f30.
          180 
          181 [0] https://tox.chat/
          182 [1] https://git.2f30.org/ratox-nuggets/
          183 [2] https://ratox.2f30.org/ratox-os_x.patch