Teams CQD/CDR/QoE

Bei Skype for Business gab es eine CDR/QOE-Datenbank, mit der man Verbindungsdaten und Qualitäten auswerten konnte. Auf dieser Seite möchte ich die Möglichkeiten einer Auswertung mit Microsoft Teams vorstellen, um Probleme zu suchen oder Reports zu erstellen. Der Schwerpunkt liegt dabei auf Audio und Video, d.h. Telefonanrufe und Konferenzen, die bezüglich der Netzwerkverbindung und dem Zufriedenheitsfaktor der Mitarbeiter und Teilnehmer kritisch sind. Nicht berücksichtigt wird die Arbeit in Teams mit Chats, Dokumenten etc.

Interessant sind natürlich Wege, die keinen Browser erfordern, sondern eine automatische Übernahme in das eigene Monitoring erlauben oder sogar Echtzeitdaten liefern

Teams Admin Portal

Der einfachste Weg zu Problemen eines Benutzers ist das Teams-Admin-Portal. Bei jedem Benutzer gibt es eine Karteikarte "Meetings&Calls", die einen direkten Zugang zu den Verbindungen der letzten 30(?) Tage gewährt.

Etwas ungeschickt ist die Sortierung nach der MeetingID. Sie können auch nach den anderen Spalten sortieren, aber es ist eine lexikalische Sortierung, was beim Datum und beim "When" untauglich ist.

Ich hätte mir hier eine Standardsortierung nach der zeitlichen Abfolge gewünscht, bei denen die letzten Anrufe oben stehen.

Mit einem Klick auf die Meeting ID kommen Sie direkt an die Details. Hier ein "poor call", den Microsoft als schlecht ansieht. Das ist nicht das Rating des Anwenders

So schön diese Gui ist, so beschränkt ist sie natürlich für Massenauswertungen.

Microsoft Call Quality Dashboard

Parallel dazu gibt es noch das klassische Call Quality Dashboard unter der URL https://cqd.teams.microsoft.com, welches noch den Skype for Business Fair verströmt. Schon dass man sich nochmal anmelden muss, ist ungewöhnlich und an Layout hat sich seit einige Zeit auch nichts mehr getan. Sie bekommen aber schon einen ersten Überblick über Trend u.a., wenn Sie denn den richtigen Bericht finden. Zudem sollten Sie ihre Gebäudedaten hochladen, damit Sie auch nach Netzwerk-Standorten gruppieren und filtern können.

Exemplarisch habe ich den "Erfahrungsqualitätsbericht" ausgewählt, der die Rückmeldungen der Anwender enthalten sollte. Sie sehen, dass hier im März 2021 neben Microsoft Teams auch noch Skype for Business gelistet wurde

Auch wenn die Oberfläche altbacken wirkt, erlaubt sie doch sehr gute Einblicke über längere Zeiträume, Analysen nach Standorten u.a. Spezielle "Qualitäts-Drilldown Reports" erlauben die Filterung immer weiter zu verfeinern, um Probleme zu erkennen. Eine Suche nach Subnetz zeigt sogar die BSSID der WLAN-Access-Points

Dann fehlt nur noch die ordentliche Pflege der Netzwerktopologie.

Power BI und CQD

Über die Leistungsfähigkeit von Power Bi zur Analyse von Datenbeständen habe ich schon im Bereich Power Bi mehrere Seiten geschrieben. Umso mehr habe ich mich gefreut, dass es von Microsoft nun auch einen PowerBI-Connector und Beispiel-Reports für CQD gibt. Sie müssen dazu auf einem PC einfach die kostenfreie Version von PowerBi installieren und dann den Connector nachinstallieren

PowerBi Dekstop
https://powerbi.microsoft.com/de-de/desktop

CQD Power BI Query Templates
https://www.microsoft.com/en-us/download/details.aspx?id=102291

Das Archiv enthält mehrere vorgefertigte PowerBI-Reports, die sie auch anpassen können:

Für die Nutzung müssen Sie CQD-Admin sein. Sie können die Report auch anpassen und im Unternehmen veröffentlichen und so anderen Personen zur Verfügung stellen. Allerdings benötigen diese Personen dann eine PowerBi Lizenz und natürlich CQD-Rechte. Mit dem Connector können Sie natürlich auch selbst die Daten anzapfen.

