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. Degradation in any aspect lowers quality for the entire call or conference. Call Leg
3. Network Media stream quality between Lync servers – AV MCU, Mediation, Gateway Media stream quality between endpoints and endpoints to servers 2. Endpoint Endpoint factors including system, device, media transport and media path 1. Servers Lync servers must be healthy and running without resource constraints
Quality of Experience (QoE)
Quality of Experience (QoE) information
Best Practices
Interesting Tables Table NameUsage SessionOne row is a session MediaLineOne row is a media line for one of the 3 modalities AudioStreamOne row is an audio stream AppSharingStreamOne row is an application sharing stream VideoStreamOne row is a video stream UserAgentDefContain definitions of different User Agent types UserAgentContain User Agents seen in the environment (type, version, name) UserContains all SIP addresses seen in the environment (URI) NetworkConnectionDetailContains network connection types (wired, wireless) IpAddressContains IP Addresses and Subnets seen in the environment
Interesting Views Table NameUsage AudioStreamDetailViewOne row is an audio stream VideoStreamDetailViewOne row is a video stream SessionViewOne row is a session MediaLineViewOne row is a media line NetworkConfigurationSettingsViewOne row is a subnet
Table structure and relationships
Relevant Columns MediaLineLabelType of Media and Use 0Audio 1Video 2Video - Panoramic from RoundTable 3Application Sharing 4Video - Gallery view SenderIsCallerPAIExplanation 0Stream is from Callee to Caller 1Stream is from Caller to Callee ColumnExplanation ConferenceDateTimeUTC time for when server received the first QoE report from caller or callee SessionSeqSequence number to differentiate sessions when they have the same ConferenceDateTime CallerInside CalleeInside Explanation 0Caller/Callee is signed in via Edge 1Caller/Callee is signed in to pool
Row relationships Session Type # of Session rows# of MediaLine rows per Session # of media stream rows per MediaLine P2P11 for audio 1 for application sharing for video 1 2 for audio for application sharing for video ConferenceEqual to Number of participants (each has a session with the MCU) 1 for audio 1 for application sharing for video 2 for audio for application sharing for video 2
Joining
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 KeyPrimary KeyValue Session.CallerURI Session.CalleeURI User.UserKeyUser.URI MediaLine.CallerIPAddr MediaLine.CalleeIPAddr IpAddress.IpAddressKeyIpAddress.IpAddress
INNER JOIN vs LEFT JOIN Table 1 Table 2 Table 1 Table 2
Call Leg
Media Paths – Type of client and server Foreign Key in SessionPrimary Key in UserAgentValue in UserAgent CallerUserAgent CalleeUserAgent UserAgentKeyUserAgent UAType
Media Paths – Location Source Column in MediaLineExplanation CallerInside CalleeInside 1: inside, 0: outside
Media Paths – Connection Type Foreign Key in MediaLinePrimary Key in NetworkConnectionDetail Value in NetworkConnectionDetail CallerNetworkConnectionType CalleeNetworkConnectionType NetworkConnectionDetailKeyNetworkConnectionDetail
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 QueryArea DeviceLooks at quality aspect where the capture device has an impact SystemLooks at quality aspect where the PC has an impact RelayLooks at using relay on internal call VPNLooks at media over VPN TransportLooks 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 ReportDateAllStreamsPoorStreamsPoorStreamsRatioQueryType , Trend_1_AVMCU_Mediation , Trend_1_AVMCU_Mediation , Trend_1_AVMCU_Mediation
Why these conditions?
Trending Query Structure ReportDateAllStreamsPoorStreamsPoorStreamsRatioQueryType , Trend_1_AVMCU_Mediation , Trend_1_AVMCU_Mediation , Trend_1_AVMCU_Mediation
Working with Devices
Solution Proposal
Trend_7_VPN Query Challenge
Solution
Surface More Data About Poor Quality
Tips & Tricks