语音 : 语音质量

单向话音问题故障排除

2015 年 8 月 28 日 - 机器翻译
其他版本: PDFpdf | 英语 (2015 年 4 月 22 日) | 反馈


目录


简介

本文档解决了在涉及 Cisco 网关的 IP 电话单向音频对话中可能发生的一些常见问题。本文包括的Cisco网关是Cisco IOS 网关和路由器、Catalyst交换机和DT-24+网关。

先决条件

要求

本文档面向与 IP 电话网络有关并且具有语音网络基础知识的人员。

使用的组件

本文档不限于特定的软件或硬件版本。

规则

有关文档规则的详细信息,请参阅 Cisco 技术提示规则

问题

本文档提供针对以下问题的情况和解决方案:

  • 在通过 Cisco IOS 语音网关或路由器从 IP 工作站建立电话呼叫时,只有一方收到音频(单向通信)。

  • 在两台 Cisco 网关之间建立长话旁路呼叫时,只有一方收到音频(单向通信)。

  • 在从置于 VPN 3002 硬件客户端之后的 IP 工作站建立电话呼叫时,只有一方收到音频(单向通信)。

解决方案

导致 IP 电话出现单向音频的原因可能有所不同,但是问题的根本通常涉及 IP 路由问题。本部分介绍了一些在现场出现过的情况和解决方案。

确保在 Cisco IOS 网关和路由器上启用 IP 路由

一些 Cisco IOS 网关(如 VG200)会在默认情况下禁用 IP 路由。此默认设置会导致单向语音问题。

注意: 进一步操作前,请确保在路由器上启用 IP 路由。换句话说,请保证路由器没有执行 no ip routing 全局配置命令。

若要启用 IP 路由,请在 Cisco IOS 网关上发出此全局配置命令:

voice-ios-gwy(config)#ip routing

检查基本 IP 可接通性

请务必先检查基本 IP 可接通性。因为 Real-Time Transport Protocol (RTP) 流无连接(通过 UDP 传输),所以流量可能在一个方向上顺利移动,却在相反方向上丢失。此图显示一种可能会发生这种情况的方案:

http://www.cisco.com/c/dam/en/us/support/docs/voice/voice-quality/5219-fix-1way-voice.gif

子网 A 和 B 都可以到达子网 X。子网 X 可以到达子网 A 和 B。这允许在终端站(A 和 B)和 Cisco CallManager 之间建立 TCP 连接。因此,信令可以到达两个终端站而不会出现问题,这允许在 A 和 B 之间建立呼叫。

一旦建立呼叫,携带音频的 RTP 流便必须在终端站之间的两个方向上流动。在某些情况下,子网 B 可以到达子网 A,但是子网 A 不能到达子网 B。因此,从 A 到 B 的音频流总是丢失

这是基本路由问题。请使用 IP 路由故障排除方法,以便可以成功地从网关 B 对电话 A 执行 ping 命令,请记住,ping 是双向验证。

本文档不涉及 IP 路由故障排除。不过,请确认遵守以下一些初始步骤:

  • 在终端站上配置了默认网关。

  • 这些默认网关上的 IP 路由指向目标网络。

注意: 此列表说明如何在各种 Cisco IP 电话上验证默认路由器或网关配置:

  • Cisco IP 电话 7910 — 按 Settings,选择选项 6,然后按低音量直至 Default Router 字段出现。

  • Cisco IP 电话 7960/40 — 按 Settings,选择选项 3,然后向下滚动直至 Default Router 字段出现。

  • Cisco IP 电话 2sp+/30vip — 按 **#,然后按下 # 直至 gtwy= 出现。

注意: 当使用 Cisco IP SoftPhone 应用程序并且在盒内安装了多个网络接口卡 (NIC) 时,请确保盒以正确的 NIC 为来源。此问题通常出现在 IP SoftPhone 软件版本 1.1.x 中。版本 1.2 应该会解决此问题。

注意: 当使用 Cisco DT-24+ 网关时,请检查 DHCP 范围并且确保该范围内存在 Default Gateway(003 路由器)选项。003 路由器参数填充设备和 PC 中的 Default Gateway 字段。范围选项 3 应具有为网关进行路由的路由器接口的 IP 地址。

验证正确媒体终结点配置

