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'