Skip to content
Riz Panjwani edited this page Feb 21, 2015 · 21 revisions
2/20/2015 - Distributed signalling servers

We decided to spin up a few Amazon VMs to host our signalling server. The signalling server keeps track of meeting rooms that are currently active and allows peers to join them. After the initial handshake, the peers just take over and communicate using Web-RTC.

We had 3 different servers (vms) and modified our client side code to be more fault tolerant by using the servers as fallback. We tested this by bringing down one server after another and it seems to work for now.

2/20/2015 - TURN server (which also inherently provides STUN functionality).

We have access to a SAVI cloud vm, so we tried setting up a few open-source TURN servers:

  1. Tried reTurn: Installation was fine, but could not connect to it even locally as it kept dropping the connection.

  2. Tried rfc5766, but it was too complicated to setup. Maybe later...

  3. Trying restund now, which involves manually making and installing the old school ways!

We couldn't make any progress with the TURN server at this point. So we've decided to switch to something else.

2/8/2015 - Basic Front-end & Back-end (local)

We created a basic front-end for our site. We also got a signalling server running locally using socket.io. Right now we can locally video conference by using the signalling server to do the initial handshake and then use web-rtc to take over after that.

2/7/2015 - Investigation

We investigated how Web-RTC works and tried out a few libraries to make our jobs easier: peerJs, Simple Web RTC, and MeetingJs. Web RTC requires signalling servers for the initial handshake. In addition, it requires STUN and TURN servers to deal with NATs. STUN servers extract external IP address for each peer thereby making communication possible. TURN servers take on the task of relaying traffic themselves in case STUN servers are not able to facilitate communication due to NAT issues.

Clone this wiki locally