目录

简介

先决条件

要求

使用的组件

规则

背景信息

配置

分配转换配置文件

voice translation-rule 命令

rule (voice translation-rule)

语法说明

示例

转换配置文件配置

VoIP 呼入配置

拨号对等体配置

语音端口配置

控制器转换配置文件

中继组配置

中继组成员配置

源 IP 组配置

CallManager回退配置

呼叫阻塞配置示例

呼叫阻塞拨号对等体上的所有呼叫

呼叫阻塞特定呼叫号码

呼叫阻塞特定被叫号码

将任一号码转换为特定号码

将入站的七位数号码转换为四位数

为入站被叫号码加前缀

用 ISDN 和国家未知的方案和类型更改出站呼叫

为呼叫号码加前缀

使电话通过特定端口

用相同的被叫号码从特定端口进行呼叫，使其到达所需的 VoIP 对等体

验证

故障排除

相关信息

简介

本文档介绍如何使用语音转换配置文件配置号码转换。

先决条件

要求

本文档没有任何特定的要求。

使用的组件

本文档中的信息基于运行Cisco IOS®软件版本12.2(11)T或更高版本的语音网关。

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

规则

有关文档规则的详细信息，请参阅Cisco技术提示约定。

背景信息

语音转换配置文件介绍一种用以转换号码的新方案。较早的转换规则将逐步被系统所淘汰。Cisco 强烈建议您仅使用一种转换规则方案。如果您混合使用旧方案和新方案，则可能得到无法预料的结果。新方案的核心是能够匹配正则表达式及替换子字符串。数据流编辑器 (SED) 实用程序可用于转换号码。有关 SED 的更多详细信息，请参阅相关信息部分。

本文档描述新语音转换配置文件的突出功能和配置以及最常见情形的特定示例。

如果输入号码与匹配模式、号码方案及规则中的现有类型匹配，则转换规则将替换该输入号码的子字符串。SED 实用程序用于检查基于匹配模式的匹配。转换规则的另一项功能是能够阻塞特定号码的呼叫。这些规则通过特殊关键字“reject”指定。

功能：

新的转换规则出现在正则表达式之后，其匹配方式类似于SED：

- 支持与通过反斜线的 UNIX 类似的转义序列。

- 新转换规则不支持关键字NULL和ANY，但这些关键字可以用类似于SED的正则表达式替换。

- 每个转换规则表最多可定义十五条转换规则。

- 最多可定义 1000 个转换配置文件。最多可定义 128 条转换规则。

配置

本部分提供用于配置本文档中所述功能的信息。

注意：使用命令查找工具查找关于用于本文的命令的详细信息。只有思科注册用户才能访问内部思科工具和信息。

分配转换配置文件

新转换规则可被转换配置文件引用。您可以在转换配置文件中定义以下呼叫号码类型：

- 被叫

- 主叫

- 重定向被叫

配置文件中每种类型的呼叫号码可能适用不同的转换规则。

转换配置文件一经定义，就可以被以下各项引用：

- 中继组 - 可在中继组中定义两个不同的转换配置文件，以便对呼入和呼出 POTS 呼叫执行号码转换。如果中继组中定义了呼出转换配置文件，则将在建立呼出呼叫时完成号码转换。

- 源 IP 组 - 可在源 IP 组中定义一个转换配置文件，以便对呼入 VoIP 呼叫执行号码转换。

- 拨号对等体 - 可在拨号对等体中定义两个不同的转换配置文件，以便对呼入和呼出呼叫执行号码转换。

- 语音端口 - 可在语音端口中定义转换配置文件，以便对呼入和呼出 POTS 呼叫执行号码转换。如果语音端口也是中继组成员，则语音端口的呼入转换配置文件将覆盖中继组的转换配置文件。

- 非设备随路信令 (NFAS) 接口 - 可为 NFAS 接口定义从全局 voice service pots 配置到 translation-profile 命令行的转换配置文件，以便对呼入和呼出 NFAS 呼叫执行号码转换。此转换配置文件的优先级较语音端口和中继组的转换配置文件高，条件是信道同时属于定义了转换配置文件的语音端口和/或中继组。

- VoIP呼入-可在全局范围内为所有呼入VoIP (h323/sip)呼叫定义转换配置文件，以便执行号码转换。如果呼入 H.323/SIP 呼叫与定义了转换配置文件的源 IP 组关联，则该源 IP 组的转换配置文件将覆盖适用于呼入 VoIP 呼叫的全局转换配置文件。