如果为群集间中继 (ICT) 配置了转码,请确保在与该中继关联的媒体资源组和媒体资源组列表中配置了媒体终结点 (MTP)。如果在不需要时指定了 MTP 或在需要时未能配置 MTP,则会导致 ICT 配置出现单向语音问题。

将 H.323 信令绑定到 Cisco IOS 网关和路由器上的特定 IP 地址

在 Cisco IOS 网关具有多个活动 IP 接口时,H.323 信令可能有一部分源自某个 IP 地址,而其他部分可能引用另一个源地址。这可能会生成各种问题。其中之一便是单向音频。

若要避免此问题,可以将 H.323 信令绑定到特定源地址。源地址可以属于物理或虚拟接口(环回)。在接口配置模式下使用 h323-gateway voip bind srcaddr ip-address 命令。在具有 Cisco CallManager 指向的 IP 地址的接口下配置此命令。

此命令是在 Cisco IOS 软件版本 12.1(2)T 中引入的。请参阅虚拟接口的 H.323 支持

警告 警告: Cisco IOS 软件版本 12.2(6) 中存在一个 bug,在此版本中,此解决方案实际上可能会导致 单向音频问题。有关详细信息,请参阅 Cisco bug ID CSCdw69681仅限注册用户)。

将 MGCP 信令绑定到 Cisco IOS 网关上的 MGCP 媒体数据包源接口

如果没有指定信令和媒体数据包的源接口,则在 Media Gateway Control Protocol (MGCP) 网关上可能会出现单向语音。如果发出 mgcp bind media source-interface interface-id 命令,然后发出 mgcp bind control source-interface interface-id 命令,则可以将 MGCP 媒体绑定到源接口。在发出命令后,请在 Cisco CallManager 中重置 MGCP 网关。

如果没有启用 mgcp bind 命令,则 IP 层仍会提供最佳本地地址。

mgcp bind 命令具有以下准则:

  • 当网关上存在活动的 MGCP 呼叫时,会拒绝控制和媒体的 mgcp bind 命令

  • 如果绑定接口未打开,则该命令会被接受,但在接口出现前不会生效。

  • 如果在绑定接口上未分配 IP 地址,则 mgcp bind 命令会被接受,但是只会在分配有效的 IP 地址之后才生效。在此期间,如果出现 MGCP 呼叫,则会拒绝 mgcp bind 命令

  • 当由于接口上的手动关闭或操作故障导致绑定接口断开时,在该接口上会禁用绑定活动。

  • 当媒体网关控制器 (MGC) 上没有配置绑定时,用于源 MGCP 控制和媒体的 IP 地址是最佳可用 IP 地址。

检查 Telco 或交换机是否正确发送和接收应答监督

如果有 Cisco IOS 网关连接到 Telco 或交换机,请验证在 Telco 或交换机后的被叫设备应答呼叫时是否正确发送了应答监督。未能接收应答监督会导致 Cisco IOS 网关无法在转发方向上开通(打开)音频路径。此故障会导致单向语音。解决方法是发出 voice rtp send-recv on 命令

有关详细信息,请参阅在 Cisco IOS 网关和路由器上使用 voice rtp send-recv 命令及早开通双向音频

在 Cisco IOS 网关和路由器上使用 voice rtp send-recv 命令及早开通双向音频

语音路径是在 RTP 流开始时在向后方向上建立的。在 Cisco IOS 网关接收到来自远程端的连接消息之前,不会开通转发音频路径。

在某些情况下,需要在打开 RTP 通道后立即建立双向音频路径,而这发生在收到连接消息之前。若要达到此目的,请发出 voice rtp send-recv 全局配置命令

在 Cisco IOS 网关和路由器上逐个链路地检查 cRTP 设置

此问题适用于长话旁路呼叫这类的方案,在这些方案中,语音路径包含多个 Cisco IOS 路由器或网关,并且使用压缩 RTP (cRTP)。cRTP(或 RTP Header Compression)是用于缩小 VoIP 数据包报头以重新获得带宽的方法。cRTP 在 VoIP 数据包上采用 40 字节 IP、User Datagram Protocol (UDP) 或 RTP 报头并且将其压缩为每个数据包 2 到 4 字节。对于一个采用 cRTP 的 G.729 编码呼叫,此压缩大约生成 12 kbps 的带宽。有关cRTP的更详尽信息请参阅《 VoIP-每呼叫带宽消耗》。

cRTP 是逐跳进行的,每跳上都进行解压和重新压缩。必须检查每个数据包报头才能进行路由。因此,需要在 IP 链路的两端都启用 cRTP。

