Sunday, March 3, 2013

Video Conference on Sakai Portal

Sakai CLE [1], from its 2.9 version, has a facebook style chat system. That allows to see which contacts are connected and talk to them through a small window at the bottom of the portal. It's an important feature that gives greater social wealth to the platform. Sakai CLE provides communication tools such as message forums, announcements from long time ago, but does not incorporate any video/audio communication mechanisms natively. Sakai CLE allows you to connect external systems such as Big blue button, Adobe Connect or Opencast through lti or with custom tool connectors. At the moment these tools are based on Flash for capturing.

I took some time observing WebRTC [2] technology. It's an open framework that brings Real Time Comunication to browsers. It is supported by Google, Mozilla and Opera. The WebRTC effort is being standardized on a API level at the W3C [3] and at the protocol level at the IETF. In my opinion, one of the best features that it includes is allowing you to capture video and audio from local devices through the browser, avoiding to use intermediate technologies such as flash or java applets. It also has a way to create peer connections between browsers themselves making possible the transmission of the generated streams without having to be processed by a server. Thanks to this system, the hard process of capture and retransmission of the current web video conferencing systems will be reduced to just introduce the members of the conversation. That lets programmers to implement video conferencing abilities to any web application.

Together with Juan Jose Meroño Sánchez, we started developing an experiment to bring WebRTC technology to the Sakai portal chat. We want to give to Sakai CLE a mechanism to let their users talking and seeing each other. Imagine how easy would be for a student to talk with a Teacher or a classmate.  WebRTC API allows us to add those functionalities quickly using the messaging system implemented by the portal chat service.

We decided to do that as a particular contribution beyond our jobs at the universities we work for, because that feature is not topping its list of priorities. It would start as an experiment, a toy that will allow Juanjo an me work together, and collaborate in this great open source project (Sakai), in a different way.  For this reason we prefer that all the suggestions, critics or complains were addressed directly to us instead of our Universities or Working groups we belong.

Before to design that feature, we've done some tests to see if that technology is compatible with the Sakai portal chat system. With very little effort, we've been able to integrate video call streams to the chat. Play the video to see the first test result:





That is just a demo. The full functionality will come after a real "Use Case" analysis   We will have to face up to some adverse scenarios like the disconnection/reconnection of the streams when user navigates from site/tool to other one, opened session by the same user, etc. But I'm sure that it will be a funny and amazing road-trip.

For now, we don't have a roadmap in mind, but I believe that you will be able to see a minimal stable version before the summer 2013. We are decided to apply a solid QA process to ensure that this new feature will work fine from its first release.  If Sakai community thinks that is an interesting thing to have in Sakai, we will work hard to make it possible.

Please, feel free to comment whatever you think about this experiment. All the feedback we receive  will help to build a better solution.  We will be happy to receive collaborations offers, suggestions or  critics.

If you want to know more about:
[1] Sakai CLE: http://www.sakaiproject.org/sakai-cle
[2] WebRTC: http://www.webrtc.org
[3] W3C WebRTC draft:  http://dev.w3.org/2011/webrtc/editor/webrtc.html

If you want to know more:
Get started with WebRTC at: http://www.html5rocks.com/en/tutorials/webrtc/basics/