语音 : 语音质量

QoS 语音波动问题故障排除

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


目录


简介

对于是的信息包语音标准的公共交换电话网(PSTN)电话服务的一可实现的更换,信息包语音的已接收质量一定是可比较的与那基本电话服务。这意味着一贯高质量的语音传输。类似其他实时应用,信息包语音有一个宽带宽并且延迟敏感。对于是的语音传输可理解的(不浪潮起伏)对接收方,语音数据包不可能丢弃,非常延迟或者遭受变化的延迟(也叫作抖动)。本文描述帮助排除故障声音断断续续问题的多种服务质量(QoS)考虑事项。声音断断续续问题的主要原因丢失并且延迟语音数据包。

先决条件

要求

本文读者应该对这些熟悉:

  • 信息包语音(VoIP、帧中继语音(VoFR)或者ATM语音(VoATM)基本配置根据他们的需求)。

  • 语音优先级、分段、不同的编码和他们的带宽需求基本的了解。

使用的组件

本文档中的信息适用于所有Cisco语音网关软件和硬件版本。

本文档中的信息都是基于特定实验室环境中的设备创建的。本文档中使用的所有设备最初均采用原始(默认)配置。如果您是在真实网络上操作,请确保您在使用任何命令前已经了解其潜在影响。

规则

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

导致常变语音的原因

不稳定的语音质量是由可变延迟或丢失的语音数据包造成的网络。当语音数据包在到达延迟时其目的地,目的地网关有信息丧失实时信息。在此事件,目的地网关必须预测什么未接数据包的内容可以可能是。预测导致接收的语音有特性和已发送语音一样。那听起来机器人的这导致接收的语音。如果语音数据包在一个接收的网关的预测功能之外延迟,网关空出实时差距。使用没什么填满该差距在接收端,一部分的传送的语音丢失。这导致声音断断续续。确保解决许多声音断断续续问题语音数据包非常没有延迟(和更比那,不可变延迟)。有时,语音活动检测(VAD)添加前端限幅到语音通话。这是浪潮起伏的(或截去)语音的另一个原因。

在本文的多种部分显示如何最小化声音断断续续实例。大多这些测量要求保证介绍在您的语音网络的最低的抖动。

带宽要求

在您考虑应用所有测量为最小化抖动前,请设置满足的网络带宽支持实时语音数据流。例如,一次80 Kbps G.711 VoIP呼叫(64 Kbps有效负载+ 16 Kbps报头)听起来差64 Kbps链路,因为(是20百分比)至少的16 Kbps数据包丢弃。带宽需求变化基于用于压缩的编码。不同的编码有不同的有效载荷和报头需求。VAD使用情况也影响带宽需求。如果使用实时协议(RTP)报头压缩(cRTP),能进一步降低带宽需求。

例如,为语音呼叫要求的带宽使用G.729编码(默认20字节有效负载)与cRTP,是象这样:

  • 语音有效载荷+压缩了(RTP报头+用户数据报协议(UDP)报头+ IP报头) +Layer 2报头

这是等同的对:

  • 20个字节+压缩了(12个字节+ 8个字节+ 20个字节) + 4个字节

这等于:

  • 28个字节,因为报头压缩使IP RTP头降低到最多4个字节。这产生11.2 Kbps以一8 Kbps编码速率(50数据包每秒)。

有关详细信息,请参阅 IP 语音 - 每个呼叫的带宽占用量.

语音数据流优先级

有在优先处理的语音的两个重要组件。第一是分类和标记触发的语音流量。第二优先处理明显触发的语音流量。此处两小节讨论多种途径对分类,标记和优先处理的语音。

分类和标记

为了保证VoIP信息包的带宽,流经它的网络设备一定能识别在所有IP数据流的数据包。网络设备在IP报头使用源和目的地IP地址或者在UDP报头的源和目的UDP端口号,识别VoIP信息包。此识别和分组进程呼叫分类。它是为提供所有QoS的基本类型。

数据包分类可以是密集的处理器。所以,分类需要完成作为往网络的边缘尽可能。由于每跳在处理还是需要做确定数据包应该接收,您需要有更加简单,更有效的在网络核心的分类方法。此更加简单的分类通过标记或设置达到在IP报头的服务类型(ToS)字节。Tos字节的三最高有效位呼叫IP优先级位。多数应用程序和供应商当前支持设置和认可这三个位。标记演变,以便可以使用Tos字节的六最高有效位,呼叫差分服务代码点。参考请求注释(RFC)。

差异化服务(DiffServ)是流量由中间系统处理与根据ToS字段的相对优先级的新模型。DiffServ 标准在 RFC 2474 RFC 2475 中有所定义,它取代了 RFC 791 中介绍的用于定义数据包优先级的原规范。leavingcisco.com leavingcisco.com leavingcisco.com DiffServ 通过重新分配优先级标记 IP 数据包的位,增加了可定义的优先级别数量。DiffServ体系结构定义了DiffServ字段。它取代在IP V4的Tos字节做出关于数据包分类的每跳行为(PHB)决定和数据流调节功能例如计量、标记、shaping和管制。除以前被提及的RFC之外, RFC 2597leavingcisco.com 定义了确保转发(AF)类。这是DSCP字段的细分。有关 DSCP 的详细信息,请参阅通过 DSCP 实施服务质量策略

