目录

简介

先决条件

要求

使用的组件

规则

语音质量概述

测量语音质量

ITU G.113 概述

用 CVM 和 Telemate 管理语音质量

限制

网关配置

CVM 和 Telemate 体系结构

Telemate 目录

报告

相关信息

简介

本文档介绍使用Cisco Voice Manager和Telemate在VoIP网络中管理语音质量。所有内容都基于实际IP电话实施。本文档重点介绍产品的应用，而不是产品的使用。您应该已经熟悉CVM和Telemate，并有权访问所需的产品文档。有关文档的列表，请参阅相关信息。

在管理大规模VoIP网络时，您必须拥有客观监控和报告网络语音质量所需的工具。仅依靠用户反馈是不可行的，因为它主观性和不完整性。CVM与Telemate一起提供此功能的一部分。它使用IOS网关为每个呼叫计算的减值/计算减值规划因子(Icpif)来报告语音质量。这样，网络管理员就可以识别语音质量较差的站点并相应地处理它们。

确定问题站点后，可能需要其他工具来排除可能的网络QoS问题。网际网络性能监控器(IPM)和思科服务保证代理(CSAA)是两种工具。 这些主题在我们网站上发布的另一份文档中讨论。

先决条件

要求

本文档的读者应掌握以下这些主题的相关知识：

- 思科语音管理器和远程交会

使用的组件

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

本文档中的信息都是基于特定实验室环境中的设备编写的。本文档中使用的所有设备最初均采用原始（默认）配置。如果您使用的是真实网络，请确保您已经了解所有命令的潜在影响。

规则

有关文件规则的更多信息请参见“ Cisco技术提示规则”。

语音质量概述

以下部分概述语音质量问题：

- 测量语音质量

- ITU G.113 概述

测量语音质量

ITU标准G.113规定了如何测量语音质量。此方法规定您可以通过计算ICPIF来确定语音呼叫质量。基于IOS的网关计算每个呼叫的ICPIF值，并将其记录为CDR记录的一部分。此外，如果呼叫的Icpif值超过预设值，它可通过SNMP发送语音质量(QoV)陷阱。这意味着网关具有内置语音质量测量功能。只需收集这些测量数据并分析数据，以确定任何趋势。

VoIP语音质量主要受网络QoS影响。因此，呼叫分析将侧重于逐个站点识别语音质量问题。如果可以识别出大量呼叫且语音质量较差的站点，我们可以专注于这些站点的网络路径中的任何QoS问题。

ITU G.113 概述

以下部分仅简要概述；有关详细信息，请参阅G.113标准。

G.113背后的总体思路是，计算语音路径上每件设备的损坏系数，然后将其相加，得到总的损坏系数。有不同类型的损伤（噪声、延迟、回声等），ITU将它们分为五类。将它们相加，得到总减值Itot:

ITOT = Io + IQ + IDTE + ID + IE

其中每一项定义如下（使用ITU术语）：

- Io — 由非最佳整体响度额定值和/或高电路噪声引起的损坏。

- Iq - PCM类型量化失真导致的损坏。

- Idte — 讲话者回声造成的损伤。

- Id — 长单向传输时间（延迟）导致的语音通信困难。

- Ie — 由特殊设备，特别是非波形低比特率编解码器造成的损坏。

当Cisco IOS软件计算Ito时，它会忽略Io和Iq为可忽略，并将Idte设置为0。Idd值从下表中派生，该表来自G.113:

延迟

IDD

150

0

200

3

250

10

300

15

400

25

500

30

600

35

800

40

通常Ie是固定值，具体取决于编解码器类型。G.113指定思科网关通常使用的编解码器的值，如下表所示：

代码

IE

G.711

0

G.729/G.729a

10

但是，由于这些编解码器用于数据包语音环境，因此实际损坏取决于数据包丢失。丢包率越高，损害越大。思科工程部门已通过PSQM(ITU P.861)在离散丢包级别测量语音质量。下表显示了与给定编解码器的丢包级别相关的语音失真值：

丢包率

G.711

G.729/G.729a

0

0

10

1

8

15

2

12

20

3

18

25

4

22

30

5

26

34

6

28

38

7

30

40

8

32

42

9

34

44

如预期，G.729比G.711更容易丢包。

语音质量完全取决于人的感知和期望。手机用户的服务水平期望值比固定电话用户低。在计算Icpif时，我们考虑了这一点，即Itot由人的期望因子A来减小。

Icpif = Itot - A

G.113还为典型语音网络提供了预期因素。请参阅下表：

语音网络接入方法

预期因素A

传统固定线路PSTN

0

本地无线（无绳电话）

