使用 MCU 和 SFU 构建 WebRTC 和 SIP 集成

会话初始协议(SIP)和 WebRTC 都是实时通信领域的重要技术,特别是在 IP 语音和视频领域。虽然它们的作用互补,但运行方式不同,功能也各异。

在本篇文章中,我们将探讨如何使用多点控制单元(MCU)和选择性转发单元(SFU)构建 WebRTC 和 SIP 的集成,使企业能够在不放弃现有系统的情况下实现通信基础设施的现代化。

了解 SIP 和 WebRTC 之间的关系

SIP 是一种信令协议,主要用于启动、维护和终止涉及语音、视频和即时消息等多媒体元素的实时通信会话。其主要职责是管理对话前的初始协商,其中包括:

  • 用户位置:识别端点所在的位置。
  • 用户可用性:确定预期接收者是否可以接听呼叫。
  • 用户能力:评估会话中可以使用哪些媒体类型。
  • 会话设置:建立通信的参数。

SIP 本身并不处理媒体的传输;相反,它建立媒体可以流动的连接,通常使用实时传输协议 (RTP) 等协议进行实际媒体传输。

另一方面,WebRTC 是一组多个 API 和协议,可直接在 Web 浏览器和设备之间实现实时通信,而无需额外的插件。它允许直接通过 Web 应用程序共享音频、视频和数据。WebRTC 的主要功能包括:

  • 点对点通信:促进用户设备之间的直接连接。
  • 数据加密:加密通过网络发送的数据。
  • 媒体处理:有效地管理音频和视频流。
  • 数据通道:支持与媒体流一起的任意数据传输。

WebRTC 旨在通过提供一个可与任何类型的信令机制集成的综合框架来简化实时通信与 Web 应用程序的集成,并负责处理和保护媒体传输。

SIP 和 WebRTC 如何协同工作

WebRTC 可以利用 SIP 作为其建立连接的信令方法之一。这意味着当 WebRTC 应用程序需要建立呼叫或会话时,它可以发送 SIP 消息(或以某种方式将其消息“翻译”为 SIP 端点可以理解的内容,反之亦然)来协商连接参数。

这使得许多已经在当前 VoIP 系统中使用 SIP 的组织可以与 WebRTC 应用程序集成,从而无需彻底改造现有基础设施即可增强其通信能力。 

这种集成支持多种用例,从添加视频会议拨入和拨出功能,到实现传统电话系统中的用户可以与现代 Web 应用程序中的其他人进行交互的复杂场景。

但这种集成意味着什么?如何以有效的方式构建它?要知道答案,让我们简要讨论一下 MCU 和 SFU 方法。 

进入 MCU 和 SFU

在讨论视频会议架构时,多点控制单元(MCU)和选择性转发单元(SFU)是两种显著的模式,它们具有不同的用途和运行特点。

两者都是位于视频/音频会议参与者中间并处理他们的媒体流的媒体服务器。

MCU

首先是 MCU,它将所有传入的流合并成一个混合流,然后再发送给与会者。每个与会者向 MCU 发送一个数据流,并接收回一个混合数据流,这简化了客户端处理过程,但增加了服务器端的资源需求。

使用 MCU 和 SFU 构建 WebRTC 和 SIP 集成

由于要混合流,这一过程需要在服务器端使用大量的 CPU,这可能会导致服务器基础设施的成本增加。更不用说 MCU 可能会带来更高的延迟,因为在发送流之前要花费时间对流进行混合和编码。

不过,这种方法减轻了客户端设备的处理负担,因为它们只需对单个数据流进行解码。因此,它非常适合低端设备上的音频交互,这也是许多使用 SIP 的 VoIP 电话系统的常见情况。

SFU

SFU 也会接收来自与会者的多个媒体流,但不会将它们混合在一起。相反,它会将每个参与者的流原封不动地转发给其他人。这样可以有效利用带宽,因为每个参与者只发送一次自己的媒体流,但会接收来自其他参与者的多个媒体流。

SFU

这种方法对服务器 CPU 的要求较低,因为它只转发流而不处理它们。除此之外,SFU 可以根据各个参与者的条件提供更大的灵活性,调整流质量(例如,自适应比特率流)

然而,客户端必须处理多个流,如果参与者很多,这可能会耗费大量资源。 

WebRTC 应用程序通常依赖 SFU 来实现媒体处理和传输功能。

使用 MCU 和 SFU 进行 SIP 集成

WebRTC 提供强大的基于浏览器的实时通信,而 SIP 仍然是许多电话系统的支柱。连接这两个世界可能很复杂,但对于希望在不放弃现有系统的情况下实现通信基础设施现代化的企业来说,这是必不可少的。

通过利用 MCU 和 SFU 架构,我们可以创建一个高效处理 WebRTC 客户端同时与基于 SIP 的系统无缝集成的系统。 

该方法包括以下内容: 

  1. 配置 WebRTC 客户端直接连接到 SFU 进行视频会议,实现客户端加入视频室、发布流和像往常一样订阅其他流的功能。
  2. 设置 SIP 客户端以连接到 MCU,并配置呼叫路由以将 SIP 呼叫引导至其中适当的会议室。
  3. 拥有一个调度/信令应用程序来协调 SFU 和 MCU 之间的集成。此类应用程序通过适当的协议(例如 HTTP 或 Websockets)与两者进行通信。
  4. 当 SIP 客户端加入时,使用调度/信令应用程序让 MCU 订阅 SFU 中的相关 WebRTC 流,并将它们混合以传送给 SIP 客户端。
  5. 将混合流从 MCU 发布回 SFU 供 WebRTC 客户端使用。

整个流程如下图所示:

使用 MCU 和 SFU 构建 WebRTC 和 SIP 集成

使用 MCU 和 SFU 架构将 WebRTC 与 SIP 集成,为希望实现通信基础设施现代化的企业提供了一种便捷的解决方案。通过了解每种方法的优势,您可以构建一个系统,高效处理传统 SIP 客户端和现代 WebRTC 应用程序之间的实时通信。

作者:Hector Zelaya
译自:https://webrtc.ventures/2024/10/architecting-webrtc-sip-integrations-with-mcu-and-sfu/

本文来自作者投稿,版权归原作者所有。如需转载,请注明出处:https://www.nxrte.com/jishu/webrtc/53299.html

(0)

相关推荐

发表回复

登录后才能评论