Tos字节- P2 P1 P0 T3 T2 T1 T0 CU

IP优先级:三个位(P2-P0), Tos :四个位(T3-T0), CU :一个位

DiffServ字段- DS5 DS4 DS3 DS2 DS1 DS0 ECN ECN

DSCP :六个位(DS5-DS0), ECN :两位

XXX00000比特0, 1, 2 (DS5、DS4, DS3)是优先顺序位, where:

  • 111 =network控制=优先7

  • 110 =互联网络控制=优先6

  • 101 = CRITIC/ECP =优先5

  • 100 =闪存覆盖=优先4

  • 011 =闪存=优先3

  • 010 = Immediate = Precedence 2

  • 001 = Priority = Precedence 1

  • 000 = Routine = Precedence 0

000XXX00位3,4,5 (DS2、DS-1,DS-0) 是延迟、吞吐量和可靠性位。

  • 位3 =延迟[D] (0 =正常;1 =低)

  • 位4 =吞吐量[T] (0 =正常;1 =海伊)

  • 位5 =可靠性[R] (0 =正常;1 =海伊)

000000XX比特6, 7 :ECN

这两个部分讨论分类和标记完成的两种方式。

分类和标记数据包的语音拨号对端

使用Cisco VoIP网关,您通常使用语音拨号对端分类VoIP信息包和标记IP优先级位。此配置显示如何标记IP优先级位:

dial-peer voice 100 voip
destination-pattern 100
session target ipv4:10.10.10.2
ip precedence 5

在以上示例中,匹配dial-peer voice 100 voip命令的所有VoIP呼叫有所有其语音有效载荷数据包设置IP优先级5。这意味着IP TOS字节的三最高有效位设置到101。

dial-peer voice 100 voip
destination-pattern 100
session target ipv4:10.10.10.2
ip qos dscp ef media
ip qos dscp af31 signaling

在以上示例中,匹配dial-peer voice 100 voip命令的所有VoIP呼叫有所有其媒体有效载荷信息包(语音数据包)设置紧急转发(EF)比特模式101110。所有信令数据包设置AF比特模式011010。

注意: ip qos dscp命令从Cisco IOS�软件版本12.2(2)T支持。IP优先级不再是可用的在Cisco IOS软件版本12.2T.然而,同样由ip qos dscp命令达到。IP优先级5 (101)映射对IP DSCP 101000。欲知更多信息,参见“区分VoIP信令和带有服务质量DSCP的媒体”。

分类和标记数据包的模块化QoS CLI

使用的推荐的分类和标记方法是模块化QoS CLI。这是从策略分离分类的基于模板的配置方法。这允许为多个类将一起配置的多个QoS功能。请使用一class-map命令分类根据多种匹配标准的流量和policy-map命令确定什么需要发生在每类。运用策略对在接口的流入或流出的数据流通过发出service-policy命令。此配置示例显示如何使用模块化QoS CLI分类和标记数据包:

access-list 100 permit udp any any range 16384 32767
access-list 101 permit tcp any any eq 1720
!
class-map match-all voip
match access-group 100
class-map match-all control
match access-group 101
!
policy-map mqc
class voip
set ip precedence 5
class control
set ip precedence 5
class class-default
set ip precedence 0
!
interface Ethernet0/0
service-policy input mqc

在本例中配置示例,匹配访问控制表(ACL) 100的所有流量分类作为“类与IP优先级5.的voip”和集。这意味着IP TOS字节的三最高有效位设置到101。ACL 100匹配VoIP使用的普通的UDP端口。同样ACL 101匹配H.323信令流量(传输控制协议(TCP)端口1720)。其他流量设置IP优先级0。策略呼叫“mqc”。它应用对在Ethernet0/0的流入的数据流。

优先处理

在网络的每跳能分类和识别VoIP信息包(通过端口/地址信息或者通过Tos字节)后,那些跳然后提供每个VoIP信息包需要的QoS。那时,请配置特殊技术提供优先级队列确保,大数据包不干涉语音数据数据传输。这在有拥塞的一种高的可能性的慢速广域网链路通常要求。一旦所有关注数据流被放置到根据他们的QoS需求的QoS类,请通过一个智能输出排队机制提供带宽保证和优先级服务。优先级队列为VoIP要求。

注意: 请使用有效给VoIP高优先级的所有排队机制。然而,低延迟排队(LLQ),因为配置,是灵活和容易的推荐。

LLQ使用模块化QoS CLI配置方法提供优先级给某些类和为其他类提供保证的最小带宽。在拥塞期时,优先级队列被管辖以配置速率,以便优先级数据流不用完所有可用的带宽。(如果优先级数据流垄断带宽,它防止其他类的带宽保证满足。)如果正确提供LLQ,进入优先级队列的流量不应该超出配置速率。

LLQ也准许将指定的队列深度确定,当路由器需要丢弃数据包时,如果有在所有特定类队列等待的过多的数据包。也class-default命令使用确定配置的等级没分类的所有流量的处理。类别默认值用fair-queue命令配置。这意味着每个未保密的流给剩余带宽的一大约相等共享。

此示例显示如何配置LLQ。欲知更多信息,参考低延时队列

access-list 100 permit udp any any range 16384 32000
access-list 101 permit tcp any any eq 1720
access-list 102 permit tcp any any eq 80
access-list 103 permit tcp any any eq 23
!
class-map match-all voip
match access-group 100
class-map match-all voip-control
natch access-group 101
class-map match-all data1
match access-group 102
class-map match-all data2
match access-group 103
!
policy-map llq
class voip
priority 32
class voip-control
bandwidth 8
class data1
bandwidth 64
class data2
bandwidth 32
class class-default
fair-queue
!
interface Serial1/0
bandwidth 256
service-policy output llq

在本例中,配比的所有流量ACL 100分类作为“类voip” (含义语音流量)。它给高优先级32 Kbps。ACL 100匹配VoIP使用的普通的UDP端口。access-list 101匹配H.323信令流量(TCP端口1720)。类程资料1匹配Web流量(如在访问列表102)中看到的TCP端口80和保证64 Kbps。类程资料2匹配Telnet流量(如在ACL 103中看到的TCP端口23)和保证32 Kbps。默认组配置给剩余带宽的一相等的共享到未保密的流。策略呼叫“LLQ”。它应用对在Serial1/0的流出流量,有总带宽256 Kbps。

注意: 默认情况下,总保证的带宽和优先级带宽所有类的少于接口带宽的75百分比需要是。通过发出max-reserved bandwidth interface命令修改此百分比。

此表不同的软件排队机制与他们的各自优势和局限比较。

软件排队机制 说明 好处 限制
先入先出(FIFO) 数据包恰好到达并且离开队列按同一顺序。 简单配置和快速操作。 没有优先级服务或带宽保证possible.1
加权公平排队(WFQ) 该的哈希算法流到重要性用于确定的独立队列多少数据包每次被服务。您通过设置IP优先级和DSCP值定义了重要性。 配置简单。在链路的默认较少比2 Mbps。 没有优先级服务或带宽保证possible.1
客户排队(CQ) 流量分类到与可配置队列限度的多个队列。队列限制根据平均信息包大小、最大传输单元(MTU)和将分配的带宽的百分比计算。队列限制(总数字节)为每个队列离队。所以它统计上提供已分配带宽。 是可用的几年。它允许近似带宽分配不同的队列。 优先级服务不是可能的。带宽保证是近似的。有队列有限数量。配置相对是difficult.1
优先级排队(PQ) 流量分类到高、介质、正常和低优先级队列。高优先级数据流由介质、正常和低优先级流量首先服务,跟随。 是可用的几年。它提供优先级服务。 更加高优先级的流量使带宽挨饿更低优先级队列。带宽保证不是possible.2
基于类的加权公平排队(CBWFQ) 模块化QoS CLI用于分类流量。分类的流量被放置到预留的带宽队列或默认非预留队列。队列根据权重的调度服务,以便带宽保证被尊敬。 类似于LLQ,除了没有优先级队列。简单配置和能力提供带宽保证。 优先级服务不是possible.3
(PQ-WFQ),也呼叫IP RTP优先级的优先级队列加权公平排队 单个接口命令用于提供优先级服务到所有UDP数据包被注定对在指定的范围内的偶数端口号。 简单,一种命令配置。提供优先级服务到RTP数据包。 其他流量处理与WFQ。没有指定优先级实时会议协议(RTCP)流量。没有保证的带宽capability.4
LLQ,以前呼叫基于优先级队列的加权公平排队(PQCBWFQ) 与优先级队列的模块化QoS CLI用于分类流量。分类的流量被放置到优先级队列、预留的带宽队列或者默认非预留队列。调度服务根据权重,以便优先级数据流首先发送(至某管制限制在拥塞时)和带宽保证的队列满足。 配置简单。能力提供优先级给流量多个类和给上限在优先级带宽利用率。您能也配置带宽保证的类和默认组。 提供多个级别的机制优先级,所有优先级数据流没有通过同一个优先级队列发送。独立的优先级能在拥塞时有独立的上面的优先级带宽区域。然而,共享在应用程序之间的优先级队列能潜在介绍jitter.4

  1. 不适用于语音。

  2. 需要为语音保证的带宽。

  3. 需要延迟是已处理。

  4. 满足为语音。

