获取Microsoft Teams 通话记录的更改通知

Microsoft Graph 中的更改通知支持对呼叫记录的订阅,在创建或修改通话记录时提供连续的通话记录更新流。 使用 Microsoft Teams 或 Skype for Business 时,通话记录可对组织的通话和联机会议提供有价值的使用情况和诊断见解。 可以利用此数据进行自定义报告,从而促进对采用的监视和通话质量问题的故障排除。

权限

权限类型 权限(从最低特权到最高特权) 支持的版本
委派(工作或学校帐户) 不支持。 不支持。
委派(个人 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 仅在首次生成呼叫记录时发送单个通知。 通话记录在通话或会议结束后创建,并在 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 筛选呼叫记录的更改通知。 当呼叫参与者的Microsoft Entra对象 ID 包含在筛选器参数中时,将发送按对象 ID 筛选的更改通知。

此筛选器支持 eqcallRecord 资源中集合的 属性的 participantsorin 运算符id。 有关使用$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}"
    }]
}