还应当检验在链路两端,cRTP的运行是否达到预期要求,这一点也很重要。Cisco IOS 软件版本级别在交换路径和并发 cRTP 支持方面有所差异。

总之,发展历程是:

  • 在 Cisco IOS 软件版本 12.0(5)T 之前的 Cisco IOS 软件版本中,cRTP 通过进程交换。

  • 在 Cisco IOS 软件版本 12.0(7)T 和 Cisco IOS 软件版本 12.1(1)T 中,引入了针对 cRTP 的快速(以及 Cisco Express Forwarding (CEF))交换支持。

  • 在 Cisco IOS 软件版本 12.1(2)T 中,引入了算法性能改进。

如果在 Cisco IOS 软件平台(Cisco IOS 软件版本 12.1)上运行 cRTP,请验证 Cisco bug ID CSCds08210仅限注册用户)不会影响 Cisco IOS 软件版本。此 bug 的症状是 VoIP 和 FAX over IP 在启用 RTP Header Compression 的情况下无法正常工作。

在 Cisco IOS 网关上验证时钟配置

如果通过 show controller {e1|t1} 命令发现在 E1 或 T1 接口上存在时钟滑动,则在语音网关上可能存在一些时钟配置不匹配。请参阅在有语音能力的基于 IOS 的平台上的时钟配置,并确保语音网关上的时钟配置正确。

在 Cisco IOS 网关和路由器上验证 NAT 的最低软件级别

如果使用网络地址转换 (NAT),必须满足最低软件级别要求。早期版本的 NAT 不支持 Skinny 协议转换。这些早期版本会导致单向语音问题。

必须运行 Cisco IOS 软件版本 12.1(5)T 或更高版本,才能使 Cisco IOS 网关同时支持 Skinny 和 H.323 版本 2 以及 NAT。有关详细信息,请参阅对 Cisco CallManager 的 IP 电话 NAT 支持

注意: 如果 Cisco CallManager 对与默认端口 (2000) 不同的 Skinny 信令使用 TCP 端口,则必须调整 NAT 路由器。发出 ip nat service skinny tcp port number 全局配置命令。

在 PIX 防火墙上同时使用 NAT 和 Skinny 信令所需的最低软件级别为 6.0。有关详细信息,请参阅 Cisco PIX 防火墙版本 6.0

注意: 这些软件级别不一定支持完整网守支持所需的所有注册、准入和状态 (RAS) 消息。网守支持不属于本文讨论范围。

在AS5350和AS5400上禁用语音快速路径

Cisco IOS 软件命令 voice-fastpath enable 是用于 AS5350 和 AS5400 的隐藏全局配置命令。该命令在默认情况下启用。若要禁用该命令,请发出 no voice-fastpath enable 全局配置命令

当该命令启用时,会缓存为特定呼叫打开的逻辑通道的 IP 地址和 UDP 端口号信息。该命令阻止 RTP 流到达应用层。而是使数据包在较低层上转发。这有助于在高呼叫量方案中稍微减少 CPU 利用率。

当使用保留或转接等附加服务时,voice-fastpath 命令会使路由器将音频流到缓存的 IP 地址和 UDP 端口。会忽略在恢复保留的呼叫之后或完成转接之后生成的新逻辑通道信息。若要避免此问题,流量始终必须进入应用层,以便考虑重新定义逻辑通道并使音频流到新的 IP 地址和 UDP 端口对。因此,请务必禁用 voice-fastpath 以支持附加服务。

用软电话配置VPN IP地址

Cisco IP SoftPhone 允许 PC 按照类似于 Cisco IP 电话 7900 系列电话的方式工作。通过虚拟私有网络 (VPN) 连接回公司网络的远程用户必须配置一些其他设置,才能避免单向语音问题。这是因为媒体流需要知道连接的终点。

解决方案是在网络音频设置下配置 VPN IP 地址而不是网络适配器的 IP 地址。有关详细信息,请参阅如何在 VPN 上使用 Cisco IP SoftPhone

将 VPN 3002 配置为在网络扩展模式下工作

