最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

如何在XSwitch中对接SFU

网站源码admin1浏览0评论

如何在XSwitch中对接SFU

XSwitch 本身是一个 MCU,普通的参会终端都只收发一路视频流,有些设备支持 SIP BFCPH.323、H.239 双流协议,最多可以支持两路视频流。MCU 的功能主要负责融屏、混音等。端侧看到的视频画面一般是相同的,声音则是减掉自己的,当然 XSwitch 也支持 personal canvas,每个终端可以不看自己的画面,这会为每个终端启用一个编码器,服务器资源消耗比较多。

声网本身是一个 SFU,每个参会终端可以上行一路视频流(共享时也可以上行多路流),而下行会有多路视频流。终端可以选择订阅哪些成员的音视频流,并且可以灵活调整本地布局。

架构

通过将声网的 Linux SDK 集成到 XSwitch 中,XSwitch 便拥有了与声网网络的通信能力。

SIP 侧呼入 XSwitch MCU,每路 SIP 都会通过 Linux SDK 加入到 SFU,这样在声网 RTC 侧来看,SIP 侧也是 SFU 方式入会。

同时 XSwitch 会选择一个 SIP 终端去订阅频道内所有 RTC 的音视频流,并且为每一个订阅到 RTC 创建 XSwitch session,并把该 RTC 路由到同一个 conference 中,这样对 XSwitch MCU 来说 RTC 跟 SIP 是一样的。

对接

开通声网服务

注册并登录声网控制台,创建一个声网项目,这样你会获取到一个 APP ID,后续对接需要,具体可以参考:

XSwitch 配置

  • SIP 侧路由

打开 XSwitch 后台配置界面,为 SIP 创建路由(已经有会议相关的路由则可以只添加动作),参考:

为了简单测试,目的地可以选择指定会议室或者同号码会议室,这样 SIP 呼入就可以加入到 MCU 中。

动作里的 agora_mcu 比较关键,这是一个 APP,可以把 SIP 加入到声网的 channel 中。参数依次为 <appid> <token|NULL> <channel> [uid] [conference-name]

  • 参数说明:
  • appid:前文创建声网项目后可以获取到。
  • token:校验token,如果没有开启 token 校验,填固定的字符串 NULL 即可。
  • channel:声网 channel,即 RTC 频道。
  • uid:声网 uid,可选。
  • conference-name:MCU 创建的会议名称,可选,也可以设置通道变量 agora_conference_name 来指定该字段,该字段是为 RTC 路由用的。

这里需要说明一下,动作里 APP 会优先执行,才会执行路由目的地的动作,conference 是一个阻塞的 APP,如果自己添加系统路由,要保证先执行 agora_mcu 再执行 conference,否则后续的 APP 会被 conference APP 阻塞掉。

RTC 侧路由

RTC 侧的所有的成员都会进入路由,其中被叫号码为上文的 conference-name,直接路由到与 SIP 相同的会议室中即可,目的地可以选择系统,添加如下即可:

代码语言:javascript代码运行次数:0运行复制
conference ${destination_number}
  • bridge 场景

以上场景均针对的是多人会议的场景,如果想一对一呼叫(1路 SIP 一路 RTC),则可以直接执行 bridge,参考:

代码语言:javascript代码运行次数:0运行复制
bridge {agora_token=xxx,uid=xxx}agora/appid/channel/auto_answer

其中 agora_token 为声网 token,uid 为声网 uid,auto_answer 会默认应答 RTC 那条腿。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。原始发表:2025-03-18,如有侵权请联系 cloudcommunity@tencent 删除系统音视频终端路由配置

与本文相关的文章

发布评论

评论列表(0)

  1. 暂无评论