voice translation-rule 命令

在全局配置模式下发出voice translation-rule命令，以便定义适用于语音呼叫的转换规则。使用此命令的enoform删除转换规则。

- voice translation-rule number

- no voice translation-rule number

注：number参数是转换规则的唯一标识符。范围从 1 至 2147483647。没有默认值。

rule (voice translation-rule)

要定义转换规则，请在语音转换规则配置模式下使用rule 命令。要删除转换规则，请使用此命令的enoform。

- 匹配及替换规则

rule precedence /match-pattern/ /replace-pattern/

[type {match-type replace-type} [plan {match-type replace-type}]]

no rule precedence

- 拒绝规则

rule precedence reject /match-pattern/ [type match-type [plan match-type]]

no rule precedence

语法说明

语法

描述

优先级

转换规则的优先级。范围从 1 至 15。

/match-pattern/

用于匹配呼入呼叫信息的数据流编辑器 (SED) 表达式。斜线/是模式中的分隔符。

/replace-pattern/

用于替换呼叫信息中匹配模式的 SED 表达式。斜线/是模式中的分隔符。

type match-type replace-type

（可选）编号类型匹配可以是：

- 缩写

- any

- 国际

- 国内

- 网络

- 预留

- 用户

- 未知

编号类型替换可以是：

- 缩写

- 国际

- 国内

- 网络

- 预留

- 用户

- 未知

plan match-type replace-type

（可选）规划类型匹配可以是：

- any

- 数据

- ermes

- isdn

- 国内

- 专用

- 预留

- 电传

- 未知

规划类型替换可以是：

- 数据

- ermes

- isdn

- 国内

- 专用

- 预留

- 电传

- 未知

拒绝

转换规则的匹配模式用于拒绝呼叫。

示例

本示例接纳转换规则 150。其中包括两条规则：

Router(config)#voice translation-rule 150

Router(cfg-translation-rule)#rule 1 reject /^919\(.(\)/

Router(cfg-translation-rule)#rule 2 /\(^...\)853\(...\)/ /\1525\2/

语音转换规则使用的字符类似于正则表达式语法(regexp)，但有一些细微的差异和限制。大多数限制均不用担心，这是因为仅执行了数字操作。

语音转换规则字符

描述

^

匹配行首的表达式。

$

匹配行尾的表达式。

/

标记等效字符串和替换字符串开始和结尾的分隔符。

\

对下一个字符的特殊含义进行转义。

-

指示不属于第一个/最后一个位置时的范围。与[和]一起使用。

[list]

匹配列表中的单一字符。

[^list]

不匹配列表中的指定单一字符。

.

匹配任一单一字符。

*

重复上一个 regexp 零次或多次。

+

重复上一个正则表达式一次或多次。

？

零次或一次重复前面的正则表达式（使用CTRL-V进入Cisco IOS）。

()

分组正则表达式。

匹配字符串

替换字符串

被叫字符串

被替换字符串

备注

/^$/

/ /

NULL

NULL

Simple Null 到 Null 转换。

/^.*/

/ /

9195551212

NULL

Any 到 Null 转换。

//

//

9195551212

9195551212

匹配但不替换任何字符串。使用此方法处理呼叫方案或呼叫类型。

/^392\(.*\)/

/555\1/

3921212

5551212

匹配长度可变字符串的开头。

/^\(555\)\(....\)/

/444\2/

5551212

4441212

匹配字符串的开头。第二个括号结构被拉至新字符串。

/^555\(....\)/

/444\1/

5551212

4441212

匹配字符串的开头。注意：\1 将替换括号内的第一组正则表达式。

/\(^...\)555\(....\)/

/\1444\2/

9195551212

9194441212

匹配字符串的中间。

/\(^...\)\(555\)\(....\)/

/\1444\3/

9195551212

9194441212

匹配字符串的中间。

/\(.*\)1212$/

/\13434/

9195551212 555121212

9195553434 555123434

匹配字符串的结尾。

/\(.*\)1212/

/\13434/

9195551212 555121212

9195553434 555123434

匹配字符串的结尾。此特殊示例的末尾不需要隐式 $。

/444/

/555/

4441212 44441212 44414441212