5

广域无线（手机）

10

卫星

20

G.113还有一个表，在Icpif值和语音质量之间映射。如下表所示：

语音网络接入方法

预期因素A

5

良好

10

好

20

足够

30

限制案例

45

异常限制案例

55

用户可能会强烈抱怨

呼叫的Icpif值为零是完美得分。这应该是我们VoIP网络的目标。

在传统语音网络中，设计人员会计算总损失预算。

例如，Io = 0;智商= 0;Idte = 0;Id = 3;Ie = 7，这给Itot = 10。

如果用户从无绳电话访问网络，则可减去的最大期望系数为5，因此最终结果是：

Icpif = Itot - A = 10 - 5 = 5

根据上表，用户可能认为语音质量非常好。

本文档讨论的解决方案使用Icpif值来监控语音质量，而不是将其用于规划目的。

用 CVM 和 Telemate 管理语音质量

以下各节讨论如何通过CVM和Telemate管理语音质量：

- 限制

- 网关配置

- CVM 和 Telemate 体系结构

- Telemate 目录

- 报告

限制

虽然推荐的解决方案确实存在一些限制，但似乎没有其他可扩展的工具。已知限制包括：

- 只有通过网关的呼叫受质量控制。您不能测量从IPhone到IPhone的呼叫。网关未看到这些呼叫，并且CallManager当前不支持G.113。

- Icpif计算仅考虑数据包丢失和延迟。Echo不包括在Icpif计算中。因此，呼叫可能会出现严重回声，并仍能获得完美的Icpif得分。

- 语音质量仅在IP电话到网关的方向测量。分组语音网络中的Icpif值可能在两个方向上是非对称的。网关到IPhone方向中的任何单向网络QoS问题都不会反映在网关计算的Icpif值中。

- 语音质量问题通常是整个WAN的一个问题。所讨论的解决方案最适合具有集中式网关的环境，因为来自远程站点IPhone的呼叫必须通过广域网才能访问网关。如果网关是分布式的（即，每个远程站点都由本地网关提供服务），则大多数网关呼叫不会通过广域网。WAN中的VoIP呼叫将主要是IP电话到IP电话，这些呼叫对网关不可见。

网关配置

作为推荐解决方案的一部分，需要为CDR收集配置所有网关：

dial-control-mib max-size <max-number-of-cdr>

dial-control-mib retain-timer 600

所有网关还必须启用QoV陷阱功能。默认情况下禁用此功能：

Calibra#show dial-peer voice 99 | include QOV|Icpif

Expect factor = 0, Icpif = 20,

VAD = enabled, Poor QOV Trap = disabled,

通过添加以下内容，可以按VoIP拨号对等体启用此功能：

dial-peer voice XYZ voip

snmp enable peer-trap poor-qov

icpif <threshold>

expect-factor 0

当呼叫完成时，网关会计算该呼叫的总减损(Itot)。然后，从Itot中减去已配置的期望因子，以得出实际Icpif值。如果此数量超过Icpif阈值，则发送QoV陷阱。网关计算呼叫的Icpif值时，呼叫持续时间必须至少为10秒。

让我们看一个示例，其中网关配置如下：

dial-peer voice XYZ voip

icpif 10

expect-factor 5

假设呼叫完成且Itot 值为20。然后网关从此数字中减去期望因子5，从而得出Icpif 值15。由于15大于10，因此网关会生成QoV SNMP陷阱。

全局而言，必须启用QoV陷阱才能发送到CVM:

snmp-server enable traps voice poor-qov

snmp-server host 10.x.x.x.x public<----- CVM station

请注意，每次建立或断开呼叫时，语音网关都会生成链路打开/链路关闭SNMP陷阱。这可能导致高密度网关上存在大量陷阱。通过添加以下命令，确保禁用这些陷阱：

interface serial1/0:15no snmp trap link-status

CVM 和 Telemate 体系结构

CVM和Telemate是完全独立的应用。顾名思义，CVM是思科开发的产品。另一方面，Telemate是思科与CVM捆绑销售的第三方产品。

CVM执行各种功能。我们将利用的两个功能是：

- 通过SNMP从网关收集呼叫详细记录(CDR)。

- 从网关接收语音质量(QoV)SNMP陷阱。

收集此信息后，CVM将格式化数据并通过简单文件共享将其传递到Telemate。然后，Telemate处理此数据并将其存储在Microsoft SQL数据库中。最终结果是一个数据库，其中包含呼叫列表及其各自的详细信息，包括Icpif值。然后，可以针对数据库运行各种报告，包括QoV报告。