Sie haben dann die Wahl, ob sie die Daten "importieren" oder quasi "live" über die Funktion "Direct Query" abfragen.

Data API für CQD

Leider ist die dahinter verwendete Schnittstelle wohl nicht Graph, sondern ein eigener REST-Service, zu dem es keine API gibt. Per Fiddler ist zumindest zu sehen, dass der erste Zugriff (authentifiziert) einen Redirect auf die eigentliche Seite anfordert

Der zweite Zugriff beim "Direct Query" liefert eine 141kByte große JSON-Definition des Data Cube

Die Abfrage liefert aber einfach nur eine ganz große Tabelle mit ganz vielen Spalten

Wenn ich dann eine Spalte in PowerBi einbinde, sehe ich folgende Abfrage:

Man kommt also mit etwas Bastelei vermutlich schon an die Daten ran, nachdem man sich ein Authentifizierungs-Token (OAuth) besorgt hat. Die URL der API ist:

https://cqd.teams.microsoft.com/data/emea/runQuery

Wenn Sie dann etwas weiter schaue, dann finden Sie eine ältere Beschreibung für Skype for Business Server, die ziemlich viele Paralllelen hat:

PowerShell: Get-CSUSerSession

Dieses Commandlet war mit Skype for Business der Zugang zu den Daten. Allerdings wurde das Modul schon länger angekündigt und ist mittlerweile nicht mehr verfügbar.

Deprecation Notice 
We will be retiring this feature and cmdlet from Skype for Business Online beginning 5/30/2020. Instead we recommend the utilization of MS Graph Call Records API, which is where we will continue to invest our development resources. https://docs.microsoft.com/graph/api/resources/callrecords-api-overview?view=graph-rest-beta
Quelle: https://docs.microsoft.com/en-us/powershell/module/skype/get-csusersession?view=skype-ps 

Damit funktionieren natürlich auch andere Skripte nicht mehr, die auf diesem Commandlet aufbauen

Graph / Teams Call Records API

Die Notiz bei Get-CSUserSession führt direkt zur Graph API. Für den Zugriff auf diese API benötigen Sie die Berechtigung "CallRecords.Read.All". Allerdings brauchen Sie noch eine Information, die es zumindest im März 2021 noch nicht per API gab: Die CallID. Über Graph können sie zu jeder CallID die Details erhalten aber keine Liste de CallIDs.

Es gibt aber eine API um zumindest die PSTN-Verbindungen als Liste zu erhalten. Das ist für Abrechnungszwecke natürlich notwendig

Allerdings gibt es einen Webhook, über den man selbst einen WebService einbinden kann. Sie können dann Graph mitteilen, dass Microsoft ihren öffentlich erreichbaren Webservice ansprechen soll, sobald neue Daten vorliegen. Das ist eine durchaus gängige Praxis, da sie dann nicht immer wieder pollen müssen.

Über den Webhook, der durchaus auch eine Azure Funktion sein kann, bekommen Sie die CallID aber keine weiteren Daten..

SBC Logs

Wenn Sie mit Teams über Direct Routing telefonieren, dann laufen die Festnetzanrufe über einen Session Border Controller. Die meisten SBCs protokollieren auch die ein oder anderen Kennzahlen. Sie sehen aber nur die beiden Teilstrecken vom Carrier zum SBC und vom SBC zu Microsoft. Was dahinter passiert, können Sie nicht sehen. Es gibt aber den Sonderfall, dass mit "Direct Routing und Media Bypass" gearbeitet wird. Dann sieht wiederrum die Cloud keine Details und sie müssen Sprachprobleme beim SBC analysieren.

Bei einem korrekten Setup nutzen aber nur Clients den direkten Weg, die am gleichen Standort und im gleichen LAN sind. Da "sollte" es doch keine Probleme geben. Knifflig könnten hier die VPN-Benutzer sein, wenn diese als "Intern" angesehen werden aber die Verbindung besser über die Cloud gehen sollte.

Weitere Links