=== RTCBot ===
RTCBot is a framework to write tests that need to spawn multiple webrtc
endpoints.

== Description ==
RTCBot is a framework that allows to write tests where logic runs on a single
host that controls multiple endpoints ("bots"). It allows creating complex
scenarios that would otherwise require non-trival signalling between multiple
parties.

The host runs in node.js, but the test code is run in an isolated context with
no access to node.js specifics other than the exposed api via a test variable.

Part of the exposed api (test.spawnBot) allows a test to spawn a bot and
access its exposed API. Details are in botmanager.js.

== How to run the test ==
 $ cd trunk/webrtc/tool/rtcbot
 $ npm install express browserify ws websocket-stream dnode
 $ mkdir configurations
 $ cd configurations
 $ openssl genrsa -out priv.pem 1024
 $ openssl req -x509 -new -key priv.pem -days 3650 -out cert.crt
 $ cd trunk/webrtc/tool/rtcbot
 $ node main.js "<test_name>"

* Note:
    In first time you will use rtcBot you will receive a warning telling
  you that your connection is not private. Just avoid this warning and
  click Proceed to localhost (unsafe).

== How can I see the list of available tests? ==
 $ node main.js

== Example on how to install nodejs ==
 $ cd /work/tools/
 $ git clone https://github.com/creationix/nvm.git
 $ export NVM_DIR=/work/tools/nvm; source $NVM_DIR/nvm.sh
 $ nvm install 0.10
 $ nvm use 0.10

== Why generating the private key and self signed certificate? ==
  - Private key and certificate are used for creating HTTPs server in
    rtcBot for loading the required files on the different types of the bots.

== Supported Bot Types ==
  - "chrome": chrome on host machine.
  - "android-chrome": chrome on android device. Details in "Android" Section.

 * Bot type is specified directly by the test.

== Android ==
Before running test with Android one MUST forward the device port 8080 to the
host machine. That is easy to achieve with chrome port forwarding tools.
 - Visit chrome://inspect/devices on the host machine.
 - Configure and enable port forwarding 8080 -> localhost:8080
 - Open chrome on you Android device before running test, and leave it
   running until the end of test.
 - Run your test.