5551212 55541212 55514441212

匹配子字符串。

/^[135]/

/9/

12345 22345 32345

92345 22345 93245

匹配某些号码。

/^[1-35]/

/9/

1234 2345 4567 8456

9234 9345 4567 8456

匹配范围。

/^[^1-35]/

/9/

1234 2345 4567 8456

1234 2345 9567 9456

列表中的 ^ 是指不匹配这些项。

/^1#/

//

1#456

456

匹配开头的 1# 并用 Null 替换。

/^1\#\(.*\)/

/\1/

1#456

456

同上一个表达式一样，但组成方式不同。

/^1\*/

//

1*456

456

匹配模式中的 1* 并用 Null 替换。

/^1\*\(.*\)/

/\1/

1*456

456

同上一个表达式一样，但组成方式略有不同。

/^5+/

/9/

5888 55888 555888 5588855

9888 9888 9888 988855

这是使用+选项的示例。

/^\(555\)+\(.*\)/

/444\2/

5551212 555551212 5555551212 5551212555

4441212 444551212 4441212 4441212555

这是+选项的另一个示例。这将搜索开始时重复的 555 模式。

/^9?1?\(919\)/

/\1/

9195551212 19195551212 919195551212 99195551212

9195551212 9195551212 9195551212 9195551212

以下是如何使用？字符串的。例如，如果要删除之前存在或不存在的某些数字。在这种情况下，您要删除前缀9或1或9和1。

/1234/

/00&00/

5551234

55500123400

匹配子字符串。

/1234/

/00\000/

5551234

55500123400

匹配子字符串（与 & 一样）。

转换配置文件配置

voice translation-profile <name>

translate called <translation-rule num>

translate calling <translation-rule num>

translate redirect-called <translation-rule num>

no

属性

描述

voice translation-profile <name>

转换配置文件名的大小是 31 个字符。

translate called <translation rule #>

定义适用于被叫号码的转换配置文件规则。

translate calling <translation rule #>

定义适用于主叫号码的转换配置文件规则。

translate redirect-called <translation rule #>

定义适用于重定向被叫号码的转换配置文件规则。

根据呼入呼叫的信令类型，主叫号码等效于自动号码标识符 (ANI) 或主叫线路 id。重定向被叫号码等效于重定向拨号识别服务 (DNIS) 或原始被叫号码。

VoIP 呼入配置

voip-incoming translation-profile

属性

描述

voip-incoming translation-profile

定义适用于所有呼入 VoIP 呼叫的呼叫号码转换配置文件。使用voip-incoming translation-rule命令使此CLI与旧式转换规则相互排斥。

本VoIP呼入转换配置文件配置示例将名为global-definition的转换配置文件分配给所有呼入VoIP呼叫。

Router(config)#voip-incoming translation-profile global-definition

拨号对等体配置

入站拨号对等体

dial-peer voice <num> [pots|voip|vofr|voatm]

translation-profile [incoming | outgoing] <name>

要阻止呼叫

dial-peer voice <num> [pots|voip]

call-block translation-profile incoming <name>

call-block disconnect-cause incoming <cause>

carrier-id source <name>

属性

描述

call-block translation-profile incoming <name>

当由会话或交互语音应答 (IVR) 应用程序处理呼叫时，为该会话或 IVR 应用程序所使用呼入呼叫定义呼叫阻塞转换配置文件。呼叫阻塞转换配置文件的大小是 31 个字符。

call-block disconnect-cause incoming <cause>

当呼叫因会话或 IVR 应用程序检查呼入呼叫号码而阻塞时，此属性的值将返回到源。用户可以选择以下断开原因：

- Invalid-number

- Unassigned-number

- User-busy

- Call-rejected

此属性的默认值为无服务。

carrier-id source <name>

定义入站拨号对等体中用作入站拨号对等体中等效密钥的源载波id。此属性只在 POTS 或 VoIP 拨号对等体配置中受到支持。源载波 id 的大小是 127 个字符。

translation-profile incoming <name>

定义适用于呼入呼叫的呼叫号码转换配置文件。转换配置文件的大小是 31 个字符。

出站拨号对等体

dial-peer voice <num> pots

carrier-id target <name>

trunkgroup <num> [preference_num]

trunkgroup <num> [preference_num]

translation-profile outgoing <name>

属性

描述

