Microsoft Teams通話レコードの変更通知を取得する

Microsoft Graph の変更通知を使用すると、サブスクリプションでレコードを呼び出し、作成または変更された通話レコード更新の連続ストリームを提供できます。 通話記録は、Microsoft TeamsまたはSkype for Businessを使用する際に、organizationの通話やオンライン会議に関する貴重な使用状況と診断分析情報を提供します。 このデータは、カスタム レポートに利用できるため、導入の監視と通話品質の問題のトラブルシューティングが容易になります。

アクセス許可

アクセス許可の種類 アクセス許可 (特権の小さいものから大きいものへ) サポートされるバージョン
委任 (職場または学校のアカウント) サポートされていません。 サポートされていません。
委任 (個人用 Microsoft アカウント) サポートされていません。 サポートされていません。
アプリケーション CallRecords.Read.All v1.0

例 1: サブスクリプション要求

POST https://graph.microsoft.com/v1.0/subscriptions
Content-Type: application/json

{
  "changeType": "updated",
  "notificationUrl": "https://webhook.azurewebsites.net/api/resourceNotifications",
  "lifecycleNotificationUrl": "https://webhook.azurewebsites.net/api/lifecycleNotifications",
  "resource": "/communications/callRecords",
  "expirationDateTime": "2023-02-28T00:00:00.0000000Z",
  "clientState": "{Secret client state}"
}

通話レコードの変更通知では、通知の種類と通知の種類の両方 createupdate サポートされます。 変更の create サブスクリプションは、呼び出しレコードが最初に生成されたときに 1 つの通知のみを送信します。 通話レコードは、通話または会議が終了した後に作成され、30 日間アクセス可能なままになります。

変更の update サブスクリプションには、レコードが最初に生成されたときの初期通知と、そのレコードが変更されたときの後続の通知が含まれます。 特定の呼び出しレコード属性はクライアント側の信号に依存するため、ネットワークの問題によって遅延や中断が発生する可能性があるため、通話レコードは、最初の作成後に新しい情報または変更された情報で更新される可能性があります。 これらの変更によって通知が update トリガーされ、レコードの version フィールドがインクリメントされて変更が示されます。

変更通知の待機時間と最大サブスクリプション有効期限は 、変更通知の概要で定義されています。

例 2: 参加者Microsoft Entraオブジェクト ID でフィルター処理されたサブスクリプション要求

POST https://graph.microsoft.com/v1.0/subscriptions
Content-Type: application/json

{
  "changeType": "updated",
  "notificationUrl": "https://webhook.azurewebsites.net/api/resourceNotifications",
  "lifecycleNotificationUrl": "https://webhook.azurewebsites.net/api/lifecycleNotifications",
  "resource": "/communications/callRecords?$filter=participants/any(p:p/id eq '{Entra object id}')",
  "expirationDateTime": "2023-02-28T00:00:00.0000000Z",
  "clientState": "{Secret client state}"
}

必要に応じて、参加者の Microsoft Entra オブジェクト ID を使用して、通話レコードの変更通知をフィルター処理できます。 オブジェクト ID でフィルター処理された変更通知は、呼び出し参加者の Microsoft Entra オブジェクト ID が filter パラメーターに含まれている場合に送信されます。

このフィルターは、eqcallRecord リソース内のコレクションのid属性に対してparticipantsorおよび in 演算子をサポートします。 $filterの使用の詳細については、「 $filter クエリ パラメーターを使用する」を参照してください。

例 3: サブスクリプション通知

{
    "value":[{
        "subscriptionId":"{Subscription id}",
        "clientState":"{Secret client state}",
        "changeType":"created",
        "resource":"communications/callRecords/{Call id}",
        "subscriptionExpirationDateTime":"2023-02-28T00:00:00.000+00:00",
        "resourceData":{
            "@odata.type":"#Microsoft.Graph.callRecord",
            "@odata.id":"communications/callRecords/{Call id}",
            "id":"{Call id}"
        },
        "tenantId":"{Organization/Tenant id}"
    }]
}