You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

通话未结束时不通过Graph API获取MS Teams通话信息的替代方法

MS Teams伪活跃通话场景数据获取方案

标准实现路径与现存缺陷

  • 常规通话质量分析实现逻辑:订阅Call Records Notification并部署对应webhook,通话结束后微软会将通话详情写入数据库,触发webhook订阅推送,后续即可通过Graph API发起REST请求,获取包含通话起止时间、参会人、通话质量等字段的完整Call Record详情开展分析。
  • 已知场景缺陷:若使用“始终开机PC”的用户离开办公室后未主动结束通话,通话将持续处于伪活跃状态,不会触发结束通知,无法走上述流程获取全量通话数据。

问题对应解答

1. 单用户未退出导致的伪活跃通话,能否获取已离开用户的侧端通话信息?

可以获取,无需等待整通通话完全结束。
当单个参会人离开通话时,无论整通通话是否存续,Graph API的Call Record对象会同步生成该参会人对应的participant维度会话片段。你可以调用GET /communications/callRecords/{id}/sessions接口,传入对应通话的callId,筛选endDateTime不为空的参会人会话条目,即可拿到已离开用户的身份、端侧通话质量指标(抖动、丢包率、时延、音视频质量评分等)、入离时间等全量侧端数据,不受未离会用户的状态影响。
注意:伪活跃状态下整通通话的callRecord对象endDateTime字段会持续为空,但已离会用户对应的session条目是实时落库的。

2. 是否存在不依赖Graph API Call Records能力、无需等待通话结束即可获取通话数据的API路径?

存在两类可用路径,覆盖MS Teams和旧版Skype for Business场景:

  • MS Teams场景:
    • 调用GET /users/{id}/onlineMeetings/attendanceReports接口,可在会议/通话进行中实时拉取参会人列表、参会时长维度的统计数据;
    • 对接Graph通信模块下的实时遥测订阅能力,可订阅用户级别的通话质量实时事件,通话过程中就能收到每一位参会人端的质量指标上报,完全不需要等待通话结束,也不依赖Call Record结束触发的通知。
  • 旧版Skype for Business场景:
    直接调用Skype for Business Server的QoE(体验质量)报告接口,该接口直接对接Skype部署侧的QoE数据库,支持按用户、按时间范围拉取历史及进行中的通话质量数据,不依赖Graph API的Call Records能力,也无需等待通话完全终止即可拿到已产生的所有通话片段数据。

调用上述所有接口前,需要提前申请对应权限,例如CallRecords.Read.All、OnlineMeetings.Read.All这类应用或委托权限,否则会返回权限不足错误。

内容的提问来源于stack exchange,提问作者ingo_ww

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.09.03 08:01:04