Cisco VPN 3002 硬件客户端可以在两种模式下运行:客户端模式和网络扩展模式 (NEM)。在客户端模式下,Cisco VPN 3002 客户端后的所有主机都是转换为 VPN 3002 客户端的外部 IP 地址的端口地址。当 IP 电话置于 VPN 3002 客户端之后时,H.323 无法使用端口地址转换 (PAT) 并且会形成单向音频。当 VPN 3002 在 NEM 中工作时,远程网络可以通过其真实 IP 地址(而不是基于 Nat 或基于 PAT 的 IP 地址)看到对方。如果 VPN 3002 配置为在 NEM 中工作,则 H.323 可以工作。换句话说,仅当 VPN 3002 在 NEM 中工作时,VPN 3002 客户端后的 IP 电话才能正常工作。因此,若要避免与 VPN 3002 客户端有关的单向语音问题,请将 VPN 3002 客户端配置为使用 NEM。

若要将 Cisco VPN 3002 硬件客户端配置为使用 NEM,请选择 Configuration > Quick > PAT,然后在 PAT 窗口中单击 No, use Network Extension mode

有关详细信息,请参阅将 Cisco VPN 3002 硬件客户端配置为 EzVPN 为网络扩展模式的 Cisco IOS 路由器

其它信息:验证单向音频

用于验证数据包流的两个有用命令是 debug cch323 rtp 命令debug voip rtp 命令debug cch323 rtp 命令显示路由器传输 (X) 和接收 (R) 的数据包。大写字符指示成功的传输或接收。小写字符指示丢弃的数据包。

voice-ios-gwy#debug cch323 rtp

RTP packet tracing is enabled
voice-ios-gwy#
voice-ios-gwy#
voice-ios-gwy#
voice-ios-gwy#
voice-ios-gwy#

!--- This is an unanswered outgoing call. 
!--- Notice that the voice path only cuts through in the forward direction and
!--- that packets are dropped. Indeed, received packets are traffic from the
!--- IP phone to the PSTN phone. These are dropped until the call is answered.

Mar 3 23:46:23.690: ****** cut through in FORWARD direction *****
XXXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXr
XrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXr
XrXrXXrrrrrrrrrrrrrrrr
voice-ios-gwy#
voice-ios-gwy#

!--- This is an example of an answered call:

voice-ios-gwy#
voice-ios-gwy#
*Mar 3 23:53:26.570: ****** cut through in FORWARD direction *****
XXXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXr
XrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXrXr
XXrrrrrXrXrXrXrXrXrXrXrXrXrXrXrrXXrrXrXrXrXrXrXXXXXXXXXXXXXXXXrXXXXXXXXrXrXrXXrrXr
XrXrXrXrXrXrXrXrXXrrrrrrrrrrrrrrrrrrrrrrrrrrrrrr

!--- At this point, the remote end picks up the phone.

*Mar 3 23:53:30.378: ****** cut through in BOTH direction *****
XRXRXRXRXRXRXRXRXXRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRXRXRXRXRXRXRXR
XRXRXRXRXRXRXRXRXRXRXRXRXRXRXXRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRXRXRXRXRXR
XXRRXRXRXXRRXRXRXRXRXXRXRXRXRXRXRRXRXXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXR
XRXRXRXRXRXRXRXRXRXRXRXRXRXRXRRRRRRRRRRRRRRRRRRRRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXR
XRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXXRRRRRRRRRRRRRRRRRRRRRRRRRRRRXRXRXRXRXRXRXRXRXRXR
XRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR
RRRRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRRXXRXRXRXRXRXRRXRXRXRXRXRXRXRXR
XRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXXRRRRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXR
XXRRRRRRRRRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXR
XRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXRXR
XRXRXRXRXRXRXRXRXRXRXRXRXXRRRXR

!--- This is the end of the conversation.

注意: 在 Cisco IOS 软件版本 12.2(11)T 及更高版本中,debug cch323 rtp 命令行界面 (CLI) 命令已替换为 debug voip rtp 命令

voice-ios-gwy#debug voip rtp

--------cut through in BOTH direction-------------------