carrier-id target <name>

定义在出站拨号对等体中用作出站拨号对等体中等效密钥的目标载波ID。此属性只在 POTS 或 VoIP 拨号对等体配置中受到支持。目标载波 id 的大小是 127 个字符。

translation-profile outgoing <name>

定义适用于呼出呼叫的呼叫号码转换配置文件。

trunkgroup <number> [preference_num]

可将单个或多个中继组设定为出站拨号对等体的目标对端。一个拨号对等体中最多可定义 64 个中继组。此属性与端口属性相互排斥。首选项范围是 1 至 64。

语音端口配置

voice-port <number>

translation-profile [incoming | outgoing] <name>

trunk-group <name> [preference]

属性

描述

translation-profile incoming

定义适用于呼入 POTS 呼叫的呼叫号码转换配置文件。使用translate called命令和translate calling命令使此CLI与旧式规则相互排斥。

trunk-group

将模拟语音端口定义为中继组成员。在控制器配置的CAS用户CLI下，将CAS语音端口分配到中继组。对于 PRI，在 D 信道的串行接口下分配中继组。对于 BRI，在 BRI 接口下配置中继组。

控制器转换配置文件

控制器转换配置文件用于通过中继组路由的呼入 NFAS 呼叫或呼出 NFAS 呼叫。

voice service pots

translation-profile [incoming | outgoing] controller [T1 | E1] <unit#> <name>

属性

描述

translation-profile

为控制器定义转换配置文件。

[incoming | outgoing]

呼入或呼出呼叫的号码转换。

controller

控制器关键字。

[T1 | E1] <unit#>

T1 或 E1 控制器单元。

<name>

转换配置文件的名称。转换配置文件名的大小是 64 个字符。

中继组配置

trunk group <name>

carrier-id <name>

