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.
Download ReportTranscript 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.
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