README
1 === RTCBot ===
2 RTCBot is a framework to write tests that need to spawn multiple webrtc
3 endpoints.
4
5 == Description ==
6 RTCBot is a framework that allows to write tests where logic runs on a single
7 host that controls multiple endpoints ("bots"). It allows creating complex
8 scenarios that would otherwise require non-trival signalling between multiple
9 parties.
10
11 The host runs in node.js, but the test code is run in an isolated context with
12 no access to node.js specifics other than the exposed api via a test variable.
13
14 Part of the exposed api (test.spawnBot) allows a test to spawn a bot and
15 access its exposed API. Details are in botmanager.js.
16
17 == How to run the test ==
18 $ cd trunk/webrtc/tool/rtcbot
19 $ npm install express browserify ws websocket-stream dnode
20 $ mkdir configurations
21 $ cd configurations
22 $ openssl genrsa -out priv.pem 1024
23 $ openssl req -x509 -new -key priv.pem -days 3650 -out cert.crt
24 $ cd trunk/webrtc/tool/rtcbot
25 $ node main.js "<test_name>"
26
27 * Note:
28 In first time you will use rtcBot you will receive a warning telling
29 you that your connection is not private. Just avoid this warning and
30 click Proceed to localhost (unsafe).
31
32 == How can I see the list of available tests? ==
33 $ node main.js
34
35 == Example on how to install nodejs ==
36 $ cd /work/tools/
37 $ git clone https://github.com/creationix/nvm.git
38 $ export NVM_DIR=/work/tools/nvm; source $NVM_DIR/nvm.sh
39 $ nvm install 0.10
40 $ nvm use 0.10
41
42 == Why generating the private key and self signed certificate? ==
43 - Private key and certificate are used for creating HTTPs server in
44 rtcBot for loading the required files on the different types of the bots.
45
46 == Supported Bot Types ==
47 - "chrome": chrome on host machine.
48 - "android-chrome": chrome on android device. Details in "Android" Section.
49
50 * Bot type is specified directly by the test.
51
52 == Android ==
53 Before running test with Android one MUST forward the device port 8080 to the
54 host machine. That is easy to achieve with chrome port forwarding tools.
55 - Visit chrome://inspect/devices on the host machine.
56 - Configure and enable port forwarding 8080 -> localhost:8080
57 - Open chrome on you Android device before running test, and leave it
58 running until the end of test.
59 - Run your test.
60