Over the weekend of March 22-24th, three members from the BigBlueButton team (Chad Pilkey, Fred Dixon, Calvin Walton) journeyed to Kansas City, MO, to participate in the Kansas City Gig Fest.
Our goal was to figure out how to hack WebRTC into BigBlueButton.
We took two approaches. The first hack was to modify the HTML5 client so that the WebRTC video/audio appeared within a fixed region of the HTML5 client. As WebRTC creates P2P connections with other browsers, there was transmission of audio/video to the BigBlueButton server. While good for small group collaboration, the downside of this approach is there are no recordings of the sessions.
For the second hack we used the WebRTC2SIP gateway to transmit voice from WebRTC to FreeSWITCH. However, as FreeSWITCH does not (yet) support the encrypted data from WebRTC, we used Asterisk 11 and an intermediary server. The diagram below shows an overview of the hack.
These were true hacks. We actually had to work on these two hacks weeks in advance of the event to get everything ready for the final sprint.
We were able to demo two users using latest Chrome browser to join a BigBlueButton session using the BigBlueButton Flash client. However, instead of using the built-in audio in Flash (which is TCP/IP), the users clicked a ‘Join’ button in Javascript that triggered the WebRTC call that eventually reached FreeSWITCH.
The result was what you would expect: lower latency audio (WebRTC uses UDP). The WebRTC support for audio will enable us to start prototyping the HTML5 client: Phase II.
Just to calibrate expectations: none of these hacks are planned for inclusion in 0.81. There is enough on our plate to finish 0.81 for now, but we’re pushing hard in parallel to make progress on the WebRTC + HTML5 client for BigBlueButton.
Thank to Google, Mozilla, and Kansas City for putting on a first-rate hackathon.