Teams Call History

Teams ist meine Informationsdrehscheibe und natürlich telefoniere ich mit Teams als TK-Anlage. Es gibt eingehende Anrufe, die ich "verpasse" und auch über stattgefundene Anrufe führt Teams an verschiedenen Stellen mit. Diese Seite beschäftigt sich mit der individuellen Call History pro Anwender und dem Exchange Postfach. Die Protokollierung von Anrufen in der CDR-Datenbank oder einem SBC wird hier nicht weiter betrachtet.

Ansicht in Teams

Im Teams Client gibt es links die App "Anrufe", über die Sie direkt 1:1-Anrufe ausführen, geparkte Anrufe heranholen und Weiterleitungen und Headsets einstellen können. Sie sehen hier aber auch den "Verlauf" der vergangenen Anrufe:

Damit dies funktioniert, muss "etwas" diese Informationen irgendwo abspeichern. Da der Verlauf in jeder Teams-Instanz identisch aussieht, muss die Information im Backend liegen. Man kann mit Fiddler natürlich.

Sie finden hier nicht alle Anrufe
z.B. die Teilnahme in einem Meeting in einem anderen Tenant wird hier nicht protokolliert.

Datenablage

Wo diese Informationen stehen, ist auch kein Geheimnis, sondern gut von Microsoft dokumentiert: Alle Elemente liegen in ihrem Postfach.


Microsoft Teams eDiscovery for Calling/Meetings
https://techcommunity.microsoft.com/t5/microsoft-teams-blog/microsoft-teams-launches-ediscovery-for-calling-and-meetings/ba-p/210947

Microsoft Teams schreibt diese Einträge auch dort hinein, weil sich mit Exchange und den passenden Policies für Mails so nebenbei auch die Compliance-Vorgaben für Teams erfüllen lassen. Laut Microsoft wird auch mit einem Exchange On-Premises-Postfach die Call History bereitgestellt

Wenn ich mal wieder in die Situation bei einem Kunden komme, dass ein Exchange Postfach noch "On-Premises" liegt und ich mit TeamsOnly in der Cloud arbeiten, dann werde ich die Details dazu noch einmal nach prüfen.

EWS und Exchange

Allerdings sehen Sie die Informationen so erst einmal nicht mit Outlook. Nachdem Microsoft Exchange MAPI Editor (früher MFCMAPI) nicht mehr richtig funktioniert, ist der EWSEditor das Mittel der Wahl einen Blick in die Exchange Mailbox samt versteckter Ordner zu werfen. Wenn Sie den EWS-Editor bislang noch nie mit Exchange Online genutzt haben, dann brauchen Sie noch einen Zwischenschritt: Sie müssen die Applikation erst in ihrem Tenant registrieren:

Darauf gehe ich hier erst mal nicht weiter ein. Interessanter ist dann der Blick in das Postfach. Die Ordner, welche Sie in Outlook sehen, beginnen der dem Unterordner "Oberste Ebene des Informationsspeichers". Bei einem englischen Postfach ist das "Top of Informationstore". Sie sehen schon wie irreführend der Ordnername ist, denn darüber gibt es noch die "Root". Unter "Root" befinden sich noch ganz viele weitere Systemordner.

Wer genau hinschaut findet hier auch noch Reste eines Blackberry und die "SMS-Synchronisation" früherer Mobilclients. Interessant ist hier aber der "SkypeSpacesData"-Ordner, unter dem sich "TeamsMeetings" befindet. Sie können hier auch noch den Ordner "TeamsMessages" und "SkypeMessages" erkennen. Damit wissen Sie nun auch, wo Teams ihre 1:1 Chats ablegt. In meinem Ordner "TeamsMessages" sind 3413 Elemente und die Anzeige listet einige Elemente auf:

Ich finde hier sowohl "IPM.AppointmentSnapshot.SkypeTeams.Call" und IPM.AppointmentSnapshot.SkypeTeams.Meeting"-Elemente. Es sind also weit mehr als nur die Meetings, wie der Ordnername suggeriert. Allerdings habe ich mit den Elementen selbst nicht so viel anfangen können. Mir reicht aber schon der Betreff, welcher z.B. eine CallID enthält.

Mehr wollte ich an der Stelle auch gar nicht, denn wenn ich die Call-ID habe, kann ich den Rest zu dem Call auch wieder per Graph aus der Call Analytics-Datenbank abfragen.

Die Liste enthält aber nur die Anrufe, die ich selbst gestartet oder erhalten habe. Es fehlen aber z.B. Meetings aus anderen Tenants, an denen ich teilgenommen habe.

Auswertung

Nun möchte ich natürlich nicht dauerhaft per EWSExplorer durch die Ordner klicken. Das ist dann nicht nur mühsam sondern auch ein Risiko. Würden Sie mit ADSIEDIT im AD arbeiten, wenn es sicherere Programme gibt, die ihre Eingaben verifizieren? Aber EWS ist von Microsoft auch wieder "abgekündigt". Daher habe ich mich mit Graph beschäftigt. Wie so häufig lande ich auf den Seiten von Glen Scales.

Es sollte im Prinzip also möglich sein, über EWS auch als Client oder sogar in einer App weitere Informationen zu vergangenen Meetings und Call anzuzeigen. Allerdings muss die Suche etwas angepasst werden:

ItemClass isn't a first class property in the graph so if you want to use it in a Filter you need to use the singleValueExtendedProperties defination of the MAPI messageclass property and filter on that eg
https://graph.microsoft.com/v1.0/me/mailFolders('Inbox')/messages?$filter=singleValueExtendedProperties/any(ep:ep/id eq 'String 0x001a' and ep/value eq 'IPM.Note')
One pain point with the Graph is that it only lets you access particular MessageClass's and SubClass of those via the Messages endpoint.
Quelle: https://stackoverflow.com/questions/67432733/does-graph-api-support-custom-header-to-be-used-as-search-filter

Denkbar sind also Graph-Suchen wie:

https://graph.microsoft.com/v1.0/me/messages?$filter=singleValueExtendedProperties/any(ep:ep/id eq 'String 0x001a' and ep/value eq 'IPM.AppointmentSnapshot.SkypeTeams.Call')

https://graph.microsoft.com/v1.0/me/mailFolders('Inbox')/messages?$filter=singleValueExtendedProperties/any(ep:ep/id eq 'String 0x001a' and ep/value eq 'IPM.AppointmentSnapshot.SkypeTeams.Call')

https://graph.microsoft.com/v1.0/me/mailFolders('Inbox')/messages?$filter=singleValueExtendedProperties/any(ep:ep/id eq 'String 0x001a' and ep/value eq 'IPM.AppointmentSnapshot.SkypeTeams.Meeting')

In Ermangelung einer konkreten Kundenanfrage und keinen eigenen Bedarf habe ich nach der Recherche und Analyse kein Skript entwickelt, um diese Daten als Benutzer oder als Firma zu extrahieren und z.B. für ERP-, CRM- oder Abrechungszwecke weiter zu verarbeiten.

Weitere Links