How many sessions and streams do we see in QoE for a conference?
In QoE we store information about sessions and different type of media streams, but how many of these do we store for a conference scenario?
Let me answer that question by using the following scenario:
- July 11, 2013 tu14@contoso.dk drags tu26@contoso.dk and tu29@contoso.dk into a conference and they both accepts it
- tu14 adds audio to the conference
- Later tu14 adds application sharing to the conference
- tu14 stops application sharing
- tu14 adds video to the conference all tu26 and tu29 accepts and joins with their video started
- The conference ends
How many sessions do this scenario generate in the QoE database? To answer the question I use the following SQL query in SQL Management Studio connected to the QoEMetrics database in the Lync 2013 Monitoring Store:
SELECT s.ConferenceDateTime
,s.ConferenceKey
,CallerUser.URI as Caller
,CalleeUser.URI as Callee
FROM [QoEMetrics].[dbo].[Session] s WITH (NOLOCK)
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.ConferenceDateTime > '2013-07-11'
The select statement joins information from the Session and User tables. The result of this query is shown below. It shows 6 sessions: 1 session from each three participants to the AV MCU (conferencing server for audio and video) and 1 session from each three participants to the AS MCU (conferencing server for application sharing).
ConferenceDateTime |
ConferenceKey |
Caller |
Callee |
2013-07-11 07:49:25.387 |
1041 |
sip:tu14@contoso.dk;gruu;opaque=app:conf:audio-video:id:CYSNJBWB |
|
2013-07-11 07:49:29.440 |
1042 |
sip:tu14@contoso.dk;gruu;opaque=app:conf:applicationsharing:id:CYSNJBWB |
|
2013-07-11 07:49:37.437 |
1042 |
sip:tu14@contoso.dk;gruu;opaque=app:conf:applicationsharing:id:CYSNJBWB |
|
2013-07-11 07:49:38.207 |
1041 |
sip:tu14@contoso.dk;gruu;opaque=app:conf:audio-video:id:CYSNJBWB |
|
2013-07-11 07:49:40.640 |
1041 |
sip:tu14@contoso.dk;gruu;opaque=app:conf:audio-video:id:CYSNJBWB |
|
2013-07-11 07:49:52.553 |
1042 |
sip:tu14@contoso.dk;gruu;opaque=app:conf:applicationsharing:id:CYSNJBWB |
So how many audio streams do we have? To answer the question I use the following SQL query in SQL Management Studio connected to the QoEMetrics database in the Lync 2013 Monitoring Store:
SELECT s.ConferenceDateTime
,s.ConferenceKey
,CallerUser.URI as Caller
,CalleeUser.URI as Callee
,a.SenderIsCallerPAI
FROM [QoEMetrics].[dbo].[Session] s WITH (NOLOCK)
INNER JOIN [MediaLine] AS m WITH (NOLOCK) ON
m.ConferenceDateTime = s.ConferenceDateTime
AND m.SessionSeq = s.SessionSeq
INNER JOIN [AudioStream] AS a WITH (NOLOCK) ON
a.MediaLineLabel = m.MediaLineLabel
and a.ConferenceDateTime = m.ConferenceDateTime
and a.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.ConferenceDateTime > '2013-07-11'
The select statement joins information from the Session, MediaLine and AudioStream tables to give me the result shown below. It shows 6 audio streams. Two audio streams between each participant and the AV MCU: one from the user to the AV MCU and one from the AV MCU to the user (SendIsCallerPAI shows the direction).
ConferenceDateTime |
ConferenceKey |
Caller |
Callee |
SenderIsCallerPAI |
2013-07-11 07:49:25.387 |
1041 |
sip:tu14@contoso.dk;gruu;opaque=app:conf:audio-video:id:CYSNJBWB |
1 |
|
2013-07-11 07:49:25.387 |
1041 |
sip:tu14@contoso.dk;gruu;opaque=app:conf:audio-video:id:CYSNJBWB |
0 |
|
2013-07-11 07:49:38.207 |
1041 |
sip:tu14@contoso.dk;gruu;opaque=app:conf:audio-video:id:CYSNJBWB |
1 |
|
2013-07-11 07:49:38.207 |
1041 |
sip:tu14@contoso.dk;gruu;opaque=app:conf:audio-video:id:CYSNJBWB |
0 |
|
2013-07-11 07:49:40.640 |
1041 |
sip:tu14@contoso.dk;gruu;opaque=app:conf:audio-video:id:CYSNJBWB |
0 |
|
2013-07-11 07:49:40.640 |
1041 |
sip:tu14@contoso.dk;gruu;opaque=app:conf:audio-video:id:CYSNJBWB |
1 |
How many application sharing streams do we have? To answer the question I use the following SQL query in SQL Management Studio connected to the QoEMetrics database in the Lync 2013 Monitoring Store:
SELECT s.ConferenceDateTime
,s.ConferenceKey
,CallerUser.URI as Caller
,CalleeUser.URI as Callee
,ap.SenderIsCallerPAI
FROM [QoEMetrics].[dbo].[Session] s WITH (NOLOCK)
INNER JOIN [MediaLine] AS m WITH (NOLOCK) ON
m.ConferenceDateTime = s.ConferenceDateTime
AND m.SessionSeq = s.SessionSeq
INNER JOIN [AppSharingStream] AS ap WITH (NOLOCK) ON
ap.MediaLineLabel = m.MediaLineLabel
and ap.ConferenceDateTime = m.ConferenceDateTime
and ap.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.ConferenceDateTime > '2013-07-11'
The select statement joins information from the Session, MediaLine and AppSharingStream tables to give me the result shown below. It shows 6 app sharing streams. Two app sharing streams between each participant and the AS MCU: one from the user to the AS MCU and one from the AS MCU to the user (SendIsCallerPAI shows the direction).
ConferenceDateTime |
ConferenceKey |
Caller |
Callee |
SenderIsCallerPAI |
2013-07-11 07:49:29.440 |
1042 |
sip:tu14@contoso.dk;gruu;opaque=app:conf:applicationsharing:id:CYSNJBWB |
0 |
|
2013-07-11 07:49:29.440 |
1042 |
sip:tu14@contoso.dk;gruu;opaque=app:conf:applicationsharing:id:CYSNJBWB |
1 |
|
2013-07-11 07:49:37.437 |
1042 |
sip:tu14@contoso.dk;gruu;opaque=app:conf:applicationsharing:id:CYSNJBWB |
0 |
|
2013-07-11 07:49:37.437 |
1042 |
sip:tu14@contoso.dk;gruu;opaque=app:conf:applicationsharing:id:CYSNJBWB |
1 |
|
2013-07-11 07:49:52.553 |
1042 |
sip:tu14@contoso.dk;gruu;opaque=app:conf:applicationsharing:id:CYSNJBWB |
0 |
|
2013-07-11 07:49:52.553 |
1042 |
sip:tu14@contoso.dk;gruu;opaque=app:conf:applicationsharing:id:CYSNJBWB |
1 |
How many video streams do we see? To answer the question I use following SQL query in SQL Management Studio connected to the QoEMetrics database in the Lync 2013 Monitoring Store would show it:
SELECT s.ConferenceDateTime
,s.ConferenceKey
,CallerUser.URI as Caller
,CalleeUser.URI as Callee
,v.SenderIsCallerPAI
FROM [QoEMetrics].[dbo].[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 v WITH (NOLOCK) ON
v.MediaLineLabel = m.MediaLineLabel
and v.ConferenceDateTime = m.ConferenceDateTime
and v.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.ConferenceDateTime > '2013-07-11'
The select statement joins information from the Session, MediaLine and VideoStream tables to give me the result shown below. It shows 9 video streams. Three video streams between each participant and the AV MCU: one from the user to the AV MCU and one per conference attendee in the gallery view from the AV MCU to the user. In my case there was 2 attendees in the gallery view.
ConferenceDateTime |
ConferenceKey |
Caller |
Callee |
SenderIsCallerPAI |
2013-07-11 07:50:25.387 |
1041 |
sip:tu14@contoso.dk;gruu;opaque=app:conf:audio-video:id:CYSNJBWB |
1 |
|
2013-07-11 07:50:25.387 |
1041 |
sip:tu14@contoso.dk;gruu;opaque=app:conf:audio-video:id:CYSNJBWB |
0 |
|
2013-07-11 07:50:25.387 |
1041 |
sip:tu14@contoso.dk;gruu;opaque=app:conf:audio-video:id:CYSNJBWB |
0 |
|
2013-07-11 07:50:48.207 |
1041 |
sip:tu14@contoso.dk;gruu;opaque=app:conf:audio-video:id:CYSNJBWB |
1 |
|
2013-07-11 07:50:48.207 |
1041 |
sip:tu14@contoso.dk;gruu;opaque=app:conf:audio-video:id:CYSNJBWB |
0 |
|
2013-07-11 07:50:48.207 |
1041 |
sip:tu14@contoso.dk;gruu;opaque=app:conf:audio-video:id:CYSNJBWB |
0 |
|
2013-07-11 07:50:50.640 |
1041 |
sip:tu14@contoso.dk;gruu;opaque=app:conf:audio-video:id:CYSNJBWB |
0 |
|
2013-07-11 07:50:50.640 |
1041 |
sip:tu14@contoso.dk;gruu;opaque=app:conf:audio-video:id:CYSNJBWB |
1 |
|
2013-07-11 07:50:50.640 |
1041 |
sip:tu14@contoso.dk;gruu;opaque=app:conf:audio-video:id:CYSNJBWB |
0 |
Conclusion
In a conference there is a session from each participant to each media conferencing server being used (IM is not a real media conferencing server and therefore it is not generating a session). For each session there will be two or more media streams. For audio and application sharing you will always have two, but for video you can have more due to gallery view in Lync 2013 with up to five video streams and the panorama view video stream (for more information about the video streams see this post by Jeff Schertz).