41% of all support cases cite call quality issues Microsoft and our biggest customers struggle to...

Post on 02-Jan-2016

230 views 6 download

Tags:

Transcript of 41% of all support cases cite call quality issues Microsoft and our biggest customers struggle to...

Jens Trier RasmussenMicrosoft

NETW400 - You Sound Marvelous Part 2- A deep dive into the Lync Call Quality Methodology SQL Queries and Data

Introduction

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.

The Quality ProblemAfter 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.

Why is Call Quality hard to achieve?

AV MCUCAS

CAA

Remote

Internal Internal

Mediation Server

PSTN Gateway

Guest

Call Leg

READ IT!! Lync 2013 Networking Guide

3. Network

Media stream quality between Lync servers – AV MCU, Mediation, Gateway

Media stream quality between endpoints and endpoints to servers

CQM looks at quality three ways

2. Endpoint

Endpoint factors including system, device, media transport and media path

1. ServersLync servers must be healthy and running without resource constraints

It is all in QoE

• All media endpoints send quality information to the Monitoring Database after each call• Collection of and purging of QoE

information controlled by CsQoEConfiguration• Global and Site scope• Set-CsQoEConfiguration -EnableQoE $True -EnablePurging $False

• SQL database QoEMetrics in the SQL Server and Instance pointed to by Monitoring Database• Get-CsService –MonitoringDatabase

Quality of Experience (QoE)

• Lync 2010 and Lync 2013 use different QoEMetrics instances• Co-existence challenge

• Different database schemas• 2013 - http://technet.microsoft.com/en-us/library/gg398687.aspx • 2010 - http://technet.microsoft.com/en-us/library/gg398687(v=ocs.14).

aspx

• Main differences• Support for video and application sharing media streams• Network connection• Subnet and IP addresses• ClassifiedPoorCall now on MediaLine and for all 3 modalities• New views including AudioStreamDetailView and

VideoStreamDetailView

Quality of Experience (QoE) information

• Only have 1 instance in your Lync deployment• Offload data from live QoE database to data

warehouse

Best Practices

QoE Database internals

Interesting TablesTable 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 ViewsTable 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 ColumnsMediaLineLabel Type of Media and Use

0 Audio

1 Video

2 Video - Panoramic from RoundTable

3 Application Sharing

4 Video - Gallery view

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

Column Explanation

ConferenceDateTime

UTC time for when server received the first QoE report from caller or callee

SessionSeq Sequence number to differentiate sessions when they have the same ConferenceDateTime

CallerInsideCalleeInside

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 audio1 for application sharing1 - 2 for video1

2 for audio1 - 2 for application sharing1 - 2 for video

Conference Equal to Number of participants (each has a session with the MCU)

1 for audio1 for application sharing1 - 7 for video

2 for audio1 - 2 for application sharing1 - 3 for video2

1) Normal video and panoramic video2) Lync 2013 sends both H.264 and RTVideo, if non Lync 2013 clients are in the conference

• In order to get audio stream information you need to join tables

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) ONa.MediaLineLabel = m.MediaLineLabel ANDa.ConferenceDateTime = m.ConferenceDateTime ANDa.SessionSeq = m.SessionSeq

• Result of the SELECT is a row per stream and you have access to all columns in the joined tables

Joining

Session 1 MediaLine 1Stream 1 – caller to

calleeStream 2 – callee to

callerSession 1 MediaLine 1

Different JOIN needsWhat 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 ANDm.SessionSeq = s.SessionSeq

Audio Sessions SELECT..FROM [Session] s WITH (NOLOCK)

INNER JOIN [MediaLine] AS m WITH (NOLOCK) ON m.ConferenceDateTime = s.ConferenceDateTime ANDm.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 ANDm.SessionSeq = s.SessionSeqINNER JOIN [AudioStream] AS a WITH (NOLOCK) ONa.MediaLineLabel = m.MediaLineLabel ANDa.ConferenceDateTime = m.ConferenceDateTime ANDa.SessionSeq = m.SessionSeq

Demo1: Row relationship

• Many columns in QoE tables do not contain the actual value, but a key to another table where the value can be found• Examples:

