Looking at VbSS video streams in QoE
In Skype for Business 2016 we introduced Video based Screen Sharing (VbSS) for peer-to-peer calls. MVP Jeff Schertz has a good post on the technical details here.
As implied by the name, the screen sharing flows via video streams, but how is it possible to distinguish these streams from "normal" video streams, when analyzing quality in QoE? It's easy. In Skype for Business Server 2015 we have introduced the MediaLineLabel = 16 to specify that this is a VbSS stream. In Lync Server 2013 these streams will have MediaLineLabel = 3 and be found in AppSharingStreams.
An example of looking at these streams using an SQL query against Skype for Business Server 2015 QoEMetrics database is below:
USE QoEMetrics;
DECLARE @beginTime AS DateTime = '1/1/2015';
DECLARE @endTime AS DateTime = '12/31/2015';
SELECT
s.StartTime as StartTime
,CallerUser.URI as Caller
,CalleeUser.URI as Callee
,vs.PacketUtilization
,vs.VideoAllocateBWAvg
,vs.InboundVideoFrameRateAvg
,vs.OutboundVideoFrameRateAvg
,vs.SendBitRateAverage
,vs.SendBitRateMaximum
,vs.RecvBitRateAverage
,vs.RecvBitRateMaximum
,vs.VideoPacketLossRate
,vs.SenderIsCallerPAI
,m.ClassifiedPoorCall
FROM [Session] s WITH (NOLOCK)
INNER JOIN [MediaLine] AS m WITH (NOLOCK) ON
m.ConferenceDateTime = s.ConferenceDateTime
AND m.SessionSeq = s.SessionSeq
INNER JOIN [VideoStream] AS vs WITH (NOLOCK) ON
vs.MediaLineLabel = m.MediaLineLabel
and vs.ConferenceDateTime = m.ConferenceDateTime
and vs.SessionSeq = m.SessionSeq
INNER JOIN [User] AS CallerUser WITH (NOLOCK) ON
CallerUser.UserKey = s.CallerURI
INNER JOIN [User] AS CalleeUser WITH (NOLOCK) ON
CalleeUser.UserKey = s.CalleeURI
WHERE
s.StartTime >= (@beginTime) and s.StartTime < (@endTime)
and m.MediaLineLabel = '16'