hunt-scheme { [least-idle [even|odd] [up|down] |

least-used [even|odd] [up|down] |

longest-idle [even|odd] [up|down |

random

round-robin [even|odd] [up|down] |

sequential [even|odd] [up|down]

translation-profile incoming <name>

translation-profile outgoing <name>

属性

描述

trunk group <name> [<preference>]

中继组成员可以是 PRI、BRI，也可以是 CAS 接口或 FXS、FX0，还可以是 E&M 语音端口。首选号码是用于对中继组成员进行排序的可选参数。如果未确定首选号码，则新中继组成员将成为中继组的最后一个成员。首选号码范围是 0 至 63。一个中继组最多可以定义64个成员（接口或语音端口）。中继组undervoice-portis用于配置模拟语音端口中继组成员。通过interface serial或存在于ISDN PRI和BRI中继中的中继组成员CLI interface bri命令保持不变。中继组名称的大小是 32 个字符。

carrier-id <name>

拥有中继组的载波 ID。载波 id 的大小是 64 个字符。

hunt-scheme

指定使用方法，以便从呼出呼叫的中继组选择成员/信道。

- least-idle [even | odd] [up | down]

- least-used [even | odd] [up | down]

- longest-idle [even | odd] [up | down]

- 随机

- round-robin [even | odd] [up | down]

- sequential [even | odd] [up | down]

hunt-scheme的默认值is least-used。

description

中继组的文字描述大小是 64 个字符。

translation-profile

定义适用于呼入和呼出呼叫的呼叫号码转换配置文件。

中继组成员配置

interface serial <slot/port>:<num>

trunk-group <name> [<preference>]

interface bri <number>

trunk-group <name> [<preference>]

voice-port <number>

trunk-group <name> [<preference>]

/* ds0-group trunk group configuration example */

controller T1 1/0

ds0-group 1 timeslots 1-10 type e&m-fgd

ds0-group 2 timeslots 12-20 type e&m-fgd

cas-custom 1

trunk-group 11

cas-custom 2

trunk-group 22

源 IP 组配置

voice source-group <name>

access-list <num>

carrier-id source <name>

carrier-id target <name>

description <text>

disconnect-cause <user-selected-reason>

translation-profile incoming <name>

h323zone-id <text>

属性

描述

voice source-group <name>

源 IP 组名称的大小是 32 个字符。

access-list

Cisco IOS访问列表ID用于标识传入VoIP呼叫的来源。

carrier-id source <name>

源载波 id 与终端网关处 CSR 应用程序的呼入 VoIP 呼叫关联，以便选择路由呼出 POTS 呼叫的目标载波。载波 id 的大小是 64 个字符。

carrier-id target <name>

可用于匹配出站拨号的默认目标载波 id。

description

VoIP 源组的文字描述大小是 64 个字符。

disconnect-cause

当呼叫因访问列表限制而阻塞时，此属性的值将返回到源。用户可以选择以下断开原因：

- Invalid-number

- Unassigned-number

- User-busy

- Call-rejected

此属性的默认值是 No-Service。

translation-profile incoming

指定适用于呼入 VoIP 呼叫的号码转换规则。

h323zone-id

指定与呼入 H.323 呼叫的源区域 id 相匹配的区域 id。h323zone-id 的大小是 64 个字符。

CallManager回退配置

您也可以将转换配置文件应用于 Cisco CallManager fallback 配置。当在all-manager-fallback模式下应用时，仅当IP电话退回到SRST模式才会转换呼叫。正常情况下（当电话注册到 Cisco CallManager 服务器时），不会转换通过电话进行的呼叫。call-manager-fallback下的translation-profile会影响从IP电话到路由器的呼入和呼出呼叫。这与您在dial-peer下应用translation-profile 的行为不同。incoming 和outgoing 命令与IP电话相关。incoming 命令可更改来自IP电话的呼叫的参数。outgoing 命令可更改通过路由器到达IP电话的呼叫值。

voice translation-rule 1

rule 1 /^.*/ /5551234/

!

!

voice translation-profile srst-in

translate calling 1

!

call-manager-fallback

translation-profile incoming srst-in

!

通过 IP 电话进行呼叫时，呼入呼叫的主叫号码将发生变化并将由路由器处理。路由器会使用该主叫号码路由呼叫。在本示例中，从 IP 电话到路由器的所有呼叫的主叫号码均显示为 5551234。这包括在 IP 电话之间进行的呼叫。要更改仅从路由器到PSTN的呼叫的主叫号码，请将translation-profile 应用于dial-peer pots中，以便IP电话到IP电话的呼叫不受影响。

有关call-manager-fallback命令的信息，请参阅Cisco IOS语音命令参考。

呼叫阻塞配置示例

呼叫阻塞拨号对等体上的所有呼叫

配置匹配任意号码的语音转换规则。

!

voice translation-rule 1

rule 1 reject /^.*/

!--- Matches any number string and rejects the call.

!

!--- Apply the rule to a translation profile for called,

!--- calling, or redirect-called numbers.

!

voice translation profile call_block

translate calling 1

!--- Invokes voice translation rule 1 in order to determine which calls

!--- to reject based on the calling number.

!

!--- Include the translation profile within a dial peer definition.

!--- You can use incoming called-number to only match this dial peer at certain times.

!

dial-peer voice 100 pots

!--- This can be any dial peer that matches the desired inbound call.

incoming called-number 3927393

!--- Matches this dial peer for inbound POTS calls

!--- that go to the number string listed.

call-block translation-profile incoming call_block

!--- Invokes the voice translation profile “call_block”

!--- on inbound POTS calls that match this peer in order to

!--- determine which calls to reject.

call-block disconnect-cause incoming call-reject

!--- Sets the cause code to “call-reject” for blocked calls.

呼叫阻塞特定呼叫号码

配置语音转换规则以阻塞您要阻塞的所需主叫号码。本示例使用 9193927393。

voice translation-rule 1

rule 1 reject /9193927393/

!--- Matches the defined number string and rejects the call.

!

!--- Apply the rule to a translation profile for the calling number.

!--- You could also reject based on called or redirect-called numbers.

!

voice translation-profile call_block

translate calling 1

!--- Invokes voice translation rule 1 in order to determine

!--- which calls to reject based on the calling number.

!

!--- Include the translation profile within a dial peer definition.

!

dial-peer voice 100 pots

call-block translation-profile incoming call_block

!--- Invokes the voice translation profile “call_block” on

!--- inbound POTS calls that match this peer

!--- in order to determine which calls to reject.

call-block disconnect-cause incoming call-reject

incoming called-number

!--- Matches this peer for all inbound POTS calls.

port 1/1:23

呼叫阻塞特定被叫号码

配置语音转换规则以匹配您要阻塞的所需被叫号码。本示例使用 3927393。

!

voice translation-rule 1

rule 1 reject /3927393/

!--- Matches the defined number string and rejects the call.

!

!--- Apply the rule to a translation profile for the called number.

!--- You could also reject based on calling or redirect-called numbers.

!

voice translation-profile call_block

translate called 1

!--- Invokes voice translation rule 1 in order to determine which

!--- calls to reject based on the called number.

!

!--- Include the translation profile within a dial peer definition.

!

dial-peer voice 100 voip

call-block translation-profile incoming call_block

!--- Invokes the voice translation profile “call_block” on

!--- inbound POTS calls that match this peer

!--- in order to determine which calls to reject.

call-block disconnect-cause incoming call-reject

incoming called-number

将任一号码转换为特定号码

voice translation-rule 1

rule 1 /\(.*\)/ /300/

!--- Matches any number string and replaces it with 300.

!

voice translation-profile my_profile

translate called 1

!--- Invokes voice translation rule 1 in order to translate the called number.

!

dial-peer voice 1000 pots

!--- This can be any dial peer that matches the inbound call.

translation-profile incoming my_profile

!--- Invokes voice translation profile “my_profile” for incoming calls.

direct-inward-dial

incoming called-number .

port 1/0:23

Router#

Router#test voice translation-rule 1 5551234

Matched with rule 1

Original number: 5551234        Translated number: 300

Original number type: none      Translated number type: none

Original number plan: none      Translated number plan: none

将入站的七位数号码转换为四位数

voice translation-rule 1

!--- Matches any number string that begins with 498 and

!--- changes those three digits to null (removes them).

rule 1 /^498/ //

!

!

voice translation-profile Voice

!--- Invokes voice translation rule 1 to translate the called number.

translate called 1

!

dial-peer voice 225 pots

translation-profile incoming Voice

!--- Invokes voice translation profile “Voice” for incoming calls.

direct-inward-dial

port 1/0:23

Router#test voice translation-rule 1 4985555

Matched with rule 1

Original number: 4985555 Translated number: 5555

Original number type: none      Translated number type: none

Original number plan: none      Translated number plan: none

为入站被叫号码加前缀

voice translation-rule 1

!--- Matches any number string and places 555 in front of the original number.

rule 1 // /555/

!

voice translation-profile prefix

!--- Invokes voice translation rule 1 in order to translate the called number.

translate called 1

!

dial-peer voice 1 pots

translation-profile incoming prefix

!--- Invokes voice translation profile “prefix” for incoming calls.

Router#test voice translation-rule 1 1234

Matched with rule 1

Original number: 1234   Translated number: 5551234

Original number type: none      Translated number type: none

Original number plan: none      Translated number plan: none

用 ISDN 和国家未知的方案和类型更改出站呼叫

voice translation-rule 1

rule 1 // // type unknown national plan unknown isdn

!--- Matches any number string with a plan and type of

!--- unknown. Also changes the type to national and the plan to isdn.

!

voice translation-profile isdn_map

translate called 1

!--- Invokes voice translation rule 1 in order to translate the called number.

!

dial-peer voice 1 pots

translation-profile outgoing isdn_map

!--- Invokes voice translation profile “isdn_map” for outgoing calls.

kearly01#test voice translation-rule 1 5551234 type unknown plan unknown

Matched with rule 1

Original number: 5551234        Translated number: 5551234

Original number type: unknown   Translated number type: national

Original number plan: unknown   Translated number plan: isdn

为呼叫号码加前缀

voice translation-rule 1

!--- Matches number strings that start with 4

!--- and places 9059514 in the beginning 4 place.

!--- It serves the same type of function for the number 0.

rule 1 /^4/ /9059514/

rule 2 /^0/ /9059510/

!

voice translation-profile Prefix

!--- Invokes voice translation rule 1 in order to translate the calling number.

translate calling 1

!

dial-peer voice 100 pots

translation-profile outgoing Prefix

!--- Invokes voice translation profile “Prefix” for outgoing calls.

使电话通过特定端口

voice translation-rule 29

!--- Matches anything that starts with a 9 and replaces the 9 with 29.

rule 1 /^9/ /29/

!

voice translation-rule 39

!--- Matches anything that starts with a 9 and replaces the 9 with 39.

rule 1 /^9/ /39/

!

voice translation-profile FXS29

!--- Invokes voice translation profile “FXS29” in order to translate the called number.

translate called 29

!

voice translation-profile FXS39

!--- Invokes voice translation profile “FXS39” in order to translate the called number.

translate called 39

!

voice-port 1/1/0

connection plar 8005

!--- Sends inbound calls directly to the IP phone with 8005 DN.

!

voice-port 1/1/1

connection plar 8006

!--- Sends inbound calls directly to the IP phone with 8006 DN.

!

dial-peer voice 110 pots

!--- Since calls from 8005 that begin with a 9 are changed

!--- to begin with 29, all these calls match this dial peer

!--- and go out port 1/1/0 (when not in SRST mode).

destination-pattern 29T

port 1/1/0

!

dial-peer voice 111 pots

!--- Since calls from 8006 that begin with a 9 are changed

!--- to begin with 39, all these calls match this dial peer

!--- and go out port 1/1/1 (when not in SRST mode).

destination-pattern 39T

port 1/1/1

!

dial-peer voice 1000 voip

!--- To Cisco CallManager.

preference 1

destination-pattern .T

voice-class h323 1

session target ipv4:10.1.0.13

dtmf-relay h245-alphanumeric

ip qos dscp cs5 media

!

dial-peer voice 29 voip

translation-profile incoming FXS29

!--- Matches calls from the IP phone with a DN of 8005, and invokes

!--- voice translation profile FXS29 in order to change numbers that start

!--- with a 9 to begin with 29.

answer-address 8005

!

dial-peer voice 39 voip

translation-profile incoming FXS39

!--- Matches calls from the IP phone with a DN of 8006,

!--- and invokes voice translation profile FXS39 in order to change

!--- numbers that start with a 9 to begin with 39.

answer-address 8006

用相同的被叫号码从特定端口进行呼叫，使其到达所需的 VoIP 对等体

voice translation-rule 27

!--- Matches anything that starts with a 7 and replaces the 7 with 27.

rule 1 /^7/ /27/

!

voice translation-rule 37

!--- Matches anything that starts with a 7 and replaces the 7 with 37.

rule 1 /^7/ /37/

!

voice translation-profile FXS27

!--- Invokes voice translation profile “FXS27” in order to translate the called number.

translate called 27

!

voice translation-profile FXS37

!--- Invokes voice translation profile “FXS37” in order to translate the called number.

translate called 37

!

dial-peer voice 270 voip

!--- Matches the called number of 27 which is

!--- translated from port 2/0. You can use a translation

!--- profile in order to change the number back to 7 here if needed.

destination-pattern 27

session target ipv4:10.1.1.2

!

dial-peer voice 370 voip

!--- Matches the called number of 37 which is translated

!--- from port 2/1. You can use a translation profile in order to

!--- change the number back to 7 here if needed.

destination-pattern 37

session target ipv4:10.1.1.3

!

dial-peer voice 27 pots

translation-profile incoming FXS27

!--- Matches calls from port 2/0, and invokes voice translation

!--- profile FXS27 in order to change numbers that start with a 7 to begin with 27.

port 2/0

!

dial-peer voice 37 pots

translation-profile incoming FXS37

!--- Matches calls from port 2/1, and invokes voice translation

!--- profile FXS37 in order to change numbers that start with a 7 to begin with 37.

port 2/1

验证

输出解释器工具支持某些命令（只限于注册用户），它允许您查看show 命令输出的分析。

注意：只有思科注册用户才能访问思科内部工具和信息。

可以使用test voice translation-rule命令测试规则的行为。

要测试转换规则的功能，请在特权EXEC模式下使用test voice translation-rule命令。

test voice translation-rule number input-test-string [type match-type [plan match-type]]

语法

描述

号码

指定所测试转换规则的编号。范围从 1 至 2147483647。

input-test-string

由转换规则测试的字符串。

typematch-type

（可选）呼叫的号码类型。match-type 参数的有效值如下：

- abbreviated - 此网络所支持完整号码的缩写形式。

- any - 任意一种被叫号码。

- international - 到达其他国家/地区范围内用户的被叫号码。

- national - 到达同一国家/地区但不在当地网络范围内用户的被叫号码。

- network - 服务网络特定的管理或服务号码。

- reserved - 保留为分机。

- subscriber - 到达同一当地网络范围内用户的被叫号码。

- unknown 网络未知的号码类型。

planmatch-type

（可选）呼叫的编号方案。match-type 参数的有效值如下：

- any - 任意一种被叫号码。

- data - 进行数据呼叫的被叫号码。

- ermes - 欧洲电台消息标准编号方案。

- isdn - ISDN 网络的被叫号码。

- national - 到达同一国家/地区但不在当地网络范围内用户的被叫号码。

- private - 私有网络的被叫号码。

- reserved - 保留为分机。

- telex - 电报设备的编号方案。

- unknown 网络未知的号码类型。

示例

voice translation-rule 1

rule 1 /^555\(....\)/ /444\1/

rule 2 /777/ /888/ type national unknown plan any isdn

kearly01#test voice translation-rule 1 5551234

Matched with rule 1

Original number: 5551234        Translated number: 4441234

Original number type: none      Translated number type: none

Original number plan: none      Translated number plan: none

kearly01#test voice translation-rule 1 7771234

7771234 Didn't match with any of rules

kearly01#test voice translation-rule 1 7771234 type national plan isdn

Matched with rule 2

Original number: 7771234        Translated number: 8881234

Original number type: national  Translated number type: unknown

Original number plan: isdn      Translated number plan: isdn

转换规则可用于此测验：

注意：show voice translation-rule和show voice translation-profile命令也十分有用。

kearly01#show voice translation-rule 1

Translation-rule tag: 1

Rule 1:

Match pattern: ^555\(....\)

Replace pattern: 444\1

Match type: none                Replace type: none

Match plan: none                Replace plan: none

Rule 2:

Match pattern: 777

Replace pattern: 888

Match type: national            Replace type: unknown

Match plan: any                 Replace plan: isdn

kearly01#show voice translation-profile

Translation Profile: mytranslation

Rule for Calling number:

Rule for Called number: 1

Rule for Redirect number:

故障排除

本部分提供的信息可用于对配置进行故障排除。

注意：发出debug 命令之前，请参阅有关Debug命令的重要信息。

根据同一转换规则，使用debug voice translationand then run test voice translation-rulecommand again。

kearly01#test voice translation-rule 1 7771234

7771234 Didn't match with any of rules

*Apr  4 14:44:31.665: //-1/xxxxxxxxxxxx/RXRULE/regxrule_match:

No match; number=7771234 rule precedence=1

*Apr  4 14:44:31.665: //-1/xxxxxxxxxxxx/RXRULE/regxrule_match:

Error: type didn't match; in.type=0x9 rule.type = 0x2

*Apr  4 14:44:31.665: //-1/xxxxxxxxxxxx/RXRULE/regxrule_match:

No match; number=7771234 rule precedence=1

*Apr  4 14:44:31.665: //-1/xxxxxxxxxxxx/RXRULE/regxrule_match:

Error: type didn't match; in.type=0x9 rule.type = 0x2test voice trans

debug 显示规则不匹配。一旦更改类型和方案，就将匹配。

kearly01#test voice translation-rule 1 7771234 type national plan isdn

Matched with rule 2

Original number: 7771234        Translated number: 8881234

Original number type: national  Translated number type: unknown

Original number plan: isdn      Translated number plan: isdn

*Apr  4 14:44:51.665: //-1/xxxxxxxxxxxx/RXRULE/regxrule_match:

No match; number=7771234 rule precedence=1

*Apr  4 14:44:51.665: //-1/xxxxxxxxxxxx/RXRULE/regxrule_match:

No match; number=7771234 rule precedence=1

*Apr  4 14:44:51.669: //-1/xxxxxxxxxxxx/RXRULE/regxrule_match:

No match; number=7771234 rule precedence=1

*Apr  4 14:44:51.669: //-1/xxxxxxxxxxxx/RXRULE/sed_subst:

Successful substitution; pattern=7771234 matchPattern=777

replacePattern=888 replaced pattern=8881234

*Apr  4 14:44:51.669: //-1/xxxxxxxxxxxx/RXRULE/regxrule_subst_num_type:

Match Type = national, Replace Type = unknown Input Type = national

*Apr  4 14:44:51.669: //-1/xxxxxxxxxxxx/RXRULE/regxrule_subst_num_plan:

Match Plan = any, Replace Plan = isdn Input Plan = isdn

相关信息

- 媒体网关中的语音翻译规则

- Cisco IP 电话故障排除

- 思科技术支持和下载