串行延迟

即使排队工作在其最佳并且指定优先级语音流量,有时期,当优先级队列是空的时,并且从另一类的一数据包被服务。必须服务从保证的带宽类的数据包根据他们的已配置的权重。如果优先级语音数据包在输出队列到达,当这些数据包被服务时,语音数据包能等待巨大数量的时刻,在发送前。语音数据包体验串行延迟,当他们必须在更加大的数据包后等待。

串行延迟能引入抖动最坏的形式语音数据包的。如果语音数据包必须在一样大的数据包后等待,象1500个字节,在低速连接,这翻译对巨大的延迟。串行延迟是极大不同的,如果数据包是80个字节,如此示例所显示:

  • 在64 Kbps链路的串行延迟由于1500字节信息包= 1500*8/64000 = 187.5毫秒。

  • 在64 Kbps链路的串行延迟由于80bytes数据包= 80*8/64000 = 10毫秒。

所以,语音数据包必须潜在等待187.5毫秒,在发送前,如果获得卡住在64 Kbps链路的单个1500字节数据包后。另一方面,另一语音数据包只必须等待10毫秒在目的地网关。这结果到发生由于在信息包间延迟的差异的巨大的抖动。在始发网关上,语音数据包通常被发送每20毫秒。使用150毫秒和严格抖动需求端到端延迟预算,超过180毫秒差距是不可接受的。

引入保证分段的机制大小一个传输部件少于10毫秒是。有超过10毫秒串行延迟需要被分段到10毫秒大块的任何数据包。10毫秒大块或片段是通过使用链路速度,如此示例所显示,在10的链路发送女士计算大小的字节数:

  • 分段大小= (0.01秒* 64,000位/秒)/(8个位/字节) = 80个字节

它采取10毫秒发送80字节数据包或片段64 Kbps链路。

在多个ATM或帧中继永久虚拟电路(PVC)的情况下在有低带宽联机的单个物理接口,请配置根据PVC (在所有PVC)的分段值。例如,如果有有保证的带宽512 Kbps的三PVC, 128 Kbps和256 Kbps,然后配置与分段大小的全部三PVC 160个字节(要求160-byte分段大小)的最低速是128 Kbps。这些值为不同的链路速度推荐:

Link Speed (kbps)         Fragmentation Size (bytes) 
56                                  70 
64                                  80 
128                                 160 
256                                 320 
512                                 640 
768                                 960 
1024                                1280 
1536                                1920

注意: 如果分段大小大于链路MTU大小,分段没有要求。例如,对于与1500字节MTU的一条T1链路,分段大小是1920个字节。所以,分段没有要求。信息包分段大小比VoIP信息包包大小不应该更低。请勿分段VoIP信息包。分段这些数据包导致许多呼叫建立和质量问题。

当前有可用三Link Fragmentation and Interleaving的机制。在分组网络介绍的多种延迟的进一步说明,在分组语音网络的参考的了解迪莱。此表列出他们的优势和局限:

链路分段和交织(LFI)机制 说明 好处 限制
与WFQ的MTU分段 interface level命令更改MTU大小或IP MTU大小。用于分段大IP信息包到指定的MTU大小。LFI使用WFQ插入在片段之间的实时数据包。 配置简单。 片段是由接收的应用程序仅重新召集。所以,效率低的使用网络。有的仅IP信息包不分段(DF)没设置的位能很好处理分段。密集高的处理器。不推荐。
多链路点对点协议(MLPPP) LFI 在点对点串行链路,必须首先配置MLPPP,然后在多链路接口必须也启用交叉的女士必须设置分段大小。 数据包在链路的一端被分段并且被重新组装在其他。几条链路可以被组合作为一条大虚拟管道。 仅可用在配置的链路为PPP。Cisco IOS软件版本12.1(5)T也支持PPP over Frame Relay的解决方案或PPP over ATM或以后。
帧中继分片 (FRF.12) 在帧中继PVC上,必须启用frame-relay traffic-shaping命令,并且分段大小设置在映射类别下。 数据包在PVC的一端被分段并且被重新组装在其他。 仅可用在有frame-relay traffic-shaping命令已启用的帧中继PVC。

VAD

一正常语音通话包括几沈默。一典型的语音通话包括40到50百分比无声状态。因为没有通过语音呼叫的40百分比的网络的所有语音,某个带宽可以通过部署VAD保存。使用VAD,网关寻找在语音的差距。它用舒适音(背景噪声)替换那些差距。因此,相当数量带宽保存。然而,有折衷方案。在编码由期限沉默前,检测跟随的语音活动有小的时间(按照毫秒的顺序)。此小的时间导致接收的语音前端限幅。要避免激活在非常短的暂停期间和补尝限幅, VAD等待大约200毫秒,在语音终止后,在终止发射前。当重新启动发射后,它与当前语音一起包括上一个5毫秒语音。如果环境噪声防止它区分在语音和背景噪声之间, VAD在呼叫自动地禁用。然而,如果带宽不是问题,请关闭VAD。

调整VAD参数

有指明作用VAD的两个参数。这些是音乐阈值voice vad-time命令。

音乐阈值

管理的初始极限决定,当VAD需要变得激活时。如此示例所显示,这是通过定义music-threshold threshold_value命令控制的在语音端口。此的范围是从每毫瓦特(dbm) -70分贝到-30 dbm。此的默认值是-38 dbm。配置较低值(往-70dbm)导致变为的VAD活动在较低的信号强度(音量必须下降确实低,在考虑作为沉默)前。配置更高的值(离-30 dbm)较近导致VAD变为活动为在语音信号优点的一小丢弃。它经常驱动Playout播放舒适音信息包。然而,这有时导致音频较小中断。

3640-6#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
3640-6(config)#voice-port 3/0/0
3640-6(config-voiceport)#music-threshold ?
WORD Enter a number b/w (-70 to -30)
3640-6(config-voiceport)#music-threshold -50
3640-6(config-voiceport)#end
3640-6#
3640-6#show run | be voice-portvoice-port 3/0/0 music-threshold -50

voice vad-time

一旦VAD变得激活,如此示例所显示,背景噪声和舒适音组件是通过配置voice vad-time timer_value命令控制的在全局配置下。这是延迟时间以毫秒语音数据包发射无声检测和抑制的。保持时间的默认值是250毫秒。这意味着在250毫秒之内,舒适音开始。此计时器的范围是250毫秒到65536毫秒。如果高值为此配置,舒适音开始活动以后(背景噪声继续播放)。如果这为65536毫秒配置,则舒适音被关闭。此计时器的一更高的值为在背景噪声和舒适音之间的更加平滑的迁移希望。对配置voice vad-time命令的下侧对高层次是不达到希望的30到35百分比带宽节省量。

3640-6#
3640-6#
3640-6#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
3640-6(config)#voice vad-time ?
<250-65536> milliseconds
3640-6(config)#voice vad-time 750
3640-6(config)#end
3640-6#
3640-6#
3640-6#
3640-6#show run | be vad-time voice vad-time 750

QoS 典型配置示例

设置的VoIP呼叫一典型方案在帧中继链路或在PPP链路。这些是这些方案的配置示例。

VoIPoFR - QoS配置示例

