此产品的文档集力求使用非歧视性语言。在本文档集中,非歧视性语言是指不隐含针对年龄、残障、性别、种族身份、族群身份、性取向、社会经济地位和交叉性的歧视的语言。由于产品软件的用户界面中使用的硬编码语言、基于 RFP 文档使用的语言或引用的第三方产品使用的语言,文档中可能无法确保完全使用非歧视性语言。 深入了解思科如何使用包容性语言。
思科采用人工翻译与机器翻译相结合的方式将此文档翻译成不同语言,希望全球的用户都能通过各自的语言得到支持性的内容。 请注意:即使是最好的机器翻译,其准确度也不及专业翻译人员的水平。 Cisco Systems, Inc. 对于翻译的准确性不承担任何责任,并建议您总是参考英文原始文档(已提供链接)。
本文档介绍如何使用语音转换配置文件配置号码转换。
本文档没有任何特定的要求。
本文档中的信息基于运行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
命令,以便定义适用于语音呼叫的转换规则。使用此命令的enoform删除转换规则。
voice translation-rule
number
no voice translation-rule number
注:number参数是转换规则的唯一标识符。范围从 1 至 2147483647。没有默认值。
要定义转换规则,请在语音转换规则配置模式下使用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 | (可选)编号类型匹配可以是:
|
plan match-type replace-type | (可选)规划类型匹配可以是:
|
拒绝 | 转换规则的匹配模式用于拒绝呼叫。 |
本示例接纳转换规则 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-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 应用程序检查呼入呼叫号码而阻塞时,此属性的值将返回到源。用户可以选择以下断开原因:
|
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用于配置模拟语音端口中继组成员。通过 |
carrier-id <name> |
拥有中继组的载波 ID。载波 id 的大小是 64 个字符。 |
hunt-scheme |
指定使用方法,以便从呼出呼叫的中继组选择成员/信道。
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
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 |
当呼叫因访问列表限制而阻塞时,此属性的值将返回到源。用户可以选择以下断开原因:
|
translation-profile incoming |
指定适用于呼入 VoIP 呼叫的号码转换规则。 |
h323zone-id |
指定与呼入 H.323 呼叫的源区域 id 相匹配的区域 id。h323zone-id 的大小是 64 个字符。 |
您也可以将转换配置文件应用于 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
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
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 参数的有效值如下:
|
planmatch-type | (可选)呼叫的编号方案。match-type 参数的有效值如下:
|
示例
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
版本 | 发布日期 | 备注 |
---|---|---|
3.0 |
10-Sep-2024 |
已更新机器翻译和格式。 |
2.0 |
07-Apr-2023 |
更新的格式,更正。重新认证。 |
1.0 |
15-Feb-2005 |
初始版本 |