本文档讨论show call active voice(仅限注册用户)命令输出,并说明命令输出如何解决语音质量问题。
注意:本文档中引用的命令链接到命令查找工具(仅注册客户)。 使用此工具可搜索有关特定命令的详细信息。
本文档没有任何特定的要求。
本文档不限于特定的软件和硬件版本。
有关文档规则的详细信息,请参阅 Cisco 技术提示规则。
show call active voice命令可用于显示活动呼叫表的内容。显示的信息包括呼叫时间、拨号对等体、连接、服务质量参数和抖动的网关处理。此信息在您排除一系列语音质量问题故障时非常有用。
本文档中的表格包括示例show call active voice命令的输出以及每个参数的简要说明。
注意:show call active voice命令显示来自语音网关上的普通老式电话服务(POTS)和VoIP呼叫段的数据。一些参数以粗体文本突出显示,供在本文档的其余部分中进一步讨论。
show call active命令显示任何活动呼叫的电话和VoIP分支的值。对于每个支路,显示相同的通用参数,后跟特定于呼叫支路类型的参数。在此表中,这些参数部分用带阴影的标题加以标注。
请在用户EXEC或特权EXEC模式下使用show call active voice命令,以显示进行中的语音呼叫的呼叫信息。
show call active voice [brief [id identifier] | compact [duration {less time | more time}] | echo-canceller call-id | id identifier | redirect {rtpvt | tbct}]
此命令有许多参数选项。此列表介绍一些比较有用的参数:
brief — (可选)显示截断的版本。
compact — (可选)显示比指定时间长或短的活动呼叫。
duration — (可选)显示长度或短于指定时间的活动呼叫。
echo-canceller call-id — (可选)显示有关扩展回声消除器(EC)状态的信息。 要查询回声状态,您需要提前知道十六进制ID。要查找十六进制ID,请输入show call active voice brief命令或使用show voice call status命令。范围为0至FFFFFFFF。
show call active voice参数 | 参数说明 |
---|---|
通用: | 随后的POTS呼叫段的一般统计信息 |
SetupTime=866793 ms | POTS支路启动时,时钟时间以100毫秒为单位递增。对于传入ISDN POTS呼叫,这是接收Q.931呼叫建立消息的时间。 |
Index=1 | |
PeerAddress=100 | 匹配此POTS对等体的目标模式。对于呼入POTS呼叫段,这是主叫号码或自动号码识别(ANI)。 |
PeerSubaddress= | |
PeerId=100 | 用于此呼叫段的拨号对等体ID。在这种情况下,PeerID和PeerAddress虽然不必要,但相同。 |
PeerIfIndex=9 | 此对等体的语音端口索引号。对于ISDN介质,这是用于此呼叫的B信道的索引号。 |
LogicalIfIndex=5 | 内部使用的索引,用于标识呼叫的逻辑接口。 |
ConnectTime=867030 | 当POTS支路连接时,时钟时间以100毫秒为单位递增。对于传入ISDN POTS呼叫段,这是发送Q.931呼叫连接消息的时间。 |
CallDuration=00:12:26 | 建立呼叫的时间,以hh:mm:ss表示。 |
CallState=4 | 呼叫支路的呼叫状态(4=活动,3=已连接,2=正在连接)。 呼叫状态为活动状态。 |
CallOrigin=2 | 呼叫段的Originate与answer(1=originate, 2=answer)。此网关回答此(POTS)呼叫段。 |
ChargedUnits=0 | 自系统启动以来应用于此对等体的计费单元总数。此字段的度量单位是百分之一秒。 |
InfoType=2 | 此呼叫的信息类型(1=传真,2=语音)。 这是语音呼叫。 |
TransmitPackets=37291 | 从数字信号处理器(DSP)传输到电话接口的数据包数。 |
TransmitBytes=725552 | 相当于POTS TransmitPackets值的字节计数。 |
ReceivePackets=1689 | DSP从电话接口接收的数据包数。 |
ReceiveBytes=33780 | 相当于POTS ReceivePacketsPackets值的字节计数。 |
电话: | POTS呼叫段 |
ConnectionId=[0xC59FE183 0xB1700D7 0x0 0x84431C] | 这是网关为唯一地表示此呼叫而提供的连接标识号。它匹配此网关上呼叫的所有呼叫段。 |
TxDuration=746070 ms | 呼叫持续时间(毫秒)= 12分钟26秒= 746秒= 746070毫秒。 |
VoiceTxDuration=33780 ms | 从电话POTS对等体向VoIP网关发送语音数据包的累计时间(毫秒)。 |
FaxTxDuration=0 ms | 路由器处于传真模式时的累积时间(毫秒)。 |
CoderTypeRate=g729r8 | 用于呼叫的编解码器。 |
NoiseLevel=-59 | 此呼叫的活动噪音级别。该值在舒适噪声生成模块中计算,并用于在启用语音活动检测(VAD)时生成舒适噪声。 |
ACOMLevel=20 | 此呼叫的当前ACOM级别。ACOM是回声消除器实现的合并损耗。该值是呼叫的回波损耗(ERL)、回波损耗增强(ERLE)和非线性处理(NLP)损耗的总和。 |
OutSignalLevel=-64 | 输出信号电平,单位为分贝每毫瓦(dBm)。 |
InSignalLevel=-58 | 输入信号电平(dBm)。 |
InfoActivity=2 | 此呼叫的活动信息传输活动状态。 |
ERLLevel=20 | 此呼叫的ERL。 |
SessionTarget= | 此值适用于VoIP呼叫段。该值在VoIP拨号对等体中指定。POTS呼叫段没有会话目标。 |
ImgPages=0 | |
通用: | VOIP呼叫段的一般统计信息如下: |
SetupTime=866928 ms | 启动VoIP呼叫段时,时钟时间以100毫秒为单位递增。对于传出H.323 VoIP呼叫,这是发送H.323呼叫设置消息的时间。 |
Index=1 | |
PeerAddress=200 | 对等体的目标模式。对于出站VoIP呼叫段,这是被叫号码或被叫号码识别服务(DNIS)。 |
PeerSubaddress= | |
PeerId=200 | DNIS匹配的对等ID。在这种情况下,peerID和DNIS虽然不必要,但都是相同的。 |
PeerIfIndex=11 | |
LogicalIfIndex=0 | |
ConnectTime=867029 | VoIP支路连接的时钟时间以100毫秒为单位递增。对于传出H.323 VoIP呼叫段,这是接收H.323呼叫连接消息的时间。 |
CallDuration=00:12:27 | 呼叫的持续时间,以hh:mm:ss表示。 |
CallState=4 | 呼叫支路的呼叫状态(4=活动,3=已连接,2=正在连接)。 呼叫状态为活动状态。 |
CallOrigin=1 | 呼叫段的Originate与answer(1=originate, 2=answer)。此网关产生此(VoIP)呼叫段。 |
ChargedUnits=0 | |
InfoType=2 | |
TransmitPackets=1689 | 此网关在此呼叫段上传输的VoIP数据包数。 |
TransmitBytes=33780 | 相当于VoIP TransmitPackets值的字节计数。这需要匹配来自电话呼叫段的VoiceTxDuration,因为对于G.729,每1毫秒发送一个字节。 |
ReceivePackets=37343 | 此网关在此呼叫段上接收的VoIP数据包数。 |
ReceiveBytes=746860 | 相当于VoIP ReceivePackets值的字节计数。 |
VOIP: | VoIP呼叫段 |
ConnectionId[0xC59FE183 0xB1700D7 0x0 0x84431C] | 这是网关为唯一地表示此呼叫而提供的连接标识号。它匹配此网关上呼叫的所有呼叫段。 |
RemoteIPAddress=10.1.1.2 | 呼叫的远程IP地址。 |
RemoteUDPPort=18280 | 呼叫的远程用户数据报协议(UDP)端口。 |
RoundTripDelay=53 ms | 由网关测量的往返延迟。 |
SelectedQoS=尽力而为 | 未在此呼叫的拨号对等体中选择资源预留协议(RSVP)。 |
tx_DtmfRelay=cisco-rtp | 用于呼叫的DTMF中继形式(如果有)。 |
SessionProtocol=cisco | 呼叫的会话协议。默认协议为“cisco”,使用H.323信令和RTP数据包传输语音流量。会话初始协议(SIP)是可通过session protocol(仅限注册用户)dial peer命令指定的另一个VoIP信令协议。也可以指定非VoIP协议,例如用于VoATM的AAL2或思科专有帧中继语音(VoFR)协议以及用于VoFR的FRFll。 |
SessionTarget=ipv4:10.1.1.2 | 来自拨号对等体的会话目标。如果使用了网守,则会话目标为RAS。 |
OnTimeRvPlayout=742740 | 此呼叫的语音播出的持续时间(以毫秒为单位)。总语音播出持续时间可以通过将间隙填充持续时间添加到OnTimeRvPlayout持续时间中获得。 |
GapFillWithSilence=0毫秒 | 时间(ms)网关(GW)播放静默。在以下情况下会保持沉默:
|
GapFillWithPrediction=0毫秒 | 用从参数或数据采样合成的信号播放的语音信号的持续时间(毫秒)。出现此空隙填充是因为此呼叫的语音网关丢失或未及时接收语音数据。G.729和G.723.1压缩算法中的帧擦除和帧隐藏策略就是这种拉出的示例。 |
GapFillWithInterpolation=0 ms | 对于GapFillWithPrediction,但需考虑丢失语音流量后收到的样本并存储在去抖动缓冲区中。当前未使用. |
GapFillWithRedundancy=0毫秒 | 如果发射器使用冗余编码方案,则丢失或延迟数据包的负载可以部分或完全恢复并播放,从而降低对语音质量的影响。目前不支持此技术。 |
HiWaterPlayoutDelay=70 ms | 先进先出(FIFO)抖动缓冲区高标记,指示去抖动缓冲区为此呼叫适应的最大深度。 |
LoWaterPlayoutDelay=69毫秒 | FIFO抖动缓冲区下限,它指示去抖动缓冲区为此呼叫适应的最小深度。 |
ReceiveDelay=69 ms | 当前播出FIFO延迟加上呼叫的解码器延迟。 |
LostPackets=0毫秒 | 丢失的RTP数据包(以毫秒为单位)。序列号中的任何正跳都会添加到LostPackets计数器。例如,如果网关接收编号序列为N-1、N、N+1、N+3、N+2、N+4的数据包,则LostPackets计数器会递增。去抖动缓冲区的大小以及“丢失”数据包何时到达决定了数据包能否播放。 |
EarlyPackets=1毫秒 | 以毫秒表示的早期RTP数据包数。RTP数据包在传输时带有时间戳,并且RTP时间戳值包含在数据包中。接收数据包的时间也由网关的本地时钟计时。如果两个相邻数据包的本地时钟时间差(接收时间)小于它们的RTP时间戳差(发送时间),则认为第二个数据包较早。当网络使用率突然下降时,可能会发生早期数据包。这会降低特定数据包的网络延迟。 |
LatePackets=0毫秒 | 以毫秒表示的延迟RTP数据包数。在以下任一情况下,当收到带有RTP序列号的数据包时,该值将递增:
|
VAD =已启用 | 已为此呼叫段启用VAD。 |
CoderTypeRate=g729r8 | 用于此呼叫的编解码器类型。 |
CodecBytes=20 | 使用的编解码器的负载大小(以字节为单位)。 |
SignalingType=cas | 呼叫的信令类型。这仅适用于永久呼叫。 |
这些参数提供与呼叫的特定VoIP支路相关的信息。在此特定呼叫段示例中,呼叫与拨号对等体200匹配,使用的编解码器为G.729,有效负载大小为20字节,且已启用VAD。
PeerId=200
CoderTypeRate=g729r8
CodecBytes=20
VAD =已启用
此信息与网络配置信息(例如第2层传输和可选使用压缩RTP)结合使用时,可确定与此拨号对等体匹配的呼叫的每呼叫带宽要求。有关详细信息,请参阅 IP 语音 - 每个呼叫的带宽占用量。
如果调配的带宽不足以支持呼叫数,则结果可能是不稳定的或合成语音。
注意:命令call threshold可用作呼叫准入控制的方法之一,但此命令不适用于从ISDN接口到H323网络的传出呼叫。
如果呼叫段的特性似乎不正确,请查看您的拨号对等体配置和匹配。有关详细信息,请参阅呼叫路由/拨号方案技术支持页中列出的部分与拨号对等体相关的文档。
乱码语音(其中断断续续的语音和合成语音是很好的例子)可能出现在通常与错误调配的WAN链路相关的多种情况下。这可能是因为缺少适当的连接准入控制(CAC)或语音优先级的配置不正确。show call active voice命令通过以下参数提供对这些问题的可视性:
OnTimeRvPlayout=742740
GapFillWithSilence=0毫秒
GapFillWithPrediction=0毫秒
HiWaterPlayoutDelay=70 ms
LoWaterPlayoutDelay=69毫秒
ReceiveDelay=69 ms
LostPackets=0毫秒
EarlyPackets=1毫秒
LatePackets=0毫秒
与总语音播出持续时间相比,OnTimeRvPlayout命令可提供呼叫健康状况的良好常规视图。总语音播出持续时间可以通过将间隙填充持续时间添加到OnTimeRvPlayout持续时间而得出。如果按时语音播放时间比例较高,则呼叫可能处于正常状态。
数据包在数据包网络中丢弃或延迟过长可能会导致语音质量问题。
当接收到被延迟很长时间而无法使用的数据包时,或者当数据包在网络中丢弃并且根本未被接收时,IP电话或语音网关尝试通过语音信号的预测尽可能地重建语音流。
在IOS网关上重复发出show call active voice命令,以提供对此问题的可视性:
LatePackets — 到达去抖动缓冲区回放延迟时段之外的数据包数。这些数据包将被丢弃。
LostPackets — 从未到达接收IP电话或网关的数据包数。
GapFillWithPrediction — 呼叫中的数据包预测量。将此数字除以数据包采样时间以确定受影响的数据包的数量。
GapFillWithSilence — 在呼叫中插入静音的量。
注意:Catalyst网关上的show port voice active命令可指示呼叫的抖动(高/低水位播放延迟),但它不会区分预测插入和静默插入。
少量的预测性插入对人耳是检测不到的。然而,大量的音量可能会造成语音质量混乱,可以被描述为合成语音或机器人语音。
如果数据包丢弃或到达延迟,则接收编解码器无法预测语音信号。在这种情况下,信号被插入到语音中的静音所替换。
此外,如果延迟是可变的(抖动),则播放到达晚但处于接收去抖动缓冲器的播放延迟周期内的数据包,但可能导致去抖动缓冲器的欠载。当缓冲区中没有剩余的数据包时,就会发生下行,当缓冲区等待下一个数据包到达时,语音会延迟。语音中可听到的间隙可能产生。
少量的静音插入或抖动对于人耳是检测不到的。然而,大量的音量可能引起音质,可以被描述为声音不平稳或声音失常。
注意:如果网络延迟足够可变,则语音产生的声音可能既合成又不稳定。
解决损坏的语音问题
确定延迟的原因并(如果可能)消除延迟。
数据包电话网络中丢弃或延迟的原因可能多种多样。一些常见示例包括:
低速链路的分段配置错误
在呼叫路径中具有超额带宽的链路。例如,语音呼叫的CAC不佳。例如,在64 Kbps链路上没有cRTP或VAD的G.711呼叫。
以太网环境中的双工不匹配
呼叫路径中的路由器上的CPU密集型操作。例如,调试控制台或保存路由器配置可能会导致CPU使用率过高,从而延迟通过控制台的数据包。
也可以调整网关去抖动缓冲区,以便在次优数据网络中获得更好的语音性能。但是,此结果受数据网络正确行为的程度限制。有关详细信息,请参阅QoS断断续续的语音问题故障排除或语音质量技术支持页面上列出的许多文档。
这些参数标识是否将VAD用于此呼叫以及使用的拨号对等体:
VAD =已启用
PeerId=200
NoiseLevel=-59
解决嘶嘶声和限幅问题
要解决嘶嘶声和一些前端剪辑问题,请在排除其他可能的问题之前调整音乐阈值或vad时间值(或禁用VAD)。
通过禁用comfort-noise (仅限注册客户)或完全禁用VAD进行测试。如果症状停止,则可能是因为生成了舒适性噪音所致。减少网关上检测到语音的music-threshold(仅限注册用户)或增加vad-time(仅限注册用户)值,可以使嘶嘶声或剪辑变得不那么明显,而无需永久禁用VAD。这些技术基本上分别在低容量水平和/或小间隙中禁用VAD。仅仅禁用舒适噪声是不切实际的,因为动作会导致其他语音质量症状,例如句子之间的绝对沉默的点击和/或间隙。
有关详细信息,请参阅嘶嘶声和静态故障排除。如果这些调整技术不能解决问题,则禁用VAD。这会导致带宽节省损失。
单向解决嘶嘶与削波问题
VAD是大多数嘶嘶声问题的原因。因此,必须确定是否已启用该功能。排除嘶嘶声或句子前端修剪故障的第一步是禁用VAD。因此,能够识别出它是否被禁用很重要。
如果嘶嘶声或剪切只在一个方向(出站方向)上发生,则可能是因为在此方向上启用了VAD,即使您已经尝试在VoIP拨号对等体中禁用它。在这种情况下,show call active voice命令显示VAD已启用,且正在使用的PeerID为0。为了克服此问题,请在VoIP拨号对等体上配置incoming called-number <number_dialed>(registered customers only)命令,以确保对PSTN的呼叫与网关上的此对等体匹配。否则,此方向的呼叫与默认情况下启用VAD的默认拨号对等体匹配。
以下参数对于排除回声故障非常重要:
ACOMLevel=20
OutSignalLevel=-64
InSignalLevel=-58
ERLLevel=20
测试音输出为–15,并且以0 dB的损耗环回。因此它归到–15 dB。此处的ERL值在此点没有意义,因为回声消除器不考虑输入信号为回声。
注:OutSignalLevel显示对信号应用输出衰减后的电平值。InSignalLevel显示应用输入增益后的电平值。
如果 ERL 值太低,返回到网关的回声信号可能会声音太大(在 6 dB 的讲话者信号内)。 这会导致回声消除器将其视为语音(双声)而不是回声。因此,回声消除器不会取消回声。ERL应介于6 db和20 db之间,以便回声消除器可以参与。
有关排除回声问题的信息,请参阅排除IP电话和Cisco IOS网关之间的回声问题和排除IP电话网络中的回声(按需音频)。
本节介绍如何使用show call active voice命令识别抖动和典型的语音质量症状。
在呼叫进行过程中,通过重复发出show call active voice命令可以确定网络中抖动的一般概念。理想情况下,这些参数应保持相对稳定。如果是,则表明数据包流畅无阻。但是,如果存在抖动,则会出现明显的短期峰值,如以下两个示例输出中所示:
GapFillWithSilence=950 ms GapFillWithPrediction=1980 ms GapFillWithInterpolation=0 ms GapFillWithRedundancy=0 ms HiWaterPlayoutDelay=350 ms LoWaterPlayoutDelay=25 ms ReceiveDelay=29 ms LostPackets=0 EarlyPackets=0 LatePackets=83
. . GapFillWithSilence=1040 ms GapFillWithPrediction=2350 ms GapFillWithInterpolation=0 ms GapFillWithRedundancy=0 ms HiWaterPlayoutDelay=40 ms LoWaterPlayoutDelay=28 ms ReceiveDelay=35 ms LostPackets=0 EarlyPackets=0 LatePackets=99
这些示例输出中延迟数据包的递增数量表明存在一定程度的抖动。GapFillWithSilence值的增加所指示的静音插入表明其本身为不稳定的语音。预测插入(由GapFillWithPrediction值增加表示)倾向于将自己表现为合成语音。
为了改变缓冲的语音信号量以避免抖动缓冲区欠载或过载,请发出playout-delay命令。
播放延迟的两种配置模式是自适应和固定的:
当您发出playout-delay {nominal value时,自适应允许抖动缓冲区在配置的范围内在呼叫的持续时间内增大和缩小 |最大值 |最小{default |低 | high}}命令。
当您发出playout-delay mode {adaptive | fixed [no-timestamps]}命令。
有关VoIP的详细信息,请参阅播放延迟增强功能。
版本 | 发布日期 | 备注 |
---|---|---|
1.0 |
18-Sep-2013 |
初始版本 |