本文档概述了用于 Cisco IOS® IP 语音 (VoIP) 网关的其他编码器-解码器 (CODEC)。在 Cisco IOS 软件版本 12.0(5)T 以前的版本中,VoIP 网关只支持 G.729 和 G.711 编解码器且每个数字信号处理器 (DSP) 只能处理一个语音/传真中继呼叫。 引入 Cisco IOS 软件版本 12.0(5)T 之后,Cisco VoIP 网关可支持大量的编解码器和 DSP 模块。Cisco VoIP 网关还支持每个 DSP 处理高达四个语音/传真中继呼叫。
有关 DSP 的详细信息,请参阅语音硬件:C542 和 C549 数字信号处理器 (DSP)。
DSP Calculator 工具(仅限注册用户)可确定 Cisco 1751、1760、2600XM、2691、2800、3700 和 3800 系列路由器平台的 DSP 需求,并可输出 PVDM 设置建议。该工具根据作为输入内容提供的接口模块、编解码器配置、代码转换信道以及会议会话计算 DSP 需求。该工具支持适用于 Cisco 1751、1760、2600XM、2691、2800、3700 和 3800 平台的不同 Cisco IOS 软件版本。
本文档没有任何特定的要求。
本文档不限于特定的软件和硬件版本。
有关文件规则的更多信息请参见“ Cisco技术提示规则”。
一些编解码器压缩技术需要更强大的处理能力。编解码器复杂性分为两类:中等复杂性和高度复杂性。
中等复杂性允许每个 C549 DSP 处理最多四个语音/传真中继呼叫,并允许每个 C5510 DSP 处理最多八个语音/传真中继呼叫。
高度复杂性允许每个 C549 DSP 处理最多两个语音/传真中继呼叫,并允许每个 C5510 DSP 处理最多六个语音/传真中继呼叫。
中等复杂性(4 个呼叫/DSP) | 高度复杂性(2 个呼叫/DSP) |
---|---|
G.711(a-law 和 m-law) | G.728 |
G.726(所有版本) | G.723(所有版本) |
G.729a、G.729ab (G.729a AnnexB) | G.729、G.729b (G.729 AnnexB) |
传真中继 | 传真中继 |
注意:中型和高复杂性编解码器之间的区别是处理编解码器算法所需的CPU使用率,以及单个DSP可支持的语音信道数。因此,所有中等复杂性编解码器也可以在高度复杂性模式下运行,但只有较少(通常为半数)信道可用于每个 DSP。
注意:传真中继(2400 bps、4800 bps、7200 bps、9600 bps、12 kbps和14.4 kbps)可以使用中等或高复杂性编解码器。
在支持 C549 DSP 技术的平台上,编解码器的复杂性在语音卡(例如,2600/3600/VG-200 高密度语音网络模块)下配置。 一些平台只支持高度复杂性,因为它们有足够的内置 DSP,能够支持所有使用高度复杂性模式的 T1/E1 信道。要根据使用的编解码器标准指定呼叫密度和编解码器复杂性,请在语音卡配置模式下使用 codec complexity 命令。
复杂性配置示例显示如下:
Cisco-router #configure terminal Enter configuration commands, one per line. End with CNTL/Z. Cisco-router(config)#voice-card 1 Cisco-router(config-voicecard)#codec complexity ? high Set codec complexity high. High complexity, lower call density. medium Set codec complexity medium. Mid range complexity and call density. <cr> Cisco-router(config-voicecard)#codec complexity high
在支持 C5510 DSP 技术的平台上,提供额外的 flex complexity 选项。如果使用 flex complexity,每个 DSP 能够完成高达十六个呼叫。根据用于呼叫的编解码器的不同,可支持的呼叫数从六到十六不等。
配置示例显示如下:
Cisco-router#configure terminal Enter configuration commands, one per line. End with CNTL/Z. Cisco-router(config)#voice-card 1 Cisco-router(config-voicecard)#codec complexity ? flex Set codec complexity Flex. Flex complexity, higher call density. high Set codec complexity high. High complexity, lower call density. medium Set codec complexity medium. Mid range complexity and call density. <cr> Cisco-router(config-voicecard)#codec complexity flex
以下内容摘自 show running-config 命令的输出,该命令用于确定配置了哪种复杂性:
!voice-card 1 codec complexity high !
下表列出了各种 Cisco 路由器平台支持的编解码器技术。
编解码器 | 1751/1760 | 26xx/36xx NM-1V/2V | 26xx/36xx NM-HDV | 3700 | 3810 | AS5300 AS5800 | AS5350 AS5400 | 7200 | 7500 | CMM 24FXS | CMM 6T1/E1 |
---|---|---|---|---|---|---|---|---|---|---|---|
G.711 a-law 和 u-law PCM (64 kbps) | 12.0.5XQ1 | Yes | 12.0.5XK1 | Yes | 12.0.7XK | Yes | Yes | 12.0.5XE3 | 12.1.3T | Yes | Yes |
G.726 ADPCM(32 kbps、24 kbps、16 kbps) | 12.1.2T | 12.0.5吨 | 12.0.5XK1 | Yes | 12.0.7XK | Yes | 无 | 12.0.5XE3 | 12.1.3T | 无 | 无 |
G.728 LD-CELP (16 kbps) | Yes | 12.0.5吨 | 12.0.5XK1 | Yes | 12.0.7XK | Yes | 无 | 12.0.5XE3 | 12.1.3T | 无 | 无 |
G.729 CS-ACELP (8 kbps) | 12.1.2T | Yes | 12.0.5XK1 | Yes | 12.0.7XK | Yes | 无 | 12.0.5XE3 | 12.1.3T | 无 | 无 |
G.729a CS-ACELP (8 kbps) | 12.0.5XQ1 | Yes | 12.0.5XK1 | Yes | 12.0.7XK | Yes | Yes | 12.0.5XE3 | 12.1.3T | Yes | Yes |
G.729 Annex-B (8 kbps) [VAD] | Yes | 12.0.5吨 | 12.0.5XK1 | Yes | 12.0.7XK | Yes | 无 | 12.0.5XE3 | 12.1.3T | 无 | 无 |
G.729a Annex-B (8 kbps) | Yes | Yes | 12.0.5XK1 | Yes | 12.0.7XK | Yes | Yes | 12.0.5XE3 | 12.1.3T | Yes | Yes |
G.723.1 MP-MLQ (6.3 kbps) | 12.1.2T | 12.0.5吨 | 12.0.5XK1 | Yes | 12.0.7XK | Yes | Yes | 12.0.5XE3 | 12.1.3T | 无 | 无 |
G.723.1 ACELP (5.3 kbps) | 12.1.2T | 12.0.5吨 | 12.0.5XK1 | Yes | 12.0.7XK | Yes | Yes | 12.0.5XE3 | 12.1.3T | 无 | 无 |
G.723.1 Annex-A MP-MLQ (6.3 kbps) | 12.1.2T | 12.0.5吨 | 12.0.5XK1 | Yes | 12.0.7XK | Yes | Yes | 12.0.5XE3 | 12.1.3T | 无 | 无 |
G.723.1 Annex-A ACELP (5.3 kbps) | 12.1.2T | 12.0.5吨 | 12.0.5XK1 | Yes | 12.0.7XK | Yes | Yes | 12.0.5XE3 | 12.1.3T | 无 | 无 |
纯信道 | 12.3(2)XF、12.3(11)T | Yes | Yes | Yes | 12.3(11)T | Yes | Yes | 无 | 无 |
编解码器压缩方法 |
---|
PCM = 脉冲编码调制 |
ADPCM = 自适应差分脉冲编码调制 |
LDCELP = 低延迟码激励线性预测 |
CS-ACELP = 共轭代数码本激励线性预测 |
MP-MLQ = 多种脉冲,多重量子化 |
ACELP = 代数码激励线性预测 |
每个编解码器都提供某种程度的语音质量。传送的语音的质量由监听程序的主观响应来确定。用于确定由特定编解码器所产生的声音质量的一个常用基准是平均意见得分 (MOS)。 使用 MOS,大范围的监听程序可以判断语音示例(对应于特定的编解码器)的质量,质量等级从 1(差)到 5(非常好)。 各个得分进行平均所得的结果即为该语音示例的 MOS。下表显示了编解码器和 MOS 评分之间的关系。
压缩方法 | 比特率 (kbps) | MOS 评分 | 压缩延迟(毫秒) |
---|---|---|---|
G.711 PCM | 64 | 4.1 | 0.75 |
G.726 ADPCM | 32 | 3.85 | 1 |
G.728 LD-CELP | 16 | 3.61 | 3 到 5 |
G.729 CS-ACELP | 8 | 3.92 | 10 |
G.729 x 2 编码 | 8 | 3.27 | 10 |
G.729 x 3 编码 | 8 | 2.68 | 10 |
G.729a CS-ACELP | 8 | 3.7 | 10 |
G.723.1 MP-MLQ | 6.3 | 3.9 | 30 |
G.723.1 ACELP | 5.3 | 3.65 | 30 |
虽然从财务角度来看,把所有呼叫转换成低比特率编解码器以节约基础设施成本是合理的,但是设计带有低比特率压缩的语音网络时,您应当格外小心。压缩语音也有一些缺点。其中一个主要缺点是多重编码(称为纵排编码)造成的信号失真。 例如,对 G.729 语音信号进行三次纵排编码时,MOS 得分将从 3.92(非常好)下降到 2.68(不可接受)。 另一个缺点是低比特率编解码器导致的延迟。
以下两个部分阐明了与 G.729 (8 kbps) 编解码器实施相关的许多常见兼容性问题。
在对 G.729 编解码器进行标准化之前,Cisco 发布了 G.729 pre-Internet Engineering Task Force (IETF) 编解码器实施。从 Cisco IOS 12.0(5)T 版本开始,G.729 编解码器的默认位排序就从 pre-IETF 标准更改为 IETF 标准化格式。两种格式不能互操作,否则会产生让终端用户难以理解的“吞音”。
为了与其他供应商的G.729实施兼容,Cisco IOS软件版本12.0.5T及更高版本默认为G.729的标准化实施。为了向后兼容Cisco IOS软件版本12.0.5T之前的Cisco IOS软件版本,请启用pre-IETF G.72使用此命令实现9个:
maui-vgw-01(config)#dial-peer voice 100 voip maui-vgw-01(config-dial-peer)#codec g729r8 pre-ietf
Cisco IOS 版本 12.2 和更新版本不支持此命令中的 pre-ietf 选项。
G.729 是一种高度复杂性算法,而 G.729A(亦称 G.729 Annex-A)则是 G.729 的中等复杂性变体,其语音质量稍低。所有支持 G.729 的平台都支持 G.729A。
在 Cisco IOS 网关上,使用 G.729 还是 G.729A 与语音卡上的编解码器复杂性配置有关。它不会明确出现在 Cisco IOS 命令行界面 (CLI) 中的编解码器选项中。例如,CLI 不会将 g729ar8(“a”代码)显示为编解码器选项。然而,如果语音卡被定义为中等复杂性,那么 g729r8 选项则是 G.729A 编解码器。
注意:对于MC3810,在12.0.7XK之前的Cisco IOS软件版本中,G.729A的24个通道或G.729的12个通道之间有明确的CLI选择。
G.729 Annex-B 是一种高度复杂性算法,而 G.729A Annex-B 则是 G.729 Annex-B 的中等复杂性变体,其语音质量稍低。G.729 和 G.729 Annex-B 编解码器之间的区别在于 G.729 Annex-B 编解码器提供内置 IETF 语音活动检测 (VAD) 和舒适噪音生成 (CNG)。
以下 G.729 编解码器组合能够实现互操作:
G.729 和 G.729A
G.729 和 G.729
G.729A 和 G.729A
G.729 Annex-B 和 G.729A Annex-B
G.729 Annex-B 和 G.729 Annex-B
G.729A Annex-B 和 G.729A Annex-B
注意:由于这些语音模块不支持NM-HDV(Cisco NM-HDV)上支持的“编解码器复杂性”配置,因此没有在Cisco 2600/3600/VG-200 NM-1V和NM-2V(语音网络模块)上配置G.729A的明确方法高密度语音网络模块)。 然而,如果一个 G.729A 呼叫由另一个在 NM-1V/2V 上终止的终点进行设置,则该呼叫将成功连接。
G.723.1 有两个版本,称为 Annex-A 和非 Annex-A。这两个版本不能互操作。G.723.1 Annex-A 包括内置的 IETF VAD 算法和 CNG。
此外,从 Cisco IOS 软件版本 12.0(5)T 开始,G.723.1 编解码器支持 5.3 kbps 和 6.3 kbps 的速率。当Cisco VoIP网关在使用G723.1的设备之间建立呼叫时,只担心远端使用G.723.1。两端都不关心另一端支持的5.3 kbps或6.3 kbps速率。这意味着,虽然让两端都支持同一速率是非常有利的,但很有可能一端的传输速率为 5.3 kbps,而另一端的传输速率为 6.3 kbps。可使用 show call active voice brief 命令查看所使用的速率,如下所示:
Cisco-router# show call active voice brief 47 : 494514hs.1 +473 pid:0 Answer active tx:210/5040 rx:219/4380 IP 5.5.0.1:16534 rtt:3ms pl:890/0ms lost:0/0/0 delay:70/70/70ms g723r63 47 : 494514hs.2 +473 pid:1 Originate 4750001 active TX:230/1840 rx:230/8280 Tele 2/0:0 (35): TX:6870/2290/0ms g723r63 !--- In this example the G.723.1 is operating at 6.3 kbps. noise:0 acom:0 i/0:-79/-5 dBm
在呼叫过程中,G.723.1 标准允许站点在 6.3 kbps 和 5.3 kbps 的速率之间进行切换,以适应网络流量负载。Cisco VoIP 网关不支持此功能。但其可以识别远程设备(如 Cisco IP 电话)的传输速率是否与最初协商的速率相同。
以下 G.723.1 编解码器组合能够实现互操作:
G.723.1 (5.3 kbps) 和 G.723.1 (6.3 kbps)
G.723.1 (5.3 kbps) 和 G.723.1 (5.3 kbps)
G.723.1 (6.3 kbps) 和 G.723.1 (6.3 kbps)
G.723.1 Annex-A (5.3 kbps) 和 G.723.1 Annex-A (6.3 kbps)
G.723.1 Annex-A (5.3 kbps) 和 G.723.1 Annex-A (5.3 kbps)
G.723.1 Annex-A (6.3 kbps) 和 G.723.1 Annex-A (6.3 kbps)
引入 Cisco IOS 软件版本 12.0(5)T 之后,Cisco VoIP 网关支持编解码器协商功能。此功能可以让 Cisco VoIP 网关连接到其他 VoIP 设备,而无需知道哪个编解码器用于呼叫建立。并且,此功能使 Cisco VoIP 网关能够动态适应远程设备上的变化。只要远程 VoIP 设备使用的编解码器匹配 Cisco VoIP 网关的功能列表,VoIP 呼叫便可完成。C542 和 C549 DSP 均支持编解码器协商功能。要指定一组在拨号对等体上使用的首选编解码器,请在语音类配置模式下使用 codec preference 命令。
以下示例显示了如何配置编解码器协商:
Cisco-router# configure terminal Cisco-router(config)# voice class codec 1 !--- This sets up class 1 to be assigned to the dial peer. Cisco-router(config-class)#codec preference 1 g723r63 Cisco-router(config-class)#codec preference 2 g729br8 Cisco-router(config-class)#codec preference 3 g711ulaw Cisco-router(config-class)#codec preference 4 g726r32 bytes 240 !--- These commands define the preferred codec list using 1,2,3, !--- and 4 to set the preference. Cisco-router(config)#dial-peer voice 1 voip Cisco-router(config-dial-peer)#voice-class codec 1 !--- This assigns voice-class codec 1 to the dial-peer Cisco-router(config-dial-peer)#destination-pattern 4723155 Cisco-router(config-dial-peer)#session target ipv4:192.168.100.1
%DSPRM-5-SETCODEC 错误的发生原因为:VoIP 拨号对等体上配置了高度复杂性编解码器,而语音卡仍然设置为默认的中等复杂性。要解决此问题,您必须从控制器中删除 ds0-group 配置,此配置会导致语音端口被删除。删除 ds0-group 后,按照本文档前面部分所述的步骤来更改复杂性。