Foreign Key Relationship

Foreign Key Primary Key Value

Session.CallerURISession.CalleeURI

User.UserKey User.URI

MediaLine.CallerIPAddrMediaLine.CalleeIPAddr

IpAddress.IpAddressKey IpAddress.IpAddress

Demo2: Column relationship

INNER JOIN vs LEFT JOIN

Table 1 Table 2 Table 1 Table 2

INNER JOIN LEFT JOIN

NB: This type of join only give results where table 2 has a value, i.e. with NULL value in table 2 it means that the row will not be included in the result set

Demo3: JOIN

Query Foundation

Looks at different media paths There are a number of different paths media can travel in a Lync deployment

The queries looks at individual paths using Client or Server Location Connection Type

AV MCUCAS

CAA

Remote

Internal Internal

Mediation Server

PSTN Gateway

Guest

Call Leg

• User Agent specifies the version and type of endpoint• Types are defined in the UserAgentDef

table• Instances of User Agents are stored in

UserAgent table

Media Paths – Type of client and server

Foreign Key in Session Primary Key in UserAgent Value in UserAgent

CallerUserAgentCalleeUserAgent

UserAgentKey UserAgentUAType

Demo4: UserAgent table

• Is the caller or callee inside or outside of the Lync deployment?

Media Paths – Location

Source Column in MediaLine Explanation

CallerInsideCalleeInside

1: inside, 0: outside

• What type of network connection is used? Wired or Wireless• Different in Lync 2013 than Lync 2010• Lync 2010 way of testing on 0 for wired and 1 for wifi still works via

“hack”

Media Paths – Connection Type

Foreign Key in MediaLine Primary Key in NetworkConnectionDetail

Value in NetworkConnectionDetail

CallerNetworkConnectionTypeCalleeNetworkConnectionType

NetworkConnectionDetailKey NetworkConnectionDetail

Demo5: NetworkConnectionDetail Table

Media Paths – Putting it all togetherSELECT *FROM [Session] s WITH (NOLOCK)

INNER JOIN [MediaLine] AS m WITH (NOLOCK) ON m.ConferenceDateTime = s.ConferenceDateTime ANDm.SessionSeq = s.SessionSeq

INNER JOIN [AudioStream] AS a WITH (NOLOCK) ONa.MediaLineLabel = m.MediaLineLabel ANDa.ConferenceDateTime = m.ConferenceDateTime ANDa.SessionSeq = m.SessionSeq

INNER JOIN [UserAgent] AS CallerUA WITH (NOLOCK) ONCallerUA.UserAgentKey = s.CallerUserAgent

INNER JOIN [UserAgent] AS CalleeUA WITH (NOLOCK) ONCalleeUA.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

• All about surfacing information found in QoE

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

• Looking at network health over different media paths over time• Poor streams defined as audio streams with

one or both of these conditions true• PacketLossRate > 1%• PacketLossRateMax > 5%

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

• Our conditions will surface infrastructure issues, not necessarily report on user experience• Most calls with 1 percent packet loss do not contain any noticeable degradation• However, the existence of such calls is a good indicator that there is a latent issue

that is either causing issues or will cause issues in the future

• Managed wired networks should provide streams below these values

Why these conditions?

• ClassifiedPoorCall flag looks at 5 conditions related to different scenarios• DegradationAvg, RoundTrip, PacketLossRate, JitterInterArrival,

RatioConcealedSamplesAvg

• You can change the queries to use other conditions than PacketLossRate, i.e. like RoundTrip or Jitter, to look at other scenarios

Why these conditions?

Trending Query Structure

• Get audio streams using relevant conditions• Filter streams of interest using Common

Table Expression (CTE) or views• Output standard set of columns:

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

Demo6: Query Structure and Results

Take it to the next level

• The Endpoint_0_Device query looks at quality, where the capture device has an impact• Idea is to identify devices providing the

best quality• Challenge is the naming of a device• Localization• USB Port

Working with Devices

Demo7.1: Device naming challenge

• Created a PS script to extract actual device names and load them into a utility database• Use the utility database in the query

Solution Proposal

Demo7.2: Device naming solution

Working with Device Query Results

• Using CallerVPN/CalleeVPN flag in MediaLine• Based on client OS flagging the call as VPN• Challenge is that not all VPN software sets

the bit in the OS

Trend_7_VPN Query Challenge

• Specify a list of VPN subnets and use them as additional conditions in Trend_7_VPN query

Solution

Demo8: VPN Query

• You have discovered that:• A specific Office/Location complains about poor quality• A specific user complains about poor quality• Participants in a specific audio conference complains about poor quality

• You need to look at these specific audio streams

Surface More Data About Poor Quality

Demo9: Individual Audio Streams

Usage Examples

Poor Stream Overview

52

Poor Stream Distribution

Trending Charts

Tips and Tricks

• Performance is a problem with large data sets• Develop scripts using small date range• JOINs are expensive• Use as few as possible• Fine tune scripts to avoid JOIN, when you know what you are looking for

Tips & Tricks

Microsoft PavilionDemos, Speakers, Demos, Lync Room System, Experts, Demos, a Bar....and more Demos

ATTENDEE PARTYWednesday, February 19th

6:30pm-9:30pmHakkasan, MGM Grand

Brought to you by

When it comes to Vegas nightclubs, it doesn’t get any hotter than Hakkasan. And when it comes to opportunities to connect and reasons to party, no one does it better than Lync Conference! Our attendee party has a full lineup: an open bar, awesome food, and one of the best DJs that Vegas has to offer. Don’t miss out on the fun—stop by at 6:30pm and kick off and evening to remember. Come together.

HANDS-ON LABS

You can also access labs on MyLync!

3:00pm – 9:00pm10:30am – 9:00pm7:30am – 9:00pm8:00am –1:30pm

LOCATIONPinyon 3

Monday, February 17Tuesday, February 18Wednesday, February 19 Thursday, February 20

LRS

LOCATIONCopperleaf 12

Wednesday, February 198:30am – 9:45am10:15am – 11:30am1:00pm – 2:15pm2:45pm – 4:00pm4:30pm – 5:45pm

Thursday, February 209:00am – 10:15am10:45am – 12:15pm12:45pm – 2:00pm

MyLync allows you to create a custom experience and network with the Lync Community both online and in person.With MyLync, you can:• Build your own personalized calendar while browsing all available sessions• View breakout session material including PPTs and Videos within

48 hours of each session• Participate in the Community and find people in your social networks

who are attending and interact with speakers• Arrange meetings or social activities• Navigate the Exhibit Hall floor plan and learn more about our Sponsors• Fill out evaluations to win prizes

Log into MyLync at http://mylync.lyncconf.comFor MyLync support, please visit the Registration Desk.*

* Please note that adding a session to your calendar does not reserve a seat. Seating is on a first-come, first-served basis.

Birds of a FeatherBirds of a Feather flock together! Join daily breakfast discussions of relevant topics by sitting in the separately designated areas of the Meal Hall. Seating will be sorted in a different way for each Birds of a Feather breakfast:Wednesday, February 19:Where are you from? Asia/Pacific, Eastern & Central Europe, Latin America, Middle East & Africa, US (West, Central & East) and Canada, Western Europe

Thursday, February 20:What is your interest?Best Practices, Business Value, Clients & Mobility, Lync Meetings and Video, Lync Online, Networking, Platform, Server & Manageability, Voice

Fill out evaluations to win prizesFill out evaluations on MyLync or MyLync Mobile.Prizes awarded daily.

© 2014 Microsoft Corporation. All rights reserved. Microsoft, Windows, Windows Vista and other product names are or may be registered trademarks and/or trademarks in the U.S. and/or other countries.The information herein is for informational purposes only and represents the current view of Microsoft Corporation as of the date of this presentation. Because Microsoft must respond to changing market conditions, it should not be interpreted to be a commitment on the part of Microsoft, and Microsoft cannot guarantee the accuracy of any information provided after the date of this presentation. MICROSOFT MAKES NO WARRANTIES, EXPRESS, IMPLIED OR STATUTORY, AS TO THE INFORMATION IN THIS PRESENTATION.