使用 RTCP 来监视 RTP 音频流

可以通过启用 RTP 控制协议 (RTCP) 来配置 IBM® Voice Gateway 以监视音频流。启用 RTCP 后,Voice Gateway 将在报告事件中和 vgwNetworkWarnings 状态变量中报告与网络相关的事件。V1.0.0.5 和更高版本中支持启用 RTCP。

关于音频流监视

Voice Gateway 使用实时传送协议 (RTP) 从终端系统(例如 SIP 干线)发送和接收音频流。RTP 控制协议 (RTCP) 是 RTP 规范 (RFC 3550) 的一部分,并为 RTP 媒体流提供服务质量 (QoS) 统计信息。启用 RTCP 后,Voice Gateway 使用该协议监视 RTP 网络数据传送指标,例如抖动和数据包传输。

在启用了通过 RTCP 进行音频流监视后,Voice Gateway 将报告以下信息:

请注意,如果 RTP 终端系统不支持 RTCP,那么无法报告出站流抖动和丢包。

重要信息:启用 RTCP 会每个呼叫另外使用一个 UDP 端口。对于每个呼叫,RTP 使用 RTP_UDP_PORT_RANGE 环境变量上设置的范围内的动态端口,而 RTCP 使用下一个端口。例如,如果 RTP 使用端口 16384,那么 RTCP 将使用端口 16385。请确保这些端口在防火墙中处于打开状态。有关更多信息,请参阅防火墙的端口设置

启用 RTCP

要启用 RTCP,请在部署配置中的 Media Relay 容器下设置以下环境变量:

表 1. 用于启用 RTCP 的环境变量
环境变量 缺省值 描述
ENABLE_RTCP
必需
false 设置为 true 可启用 RTP 控制协议 (RTCP) 来监视 RTP 音频流。启用 RTCP 后,在呼叫详细记录 (CDR) 报告事件中将包含呼叫期间生成的警告和含有音频流统计信息的网络摘要。V1.0.0.5 和更高版本。
RTCP_MAX_JITTER_THRESHOLD
可选
30 触发警告之前 RTP 包之间的最大延迟(以毫秒为单位)。如果超过此最大值,那么 Voice Gateway 将针对受影响的入站或出站音频流发出警告。V1.0.0.5 和更高版本。
RTCP_MAX_PACKET_LOSS_THRESHOLD
可选
5 触发警告之前的最大丢包百分比。如果超过此最大值,那么 Voice Gateway 将针对受影响的入站或出站音频流发出警告。V1.0.0.5 和更高版本。

以下示例将启用 RTCP 并更改用于发送抖动和丢包警告的缺省值。

所报告的网络信息

启用 RTCP 后,Voice Gateway 将在呼叫期间报告网络警告,然后在呼叫结束时汇总警告并提供网络摘要。

在呼叫期间

对于每个 Conversation 轮次,Voice Gateway 将网络警告发送到 vgwNetworkWarnings 状态变量上的已配置的 Watson Assistant 服务或服务编排引擎。可以使用此状态变量作为触发器来执行相应的操作,例如转接或结束呼叫。有关使用状态变量的更多信息,请参阅使用 Voice Gateway API 对自助服务代理程序进行编程

例如:

"vgwNetworkWarnings" : [
  {
    "timestamp": "2018-02-08T13:10:01Z",
    "message": "CWSMR0035W: The inbound RTP audio stream packet loss of 7 percent exceeds the maximum packet loss threshold of 5 percent.",
    "id": "CWSMR0035W"
  }
]

由于 Watson Assistant 轮次事件包含从 Watson Assistant 或服务编排引擎发送的完整上下文,因此事件还包含所报告的警告。有关更多信息,请参阅从 Voice Gateway 报告 Watson Assistant 轮次事件

在呼叫结束时

当呼叫结束时,Voice Gateway 将汇总所报告的网络警告并在呼叫详细记录 (CDR) 事件中提供 RTP 网络摘要。要生成 CDR 事件,必须在 Voice Gateway 配置中启用 CDR 事件报告,并且设置 REST 服务器以存储事件。有关更多信息,请参阅从 Voice Gateway 报告呼叫详细记录事件

RTCP 添加到事件内的以下 JSON 对象: