Voice and Video Communications on Web

I co-authored and presented a paper on "SIP APIs for voice and video communications on the web" at IPTcomm 2011. The paper compares various alternative architectures, and presents the components of our ongoing project at IIT, Chicago. We are open to sponsorship of the project to further continue its R&D work. Please feel free to get in touch with me or Prof. Davids if you are interested in sponsoring student projects in her lab related to this technology.

The paper and the presentation slides are available. The project page, open source code, and free demonstration page are also available.

Abstract: Existing standard protocols for the web and Internet telephony fail to deliver real-time interactive communication from within a web browser. In particular, the client-server web protocol over reliable TCP is not always suitable for end-to-end low latency media path needed for interactive voice and video communication. To solve this, we compare the available platform options using the existing technologies such as modifying the web programming language and protocol, using an existing web browser plugin, and a separate host resident application that the web browser can talk to. We argue that using a separate application as an adaptor is a promising short term as well as long-term strategy for voice and video communications on the web. Our project aims at developing the open technology and sample implementations for web-based real-time voice and video communication applications. We describe the architecture of our project including (1) a RESTful web communication API over HTTP inspired by SIP message flows, (2) a web-friendly set of metadata for session description, and (3) an UDP-based end-to-end media path. All other telephony functions reside in the web application itself and/or in web feature servers. The adaptor approach allows us to easily add new voice and video codecs and NAT traversal technologies such as Host Identity Protocol. We want to make web-based communication accessible to millions of web developers, maximize the end user experience and security, and preserve the huge global investment in and experience from SIP systems while adhering to web standards and development tools as much as possible. We have created an open source prototype that allows you to freely use the conference application by directing a browser to the conference URL.


Venkatesh said...

A couple of comments w.r.t your post. Would appreciate if you can provide some clarification around these.

1. Using REST API's in conjunction with WebSockets seems counter-intuitive to me w.r.t setting up communication sessions. The way I understand WebSockets, you use the initial HTTP handshake to upgrade your connection to WS. Once established, you exchange data in any format of your choice between the client and the server. In this set up, I can simply envision the data exchanged between the client and server to communicate the intent of the request in the payload (like JSON or XML) The use of subsequent HTTP GET or POST requests in some ways defeats the purpose of WebSockets.

2. Your example of creating a "conference" for a simple two party call seems counter-intuitive as well. I can understand if the intent of the request was to set up a conference/multi party call. Would you mind elaborating this choice vs. simply having the server route the request to Bob?

Unknown said...

Good post. I was surfing the net and come across your site. There are lot of video conferencing software in the market now. Somebody suggest which one would be the better for small business for better business communications.