0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

【Teams 電話】Graph API で CallRecord を Log Analytics Workspace へ保存する

Last updated at Posted at 2025-08-31

はじめに

ユーザーが Teams で行った通話の情報は一定時間保持され、管理者が確認できます。保持期間が過ぎると情報は削除され確認することができません。

Teams の通話情報を Azure 上の Log Analytics Workspace へ転送することで、長期間情報を保存することができ、また Azure Monitor や Azure Sentinel からも参照することができます。

Teams の通話情報を Log Analytics Workspace へ保存する方法についてまとめてみました。

※ 関連記事

CallRecord について

ユーザーが Teams で行った通話を終了すると、通話レコード (CallRecord) が生成します。CallRecord は 30 日間保持されます。

CallRecord には以下のような情報が含まれています。

  • 通話の開始/終了日時
  • 発信先/発信元ユーザー (外線電話の場合は電話番号)
  • 通話の種類 (1:1/グループ通話)
  • ネットワーク品質 (Jitter/Packet loss rate など)

CallRecord は Graph API で取得することできます。取得した CallRecord を Log Analytisc Workspace に保存することで、長期間情報を保持することができます。

(参考:Microsoft Graph で通話レコード API を操作する)
https://learn.microsoft.com/ja-jp/graph/api/resources/callrecords-api-overview?view=graph-rest-1.0

(参考:callRecord の取得)
https://learn.microsoft.com/ja-jp/graph/api/callrecords-callrecord-get?view=graph-rest-1.0&tabs=http

CallRecord を Log Analytics Workspace へ保存する

通話の終了後に自動的に CallRecord を Log Analytics Workspace へ保存するには、Graph API 変更通知を利用します。

image.png

変更通知により Logic App を呼び出し、Logic App から Log Analytics Workspace へ CallRecord を保存します。

(参考:Microsoft Teams通話レコードの変更通知を取得する)
https://learn.microsoft.com/ja-jp/graph/changenotifications-for-callrecords

(参考:Secure your Calls- Monitoring Microsoft TEAMS CallRecords Activity Logs using Azure Sentinel)
https://techcommunity.microsoft.com/blog/microsoftsentinelblog/secure-your-calls--monitoring-microsoft-teams-callrecords-activity-logs-using-az/1574600

何らかの理由で Logic App 側の処理が失敗した場合、Graph API 変更通知の再送処理で最大 4 時間かけて通知がリトライされます。

※ 関連記事

事前準備

以下のような事前準備を行います。

  1. Entra ID アプリケーションの登録とアクセス許可の追加
  2. Logic App と Log Analytics Workspace の作成
  3. Graph API 変更通知の有効化

1. Entra ID アプリケーションの登録とアクセス許可の追加

Entra ID アプリケーションの登録とアクセス許可の追加手順の詳細については、以下の記事をご参照ください。
アプリケーションにはアクセス許可として CallRecords.Read.All アプリケーション許可権限を追加します。

※ (1.1 Entra ID へのアプリケーションの登録)

※ (2.1.3 アクセス許可の追加方法)

2. Logic App と Log Analytics Workspace の作成

Logic App と Log Analytics Workspace の作成手順の詳細については、以下の記事をご参照ください。

※ (1.1 Logic Apps の作成)

※ (1. Log Analytics ワークスペースの作成)

変更通知を受信する Logic App で以下のアクションを実行します。

2.1 通知された CallRecordID を変数の値に設定
2.2 CallRecordID を基に Graph API を実行して CallRecord の情報を取得
2.3 取得した CallRecord を Log Analytics Workspace へ保存

image.png

2.1 通知された CallRecordID を変数の値に設定

変更通知では生成した CallRecordの ID が通知されます。以下のように ID を取得し変数に設定します。

image.png

2.2 CallRecordID を基にアプリケーション許可権限で Graph API を実行して CallRecord の情報を取得

2.1 で設定した ID を指定して、CallRecord の情報を Graph API で取得します。

image.png

  • URI
    https://graph.microsoft.com/beta/communications/callRecords/@{variables('callRecordID')}?$expand=sessions($expand=segments)
    

URI では $expand で sessions/segments も併せて取得するように指定しています。sessions/segments にはネットワーク品質などの詳細な情報が含まれています。

[Authentication] 欄には 1 で登録した Entra ID アプリケーションの情報を入力します。

image.png

(参考:セッション リソースの種類)
https://learn.microsoft.com/ja-jp/graph/api/resources/callrecords-session?view=graph-rest-1.0

(参考:セグメント リソースの種類)
https://learn.microsoft.com/ja-jp/graph/api/resources/callrecords-segment?view=graph-rest-1.0

3. 取得した CallRecord を Log Analytics Workspace へ保存

2.2 で取得した CallRecord を Log Analytics Workspace へ保存します。[Custom Log Name] には任意の名前を設定します。ここでは "TeamsGraphCallRecords" としています。

image.png

3. Graph API 変更通知の有効化

Graph API 変更通知の有効化手順の詳細については、以下の記事をご参照ください。

※ (2. サブスクリプションの作成)

以下は CallRecord の変更通知のサブスクリプションを作成する PowerShell コマンドの例です。

$params = @{
   "changeType" = "created,updated"
   "notificationUrl" = "<2で作成したLogic AppのHTTPトリガーのURL>"
   "resource" = "/communications/callRecords"
   "expirationDateTime" = "2025-08-30T11:30:00Z"
   "clientState" = "xxx"
   "lifecycleNotificationUrl" = "<2で作成したLogic AppのHTTPトリガーのURL>"
}

Invoke-MgGraphRequest -Method POST -Uri "/v1.0/subscriptions" -Body $params

CallRecord の変更通知を受け取るには "resource" に "/communications/callRecords" を指定します。

(参考:Microsoft Teams通話レコードの変更通知を取得する)
https://learn.microsoft.com/ja-jp/graph/changenotifications-for-callrecords

CallRecord の確認

準備がすべて完了すると、Teams で通話した後に自動的に Log Analytics Workspace の "TeamsGraphCallRecords_CL" テーブルへ CallRecord が保存されていることが確認できます。

image.png

CallRecord の見方

通話の開始、終了時刻

通話の開始、終了時刻は "startDateTime_t" / "endDateTime_t" から確認できます。

矢印をクリックして展開します。
image.png

image.png

通話の参加者

通話の参加者は "participants_s" から確認できます。

"participants_s" を展開します。
image.png

"user" からユーザー名などの情報を確認できます。
image.png

外線電話の場合

外線電話の場合は電話番号を確認できます。

image.png

通話の種類

通話の種類は "type_s" から確認できます。

  • 1:1 通話の場合
    "peerToPeer" と表示されます
    image.png
  • グループ通話の場合
    "groupCall" と表示されます
    image.png

ネットワーク品質

ネットワーク品質は "session_s" - "segments" - "media" と展開していくと確認できます。

image.png

image.png

image.png

"averageJitter" / "averagePacketLossRate" / "averageRoundTripTime" などのネットワーク品質に関する指標を確認することができます。

image.png

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?