我们感兴趣的远程QoV报告是“Packet Voice Calls with Quality of Service Traps”报告。此报告列出网关为其生成QoV陷阱的所有呼叫。我们对个人电话不感兴趣；相反，我们感兴趣的是确定语音质量呼叫比例高于平均水平的站点（如果有）。为此，Telemate需要能够按站点对呼叫进行分类。这将在下一节讨论。

Telemate 目录

通过填写Telemate目录，了解哪些分机位于哪些站点，我们可以使用Telemate按站点对呼叫进行分类。

Telemate目录是五层层次结构，具有以下级别：

- 第1级 — 公司

- 第2级 — 部门

- 第3级 — 部门

- 第4级 — 用户

- 第5级 — 分机

您可以将多个分机与一个用户关联。

理想情况下，我们希望QoV报告中的每个呼叫都与部门名称一起列出。然后，我们可以使用部门名称来代表给定的站点。这允许我们按部门/站点对呼叫进行排序。但是，由于扩展只能与用户关联，因此我们必须以一种稍显尴尬的方式实现。基本上，我们为每个站点创建一个虚拟用户，并将此用户的名称设置为站点名称或站点代码。然后，为该特定站点分配该虚拟用户的所有分机。然后，我们可以按用户对呼叫进行排序，这就相当于按站点对呼叫进行排序。

为了进行QoV报告，我们不关心目录层次结构的前三个级别，这些级别可以分配任何任意值。

对于此实施，有200个站点，分配了45,000个分机，但不一定全部都在使用。因此，该目录包含200个虚拟用户，并且每个虚拟用户与其站点的扩展范围相关联。手动填写目录是一项不可能的任务，因此，我们半自动地完成此操作，方法是生成一个CSV文件，每个扩展名一行，然后使用Telemate导入功能将文件导入目录。此CSV文件中的每行都具有以下格式：

Company,Division,Department,User,Extension

通过运行Unix外壳脚本，也可半自动生成CSV文件。此脚本将种子文件作为输入。此种子文件列出站点和关联的扩展范围。种子文件中的每行都具有以下格式：

site_name,extention_start,extension_end

外壳脚本本身非常简单，如下所示：

#--------------------------- Telemate script start ------------------------

#!/bin/ksh

for i in `cat ./$1`

do (

echo $i | awk 'BEGIN{FS=","}{for (j=($2+0);j<($3+0);++j) printf "Company,Division,Dept,%s,%s\n", $1,j}'

) done

#--------------------------- Telemate script end ------------------------

假设脚本本身命名为“make_dir”，种子文件命名为“seedfile.csv”，则导入CSV telemate_dir.csv文件是在Unix提示符下执行以下命令创建的：

unix$ make_dir seedfile.csv > telemate_dir.csv

然后，输出文件telemate_dir.csv将导入到Telemate中。有关如何执行此操作的详细说明，请参阅Telemate文档。

报告

运行Telemate报告时，可以选择输出目标。对于大型报告，建议以CSV格式生成文件。然后，您可以在Excel中操作报表，其外观如下所示：

持续时间

拨号号

位置

日期

时间

站点

分机

0:00:57

3-573-7783

10.200.16.33

10/05/2000

4:49:45

BLM

37569

0:00:57

3-573-7783

10.200.16.33

10/05/2000

4:49:45

BLM

37569

0:00:38

3-577-2958

10.200.16.33

10/05/2000

4:28:28

BLM

37576

0:00:38

3-577-2958

10.200.16.33

10/05/2000

4:28:28

BLM

37576

0:00:52

3-577-2985

10.200.16.33

10/05/2000

9:26:33

BLM

37593

0:01:19

3-577-1770

10.200.16.33

10/05/2000

7:26:05

BMC

34270

0:00:23

3-577-1770

10.200.16.33

10/05/2000

8:08:27

BMC

34270

0:00:23

3-577-1770

10.200.16.33

10/05/2000

8:08:27

BMC

34270

0:00:11

4-566-5302

10.132.16.33

10/05/2000

7:05:33

COR

42791

0:00:32

4-567-0417

10.132.16.33

10/05/2000

5:29:51

COR

42805

0:00:32

4-567-0417

10.132.16.33

10/05/2000

5:29:51

COR

42805

0:00:36

4-232-8545

10.132.16.33

10/05/2000

5:42:07

COR

42823

0:00:36

4-232-8545

10.132.16.33

10/05/2000

5:42:07

COR

42823

0:00:39

4-472-5011

10.132.16.33

10/05/2000

5:59:23

COR

46578

0:00:39

4-472-5011

10.132.16.33

10/05/2000

5:59:23

COR

46578

0:00:28

4-236-7687

