UCMA B2B Screen Sharing with VBSS

While UCMA does not natively support Screen Sharing, it is possible to use the BackToBackCall to send a screen share on to another endpoint. An example of this is actually included in the UCMA Contact Center sample. This has traditionally worked, but with the addition of Video Based Screen Sharing (VBSS) to the call SDP, this would fail.

In this scenario you would see this SIP failure response sent by the UCMA application:

SIP/2.0 415 Unsupported Media Type
ms-diagnostics: 24078;Component="RTCC/6.0.0.0_B2B";Reason="Unsupported media types";Source="UCMA5.lf.local"

It fails because a VBSS SDP includes a media line which includes both applicationsharing and video. For the extended ApplicationSharing provider to be able to handle these calls, it must handle both the applicationsharing and video media types.

This wouldn’t be a problem except that the built in AV provider already supports video, and there is a limitation in UCMA that a given media type can’t be utilized more than once, so we are actually unable to add video to the ApplicationSharing provider without disabling the built in AV provider.

The simple workaround that requires no code changes is to disable VBSS in an environment where UCMA is trying to handle the application sharing calls. This blog covers the options to do that by either changing registry settings on the client, or changing server side policies via PowerShell.

However this is less than ideal, as VBSS carries some advantages and it also adds extra steps for customers utilizing the UCMA application.

With the January 2019 update to the UCMA Runtime, there is now an alternative fix that can be implimented with minor code changes.

After installing the new version of the runtime, add the “applicationsharing-video” media type to your ApplicationSharingCall and ApplicationSharingCallFactory:

collection.Add(MediaType.ApplicationSharing);
collection.Add("applicationsharing-video");

Note: If you pull the updated Microsoft.Rtc.Collaboration.dll file from the GAC, and use that as your reference in your UCMA application, you can alternativly use the newly added MediaType.ApplicationSharingVideo instead.

Once you have the update installed and the code changes made, VBSS based Application Sharing calls should now be able to work through your UCMA BackToBackCalls once more.