Graph API中Call Started与Call Ended系统消息生成时机咨询
Microsoft Graph 聊天消息订阅通话类系统事件说明
适用场景边界
callStarted、callEnded 两类系统消息仅覆盖Teams原生聊天内发起的对等通话场景,以下场景不会生成对应消息,自然无法通过/chats/{chat-id}/messages订阅捕获:
- 日历预约生成的正式Teams会议、Teams频道关联的会议通话
- 拨打外部手机号的PSTN公共电话网通话
- 网络研讨会、大规模广播通话
- 跨租户场景下被叫方侧的通话记录
- 通话时长为0秒的未接/秒挂通话
具体触发规则
- Call Started 事件:触发前提是用户从对应聊天窗口内直接点击音频/视频通话按钮发起对等呼叫,且呼叫路由成功触达至少1位被叫方(即被叫方客户端出现振铃提示)。如果发起方点击通话后瞬间挂断、所有被叫方离线未触发振铃,不会生成该事件。
- Call Ended 事件:仅当符合上述触发条件的通话所有参与方全部退出通话链路,且有效通话时长≥1秒时才会生成。刚发起就取消、所有被叫方未接通直接挂断的零时长呼叫,不会生成该事件。
无法接收事件的常见排查方向
- 权限校验:两类事件属于敏感类系统消息,要求订阅必须具备
ChatMessage.Read.All(应用权限)或ChatMessage.Read.Chat(对应聊天的全量委托读取权限),来宾账号权限、仅能读取普通用户消息的受限权限会自动过滤该类事件。 - 租户策略校验:如果租户管理员在Teams管理中心开启了「隐藏聊天中的通话记录」消息策略,全租户范围内都不会生成这两类系统消息,接口不会返回对应内容。
- 通话类型校验:如果测试时发起的是会议类、PSTN类通话,本身就不在该类事件的覆盖范围内。
- 跨租户场景校验:跨租户对等通话的系统消息仅会推送给发起方所属租户的聊天消息流,被叫方租户侧的接口不会返回对应事件。
内容的提问来源于stack exchange,提问作者andyh
相关产品推荐
相关产品推荐

