语音 : 呼叫路由/拨号方案

使用语音转换配置文件进行号码转换

2016 年 10 月 27 日 - 机器翻译
其他版本: PDFpdf | 英语 (2015 年 12 月 19 日) | 反馈


目录


简介

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

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

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

功能:

新转换规则遵循与 SED 类似的正则表达式匹配:

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

  • 在新转换规则中不支持关键字“NULL”和“ANY”,但这些关键字均可由与 SED 类似的正则表达式替换。

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

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

先决条件

要求

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

使用的组件

本文档中的信息根据运行Cisco IOS�软件版本12.2(11)T或以上的语音网关。

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

规则

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

配置

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

注意: 有关本文档所用命令的详细信息,请使用命令查找工具仅限注册用户)。

分配转换配置文件

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

  • 被叫

  • 主叫

  • 重定向被叫

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

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

  • 中继组 - 可在中继组中定义两个不同的转换配置文件,以便对呼入和呼出 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 命令,以便定义适用于语音呼叫的转换规则。要删除转换规则,请使用此命令的 no 形式。

  • voice translation-rule number

  • no voice translation-rule number

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

rule (voice translation-rule)

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

  • 匹配及替换规则

    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 (可选)规划类型匹配可以是:
  • 任一
  • 数据
  • 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 进入 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 <name>

属性 说明
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 应用程序检查呼入呼叫号码而阻塞时,此属性的值将返回到源。用户可以选择以下断开原因:
  • 无效号码
  • 未赋值数字
  • User-busy
  • Call-rejected
此属性的默认值是 No-Service。
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 calledtranslate 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 个成员(接口或语音端口)。voice-port 下的 trunk group 用于配置模拟语音端口中继组成员。通过 interface serialinterface bri 命令存在于 ISDN PRI 和 BRI 中继中的中继组成员 CLI 仍未发生变化。中继组名称的大小是 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 的默认值为 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
IOSï ¿  ½访问列表id用于识别一次流入VoIP呼叫的来源。
carrier-id source <name>
源载波 id 与终端网关处 CSR 应用程序的呼入 VoIP 呼叫关联,以便选择路由呼出 POTS 呼叫的目标载波。载波 id 的大小是 64 个字符。
carrier-id target <name>
可用于匹配出站拨号的默认目标载波 id。
description
VoIP 源组的文字描述大小是 64 个字符。
disconnect-cause
当呼叫因访问列表限制而阻塞时,此属性的值将返回到源。用户可以选择以下断开原因:
  • 无效号码
  • 未赋值数字
  • User-busy
  • Call-rejected
此属性的默认值是 No-service。
translation-profile incoming
指定适用于呼入 VoIP 呼叫的号码转换规则。
h323zone-id
指定与呼入 H.323 呼叫的源区域 id 相匹配的区域 id。h323zone-id 的大小是 64 个字符。

CallManager Fallback 配置

您也可以将转换配置文件应用于 Cisco CallManager fallback 配置。当在 call-manager-fallback 模式下应用时,仅当 IP 电话退回到 SRST 模式才会转换呼叫。正常情况下(当电话注册到 Cisco CallManager 服务器时),不会转换通过电话进行的呼叫。call-manager-fallback 下的转换配置文件会影响从 IP 电话到路由器的呼入和呼出呼叫。这与您在拨号对等体下应用转换配置文件的行为不同。incomingoutgoing 命令与 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 的呼叫的主叫号码,请将转换配置文件应用于拨号对等体 pots 中,以便 IP 电话到 IP 电话的呼叫不受影响。

有关 call-manager-fallback 命令的信息,请参阅思科 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 命令,使用此工具可以查看对 show 命令输出的分析。

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

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

test voice translation-rule number input-test-string [type match-type [plan match-type]]
语法 说明
号码 指定所测试转换规则的编号。范围从 1 至 2147483647。
input-test-string 由转换规则测试的字符串。
type match-type (可选)呼叫的号码类型。match-type 参数的有效值如下:
  • abbreviated - 此网络所支持完整号码的缩写形式。
  • any - 任意一种被叫号码。
  • international - 到达其他国家/地区范围内用户的被叫号码。
  • national - 到达同一国家/地区但不在当地网络范围内用户的被叫号码。
  • network - 服务网络特定的管理或服务号码。
  • reserved - 保留为分机。
  • subscriber - 到达同一当地网络范围内用户的被叫号码。
  • unknown 网络未知的号码类型。
plan match-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-ruleshow 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 translation,然后再次运行 test voice translation-rule 命令。

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

相关信息


Document ID: 64020