Search the Asterisk Blog

You Down With SDP? (Yeah you know me)

By Mark Michelson

In the previous post, Josh introduced the forthcoming addition of streams to Asterisk. I’m going to piggyback on that to introduce a unified SDP API to Asterisk.

What’s the motivation behind these additions?  In recent years, Asterisk has risen above its old branding as a PBX. Support for WebRTC, combined with a REST API, has made Asterisk into a multimedia communications platform. Even with these additions, there are fundamental limitations in the core of Asterisk that have prevented more advanced scenarios. The goal for the next versions of Asterisk is to improve video support.

In the long journey that is improved video support, you have to start by taking the first step. For us, that means recognizing targets for video support. The most compelling target for video is WebRTC. There are lots of WebRTC endpoints out there, and one thing they all have in common is they negotiate their sessions using SDP. In Asterisk right now, if a channel technology uses SDP, then that channel driver must perform its own SDP parsing and generation. That means that if we were to add new channel drivers, they all would have their own independent SDP code. That is a lot of repetition.

The solution to this is the SDP API. By providing media capabilities and a set of requested features, the API will parse, generate, and negotiate SDP. The SDP layer will also use SDP attributes in order to set up the underlying RTP sessions. This takes a lot of work out of channel drivers’ hands. Any new channel driver we add that uses SDP can leave the hard work in the hands of the API and automatically have all the features the API supports. This also leads to a more streamlined path for adding new SDP features.

The proposal for the SDP API can be found here. Feel free to offer feedback either on the page as a comment or send an e-mail to the Asterisk developers list if you want to start a larger discussion.

Admittedly, stream support and an SDP API aren’t the sexiest additions we could be announcing. However, we feel like they’re the first steps towards being able to add fantastic new features in Asterisk. Stay tuned!

 

No Comments Yet

Get the conversation started!

Add to the Discussion

Your email address will not be published. Required fields are marked *

About the Author

Mark Michelson

Mark Michelson is a software developer and open source team lead at Digium and ten-year veteran to Asterisk development. His largest contributions to Asterisk include being one of the architects of the call completion supplementary services, being one of the architects of the PJSIP-based SIP channel driver that was introduced in Asterisk 12. He has his fingers just about everywhere in the code, though. Mark loves keeping up-to-date on software trends and applying what he learns to the Asterisk project. One of his biggest boasts is that he has actually removed more lines of code than he has added. Mark's interests outside of software development include cooking, skiing, travel, video games, and beer.

See All of Mark's Articles

More From
The Digium Blog

  • No items