在本例中包含配置仅相关的部分)的(假设,帧中继电路速度是256 Kbps。确保的承诺信息速率(CIR)在PVC 100是64 Kbps,并且在PVC 200是192 Kbps。PVC 100用于传送数据和语音。PVC 200用于只传送数据。最多四次同步语音呼叫在指定时候存在。配置在根据CIR的两PVC的分段最小带宽语音PVC (传送语音)的PVC。基于在本文的示例,该含义分段大小根据(决定是64 Kbps)的PVC 100's CIR。如Serialization Delay部分的表所显示, 64 Kbps链路的,分段大小80个字节要求。同一分段大小需要为PVC 200配置。

关于关于基于帧中继的VoIP的配置的更详细的资料,参考与服务质量(分段、流量整形, LLQ /IP RTP优先级)的基于帧中继的VoIP

3660-1#show run
Building configuration...
!
class-map match-any voip
match ip rtp 16384 16383
match ip dscp 26 46
class-map match-all voip-control
match access-group 101
!
!
policy-map VoIPoFR
class voip
priority 48
class voip-control
bandwidth 8
class class-default
fair-queue
!
voice call send-alert
voice rtp send-recv
!
!
interface Serial4/0:0
bandwidth 256
no ip address
encapsulation frame-relay
frame-relay traffic-shaping
!
interface Serial4/0:0.1 point-to-point
bandwidth 64
ip address 10.10.10.10 255.255.255.0
frame-relay ip rtp header-compression
frame-relay interface-dlci 100
 class voice
!
interface Serial4/0:0.2 point-to-point
bandwidth 192
ip address 20.20.20.20 255.255.255.0
frame-relay interface-dlci 200
class data
!
map-class frame-relay data
frame-relay fragment 80
frame-relay adaptive-shaping becn
frame-relay cir 256000
frame-relay bc 32000
frame-relay be 0
frame-relay mincir 192000
frame-relay fair-queue
!
map-class frame-relay voice
frame-relay fragment 80
no frame-relay adaptive-shaping
frame-relay cir 64000
frame-relay bc 640
frame-relay be 0
frame-relay mincir 64000
service-policy output VoIPoFR
!
!
access-list 101 permit tcp any any eq 1720
!
!
voice-port 3/1/0
!
voice-port 3/1/1
!
!
dial-peer voice 10 voip
incoming called-number .
destination-pattern 1408.......
session target ipv4:10.10.10.11
dtmf-relay h245-signal h245-alphanumeric
no vad
!
dial-peer voice 20 pots
destination-pattern 1234
port 3/1/0
!
dial-peer voice 21 pots
destination-pattern 5678
port 3/1/1

在PPP的VoIP - QoS配置示例

在本例中包含配置仅相关的部分)的(假设, QoS需要为配置有十二个信道)的一个点到点fractional T1控制器(。最多四次同步语音呼叫在指定时候存在。配置任务介入配置与PPP封装的此serial interfaces,进行它的多链路组,创建属于同一个多链路组)的多链路接口(和配置在多链路接口的一部分所有QoS。关于关于VoIP的配置的更详细的资料在PPP的,参考带有服务质量控制的VoIP-over-PPP (LLQ /IP RTP优先级、LFI, cRTP)

3660-1#show run
Building configuration...
!
class-map match-any voip
match ip rtp 16384 16383
match ip dscp 26 46
class-map match-all voip-control
match access-group 101
!
!
policy-map VoIPoPPP
class voip
priority 48
class voip-control
bandwidth 8
class class-default
fair-queue
!
voice call send-alert
voice rtp send-recv
!
!
interface Multilink7
bandwidth 768
ip address 10.10.10.10 255.255.255.0
ip tcp header-compression iphc-format
service-policy output VoIPoPPP
no cdp enable
ppp multilink
ppp multilink fragment-delay 10
ppp multilink interleave
multilink-group 7
ip rtp header-compression iphc-format
!
!
interface Serial4/0:0
bandwidth 768
no ip address
encapsulation ppp
no fair-queue
ppp multilink
multilink-group 7
!
!
access-list 101 permit tcp any any eq 1720
!
voice-port 3/1/0
!
voice-port 3/1/1
!
!
dial-peer voice 10 voip
incoming called-number .
destination-pattern 1408.......
session target ipv4:10.10.10.11
dtmf-relay h245-signal h245-alphanumeric
no vad
!
dial-peer voice 20 pots
destination-pattern 1234
port 3/1/0
!
dial-peer voice 21 pots
destination-pattern 5678
port 3/1/1
!

抖动和 Playout 机制

总是有贡献往进一步延迟和抖动在接收的语音信息包在网络的一些未管制的实体。由正在修改在未控制的抖动在语音网络被解决的终端网关的抖动缓冲区。

播放机制

抖动缓冲区是时间缓冲区。终端网关提供它使恢复机制更加有效。这是恢复机制的功能图表:

/image/gif/paws/20371/troubleshoot_qos_voice1.gif

当恢复控制收到语音数据包时,分析RTP时间戳。如果语音数据包在抖动缓冲区的保持能力之外延迟,则数据包立即丢弃。如果数据包在缓冲功能内,在抖动缓冲区安置。此数据包的位置在抖动缓冲区的依靠为该数据包计算的RTP时间戳。在事件没有可用的语音数据包,恢复控制设法隐瞒它(预测未命中的数据包)。如果VAD启用,舒适音播放。

恢复控制的责任是处理丢失的数据包、重复信息包、损坏的数据包和out-of-sequence数据包事件。这些事件在对齐抖动的语音数据包的时间之前处理,播放舒适音(如果VAD配置),甚至重新生成双音多频定调子播放到主机。

语音数据包的隐含完成由预测隐患或由沉默隐含。预测隐患根据上一个数据包和下一个信息包(若有)。它工作最佳与低比特率编码(5 Kbps到16 Kbps)。语音数据包损耗一个高比特率编码的(32 Kbps到64 Kbps)能潜在导致恶劣的预测隐患。当有低和不常见的延迟或包丢失,一点编号预测隐患开始。许多预测隐患可能导致机器人语音质量。沉默隐含是预测隐患最坏的形式。当没有预测的有用的资料它开始活动。它是背景隐含。当有高延迟和包丢失,更多编号它开始。许多沉默隐含导致不稳定的语音质量。预测隐患是有效对于30 msecs,在后沉默隐瞒开始活动。

抖动缓冲区

抖动缓冲区由一高水位标记和一个低水位标记限制。高水位标记是内数据包预计为准时恢复到达的上面的时间限制在。到达的数据包,在高水位标记被标记作为延迟数据包或丢失的数据包后。低水位标记是内数据包预计为准时恢复到达的最短时间在。到达的数据包,在低水位标记认为早期的数据包前(它可能准时仍然播放)。

如果终端网关继续发现在延迟数据包到达的一个增量,增加高水位标记。高水位标记的此值在呼叫的持续时间中依然是同样。这增加至在配置里定义的最大数量。以相似的方式,终端网关观察接收的早期的数据包数量。如果常去网关的这些数据包开始,它减少低水位标记。此值在呼叫的持续时间中依然是同样。抖动缓冲区此模式指“可适应模式”,其中终端网关适应根据流量模式的其抖动缓冲区。另一个模式是“固定模式”。在固定模式,有低水位标记和高水位标记的一个初始值。此值根据估计的接收延迟(请参阅本文的show voice call <port-number>部分)。

关于在抖动缓冲区的更详细的资料,参考了解在分组语音网络(Cisco IOS平台)的抖动

识别延迟和抖动

此部分描述如何识别在您的网络的抖动。

show call active voice

show call active voice brief命令提供关于正在进行的会话的很多信息。此输出显示从此命令了解的一些重点:

11E4 : 2170927hs.1 +600 pid:10 Answer 1000 active
dur 00:08:43 tx:26157/522967 rx:7044/139565
Tele 3/0/0:9: tx:151310/755/0ms g729r8 noise:-62 acom:0 i/0:-56/-48 dBm
11E4 : 2171198hs.1 +329 pid:20 Originate 2000 active
dur 00:08:43 tx:7044/139565 rx:26165/523127
IP 30.30.30.29:18682 rtt:51ms pl:148590/290ms lost:0/0/15 delay:65/60/132ms g729r8

show call active voice brief命令输出,您看到什么在电话段(rx:7044)接收传送到IP段(tx:7044)。同样真实对在转发到电话段的IP段接收的数据包(26165个) (26157)。在IP段接收的数据包数量的差异与在电话段传送的数据包数量造成不做它及时的延迟数据包。

此输出show call active voice命令(没有“简要”关键字),对更详细的资料的点关于直接地识别抖动的参数。

GapFillWithSilence=850 ms
GapFillWithPrediction=9230 ms
GapFillWithInterpolation=0 ms
GapFillWithRedundancy=0 ms

show voice call <port-number>

show voice call port-number命令提供有用的信息。请确保被控制在网关,或者,如果远程登录到网关,确保您发出terminal monitor命令从级的exec。

注意: 此命令不是可用的在AS5x00/AS5x50平台。

在此输出中, Rx的迪莱Est (毫秒)值是71。这是当前抖动缓冲区值。高水位标记和低水位标记的一个值在此推导。而那低水位标记的是60msec,高水位标记的一个平均的初始值是70毫秒。一旦初始值设置,网关记录接收的所有早期的数据包或延迟数据包。象在输出中被看到此处,预测隐患丢包是接近250毫秒,而沉默隐含是30毫秒。因为沉默隐含是预测隐患,仅更坏的案件方案总是有预测隐患的一更高的值。每预测隐患丢弃,有在缓冲溢出丢弃的一增加。

如果看到缓冲区丢弃,不一定意味着您在高水位标记看到一增加。高水位标记是抖动缓冲区的上限。只有当趋势被观察,它更改。换句话说,应该有延迟数据包持续流。这导致抖动缓冲区的增加。在此处输出中,这样趋势存在。所以,高水位标记增加从70毫秒到161毫秒。如果此值没有更改(并且,如果仍然看到14延迟数据包),暗示这些是间歇的延迟数据包,不形成趋势。

从输出show call active voice命令,请寻找丢失的数据包。对于每丢失的数据包,您看到是失序的两数据包。这在Rx非顺序数据包输出被看到。因为它不是正值,推断没有所有包丢失。

3640-6# ***DSP VOICE TX STATISTICS***
Tx Vox/Fax Pkts: 195, Tx Sig Pkts: 0, Tx Comfort Pkts: 10
Tx Dur(ms): 192070, Tx Vox Dur(ms): 388, Tx Fax Dur(ms): 0
***DSP VOICE RX STATISTICS***
Rx Vox/Fax Pkts: 9604, Rx Signal Pkts: 0, Rx Comfort Pkts: 0
Rx Dur(ms): 192070, Rx Vox Dur(ms): 191560, Rx Fax Dur(ms): 0
Rx Non-seq Pkts: 0, Rx Bad Hdr Pkts: 0
Rx Early Pkts: 0, Rx Late Pkts: 14
***DSP VOICE VP_DELAY STATISTICS***
Clk Offset(ms): 0, Rx Delay Est(ms): 71
Rx Delay Lo Water Mark(ms): 60, Rx Delay Hi Water Mark(ms): 161
***DSP VOICE VP_ERROR STATISTICS***
Predict Conceal(ms): 250, Interpolate Conceal(ms): 0
Silence Conceal(ms): 30, Retroact Mem Update(ms): 0
Buf Overflow Discard(ms): 500, Talkspurt Endpoint Detect Err: 0
***DSP LEVELS***
TDM Bus Levels(dBm0): Rx -49.9 from PBX/Phone, Tx -41.7 to PBX/Phone
TDM ACOM Levels(dBm0): +2.0, TDM ERL Level(dBm0): +11.1
TDM Bgd Levels(dBm0): -58.9, with activity being voice
***DSP VOICE ERROR STATISTICS***
Rx Pkt Drops(Invalid Header): 0, Tx Pkt Drops(HPI SAM Overflow): 0

观察Tx舒适数据包和Rx舒适数据包。和从示例输出,推断电话连接对此路由器主要保持安静,因为您有大量Tx舒适数据包。同时,您有零的Rx舒适数据包,因此意味着另一端不断地发言。

此处输出与前面的命令输出比较。有增加号码Rx延迟数据包(从14到26)。然而,没有增量按最高峰值。这表明12数据包偶发地延迟。缓冲溢出丢弃增加到910 msecs。然而,因为没有被观察的趋势,高水位标记没有增加。

在此处输出中,您有一Rx早数据包:3.这意味着数据包到达,在预计前。如被看到从输出此处,抖动缓冲区拉伸为早期的数据包适应通过使从60的低水位标记降低到51。

3640-6# ***DSP VOICE TX STATISTICS***
Tx Vox/Fax Pkts: 209, Tx Sig Pkts: 0, Tx Comfort Pkts: 11
Tx Dur(ms): 337420, Tx Vox Dur(ms): 416, Tx Fax Dur(ms): 0
***DSP VOICE RX STATISTICS***
Rx Vox/Fax Pkts: 16843, Rx Signal Pkts: 0, Rx Comfort Pkts: 1
Rx Dur(ms): 337420, Rx Vox Dur(ms): 335920, Rx Fax Dur(ms): 0
Rx Non-seq Pkts: 0, Rx Bad Hdr Pkts: 0
Rx Early Pkts: 3, Rx Late Pkts: 26
***DSP VOICE VP_DELAY STATISTICS***
Clk Offset(ms): 0, Rx Delay Est(ms): 72
Rx Delay Lo Water Mark(ms): 51, Rx Delay Hi Water Mark(ms): 161
***DSP VOICE VP_ERROR STATISTICS***
Predict Conceal(ms): 510, Interpolate Conceal(ms): 0
Silence Conceal(ms): 70, Retroact Mem Update(ms): 0
Buf Overflow Discard(ms): 910, Talkspurt Endpoint Detect Err: 0
***DSP LEVELS***
TDM Bus Levels(dBm0): Rx -51.5 from PBX/Phone, Tx -44.1 to PBX/Phone
TDM ACOM Levels(dBm0): +2.0, TDM ERL Level(dBm0): +11.9
TDM Bgd Levels(dBm0): -61.3, with activity being voice
***DSP VOICE ERROR STATISTICS***
Rx Pkt Drops(Invalid Header): 0, Tx Pkt Drops(HPI SAM Overflow): 0

配置在网关的抖动缓冲区

在本文报道的QoS指南照料浪潮起伏或恶化的语音质量问题。恢复延迟缓冲区的配置是不正确的QoS实施的一应急方案在网络。只请使用此作为一个临时的修正或作为排除故障和缩小的一个工具在网络介绍的抖动问题。

播放延迟模式

抖动缓冲区为固定模式或可适应模式配置。在可适应模式下,网关允许您配置抖动缓冲区、最大值和标称值的一个最小值。抖动缓冲区盼望数据包在标称值范围内到达。标称值比最大数量必须是二者之一等于或大于最低和等于到或较少。缓冲区展开至配置的最大值。这能延伸1700毫秒。关于配置高最大值的一个问题是端到端延迟的介绍。选择值最大播放延迟这样在网络不引入不需要的延迟。此输出是为可适应模式配置的抖动缓冲区的示例:

3640-6#
3640-6#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
3640-6(config)#voice-port 3/0/0
3640-6(config-voiceport)#playout-delay mode adaptive
3640-6(config-voiceport)#playout-delay maximum 400
3640-6(config-voiceport)#playout-delay nominal 70
3640-6(config-voiceport)#playout-delay minimum low
3640-6(config-voiceport)#^Z
3640-6#
3640-6#
3640-6#show run | begin 3/0/0
voice-port 3/0/0
playout-delay maximum 400
playout-delay nominal 70
playout-delay minimum low
playout-delay mode adaptive
!

在固定模式下,网关查看配置值为名义上。虽然它允许您配置最低和最大值播放延迟的,忽略,当配置为固定模式。当在固定模式,最高峰值或低水位标记值总是依然是不变。它根据标称值并且根据Rx迪莱Est (毫秒)值。因此很可能,在固定模式下,您配置值作为200毫秒。然而,如果估计的接收延迟是接近100毫秒,是什么高水位标记和低水位标记设置为在呼叫的整个持续时间。

3640-6#
3640-6#configure terminal
Enter configuration commands, one per line. End with CNTL/Z.
3640-6(config)#voice-port 3/0/0
3640-6(config-voiceport)#playout-delay mode fixed
3640-6(config-voiceport)#playout-delay nominal 70
3640-6(config-voiceport)#^Z
3640-6#
3640-6#
3640-6#show run | begin 3/0/0
voice-port 3/0/0
playout-delay mode fixed
playout-delay nominal 70
!

欲了解更详细的信息在播放延迟配置,参考基于IP的语音的恢复延迟增强

相关的思科支持社区讨论

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


相关信息


Document ID: 20371