Search the Asterisk Blog

Upcoming WebRTC Improvements in Asterisk 15

By Joshua Colp

In my previous post I talked about what WebRTC support is like in Asterisk 14. Since Asterisk 15 is going to be released soon let’s take a look at how WebRTC support differs in it from Asterisk 14.

The “webrtc” PJSIP Configuration Option

As the WebRTC specification has evolved and changed the functionality in Asterisk has also changed resulting in new, or different, configuration options. For the average user keeping up with the ideal configuration is difficult. To simplify this we have added a new “webrtc” configuration option. If set to “yes” the PJSIP endpoint will have the required configuration options enabled except for the DTLS certificate information. As the DTLS options require outside actions (creating certificates) these still need to be set manually. In the future we’d like to automatically create an ephemeral certificate to simplify configuration even further but this is not currently done.

BUNDLE

Support for bundling RTP streams together has been added. This allows negotiated streams to all use the underlying transport. Instead of audio and video each having their own port they share one instead. This can be enabled manually using the “bundle” option or is enabled automatically when using the “webrtc” option. Enabling this will have us respect and generate the “group” and “ssrc” attributes in SDP.

ICE

Thanks to the support for BUNDLE the ICE negotiation time for multiple RTP streams has been reduced, as it only needs to occur for one. This means that if you have audio and video in use you can see your call setup time decrease some.

DTLS

DTLS support also takes advantage of BUNDLE and reduces the DTLS negotiation to one, just like ICE.

VP9

Support for passthrough of the VP9 codec has been added. This can be enabled by specifying the “vp9” format in the allow line. There is currently no support for recording or playing VP9 files.

Multiple Streams

Preliminary support for multiple streams has been added to Asterisk. While this requires future changes to Asterisk applications to actually use multiple streams this is the start of a better over all video experience within Asterisk.

Unified Plan

The current standard going forward for representing multiple streams in WebRTC is called “unified plan”. We now support this alongside the core changes for multiple streams and respect and generate the “msid” attribute in SDP.

Only The Beginning

Asterisk 15 was very much a release focused on laying the groundwork to support bigger and better things in the future with core changes for better media stream support, but through that the above features came to fruition. This is only the beginning though and you can expect to see even more.

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

Joshua Colp

Joshua Colp is a Senior Software Developer at Digium and a long time Asterisk developer. He originally started in the community submitting simple patches and grew into improving and creating new core components of Asterisk itself. He is a self-taught programmer who believes in finding the balance between doing things the way they should be done and doing what is right for the people using the software. In his spare time he enjoys smashing fax machines.

See All of Joshua's Articles

More From
The Digium Blog

  • No items