RingCentral WebPhone SDK support for upcoming Chrome release (Unified SDP plan)

Vyshakh Babji
RingCentral Developers
3 min readJan 17, 2019

Google Chrome is rolling out Chrome 72 Stable starting from Jan 29, 2019. This release is going to be an interesting one for WebRTC Technology consumers and webRTC developer community. Google had previously announced Unified SDP plan support from M71 (experiment ) onwards World Wide Web Consortium (W3C) issues the first public notice about the same (link).

Google had started working on the project to support unified SDP early 2016, and finally the wait is over. However, Chrome is going to support both “Unified SDP Plan” and “Plan B” for couple more releases while the webRTC consumers and developers start to update their applications. Chrome plans to remove support for “Plan B” sometime soon, so it is necessary to keep all the webRTC applications be up-to-date to make a transition to “Unified SDP Plan”. You can find the “Applications May Break! Please Update Your Code!” notice here.

RingCentral WebPhone SDK’s approach to solving this problem:

I have tackled this problem on RingCentral WebPhone SDK by explicitly setting the RTCPeerConnection constructor’s SDP semantics to “Plan B”. This avoids the incompatibility issue with Chrome browsers versions between ≤71 and 72≥ .

new RTCPeerConnection({..., sdpSemantics: 'plan-b'});

Github reference to code: https://github.com/ringcentral/ringcentral-web-phone/blob/master/src/ringcentral-web-phone.js#L179

rtcConfiguration: {                    
rtcpMuxPolicy: 'negotiate',
sdpSemantics:'plan-b'
}

SDK version 0.6.1 which was released on Nov 30, 2018 and future releases will support “Plan B”. We will support “Unified SDP plan” after Chrome ≥72 is released. Please upgrade the WebPhone SDK to the latest version which you can find here (v0.6.2). This version is based on SipJS v0.11.6.

You can also disable the use of the Unified Plan on Chrome browser by setting the flag to disable the “Use Unified Plan SDP Semantics” by using the “Disabled” option to avoid any interoperability problem.

Next Steps :

I will be releasing a new version of SDK to handle various feature enhancement requests in the near future. I will also keep the SDK up to date with any changes concerning to “Unified SDP Plan” as well.

I strongly suggest the developers from RingCentral Developer Community to upgrade to the latest version of the SDK. Also, please keep an eye on RingCentral Developer Blog posts for the latest updates with regards to webRTC SDK and RingCentral Platform APIs and Platform products.

Feel free to comment on this blog to add more commonly seen WebRTC SDK issues/errors and I shall edit this blog and add few more tips/quirks on how to handle those issues.

That's it. Now you are ready to rock and roll :)

To learn more about RingCentral Developer Program and start building cool integrations using RingCentral API’s visit https://developer.ringcentral.com/

For other RingCentral Developer Program related articles, visit our medium page by clicking here.

Learn more about our Developer Program here: https://developer.ringcentral.com/

References :

https://bugs.chromium.org/p/chromium/issues/detail?id=465349

--

--