你当前正在访问 Microsoft Azure Global Edition 技术文档网站。 如果需要访问由世纪互联运营的 Microsoft Azure 中国技术文档网站,请访问 https://docs.azure.cn

呼叫流基础知识

以下部分提供 Azure 通信服务中的呼叫流概述。 信号和媒体流取决于用户所进行的呼叫的类型。 呼叫类型的示例包括一对一 VoIP、一对一 PSTN 以及包含 VoIP 和 PSTN 连接的参与者组合的群呼。 查看呼叫类型

关于信号和媒体协议

建立对等呼叫或群呼时,会在后台使用两种协议:HTTPS (REST) 用于信号,SRTP 用于媒体。

SDK 之间或 SDK 与通信服务信号控制器之间的信号使用 HTTPS REST (TLS) 进行处理。 Azure 通信服务使用 TLS 1.2。 对于实时媒体流量 (RTP),首选用户数据报协议 (UDP)。 如果防火墙阻止使用 UDP,则该 SDK 会对媒体使用传输控制协议 (TCP)。

让我们来查看各种方案中的信号和媒体协议。

呼叫流事例

案例 1:可在两个设备之间实现直接连接的 VoIP

在一对一 VoIP 或视频呼叫中,流量首选最直接的路径。 “直接路径”是指如果两个 SDK 可以直接相互联系,则它们会建立直接连接。 当两个 SDK 处于同一个子网中(例如,在子网 192.168.1.0/24 中)时,或者当两个设备各自处于可以相互看到的子网中(子网 10.10.0.0/16 和 192.168.1.0/24 中的 SDK 可以相互联系)时,这通常可以实现。

Diagram showing a Direct VOIP call between users and Communication Services.

案例 2:无法在设备之间实现直接连接,但是可以在 NAT 设备之间实现连接的 VoIP

如果两个设备位于无法相互联系的子网中(例如,Alice 在咖啡店中工作,而 Bob 在家庭办公室中工作),但是可以在 NAT 设备之间实现连接,则客户端的 SDK 会通过 NAT 设备建立连接。

对于 Alice,它会作为咖啡店的 NAT,而对于 Bob,它会作为家庭办公室的 NAT。 Alice 的设备会发送其 NAT 的外部地址,Bob 的设备会执行相同操作。 该 SDK 从 Azure 通信服务免费提供的 STUN(适用于 NAT 的会话遍历实用工具)服务了解外部地址。 处理 Alice 与 Bob 之间的握手的逻辑将嵌入到 Azure 通信服务提供的 SDK 中。 (无需任何其他配置)

Diagram showing a VOIP call which utilizes a STUN connection.

案例 3:无法实现直接和 NAT 连接的 VoIP

如果一个或两个客户端设备位于对称 NAT 后面,则需要一个用于在两个 SDK 之间中继媒体的单独云服务。 此服务称为 TURN(围绕 NAT 使用中继进行遍历),也由通信服务提供。 通信服务呼叫 SDK 会基于检测到的网络条件自动使用 TURN 服务。 TURN 费用包含在通话的价格中。

Diagram showing a VOIP call which utilizes a TURN connection.

案例 4:使用 PSTN 的群呼

PSTN 呼叫的信号和媒体都使用 Azure 通信服务电话服务资源。 此资源与其他运营商互连。

PSTN 媒体流量会通过一个称为媒体处理器的组件进行流动。

Diagram showing a PSTN Group Call with Communication Services.

注意

对于熟悉媒体处理的人,我们的媒体处理器也是背靠背用户代理(如RFC 3261 SIP:会话初始协议中定义),这意味着它可以在处理 Microsoft 和运营商网络之间的呼叫时转换编解码器。 Azure 通信服务信号控制器是 Microsoft 根据相同 RFC 实现的 SIP 代理。

对于群呼,媒体和信号始终通过 Azure 通信服务后端进行流动。 来自所有参与者的音频和/或视频都在媒体处理器组件中混合。 群呼的所有成员会将其音频和/或视频流发送到媒体处理器,后者会返回混合媒体流。

群呼的默认实时协议 (RTP) 是用户数据报协议 (UDP)。

注意

媒体处理器可以充当多点控制单元 (MCU) 或选择性转发单元 (SFU)

Diagram showing UDP media process flow within Communication Services.

如果由于防火墙限制,该 SDK 无法对媒体使用 UDP,则会尝试使用传输控制协议 (TCP)。 请注意,媒体处理器组件需要 UDP,因此当发生这种情况时,通信服务 TURN 服务会添加到群呼中,用于将 TCP 转换为 UDP。 TURN 费用包含在通话的价格中。

Diagram showing TCP media process flow within Communication Services.

案例 5:计划的 Teams 会议中的通信服务 SDK 和 Microsoft Teams

信号流经信号控制器。 媒体流经媒体处理器。 信号控制器和媒体处理器在通信服务和 Microsoft Teams 之间共享。

Diagram showing Communication Services SDK and Teams Client in a scheduled Teams meeting.

案例 6:早期媒体

指在被呼叫用户接受特定会话之前交换的媒体(例如音频和视频)。 如果存在早期媒体流,SBC 必须封存到启动流式处理媒体的第一终结点;媒体流可以在提名候选人之前启动。 SBC 应在此阶段支持发送 DTMF,以启用 IVR/语音邮件方案。 如果提名尚未完成,SBC 应使用其已收到检查的最高优先级路径。

后续步骤

你可能会对下列文档感兴趣: