Teams Verbindungdaten (CQD/CA)

Diese Seite beschreibt die verschiedenen Datenquelle, mit denen Administratoren und 3rd Party Programme die Verbindungsdaten für Teams Meetings und Voice ermitteln und verarbeiten können. Microsoft hat hier eine ganze Flut von Quellen mit unterschiedlichen Ausprägungen, was sicher auch der Historie geschuldet ist. Skype for Business Online hatte schon ein Reporting und Skype for Business 2019 hat die QoE-Datenbank auch in die Cloud ausgelagert. In 2016/2017 kam dann Teams dazu.

Die Story

Ich konzentriere mich hier erst einmal nur Microsoft Teams und Audio/Video. Zudem müssen Sie zwischen dem Reporting von Verbindungen von der Steuerung (Call Queues, Bots etc.) unterscheiden. Hier geht es um Reporting und dabei gibt es folgende Szenarien für Verbindungen:

  • PSTNCalls über einen eigenen SBC
    Als Kunde kann ich Anrufe über meine eigene TK-Infrastruktur leiten und kann z.B. auf die Logs dieser Struktur anzapfen
  • DirectRouting Calls
    Hier stellt Microsoft die TK-Anbindung und sie haben keinen Zugriff auf die SBCs. Es bleibt nur der Datenbestand in Teams selbst
  • Operator Connect / Hosted SBC
    Die Sprache kommt über die SBC-Umgebung eines Dienstleisters. Damit
  • Meetings
    Ob nun geplant oder Adhoc, Meetings mit Sprache, Bild, PowerPoint, Whiteboard und Desktop-Sharing sind die Regel und sollten mit erfassbar sein
  • Internet Teams Calls/Federation Calls
    Je mehr Firmen und Mitarbeiter mit Teams arbeiten, desto ehe wird gar nicht mehr die Telefonnummer genutzt sondern direkt kommuniziert. Diese Verbindungen laufen nicht über einen SBC oder Telefonanschluss und sind damit über den TK-Weg nicht zu erfassen.

 

Schnittstellen und Änderungen

 

Schnittstelle Beschreibung Zukunft

PowerShell

Lange Zeit konnte ein Administrator per SfB PowerShell mit dem Befehl "Get-CSUserSession" Details zu den Aktivitäten eines Benutzers in Erfahrung bringen.

Depreciated

Microsoft Anrufqualitäts-Dashboard

Unter der Url https://cqd.teams.microsoft.com konnten schon Skype for Business Online Administratoren in die Verbindungsdaten per Browser stöbern. Die Funktion ist auch für Microsoft Teams verfügbar. Das Look and Feed ist aber ziemlich altbacken und ich könnte mir vorstellen, dass hier nicht viel mehr kommt.

OK

PowerBI

Microsoft hat für Teams ein PowerBI Paket bereit gestellt, welches im Hintergrund aber einen REST-Zugriff auf https://cqd.teams.microsoft.com nutzt und damit anscheinend die automatische Schnittstelle des "Microsoft Anrufqualitäts-Dashboard" ist. Leider ist aber die API selbst nicht "offen", auch wenn ein Reverse Engineering per Fiddler durchaus möglich ist.

OK

Graph

Über Microsoft Graph können Sie mittlerweile umfangreiche Daten abrufen und auswerten. Über einen WebHook können Sie sogar sehr zeitnah diese Daten erhalten. Allerdings können Sie z.B.: keine Liste der Federation Calls oder internen Teams-Verbindungen oder Meetings erhalten.

OK

SBC

Wenn Sie selbst einen SBC betreiben oder ihre Carrier ihnen Zugriff auf die Logs eines gehosteten SBCs erlaubt, können Sie hier zumindest die PSTN-Anrufe in beide Richtungen auswerten. Allerdings sehen Sie meist nur den Verbindungsaufbau/Abbau aber keine internen Weitervermittlungen.

OK

RealTimData

Um akute
"[Microsoft Teams] Microsoft Teams: Real time data for Teams Meetings in Teams Admin Center (Preview) [MC282781]"

?

 

Lücken

RealTime Daten

Interne Calls

Meetings

Bin noch nicht fertig

 

 

 

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

Datensicherheit

Hinweis:
Die Auswertung von Verbindungsdaten ist aus Datenschutzgründen besonders sensibel zu behandeln. Sprechen Sie vorab mit ihrem Datenschutzbeauftragten und Betriebsrat/Personalrat über den genauen Umfang

Microsoft hat in 2021 die Default-Einstellung für die Anzeige der personenbezogenen Daten geändert, so dass diese nicht mehr in Klartext im Reporting zu sehen sind. Sie können das Verhalten als "Global Admin" im Office 365 Portal wieder aktivieren:

Die folgenden Ausnahmen wurden mit der angezeigten Einstellung gemacht.

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.

Das Admin Portal bietet auch einen Zugriff per Browser auf "Usage Reports" unter "Analytics & Reports". Hier können vordefinierte Berichte angeschaut und manuell herunter geladen werden.

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.

Leider habe ich keine offizielle API gefunden, um die Daten selbst per Skript o.ä. abzufragen. Per Fiddler kann man natür.ich schon sehen, was PowerBI im Hintergrund macht

Die im Archiv enthaltene „MicrosoftCallQuality.pqx“ ist eine ZIP-Datei, welche ausgepackt den Sourcecode für den Zugriff offenbart. Die Datei „MicrosoftCallQuality.m“ aus dem Archiv enthält URLs und auch App-IDs, mit denen sich PowerBi dann am Backend anmeldet:

 

Allerdings ist das natürlich eine "dokumentierte API", und kann von Microsoft immer wieder verändert werden.

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