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

使用ACS接入Teams群组通话媒体流的可行性及实现方案咨询

问题解答

支持情况

以ACS Call Automation应用身份无交互接入Teams群组通话并获取媒体流的场景是支持的,无需以额外用户身份加入。

实现步骤

  • 获取Teams群组通话上下文:
    从Teams侧提取目标群组通话的callId和会议链接/meetingId。如果你的Teams Bot已具备通话处理能力,可通过Bot的通话事件(如callStarted)获取这些信息;也可通过Graph API查询目标会议详情拿到对应参数。
  • 用ACS Call Automation发起接入请求:
    放弃常规CallInvite对象,改用ACS的JoinMeetingCall接口,传入Teams会议上下文参数。核心是构造包含会议信息的JoinMeetingCallOptions,C#示例代码如下:
    var callClient = new CallClient();
    var callAutomationClient = callClient.GetCallAutomationClient("<ACS资源连接字符串>");
    
    var joinOptions = new JoinMeetingCallOptions(
        new Uri("<Teams会议链接/meetingId>"),
        new CallLocator("<Teams通话callId>"),
        new CommunicationUserIdentifier("<ACS应用身份ID>")
    );
    
    // 订阅音频媒体流,用于后续转录
    joinOptions.MediaSubscription = new MediaSubscription(MediaType.Audio);
    
    var callConnection = await callAutomationClient.JoinMeetingAsync(joinOptions);
    
  • 订阅并处理媒体流:
    ACS成功接入通话后,会触发MediaStreamingStarted等媒体相关事件,监听这些事件即可获取音频流数据,对接转录服务生成文本。需确保ACS资源已配置媒体流处理能力,且接入时明确订阅音频类型。
  • 配置权限:
    在Azure AD中为ACS服务主体授予OnlineMeeting.JoinAsGuest.All类应用权限,同时确认Teams会议允许外部应用接入(部分组织需调整会议设置)。

注意事项

  • 全程以ACS应用身份接入,无需创建额外Teams用户,无交互操作。
  • 媒体流处理需在ACS侧配置对应媒体服务或自定义逻辑,确保能接收并处理音频数据。
  • 若通过Teams Bot触发ACS接入,需保障两者通信安全,防止上下文信息泄露。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 21:21:00