WebRTC enabled PBX
Digium is a very known VoIP company. And now it supports WebRTC.[If you are new around here, then you should know I’ve been writing about WebRTC lately. You can skim through the WebRTC post series or just read what WebRTC is all about.]
There are a few surprises in the companies that are supporting WebRTC so early in the game, and I must say that for me Digium is one of these surprises. I’ve always pictured them as “part of the old world of VoIP” – those that wouldn’t grok the transition that is happening since the introduction of WebRTC. And is it so happens once in a while, I was wrong: Digium is a rather early adopter of WebRTC and they have embraced it into their current offering in rather elegant solution.
When Steven Sokol, Director of Strategic Programs at Digium, approached me, I just had to ask him for an interview. Here it is.
What is Digium all about?
Digium is probably best known as “the Asterisk company”, though we do much more. Our founder, Mark Spencer, was the original author of the Asterisk open source communications project. We remain the primary sponsor, with a team of engineers dedicated to continually expanding the capabilities of the platform.
Much like WebRTC, one of our goals has been to make communications technology accessible to a much larger audience. Asterisk was the first tool that wrapped up the complexities of communications and exposed them to application developers through readily accessible APIs. We see WebRTC as the next big step in the evolution of communications technology from hardware to software and are working to make both our open source and commercial products ready for the future.
What is it that you do with WebRTC then?
Last October we launched Asterisk 11, the most recent stable release of our open source platform. It includes a number of enhancements that allow it to support WebRTC endpoints. We’ve added STUN, TURN and ICE support to our RTP engine, added WebSocket support to the SIP channel and tweaked our SDP parser. The result is working support for WebRTC audio sessions. This makes it trivial for anyone using Asterisk to build a WebRTC-to-X gateway (where X is any of the protocols that Asterisk supports). We have a page on the Asterisk Wiki that includes the configuration settings for enabling WebRTC support.
How did you connect WebRTC into your SIP based architecture?
What went well during the integration?
I have to give a major shout-out to Josh Colp (aka file) who spearheaded the effort and to project leader Matt Jordan who pushed to get WebRTC support rolled in before the code freeze. The effort was far from trivial, but because we were able to make use of open source code (pjnath, libsrtp, JsSIP, SIPML5) we did not have to reinvent the wheel.
Where do you think WebRTC can be improved?
Actually, I don’t know that WebRTC needs improvements as much as finalization. The current drafts have defined a technology that provides a limited number of critical functions. I hope the standards teams from the W3C and IETF resist the temptation to layer in additional complexity. SIP started out as a relatively simple means of establishing sessions between endpoints, but has been forcibly mutated into yet another PSTN-over-IP protocol. WebRTC is, in some ways, a chance to start over and approach the problem from a purely Internet perspective. By leaving signaling up to the developer, by exposing an API that is as simple as possible (but not simpler) and by including support for a generic data channel, WebRTC has opened the door for an explosion of creativity in the communications space. Don’t close that door by layering on baggage in the name of legacy interoperability.
How have you seen Asterisk developers and integrators using WebRTC?
We have seen a number of users running trials of WebRTC endpoints in Asterisk-based call centers. The simple deployment process, the ability to integrate the client directly into web applications and the controlled environment of a call center makes this a great early-stage use case. Other cases include clients for Asterisk-based conferencing systems/services and simple virtual phones for employee extensions. I have no doubt that we will see some really exciting and innovative uses show up as soon as the standards stabilize.
How can someone get involved with the Asterisk project and possibly contribute to the WebRTC effort?
We are always looking for developers and integrators who can help move Asterisk forward. If you would like to help out with coding, testing or documentation, please check out the Asterisk wiki, sign up for the asterisk-dev mailing list or drop by the asterisk-dev IRC chat room.
What’s next for Digium with WebRTC?
We’ve got a list of WebRTC-related enhancements we will want to work into future Asterisk releases: additional codecs, support for video sessions, bundled media streams, trickle ICE and most of all a flexible means of integrating other signaling mechanisms and protocols. I’m sure we will have some interesting debates at the next developers convention.
We see WebRTC as one of the key communications technologies going forward. I can’t comment directly on what plans Digium has for WebRTC in our commercial products, but we’ve always done our best to make use the features and functions of Asterisk. Now that WebRTC is in the code base there will undoubtedly be efforts to take advantage of it in our product set.
The interviews are intended to give different viewpoints than my own – you can read more WebRTC interviews.