*Mar 27 19:52:08.259: RTP(32886): fs rx d=10.48.79.181(20002),
pt=0, ts=4FFBF0, ssrc=8E5FC294
*Mar 27 19:52:08.275: RTP(247): fs tx d=10.48.79.181(20002),
pt=0, ts=5D00C8D9, ssrc=1F1E5093
*Mar 27 19:52:08.279: RTP(32887): fs rx d=10.48.79.181(20002),
pt=0, ts=4FFC90, ssrc=8E5FC294
*Mar 27 19:52:08.295: RTP(248): fs tx d=10.48.79.181(20002),
pt=0, ts=5D00C979, ssrc=1F1E5093
*Mar 27 19:52:08.299: RTP(32888): fs rx d=10.48.79.181(20002),
pt=0, ts=4FFD30, ssrc=8E5FC294
*Mar 27 19:52:08.315: RTP(249): fs tx d=10.48.79.181(20002),
pt=0, ts=5D00CA19, ssrc=1F1E5093
*Mar 27 19:52:08.319: RTP(32889): fs rx d=10.48.79.181(20002),
pt=0, ts=4FFDD0, ssrc=8E5FC294
*Mar 27 19:52:08.335: RTP(250): fs tx d=10.48.79.181(20002),
pt=0, ts=5D00CAB9, ssrc=1F1E5093
*Mar 27 19:52:08.339: RTP(32890): fs rx d=10.48.79.181(20002),
pt=0, ts=4FFE70, ssrc=8E5FC294
*Mar 27 19:52:08.355: RTP(251): fs tx d=10.48.79.181(20002),
pt=0, ts=5D00CB59, ssrc=1F1E5093
*Mar 27 19:52:08.359: RTP(32891): fs rx d=10.48.79.181(20002),
pt=0, ts=4FFF10, ssrc=8E5FC294
*Mar 27 19:52:08.375: RTP(252): fs tx d=10.48.79.181(20002),
pt=0, ts=5D00CBF9, ssrc=1F1E5093
*Mar 27 19:52:08.379: RTP(32892): fs rx d=10.48.79.181(20002),
pt=0, ts=4FFFB0, ssrc=8E5FC294
*Mar 27 19:52:08.395: RTP(253): fs tx d=10.48.79.181(20002),
pt=0, ts=5D00CC99, ssrc=1F1E5093
*Mar 27 19:52:08.399: RTP(32893): fs rx d=10.48.79.181(20002),
pt=0, ts=500050, ssrc=8E5FC294
*Mar 27 19:52:08.976: RTP(282): fs tx d=10.48.79.181(20002),
pt=0, ts=5D00DEB9, ssrc=1F1E5093
*Mar 27 19:52:08.980: RTP(32922): fs rx d=10.48.79.181(20002),
pt=0, ts=501270, ssrc=8E5FC294
*Mar 27 19:52:08.996: RTP(283): fs tx d=10.48.79.181(20002),
pt=0, ts=5D00DF59, ssrc=1F1E5093
*Mar 27 19:52:09.000: RTP(32923): fs rx d=10.48.79.181(20002),
pt=0, ts=501310, ssrc=8E5FC294
*Mar 27 19:52:09.016: RTP(284): fs tx d=10.48.79.181(20002),
pt=0, ts=5D00DFF9, ssrc=1F1E5093

收集通过 PIX 防火墙的呼叫流量信息

通过收集经过 PIX 防火墙的呼叫流量信息可以排除单向呼叫故障。PIX capture 命令可以用于验证进行呼叫时打开和使用的端口。有关通过 PIX 防火墙的 VoIP 流量的详细信息,请参阅通过 PIX 防火墙处理 VoIP 流量

注意: 在生成故障排除所需的捕获文件后,请确保禁用 capture 命令

Cisco Unified Communications Manager单向音频问题

此问题在MTP要求的一个流出的初始SIP呼叫建立能只出现。在这种情况下,流出的SIP邀请消息将包含SDP提供。问题可能在这些情况下出现:

  • 流出的SIP长途电话用要求检查SIP中继媒介终接点

  • 在IPv6-only终端和IPv4-only终端之间的呼叫

解决方案

MTP资源可能间歇地漏,导致失败SIP呼叫要求MTP资源。从RTMT,可用的MTP资源到达0,并且MTP分配故障计数为要求MTP的每呼叫上升。最初的INVITE的SDP部分将不正确地包含a=inactive

完成这些步骤以解决问题:

  1. 若可能不选定在SIP中继配置要求的媒介终接点

  2. 如果早提供要求,请配置早提供,但是要求被不选定的事假媒介终接点。

  3. 对于IPv6部署,请使用双协议栈而不是IPv6-only终端。

注意: 这在Bug ID CSCtk77040 (仅限注册用户)描述。

相关的思科支持社区讨论

思科支持社区是您提问、解答问题、分享建议以及与工作伙伴协作的论坛。


相关信息


Document ID: 5219