Lync QoE (Monitoring und CDR)
Die Überwachung der "Qualität" ist insbesondere beim Einsatz von Audio und Video erforderlich. Wer eine größere VoIP-Umgebung ohne ein entsprechendes Monitoring betreibt, handelt aus meiner Sicht fahrlässig. Mit Lync 2013 ist für das Monitoring kein eigener Lync Server mehr erforderlich sondern die Frontend Server protokollieren die ihnen gesendeten Daten in eine bereitgestellte SQL-Datenbank auf einem vollwertigen SQL-Server.
Hinweis:
Dieses "Monitoring" bezieht sich nicht auf die
Überwachung der Funktion von Lync und den
Diensten oder der Bandbreiten auf dem LAN,
sondern der Protokollierung der verschiedenen
Kommunikationen durch den Monitoring Server.
Die Erfassung dieser Daten unterliegt strengen Schutzanforderungen, da sie auch für Einzelverbindungsnachweise o.ä. herangezogen werden können. Dies ist aber keine Lync -spezifische Funktion. Auch klassische TK-Anlagen erfassen solche Daten.
Erst mit diesen Daten können sie auch rückwirkend Probleme mit Lync Verbindungen nachverfolgen.
Zusammenhänge
Damit Monitoring funktioniert, müssen mehrere Schritte durchgeführt werden:
- SQL-Datenbank
Auch wenn Lync 2013 Monitoring nun im Frontend integriert ist und damit kein eigener Server mehr erforderlich ist, benötigen Sie dennoch eine SQL-Instanz zur Ablage der CDR und QoE Daten - Topology: Monitoring
Konfiguration
Dann müssen Sie in der Lync 2013 Topologie die Monitoring-Datenbank addieren, an den Pool aktiveren und zuweisen und veröffentlichen. Dabei wird auch die Datenbank auf dem interlegten SQL-Server angelegt. - Deployment: Installation
Nach Abschluss der CMS-Replication sollten sie auf allen Servern den Deployment-Schritt erneut durchführen. Nur so werden auf den Frontend-Servern die vorab fehlenden Dienste installiert. Denken Sie daran, dass Sie wie beim letzten Update eventuell einen "install-csdatabase" durchführen müssen.
Bei Lync 2010 müssen Sie den gesonderten Monitoring-Server installieren und auch MSMQ als Transportkomponente einrichten. Bei Lync 2013 entfällt dies. - Lync Clients: Provisioning
Die nun bereitgestellten Monitoring-Dienste werden den Clients über Lync Provisioning mitgeteilt. - QoE-Report am Ende der
Verbindung
Nachdem eine Verbindung mit einem BYE abgebaut wird, senden die Endpunkte einen QoE-Report als "SIP-SERVICE-Paket" zum Frontend Server - Transfer und Einbuchen in
SQL-Datenbank
Der Frontend Server stellt diese Daten dann über das Lync Storage System in die SQL-Datenbank ein. - Auswerten mit Reports
Die Daten in der Datenbank können Sie natürlich mit eigenen Abfragen auswerten
Topologie-Builder
Nachdem Sie passenden SQL-Server bereitgestellt haben, können Sie im Topologie-Builder anfangen die QoE-Datenbanken einzutragen und zu konfigurieren. Auf den Eigenschaften des Servers oder Pools wird die Verbindung zum Monitoring-SQL-Store hinterlegt.
Beim "Publish" legt der Topologie-Builder die entsprechenden Datenbanken an. Denken Sie daran, dass ggfls. Updates von Lync auch diese Datenbanken betreffen
Lync CSCP / PowerShell
Weitere QoE-Einstellungen finden Sie dann über das Lync Control Panel oder die Lync PowerShell
Stellen Sie sicher, dass hier global oder pro Pool das Monitoring auch aktiviert ist. Zudem können Sie hier einstellen, wann die Daten "gelöscht" werden. Das spart Platz in der Datenbank aber vor allem auch werden so Daten von Benutzern und Verbindungen besser geschützt. Das geht natürlich auch per PowerShell:
PS C:\> Get-CsQoEConfiguration Identity : Global ExternalConsumerIssuedCertId : EnablePurging : True KeepQoEDataForDays : 60 PurgeHourOfDay : 1 EnableExternalConsumer : False ExternalConsumerName : ExternalConsumerURL : EnableQoE : True
Client Provisioning und Logging
Wer auf dem Lync Client das Logging eingeschaltet hat, finde im Verzeichnis C:\Users\%Username%\Tracing\ Dateien wie "Communicator-uccapi-2.uccapilog" u.a. die sich mit dem Snooper aber genau so mit Notepad öffnen können. Suchen Sie da einfach mal nach "UccAudioVideoMediaQualityEvent". In der Regel finden Sie hier dann entsprechende Daten. Hier ein paar Beispiele:
- Fehlerhafte Konfiguration
Hier gelingt es dem Lync Client nicht die URL für den Monitoring Server in Erfahrung zu bringen.
10/12/2013|09:10:13.390 C9C:E98 INFO :: Function: CUccServerConfigurationCategory::get_QualityMonitoringServerUri 10/12/2013|09:10:13.390 C9C:E98 ERROR :: HRESULT API failed: 80ee0058 = GetConfigItemString( scisQualityMetricsServerUri, &sbstrQualityMetricsUri)
Aber auch wenn es keinen QoE-Server gibt, finden sich im UCCAPI-Log des Clients durchaus Hinweise auf Ergebnisse der Audio-Bewertung.
Sie werden dann nur leider nicht an die nächste Instanz gemeldet.
Wenn in Lync die Konfiguration korrekt hinterlegt ist, dann kann der Client dies im Log ebenfalls sehen. Wenn sich der Client anmeldet, sendet er SERVICE-Requests an den Server, damit der Server die Provisioning-Informationen an den Client ausliefert. Ein gutes Suchkriterium ist daher "<qosURI>
SIP/2.0 200 OK From: "Carius, Frank"<sip:frank.carius@msxfaq.de> To: <sip:frank.carius@msxfaq.de> CSeq: 1 SUBSCRIBE Expires: 0 Content-Type: application/vnd-microsoft-roaming-provisioning-v2+xml Event: vnd-microsoft-provisioning-v2 subscription-state: terminated;expires=0 <provisionGroupList xmlns="http://schemas.microsoft.com/2006/09/sip/provisiongrouplist-notification"> <provisionGroup name="ServerConfiguration" > <qosUri>sip:lyncfe.msxfaq.de@msxfaq.de;gruu;opaque=srvr:HomeServer:xJwcSrHKfxxxxxeMdwAA</qosUri> </provisionGroup> </provisionGroupList>
Client Reporting
Hinweis
Diesen Report des Clients an den Lync Server
erhalten Sie nur, wenn auf dem Pool des
Benutzers auch QoE-Monitoring aktiv ist. Wenn
sie keine QoE-Datenbank haben, dann unterlässt
der Lync Client diese Meldung.
Am Ende einer Verbindung senden alle Clients, die QoE unterstützen einen XML-Datensatz an den Lync Server zurück. Sie erkennen diesen Datensatz als "SERVICE"-Anfrage an den Server mit dem "Content-Type: application/vq-rtcpxr+xml". Hier die Ansicht im Snooper:
An der Stelle können sie nicht wirklich viel eingreifen. Besonders auf dem Client gibt es hier nicht vor zu konfigurieren, so dass ich hier einfach mal einen Beispiel-Request bereitstelle. Ausgehend von SIP-Header sehen Sie sehr bald, dass eine XML-Struktur quasi als "Anlage" angefügt wird. Die XML-Datei ist sogar recht einfach lesbar.
SERVICE sip:lyncpool.msxfaq.de@msxfaq.de;gruu;opaque=srvr:HomeServer:LHz94EO-YFGZTGKd5yQURQAA SIP/2.0 Via: SIP/2.0/TLS 10.0.0.101:8080 Max-Forwards: 70 From: <sip:User1@msxfaq.de>;tag=da947a7ad4;epid=49a00b99b2 To: <sip:lyncpool.msxfaq.de@msxfaq.de;gruu;opaque=srvr:HomeServer:LHz94EO-YFGZTGKd5yQURQAA> Call-ID: 898abb9b974e49de8cbbef39ca04ea58 CSeq: 1 SERVICE Contact: <sip:User1@msxfaq.de;opaque=User:epid:77r_H3qmZ123gcZMQGNURwAA;gruu> User-Agent: UCCAPI/4.0.7577.314 OC/4.0.7577.314 (Microsoft Lync 2010) Proxy-Authorization: TLS-DSK qop="auth", realm="SIP Communications Service", opaque="B555416B", targetname="CS-FE02.Msxfaq.de", crand="a7c51f33", cnum="114", response="e60ced9" Content-Type: application/vq-rtcpxr+xml Content-Length: 6309 <?xml version="1.0"?> <VQReportEvent xmlns="ms-rtcp-metrics" xmlns:v2="ms-rtcp-metrics.v2" v2:SchemaVersion="2.0"> <VQSessionReport SessionId="de10764ad7e543e6ba40447f63f38356;from-tag=4374615b1a;to-tag=dbed30ff38"> <Endpoint xmlns="ms-rtcp-metrics" xmlns:v2="ms-rtcp-metrics.v2" Name="CLIENT01" v2:OS="Windows 6.1.7601 SP: 1.0 Type: 1(Workstation) Suite: 00000100 Arch: x64 WOW64: True" v2:CPUName="CPU Brand GenuineIntel Family 0x6 Model 0x17 EM64T MaxFunc 0xd MaxFuncExt 0x80000008" v2:CPUNumberOfCores="4" v2:CPUProcessorSpeed="2660" v2:VirtualizationFlag="0"/> <DialogInfo CallId="de10764ad7e543e6ba40447f63f38356" FromTag="4374615b1a" ToTag="dbed30ff38" Start="2011-12-15T05:51:17.0435Z" End="2011-12-15T05:57:26.0208Z"> <FromURI>sip:User1@msxfaq.de</FromURI> <ToURI>sip:User1@msxfaq.de;gruu;opaque=app:conf:audio-video:id:N0CYDSZD</ToURI> <Caller>true</Caller> <LocalContactURI>sip:User1@msxfaq.de;opaque=User:epid:77r_H3qmZ123gcZMQGNURwAA;gruu</LocalContactURI> <RemoteContactURI>sip:User1@msxfaq.de;gruu;opaque=app:conf:audio-video:id:N0CYDSZD</RemoteContactURI> <LocalUserAgent>UCCAPI/4.0.7577.314 OC/4.0.7577.314 (Microsoft Lync 2010)</LocalUserAgent> <RemoteUserAgent>RTCC/4.0.0.0 AV-MCU</RemoteUserAgent> <ConfURI>sip:User1@msxfaq.de;gruu;opaque=app:conf:audio-video:id:N0CYDSZD</ConfURI> <v2:MediationServerBypassFlag>false</v2:MediationServerBypassFlag> <v2:Separator/> <v2:RegisteredInside>true</v2:RegisteredInside> </DialogInfo> <MediaLine xmlns="ms-rtcp-metrics" xmlns:v2="ms-rtcp-metrics.v2" Label="main-audio"> <Description> <Connectivity> <Ice>DIRECT</Ice> <IceWarningFlags>0</IceWarningFlags> </Connectivity> <Security>None</Security> <Transport>UDP</Transport> <NetworkConnectivityInfo> <NetworkConnection>wired</NetworkConnection> <VPN>false</VPN> <LinkSpeed>100000000</LinkSpeed> </NetworkConnectivityInfo> <LocalAddr> <IPAddr>10.0.0.101</IPAddr> <Port>10870</Port> <SubnetMask>255.255.0.0</SubnetMask> <v2:MACAddr>00-26-B9-86-37-0D</v2:MACAddr> </LocalAddr> <RemoteAddr> <IPAddr>10.0.0.22</IPAddr> <Port>53684</Port> </RemoteAddr> <CaptureDev> <Name>Desktop Microphone (Cinema - Microsoft LifeCam.)</Name> <Driver>Microsoft: 6.3.6002.0</Driver> </CaptureDev> <RenderDev> <Name>Speakers (SoundMAX Integrated Digital High Definition Audio)</Name> <Driver>AnalogDevices: 6.10.2.7250</Driver> </RenderDev> </Description> <InboundStream Id="586196451"> <Network> <Jitter> <InterArrival>0</InterArrival> <InterArrivalMax>1</InterArrivalMax> </Jitter> <PacketLoss> <LossRate>0</LossRate> <LossRateMax>0</LossRateMax> </PacketLoss> <BurstGapLoss> <BurstDensity>0</BurstDensity> <BurstDuration>0</BurstDuration> <GapDensity>0</GapDensity> <GapDuration>31040</GapDuration> </BurstGapLoss> <Utilization> <Packets>1619</Packets> </Utilization> <v2:RatioConcealedSamplesAvg>0.0006203474</v2:RatioConcealedSamplesAvg> <v2:RatioStretchedSamplesAvg>0.001861042</v2:RatioStretchedSamplesAvg> <v2:RatioCompressedSamplesAvg>0.001550869</v2:RatioCompressedSamplesAvg> </Network> <Payload> <Audio> <PayloadType>9</PayloadType> <PayloadDescription>g722</PayloadDescription> <SampleRate>16000</SampleRate> <Signal> <SignalLevel>-11</SignalLevel> <NoiseLevel>-63</NoiseLevel> <SpeakerGlitchRate>0</SpeakerGlitchRate> <v2:InitialSignalLevelRMS>0</v2:InitialSignalLevelRMS> <v2:AudioTimestampDriftRateSpk>1.721137E-005</v2:AudioTimestampDriftRateSpk> <v2:AudioTimestampErrorSpkMs>0.007327725</v2:AudioTimestampErrorSpkMs> </Signal> </Audio> </Payload> <QualityEstimates> <Audio> <RecvListenMOS>3.41</RecvListenMOS> <RecvListenMOSMin>3.31</RecvListenMOSMin> <NetworkMOS> <OverallAvg>4.27</OverallAvg> <OverallMin>4.23</OverallMin> <DegradationAvg>0.02</DegradationAvg> <DegradationMax>0.06</DegradationMax> <DegradationJitterAvg>0</DegradationJitterAvg> <DegradationPacketLossAvg>0</DegradationPacketLossAvg> </NetworkMOS> </Audio> </QualityEstimates> </InboundStream> <OutboundStream Id="1914550051"> <Network> <Jitter> <InterArrival>2</InterArrival> <InterArrivalMax>4</InterArrivalMax> </Jitter> <PacketLoss> <LossRate>0</LossRate> <LossRateMax>0</LossRateMax> </PacketLoss> <Delay> <RoundTrip>1</RoundTrip> <RoundTripMax>4</RoundTripMax> </Delay> <Utilization> <Packets>7565</Packets> <BandwidthEst>98365120</BandwidthEst> </Utilization> <v2:RatioConcealedSamplesAvg>0.001583913</v2:RatioConcealedSamplesAvg> <v2:RatioStretchedSamplesAvg>0.009503478</v2:RatioStretchedSamplesAvg> <v2:RatioCompressedSamplesAvg>0.00750637</v2:RatioCompressedSamplesAvg> </Network> <Payload> <Audio> <PayloadType>9</PayloadType> <PayloadDescription>g722</PayloadDescription> <SampleRate>16000</SampleRate> <Signal> <SignalLevel>-14</SignalLevel> <NoiseLevel>-55</NoiseLevel> <MicGlitchRate>0</MicGlitchRate> <v2:AudioTimestampDriftRateMic>1.919068E-005</v2:AudioTimestampDriftRateMic> <v2:AudioTimestampErrorMicMs>0.04675624</v2:AudioTimestampErrorMicMs> <v2:VsEntryCauses>0</v2:VsEntryCauses> <v2:EchoEventCauses>0</v2:EchoEventCauses> </Signal> <v2:AudioFECUsed>false</v2:AudioFECUsed> </Audio> </Payload> <QualityEstimates> <Audio> <SendListenMOS>2.76</SendListenMOS> <SendListenMOSMin>1.13</SendListenMOSMin> </Audio> </QualityEstimates> </OutboundStream> <v2:AppliedBandwidthLimit>150800</v2:AppliedBandwidthLimit> <v2:AppliedBandwidthSource>StaticMax</v2:AppliedBandwidthSource> <v2:LocalClientEvent> <v2:NetworkSendQualityEventRatio>0</v2:NetworkSendQualityEventRatio> <v2:NetworkReceiveQualityEventRatio>0</v2:NetworkReceiveQualityEventRatio> <v2:NetworkDelayEventRatio>0</v2:NetworkDelayEventRatio> <v2:NetworkBandwidthLowEventRatio>0</v2:NetworkBandwidthLowEventRatio> <v2:CPUInsufficientEventRatio>0</v2:CPUInsufficientEventRatio> <v2:DeviceHalfDuplexAECEventRatio>0</v2:DeviceHalfDuplexAECEventRatio> <v2:DeviceRenderNotFunctioningEventRatio>0</v2:DeviceRenderNotFunctioningEventRatio> <v2:DeviceCaptureNotFunctioningEventRatio>0</v2:DeviceCaptureNotFunctioningEventRatio> <v2:DeviceGlitchesEventRatio>0</v2:DeviceGlitchesEventRatio> <v2:DeviceLowSNREventRatio>0</v2:DeviceLowSNREventRatio> <v2:DeviceLowSpeechLevelEventRatio>0</v2:DeviceLowSpeechLevelEventRatio> <v2:DeviceClippingEventRatio>0</v2:DeviceClippingEventRatio> <v2:DeviceEchoEventRatio>0</v2:DeviceEchoEventRatio> <v2:DeviceNearEndToEchoRatioEventRatio>0</v2:DeviceNearEndToEchoRatioEventRatio> <v2:DeviceMultipleEndpointsEventCount>0</v2:DeviceMultipleEndpointsEventCount> <v2:DeviceHowlingEventCount>0</v2:DeviceHowlingEventCount> </v2:LocalClientEvent> </MediaLine> </VQSessionReport> </VQReportEvent>
Wer diesen Report genau ansieht wird rausfinden, dass es ein Ast einer Audiokonferenz war, die hier berichtet wird.
System-wide Troubleshooting:
Lync Call Connectivity
http://content3.catalog.video.msn.com/e2/ds/03bfbee4-8205-49cc-aecb-b3528d767fc8.wmv
Help Desk Troubleshooting:
Lync Call Issues
http://content5.catalog.video.msn.com/e2/ds/6da747fe-db85-4284-8fe1-5bfc0a99ca37.wmv
Monitoring and Managing
Jitter für VoIP
http://content5.catalog.video.msn.com/e2/ds/cee7449a-eaa5-423a-81db-3cbd96972584.wmv
Andere Clients
Die ganze QoE-Auswertung funktioniert natürlich nur mit entsprechenden Clients. Und hier gibt es durchaus mehr als "nur" den Windows Communicator. Aber beileibe nicht alle Clients erstellen am Ende einen passenden QoE-Report. Diese Reports sind nicht "Standardisiert", sondern eine Besonderheit von Lync. Das soll aber nicht heißen, dass nicht andere Produkte ähnliche Wege können. nur sind diese nicht immer mit Lync kompatibel. Wie wichtig ein QoE-Report ist, müssen Sie selbst bewerten und entsprechend die Endgeräte auswählen.
Beim Einsatz mit MediaBypass wäre es schon interessant die Performance zwischen Endgerät und Gateway/SBC zu erhalten. Allerdings kommt MediaBypass in der Regel sowieso nur innerhalb eines Standorts zustande und hier sollte Bandbreite kein Problem sein. Ein entfernter Client sendet die Daten dann über den Mediation Server, der QoE-Daten liefert. Der Weg vom Mediation Server zum Gateway, SIP-Trunk oder SBC sollte "nahe" und unkritisch sein. Hier wäre es dann zu verschmerzen. Anders sieht es natürlich für Clients "in der Welt" aus, also Lync Client aber auch Telefone verschiedener Hersteller.
Hier der Versuch einer Übersicht, welche Clients QoE-konforme Reports an Lync melden.
Client | Typ | Lync QoE | Bemerkungen |
---|---|---|---|
Communicator 2010/2013 |
Software |
Ja |
Nein |
OCS Communicator |
Software |
Nein |
Nein |
Lync A/V MCU |
Software |
Ja |
Nein |
Lync Mediation Server |
Software |
Ja |
Nein |
Snom |
Telefon |
Nein |
RTCP XR, Syslog |
Polycom |
Telefon |
Nein |
|
Audiocodes 420HD |
Telefon |
Ja |
Die Firmware "AUDC-IPPhone-420HD_UC_2.0.11.194.2.6/1.0.0000.0" meldet einen VQReportEvent |
Aries |
Telefon |
Ja |
Es hängt wohl von der Firmware ab. "CPE/4.0.7577.4455 OCPhone/4.0.7577.4455 (Microsoft Lync Phone Edition)" meldet QoE Reports |
Audiocodes Mediant |
Gateway/SBC |
Nein |
Syslog,
Audiocodes QoE
Report
|
Sonus |
Gateway/SBC |
Ja |
|
Ferrari |
Gateway/SBC |
Nein |
|
AnyNode |
Gateway/SBC |
? |
|
ACME |
SBC |
? |
|
<weitere Geräte> |
<?> |
<?> |
weitere Geräte addiere ich gerne. |
Lync ist natürlich nicht das alleinige Maß aller Dinge. Es gibt durchaus auch andere Produkte, die z.B. die RTCP-Rückmeldungen auswerten oder eigene Protokollfunktionen nutzen.
- 3611 RTP Control Protocol
Extended Reports (RTCP XR)
http://www.rfc-base.org/rfc-3611.html - Tool Description: RTCP XR -
RFC3611
http://www.voiptroubleshooter.com/tools/voiptr_rtcpxr.htm
Backend
Bei Lync 2013 sammelt der "UDC Agent" auf dem Frontend Server die Daten des Clients ein und leider diese an LySS asynchron an eine AsyncDB weiter, die aus HA-Überlegungen innerhalb des Pools weiter. LySS synchronisiert die Daten dann letztlich in die SQL-Datenbank in die Tabellen QoE und CDR.
Die beiden Datenbanken ergänzen sich, wobei ich hier nun nicht auf die einzelnen Tabellen eingehen möchte. Die LcsCDR-Datenbank hat über 63 Tabellen und über 180 Stored Procedures. Die QoE-Datenbank steht mit etwas über 60 Tabellen und über 140 Stored Procedures nicht viel hintendran. für die Auswertung dieser Reports eignen sich die von Lync mitgelieferten Reports für die SQL-Reportings Services.
SCOM
Die Daten in den Datenbanken können sie natürlich auch anderweitig auswerten. SCOM ist z.B. ein Beispiel, welches regelmäßig die QoE-Reports nutzt, um Grenzwertüberschreitungen zu finden und entsprechend zu melden:
Sie können natürlich auch eigene Reports aus den Daten generieren. Das Datenmodell ist durchaus offengelegt und es gibt auch andere Produkte und Skripte, die auf diese Daten zugreifen:
Microsoft Lync Server
2010: using Monitoring Server Reports
http://www.microsoft.com/en-us/download/details.aspx?id=890
- Extending your Lync
monitoring data using PowerPivot
and Power View
http://blogs.msdn.com/b/wesleyb/archive/2012/03/09/extending-your-lync-monitoring-data-using-powerpivot-and-power-view.aspx - Viewing network health
trends using QoE data
http://blogs.technet.com/b/jenstr/archive/2013/06/11/viewing-network-health-trends-using-qoe-data.aspx - Microsoft Lync ZenPack
http://wiki.zenoss.org/ZenPack:Microsoft_Lync
Health Service Script
Passend dazu habe ich auch noch vom Operation Manager ein Skript gesehen, welches die QoE-Datenbank auswertet und eine XML an SCOM zurück gibt. Im Eventlog findet sich dazu:
Log Name: Operations Manager Source: Health Service Script Date: 30.09.2015 10:46:28 Event ID: 225 Task Category: None Level: Information Keywords: Classic User: N/A Computer: NAWLYNC002.netatwork.de Description: DiscoverAlertQoE.ps1 : -------------------------------------------------------------------------------- -Script Name: Skype für Business Server 2015 MP QoE Alert Discovery -Run as account: nt authority\network service -Execution Policy: Unrestricted -------------------------------------------------------------------------------- Value of Source Id is {3AE1A465-F77A-977F-7B59-17BD03590962}. Value of ManagedEntity Id is {8264F207-9EDE-5D87-5344-C8F692274562}. Value of Target Computer is NAWLYNC002.netatwork.de. +++ SCRIPT PARAMETERS +++ SourceId={3AE1A465-F77A-977F-7B59-17BD03590962} ManagedEntityId={8264F207-9EDE-5D87-5344-C8F692274562} ComputerName=NAWLYNC002.netatwork.de SQLInstance=nawsql003.netatwork.de\nawlync MirrorSQLInstance= Default_MinutesToQuery=120 Default_MinCallsAffected=50 Default_MinUsersAffected=2 Default_WarningAlertThresholdPercentage=14 Default_CriticalAlertThresholdPercentage=20 Default_IncludeWIFICalls=false Default_IncludeVPNCalls=false Default_IncludeExternalCalls=false AVConf_WarningAlertThresholdPercentage=-1 AVConf_CriticalAlertThresholdPercentage=-1 AVConf_ExcludeInstances= MediationServer_WarningAlertThresholdPercentage=-1 MediationServer_CriticalAlertThresholdPercentage=-1 MediationServer_ExcludeInstances= GatewayMS_WarningAlertThresholdPercentage=-1 GatewayMS_CriticalAlertThresholdPercentage=-1 GatewayMS_ExcludeInstances= GatewayClient_WarningAlertThresholdPercentage=-1 GatewayClient_CriticalAlertThresholdPercentage=-1 GatewayClient_ExcludeInstances= InterRegion_WarningAlertThresholdPercentage=-1 InterRegion_CriticalAlertThresholdPercentage=-1 InterRegion_ExcludeInstances= InterUserSite_WarningAlertThresholdPercentage=-1 InterUserSite_CriticalAlertThresholdPercentage=-1 InterUserSite_ExcludeInstances= IntraUserSite_WarningAlertThresholdPercentage=-1 IntraUserSite_CriticalAlertThresholdPercentage=-1 IntraUserSite_ExcludeInstances= Subnet_WarningAlertThresholdPercentage=-1 Subnet_CriticalAlertThresholdPercentage=-1 Subnet_ExcludeInstances= --- SCRIPT PARAMETERS --- ============================================================= Successfully initialize discovery data. AlertSettingsXML= <AlertSetting> <Settings MinCallsAffected="50" MinUsersAffected="2" IncludeWIFICalls="0" IncludeVPNCalls="0" IncludeExternalCalls="0" /> <CategoryThresholds> <CategoryThreshold Category="Subnet" CategoryId="5" WarningThreshold="14" CriticalThreshold="20" /> <CategoryThreshold Category="MediationServer" CategoryId="1" WarningThreshold="14" CriticalThreshold="20" /> <CategoryThreshold Category="InterUserSite" CategoryId="7" WarningThreshold="14" CriticalThreshold="20" /> <CategoryThreshold Category="AVConf" CategoryId="2" WarningThreshold="14" CriticalThreshold="20" /> <CategoryThreshold Category="InterRegion" CategoryId="8" WarningThreshold="14" CriticalThreshold="20" /> <CategoryThreshold Category="GatewayClient" CategoryId="4" WarningThreshold="14" CriticalThreshold="20" /> <CategoryThreshold Category="GatewayMS" CategoryId="3" WarningThreshold="14" CriticalThreshold="20" /> <CategoryThreshold Category="IntraUserSite" CategoryId="6" WarningThreshold="14" CriticalThreshold="20" /> </CategoryThresholds> <ExcludeInstances></ExcludeInstances> </AlertSetting> MinimumCallVolume=50 SQLInstance=nawsql003.netatwork.de\nawlync MirrorSQLInstance= gQueryStartUTCTime =09/30/2015 06:46:12 gQueryEndUTCTime =09/30/2015 08:46:12 Sproc Execution : exec QoeGetScomInstances @AlertSettingsXML=' <AlertSetting> <Settings MinCallsAffected="50" MinUsersAffected="2" IncludeWIFICalls="0" IncludeVPNCalls="0" IncludeExternalCalls="0" /> <CategoryThresholds> <CategoryThreshold Category="Subnet" CategoryId="5" WarningThreshold="14" CriticalThreshold="20" /> <CategoryThreshold Category="MediationServer" CategoryId="1" WarningThreshold="14" CriticalThreshold="20" /> <CategoryThreshold Category="InterUserSite" CategoryId="7" WarningThreshold="14" CriticalThreshold="20" /> <CategoryThreshold Category="AVConf" CategoryId="2" WarningThreshold="14" CriticalThreshold="20" /> <CategoryThreshold Category="InterRegion" CategoryId="8" WarningThreshold="14" CriticalThreshold="20" /> <CategoryThreshold Category="GatewayClient" CategoryId="4" WarningThreshold="14" CriticalThreshold="20" /> <CategoryThreshold Category="GatewayMS" CategoryId="3" WarningThreshold="14" CriticalThreshold="20" /> <CategoryThreshold Category="IntraUserSite" CategoryId="6" WarningThreshold="14" CriticalThreshold="20" /> </CategoryThresholds> <ExcludeInstances></ExcludeInstances> </AlertSetting>' Read Row (CategoryId:3;Name=Healthy Instances) Discovered (GatewayMS)Healthy Instances Read Row (CategoryId:4;Name=Healthy Instances) Discovered (GatewayClient)Healthy Instances Read Row (CategoryId:5;Name=Healthy Instances) Discovered (Subnet)Healthy Instances ============================================================= Finished Discovery für QoE instances --------------------------------------------------------------------------------
Allerdings habe ich das Skript selbst auf dem Server gar nicht finden können.
Offen
So schön die QoE-Reports von Lync sind, so beschränkt ist doch ihre Einsatzfähigkeit, bedingt durch einige fehlende Funktionen:
- Nicht Realtime, Nur "Post
Call"
Die QoE-Daten werden am Ende der Verbindung zurück gemeldet. Leider gibt es keine Zwischenberichte etc. - Nur Zusammenfassungen
Hinzu kommt, dass die QoE-Reports auch wirklich nur eine "Endsumme" liefert über den gesamten Call. Gerade bei längeren Gesprächen oder Konferenzen sind kürzere Probleme durchaus stören, aber werden im QoE-Report nicht immer bei der Mittelwertbildung sichtbar.
Allerdings werden bei Konferenzen ab und wohl auch QoE-Reports während der Konferenz gesendet. - Keine Messung bei "Idle"
Verständlicherweise kann Lync nur QoE-Reports generieren, wenn auch Verbindungen aufgebaut und abgebaut wurden. Da Lync aber nicht im Hintergrund einen RTP-Datenstrom für Messzwecke aufbaut, enthalten die Reports also nur die Zeiten von aktiven Gesprächen. für die Ausmessung eines Netzwerk bezüglich seiner VoIP-Tauglichkeit ist QoE weniger geeignet. - Keine Meldung bei Abbruch
der Verbindung
Wenn ein Client seine Netzwerkverbindung während eines Gesprächs verliert, dann sind die QoE-Daten nur partiell vorhanden. Sicher bemerkt die Gegenstelle an den Ausbleibenden RTCP-Paketen, dann der Gegenüber nicht mehr online ist und baut die Verbindung nach einiger Zeit ab. Aber die andere Seite puffert nicht ihre Daten, bis die Verbindung wird kommt. Der Report ist also nur "halbseitig".
Es bleibt also durchaus noch Potential.
Weitere Links
- Bandbreitensensor
- QoS Sensor
- 2703324 FIX: Monitoring Server Reports experiences poor performance in Lync Server 2010
- Monitoring and Troubleshooting Lync Calls
http://blogs.technet.com/b/nexthop/archive/2011/10/10/monitoring-and-troubleshooting-lync-call-videos.aspx - Lync Server 2010 Videos
http://technet.microsoft.com/en-us/lync/gg430649 - Sample CDR Database Queries
http://technet.microsoft.com/en-us/library/gg398329.aspx - Microsoft Lync Server 2010
Reference: Call Data Recording
and Quality of Experience
Database Schema
http://www.microsoft.com/download/en/details.aspx?id=18099 - Scheduling Skype For
Business Server Reporting
http://www.ucguys.com/2016/06/scheduling-skype-for-business-server-reporting.html - Monitoring OCS and Lync Peak
Call Capacity
http://www.confusedamused.com/notebook/monitoring-ocs-and-lync-peak-call-capacity/
Auswertung des Lync/OCS Mediation Server mit Perfmon. - Extending your Lync
monitoring data using PowerPivot
and Power View
http://blogs.technet.com/b/ilvancri/archive/2012/03/09/extending-your-lync-monitoring-data-using-powerpivot-and-power-view.aspx - Microsoft Lync gathers data
just like NSA vacuums up info in
its domestic surveillance
program
http://m.networkworld.com/news/2014/022014-microsoft-lync-nsa-278925.html - IP Phone Inventory Report in
Skype for Business Server 2015
https://technet.microsoft.com/en-us/library/gg615027.aspx - Chapter 9. Lync 2013
Monitoring and Reporting
http://apprize.info/microsoft/lync/9.html
- 3611 RTP
Control Protocol
Extended Reports
(RTCP XR)
http://www.rfc-base.org/rfc-3611.html - Tool
Description:
RTCP XR -
RFC3611
http://www.voiptroubleshooter.com/tools/voiptr_rtcpxr.htm