You Sound Marvelous Part 2- A deep dive into the Lync Call Quality
Download
Report
Transcript You Sound Marvelous Part 2- A deep dive into the Lync Call Quality
41% of all support cases
cite call quality issues
Microsoft and our
biggest customers
struggle to maintain call
quality as they scale up
CQM was built to
address this problem.
After CQM (5 months):
There is a complex set of
dependencies from the
endpoint to the access point to
the core network to the server.
Internal
Degradation in any aspect
lowers quality for the entire call
or conference.
READ IT!! Lync 2013 Networking Guide
Internal
AV MCU
CAS
CAA
Mediation Server
PSTN Gateway
Remote
Guest
Call Leg
1. Servers
Lync servers must be healthy
and running without resource
constraints
2. Endpoint
Endpoint factors including
system, device, media
transport and media path
3. Network
Media stream quality
between Lync servers –
AV MCU, Mediation,
Gateway
Media stream quality
between endpoints and
endpoints to servers
Quality of Experience (QoE)
Quality of Experience (QoE) information
http://technet.microsoft.com/en-us/library/gg398687.aspx
http://technet.microsoft.com/en-us/library/gg398687(v=ocs.14).aspx
Best Practices
Interesting Tables
Table Name
Usage
Session
One row is a session
MediaLine
One row is a media line for one of the 3 modalities
AudioStream
One row is an audio stream
AppSharingStream
One row is an application sharing stream
VideoStream
One row is a video stream
UserAgentDef
Contain definitions of different User Agent types
UserAgent
Contain User Agents seen in the environment (type,
version, name)
User
Contains all SIP addresses seen in the environment
(URI)
NetworkConnectionDetail
Contains network connection types (wired, wireless)
IpAddress
Contains IP Addresses and Subnets seen in the
environment
Interesting Views
Table Name
Usage
AudioStreamDetailView
One row is an audio stream
VideoStreamDetailView
One row is a video stream
SessionView
One row is a session
MediaLineView
One row is a media line
NetworkConfigurationSettingsView
One row is a subnet
Table structure and relationships
Relevant Columns
MediaLineLabel
Type of Media and Use
Column
Explanation
0
Audio
ConferenceDateTime
1
Video
2
Video - Panoramic from RoundTable
UTC time for when server
received the first QoE report
from caller or callee
SessionSeq
3
Application Sharing
4
Video - Gallery view
Sequence number to
differentiate sessions when
they have the same
ConferenceDateTime
5
Video - Gallery view
6
Video - Gallery view
7
Video - Gallery view
8
Video - Gallery view
SenderIsCallerPAI
Explanation
0
Stream is from Callee to Caller
1
Stream is from Caller to Callee
CallerInside
CalleeInside
Explanation
0
Caller/Callee is signed in via Edge
1
Caller/Callee is signed in to pool
Row relationships
Session
Type
# of Session rows
# of MediaLine rows per
Session
# of media stream rows per
MediaLine
P2P
1
1 for audio
1 for application sharing
1 - 2 for video1
2 for audio
1 - 2 for application sharing
1 - 2 for video
Conference
Equal to Number of
participants (each has a
session with the MCU)
1 for audio
1 for application sharing
1 - 7 for video
2 for audio
1 - 2 for application sharing
1 - 3 for video2
Joining
SELECT *
FROM [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
Different JOIN needs
What do you need to look at?
Query base
Sessions
SELECT…
FROM [Session] s WITH (NOLOCK)
Sessions with network location
SELECT..
FROM [Session] s WITH (NOLOCK)
INNER JOIN [MediaLine] AS m WITH (NOLOCK) ON
m.ConferenceDateTime = s.ConferenceDateTime AND
m.SessionSeq = s.SessionSeq
Audio Sessions
SELECT..
FROM [Session] s WITH (NOLOCK)
INNER JOIN [MediaLine] AS m WITH (NOLOCK) ON
m.ConferenceDateTime = s.ConferenceDateTime AND
m.SessionSeq = s.SessionSeq
WHERE m.MediaLineLabel = 0
Audio Streams
SELECT..
FROM [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
Foreign Key Relationship
Foreign Key
Primary Key
Value
Session.CallerURI
Session.CalleeURI
User.UserKey
User.URI
MediaLine.CallerIPAddr
MediaLine.CalleeIPAddr
IpAddress.IpAddressKey
IpAddress.IpAddress
INNER JOIN vs LEFT JOIN
Table Table
1
2
Table Table
1
2
Internal
Internal
AV MCU
CAS
CAA
Mediation Server
PSTN Gateway
Remote
Guest
Call Leg
Media Paths – Type of client and server
Foreign Key in Session
Primary Key in UserAgent
Value in UserAgent
CallerUserAgent
CalleeUserAgent
UserAgentKey
UserAgent
UAType
Media Paths – Location
Source Column in MediaLine
Explanation
CallerInside
CalleeInside
1: inside, 0: outside
Media Paths – Connection Type
Foreign Key in MediaLine
Primary Key in
NetworkConnectionDetail
Value in NetworkConnectionDetail
CallerNetworkConnectionType
CalleeNetworkConnectionType
NetworkConnectionDetailKey
NetworkConnectionDetail
Media Paths – Putting it all together
SELECT *
FROM [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 [UserAgent] AS CallerUA WITH (NOLOCK) ON
CallerUA.UserAgentKey = s.CallerUserAgent
INNER JOIN [UserAgent] AS CalleeUA WITH (NOLOCK) ON
CalleeUA.UserAgentKey = s.CalleeUserAgent
INNER JOIN [NetworkConnectionDetail] AS CallerNcd WITH (NOLOCK) ON
CallerNcd.NetworkConnectionDetailKey = m.CallerNetworkConnectionType
INNER JOIN [NetworkConnectionDetail] AS CalleeNcd WITH (NOLOCK) ON
CalleeNcd.NetworkConnectionDetailKey = m.CalleeNetworkConnectionType
CQM Queries
Query
Area
Device
Looks at quality aspect where the capture
device has an impact
System
Looks at quality aspect where the PC has an
impact
Relay
Looks at using relay on internal call
VPN
Looks at media over VPN
Transport
Looks at TCP as the media transport
LastMile (Wired/Wireless)
Clients talking to AVMCU, MS or IP PSTN
Gateway
Plant (AVMCU<->MS, MS<->IP PSTN Gateway) Streams between servers
Trending (various media paths)
Streams between different media endpoints
Trending Queries
ReportDate
AllStreams
PoorStreams
PoorStreamsRatio
QueryType
01-07-2013
2648
6
0,226586103
Trend_1_AVMCU_Mediation
02-07-2013
3204
5
0,156054931
Trend_1_AVMCU_Mediation
03-07-2013
2316
2
0,086355786
Trend_1_AVMCU_Mediation
Why these conditions?
Why these conditions?
Trending Query Structure
ReportDate
AllStreams
PoorStreams
PoorStreamsRatio
QueryType
01-07-2013
2648
6
0,226586103
Trend_1_AVMCU_Mediation
02-07-2013
3204
5
0,156054931
Trend_1_AVMCU_Mediation
03-07-2013
2316
2
0,086355786
Trend_1_AVMCU_Mediation
Working with Devices
Solution Proposal
Trend_7_VPN Query Challenge
Solution
Surface More Data About Poor Quality
Tips & Tricks