在使用基于时分多路复用 (TDM) 体系结构的平台上,有许多问题和症状与 Cisco IOS® 软件的默认计时模式有关。
症状
这些问题与症状包括:
在普通老式电话服务 (POTS) 到 VoIP 呼叫或 POTS 到 POTS 呼叫中,出现单向音频或任何一个方向都没有音频的情况。
调制解调器未训练
传真不完整或缺少线路
传真连接失败
VoIP 呼叫中出现回声并且语音质量较差
在通话期间听到静态噪声
本文档没有任何特定的要求。
本文档不限于特定的软件或硬件版本。
有关文档规则的详细信息,请参阅 Cisco 技术提示规则。
传递数字化脉冲编码调制 (PCM) 语音的语音系统始终依赖于嵌入到接收的比特流中的计时信号。这样,连接的设备就可以从比特流恢复时钟信号,然后使用此恢复的时钟信号来确保不同信道上的数据与其他信道保持相同的计时关系。如果未在设备之间使用公用时钟源,则比特流中的二进制值可能会因设备在错误的时刻对信号采样而被错误地解释。例如,如果接收设备的本地计时所使用的时段比发送设备的计时所用的时段略短,则可能会将由八个连续二进制 1 组成的字符串解释为 9 个连续 1。如果将此数据重新发送到使用不同计时基准的较远的下游设备,则可能会使错误变得严重。如果您确保网络中的每个设备都使用相同的计时信号,则可确保整个网络中流量的完整性。
如果未保持设备之间的计时,则可能会出现一种称为时钟滑移的情况。根据定义,时钟滑移就是缓冲区的读取与写入速率存在的差异所导致的同步数据流中比特(或比特块)的重复或删除。产生滑移的原因是,设备缓冲区存储或者其他机制无法适应传入与传出信号的相位或频率之间的差异。如果传出信号的计时不是来自传入信号的计时,就会出现这种情况。
T1 或 E1 接口会在重复的比特模式(称为帧)中发送流量。每个帧的比特数都是固定的,这样设备就可以确定帧的开始和结束。这也意味着接收设备会准确地知道帧何时结束:它只需计数相应的传入比特数。因此,如果发送设备与接收设备之间的计时不同,则接收设备可能会在错误的时刻对比特流进行采样,从而导致返回不正确的值。
虽然 Cisco IOS 软件可以轻松地控制这些平台上的计时,但需要支持 TDM 的路由器上的默认计时模式有效自由运行。这意味着从某一接口接收的时钟信号不连接到路由器的背板,并且该信号不用于路由器的其余部分与其他接口之间的内部同步。因此,路由器使用内部时钟源跨背板以及跨其他接口来传递流量。
这通常不会给数据应用带来问题,因为数据包将在内存中进行缓冲,然后再复制到目标接口的传输缓冲区。数据包对内存进行有效读取和写入,端口之间无需任何时钟同步。
数字语音端口存在另一个问题。除非已另行配置,否则 Cisco IOS 软件将使用背板(或内部)计时来控制对数字信号处理器 (DSP) 的数据读取和写入。 如果 PCM 流在数字语音端口上传入,则该 PCM 流将使用接收比特流的外部计时。不过,此比特流不一定使用与路由器背板相同的基准,这意味着 DSP 可能会错误解释来自控制器的数据。路由器 E1 或 T1 控制器上出现的这种计时不匹配称为时钟滑移。路由器使用其内部时钟源从接口发送流量,而进入该接口的流量则使用完全不同的时钟基准。最终,发送和接收信号之间计时关系中的差异将变得很大,以致于接口控制器在接收帧中记录滑移。
较高版本的 Cisco IOS 软件平台(如 AS5350、AS5400、7200VXR、2600、3700 和 1760)具有基于 TDM 体系结构的不同实施方式,并允许跨路由器背板以及在不同接口端口之间传播计时。前面提到的所有平台都使用不同的命令行界面 (CLI) 命令来配置计时模式。这取决于安装的硬件。即使语法有所不同,这些命令基本上都会指示路由器从数字语音端口恢复计时,并使用此信号来驱动其他路由器操作。
由于这些命令都不是默认命令,您最初不会在路由器配置文件中看到它们,因此不了解它们有何意义。
大多数情况下,您可以在 E1 或 T1 接口上检查时钟滑移以确认问题。发出 show controller {e1 | t1}命令确认:
Router#show controller e1 0/0 E1 0/0 is up. Applique type is Channelized E1 - balanced No alarms detected. alarm-trigger is not set Version info Firmware: 20020812, FPGA: 11 Framing is CRC4, Line Code is HDB3, Clock Source is Line. Data in current interval (97 seconds elapsed): 0 Line Code Violations, 0 Path Code Violations 4 Slip Secs, 0 Fr Loss Secs, 0 Line Err Secs, 0 Degraded Mins 4 Errored Secs, 0 Bursty Err Secs, 0 Severely Err Secs, 0 Unavail Secs
此日志显示 E1 接口上的定期时钟滑移。
需要通过 Cisco IOS 软件配置命令更改默认计时行为,才能消除该问题。正确设置计时命令是至关重要 的。
必须添加以下命令:
network-clock-participate wic slot — 其中slot是E1或T1 Multiflex中继模块(MFT)安装的WAN接口卡(WIC)插槽编号。
注意:如果安装了多个语音和广域网接口卡(VWIC),则必须正确重复该命令。
对于2600平台,如果单个端口E1或T1 VWIC物理上位于WIC插槽1中,且未安装其他VWIC模块,则必须将其称为WIC 0,即使从技术上讲它仍位于插槽1上。Cisco IOS软件配置也将其称为控制器T1或E1 0/0。
network-clock-participate aim slot - 其中 slot 是安装高级集成模块 (AIM) 的插槽。
这仅适用于 2691、366x 和 37xx 平台,这些平台的主板上的插槽最多可用于两个 AIM 模块。插槽编号为 0 或 1。
network-clock-select priority {E1 | T1}插槽 — 其中插槽是接口的卡或插槽。
为了确保路由器将正确接口用作主要(最高优先级)时钟源,需要添加此命令来配置系统的计时优先级。为了建立计时层次结构(以防主时钟源关闭),需要使用每个接口的不同优先级来重复此命令:
network-clock-select 1 e1 0/0 network-clock-select 2 e1 0/1
发出 show network-clocks 命令以验证计时配置:
2600#show network-clocks Network Clock Configuration --------------------------- Priority Clock Source Clock State Clock Type 1 E1 0/0 GOOD E1 5 Backplane GOOD PLL Current Primary Clock Source ---------------------------- Priority Clock Source Clock State Clock Type 1 E1 0/0 GOOD E1
下面是 2600 路由器的配置,其中 AIM-VOICE-30 模块和 E1 VWIC 安装在 WIC 0 中:
network-clock-participate wic 0 network-clock-select 1 e1 0/0
下面是 2691 路由器的配置,其中 AIM-VOICE-30 安装在插槽 0 和 1 中,一个单端口 T1 VWIC 安装在 WIC 插槽 0 和插槽 1 中:
network-clock-participate wic 0 network-clock-participate wic 1 network-clock-participate aim 0 network-clock-participate aim 1 network-clock-select 1 t1 0/0 network-clock-select 2 t1 1/0
有关详细信息,请参阅 Cisco 2600 系列和 Cisco 3660 上的 AIM-ATM、AIM-VOICE-30 和 AIM-ATM-VOICE-30 中的配置网络时钟源和参与情况部分。
注意:当配置连接到PBX的PRI时,请确保路由器配置了clock source internal和isdn protocol-emulate network命令。
必须在 7200 上添加以下命令:
frame-clock-select priority {E1 | T1} card/slot
例如,对于插槽 2 中的 PA-VXC-2TE1 卡:
frame-clock-select 1 t1 2/0 frame-clock-select 2 t1 2/1
发出 show network-clocks 命令以验证系统计时。
有关 7200VXR 的详细信息,请参阅配置 T1/E1 数字语音端口适配器的指定所需的卡类型部分中的步骤 8。
有关 Catalyst 4000 语音网关的详细信息,请参阅 Cisco IOS 版本 12.1(5)T 的 Catalyst 4000 接入网关模块的发行版本注释的 TDM 计时部分。
这些网关能够将计时同步到特定 E1 或 T1 接口、内部时钟或外部站 (BITS) 时钟源。默认设置是内部计时。可使用以下命令更改系统计时。这取决于您所使用的 Cisco IOS 软件版本:
对于 Cisco IOS 软件版本 12.2.11T 及更高版本:
tdm clock priority priority card/slot
对于早于 12.2.11T 的 Cisco IOS 软件版本:
dial-tdm-clock priority priority card-slotcard/slot
发出 show tdm clock 命令以验证系统计时。
有关详细信息,请参阅 AS5xxx 网络接入服务器的时钟同步。
这些设备针对其计时使用不同的命令和术语。在语音操作模式中,可导出计时(在外部从线路或接口获取时钟)或导入计时(从路由器的内部振荡器或从其他端口或接口获取端口上的时钟)。
tdm clock {T1 | E1} slot/port {voice | data | both} export line !--- Issue this command on one line: tdm clock {T1 | E1} slot/port {voice | data | both} import {T1 | E1 | atm | bri | onboard} slot/port {line | internal}
此导入和导口术语可能会令人混淆,因为“导入”这个术语似乎表示计时直接来自参考端口或接口,而不是来自路由器的内部振荡器。
有关详细信息,请参阅 Cisco 1751/1760 路由器的时钟配置。
MC3810 也使用 network-clock 命令来同步计时:
network-clock-select {1-4} {T1 | E1 | Serial | System} slot/port
有关可能方案的详细信息,请参阅在 Cisco MC3810 上配置同步时钟。