10.132.16.33

10/05/2000

7:17:51

COR

46578

0:00:17

6-867-9766

10.132.16.35

10/05/2000

4:08:02

GIS

64197

0:00:17

6-867-9766

10.132.16.35

10/05/2000

4:08:02

GIS

64197

0:00:30

6-868-6889

10.132.16.35

10/05/2000

6:15:48

GIS

68549

0:00:30

6-868-6889

10.132.16.35

10/05/2000

6:15:48

GIS

68549

0:01:26

6-876-5223

10.132.16.35

10/05/2000

7:10:23

HAH

68369

0:01:26

6-876-5223

10.132.16.35

10/05/2000

7:10:23

HAH

68369

0:00:52

6-876-2223

10.132.16.35

10/05/2000

5:37:58

HAH

68397

0:01:05

4-477-5402

10.132.16.33

10/05/2000

4:23:20

JVL

47162

0:00:24

4-478-8848

10.132.16.33

10/05/2000

7:07:09

JVL

47168

0:00:24

4-478-8848

10.132.16.33

10/05/2000

7:07:09

JVL

47168

0:00:44

4-387-1333

10.132.16.33

10/05/2000

7:49:16

KIB

49252

0:00:44

4-387-1333

10.132.16.33

10/05/2000

7:49:16

KIB

49252

0:01:14

4-389-4299

10.132.16.33

10/05/2000

4:07:10

KIB

49254

0:01:14

4-389-4299

10.132.16.33

10/05/2000

4:07:10

KIB

49254

0:00:29

4-387-1337

10.132.16.33

10/05/2000

4:06:45

KIB

49256

0:00:29

4-387-1337

10.132.16.33

10/05/2000

4:06:45

KIB

49256

0:00:41

4-384-9269

10.132.16.33

10/05/2000

4:09:38

KIB

49261

0:00:41

4-384-9269

10.132.16.33

10/05/2000

4:09:38

KIB

49261

0:00:41

4-384-9269

10.132.16.33

10/05/2000

4:09:38

KIB

49261

0:00:17

4-387-1344

10.132.16.33

10/05/2000

4:33:04

KIB

49263

0:00:17

4-387-1344

10.132.16.33

10/05/2000

4:33:04

KIB

49263

0:00:31

6-367-5103

10.132.16.35

10/05/2000

8:44:46

列夫

64233

0:00:31

6-367-5103

10.132.16.35

10/05/2000

8:44:46

列夫

64233

0:00:30

6-368-9088

10.132.16.35

10/05/2000

4:11:06

列夫

64247

0:00:30

6-368-9088

10.132.16.35

10/05/2000

4:11:06

列夫

64247

0:00:38

4-570-2450

10.132.16.33

10/05/2000

4:08:26

LHT

43636

0:00:38

4-570-2450

10.132.16.33

10/05/2000

4:08:26

LHT

43636

使用Excel“小计”功能计算每个用户/站点的错误呼叫数。然后创建Excel宏，以半自动执行子合计。请参阅以下示例：

持续时间

拨号号

位置

日期

时间

站点

分机

BCM计数

5

BMC计数

3

COR计数

8

GIS计数

4

HAH计数

3

JVL计数

3

KIB计数

11

LEV计数

4

LHT计数

2

大伯爵

43

现在，站点列包含该站点的错误呼叫数。报告中的Location列是VoIP支路另一端的IP地址，来自网关CDR记录。在CallManager(CCM)环境中，信令和媒体端点是两个不同的IP地址。列出的IP地址是信令端点（即CallManager）。已提交DDTS(CSCds23283)以请求允许CDR记录记录介质IP地址的旋钮。这将允许按子网对错误呼叫进行排序。这样可以提供更精细的粒度，因为每个站点通常有多个子网。如果这些子网中只有一部分出现QoV问题，则可以确定这些问题。

我们建议您设置Telemate调度程序，以每天自动运行一次“Packet Voice Calls with Quality of Service Traps”报告。然后，可将已完成的报告通过电子邮件发送给选定的运营人员。然后，这些员工会对过去24小时进行每日QoV审计。报告应至少存档一个月，以便QoV的任何恶化都可以与该时间前后执行的任何网络更改相关联。

注意：报告需要Telemate 4.7或更高版本才能与在CallManager环境中运行的网关正常工作。早期版本的Telemate假设本地分机始终位于网关的POTS端。在CallManager环境中，本地分机(IPhone)位于网关的VoIP端。因此，早期版本的Telemate会变得混乱，报告的价值有限。

相关信息

- 统一通信产品支持

- Cisco IP 电话故障排除

- 技术支持和文档 - Cisco Systems