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

语音翻译规则

2015 年 8 月 28 日 - 机器翻译
其他版本: PDFpdf | 英语 (2015 年 4 月 22 日) | 反馈


目录


简介

本文档讨论如何定义语音转换规则。

注意: 本文档使用的语法是:

  • rule precedence /match pattern/ /replacement pattern/

    注意: //--// 界定整数。

先决条件

要求

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

使用的组件

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

规则

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

简单匹配和替换

示例 1

本示例用“456”替换首次出现的号码“123”。

voice translation-rule 1
 rule 1 /123/ /456/  

以下是 test voice translation-rule 示例:

router#test voice translation-rule 1 123
Matched with rule 1
Original number: 123    Translated number: 456

router#test voice translation-rule 1 1234
Matched with rule 1
Original number: 1234   Translated number: 4564

router#test voice translation-rule 1 6123
Matched with rule 1
Original number: 6123   Translated number: 6456
router#test voice translation-rule 1 6123123
Matched with rule 1
Original number: 6123123        Translated number: 6456123
Original number type: none      Translated number type: none
Original number plan: none      Translated number plan: none

在本示例中,规则匹配号码中任意位置首次出现的包含模式“123”的号码。具体而言,可使用号码指示符的开头和末尾。示例 2示例 3 部分显示此情况。

示例 2

本示例显示如何用“456”替换号码开头部分出现的“123”。

voice translation-rule 1
 rule 1 /^123/ /456/  

以下是 test voice translation-rule 示例。

router#test voice translation-rule 1 123 
Matched with rule 1
Original number: 123    Translated number: 456

router#test voice translation-rule 1 1234
Matched with rule 1
Original number: 1234   Translated number: 4564

router#test voice translation-rule 1 6123
6123 Didn't match with any of rules

示例 3

如果只想匹配确切号码,则指定开头和末尾号码指示符:

voice translation-rule 1
 rule 1 /^123$/ /456/ 
router#test voice translation-rule 1 123 
Matched with rule 1
Original number: 123    Translated number: 456

router#test voice translation-rule 1 1234
1234 Didn't match with any of rules

router#test voice translation-rule 1 6123
6123 Didn't match with any of rules

与通配符的模式匹配

下面的表定义通配符和通配符组合,并显示一些示例。

通配符 定义
.。 任意单个数字
0 到 9、*、# 任意特定字符
[0-9] 任意字符范围或序列
** 限定符 - 匹配不出现或多次出现
+ 限定符 - 匹配一次或多次出现
?? 限定符 - 匹配不出现或一次出现

通配符组合 定义
.。 ** 后接不出现或多次出现的任意数字。这实际上可为任何对象,包括空。
.。 + 后接一次或多次出现的任何数字。这实际上可为空以外的任何对象。
^$ 无数字,空

示例 1

本示例用号码“6666000”替换以“40”开头的任意五位数号码。

voice translation-rule 1
 rule 1 /^40.../ /6666000/
router#test voice translation-rule 1 40123
Matched with rule 1
Original number: 40123    Translated number: 6666000

示例 2

本示例用“5554000”替换所有号码。

voice translation-rule 2
 rule 1 /.*/ /5554000/
router#test voice translation-rule 2 123
Matched with rule 1
Original number: 123    Translated number: 5554000

router#test voice translation-rule 2 86573
Matched with rule 1
Original number: 86573  Translated number: 5554000

router#test voice translation-rule 2 ""
Matched with rule 1
Original number:   Translated number: 5554000

示例 3

本示例用“5554000”替换除空以外的所有号码。

voice translation-rule 2
 rule 1 /.+/ /5554000/
router#test voice translation-rule 2 123
Matched with rule 1
Original number: 123    Translated number: 5554000

router#test voice translation-rule 2 "" 
 Didn't match with any of rules

示例 4

本示例用“909”替换以零组合(0、00 等等)开头的任意号码。

voice translation-rule 5
 rule 1 /^0+/ /909/
router#test voice translation-rule 5 0123456
Matched with rule 1
Original number: 0123456        Translated number: 909123456

router#test voice translation-rule 5 00123456
Matched with rule 1
Original number: 00123456       Translated number: 909123456

router#test voice translation-rule 5 000123456
Matched with rule 1
Original number: 000123456      Translated number: 909123456

router#test voice translation-rule 5 123456   
123456 Didn't match with any of rules

号码切分

当需要将一部分匹配号码复制到替换号码时,可使用号码切分。将匹配号码切分为可保留或可忽略的集。

字符 说明
\\ 在匹配模式中,指示切分号码的位置。
\\ 在替换模式中,指示复制要保留的集的位置。
(() ) 指示匹配号码中要保留的集。

字符用法 说明
(a \) 保留表达式“a”。
b \ 忽略表达式“b”。
\1 将第一个集复制到替换号码。

普通示例

本示例提供一般说明。

/ (x\) y\ (z\) /  /w\1\2/	

将匹配号码拆分为三个集:xyz。反斜线 (\) 指示切分号码的位置。括号 () 指示要在替换模式中重复使用的集。w 代表要插入替换号码的其他数字。

  • 集 1 变为表达式 x。

  • 集 2 变为表达式 z。

  • 表达式 y 被忽略。

替换号码是一个连接号码:wxz

特定示例

本示例提供更多详情:

voice translation-rule 1
 rule 1 /^\(12\)3\(45\)$/ /6\1\2/
  • 集 1:12

  • 集 2:45

  • 忽略:3

router#test voice translation-rule 1 12345
Matched with rule 1
Original number: 12345        Translated number: 61245

号码类型和方案

可对与特定号码或方案类型的匹配加以限制。也可修改替换方案或类型。

示例 1

在本示例中,如果号码以“4”开头,且类型为“国内”,规则将添加“90”作为前缀。如果类型为“国际”,规则将添加“900”作为前缀。

voice translation-rule 7
 rule 1 /^4/ /904/ type national national
 rule 2 /^4/ /9004/ type international international
router#test voice translation-rule 7 493456567 type national
Matched with rule 1
Original number: 493456567      Translated number: 90493456567
Original number type: national  Translated number type: national
Original number plan: none      Translated number plan: none
	
router#test voice translation-rule 7 493456567 type international
Matched with rule 2
Original number: 493456567              Translated number: 900493456567
Original number type: international     Translated number type: international
Original number plan: none              Translated number plan: none

当电话公司 (Telco) 删除国内和国际号码的接入代码时,这非常有用。可根据号码类型添加正确的前缀。

示例 2

本示例更改号码类型和方案。

voice translation-rule 8 
 rule 1 /^2\(...$\)/ /01779345\1/ type unknown national plan unknown isdn

此规则匹配以“2”开头的任意四位数号码。此规则删除“2”,添加号码“01779345”作为前缀,并将方案设置为“isdn”、将类型设置为“国内”。

router#test voice translation-rule 8 2001 type unknown plan unknown 
Matched with rule 1
Original number: 2001   Translated number: 01779345001
Original number type: unknown   Translated number type: national
Original number plan: unknown   Translated number plan: isdn

拒绝呼叫

请使用 reject 关键字拒绝匹配的呼叫。本示例拒绝以“234”开头的所有呼叫。

rule 1 reject /^234/
router#test voice translation-rule 10 1234
1234 Didn't match with any of rules

router#test voice translation-rule 10 2345
 blocked on rule 1

应用规则

将语音转换规则应用于语音转换配置文件。然后,将这些配置文件应用于拨号对等体或语音端口。配置文件可应用于 VoIP 或 POTS 拨号对等体或语音端口,且可应用于入站或出站呼叫。配置文件可转换被叫、主叫或重定向号码。

voice translation-rule 3 
 rule 1 /123/ /456/ 

voice translation-profile profile1
 translate calling 3 

dial-peer voice 10 pots
 translation-profile outgoing profile1

更多示例

截断号码到最后两位

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

以下是分为一个集和一个忽略语句的号码。

  • 忽略:^.* 号码开头没有数字或有多个数字

    集 1:..两个数字

替换语句指定集 1。此规则复制号码的最后两位数字。

router#test voice translation-rule 9 12345
Matched with rule 1
Original number: 12345	Translated number: 45

router#test voice translation-rule 9 123456
Matched with rule 1
Original number: 123456	Translated number: 56

删除号码中不需要的数位

本示例非常有用,因为已证实某些 Telco 会在主叫方号码中插入连字符。因为这与标准不符,所以将造成主叫方号码被忽略。Telco 以两种格式发送主叫号码,即使用一个连字符,有时也使用两个。语音转换规则要求两条规则。此外,第一种格式的连字符后可以有五个或六个数字。可根据其中一条规则使用“?”字符匹配这两种情况(匹配不出现或一次出现)。

关于特殊字符的说明:

  • 连字符用于指示匹配模式范围,例如 [0-9]。要在此规则中表明您希望匹配连字符,必需使用“\”字符对其含义进行转义。这是因为连字符是特殊字符。“\-”字符实际上是连字符。末尾的“\”指示该号码于此处切分。

  • 如果直接键入 ?,IOS 会将其视为帮助请求。必须先键入 Control-V ,再键入 ?

voice translation-rule 12
 rule 1 /^\(01...\)\-\(......?$\)/ /\1\2/ 
 rule 2 /^\(0[12]..\)\-\(...\)\-\(....$\)/ /\1\2\3/

规则 1:号码被切分为三个序列,两个集将被保留。

  • 集 1:01…

    忽略:--

    集 2:......或.....

规则 2:号码被切分为五个序列,三个集将被保留。

  • 集 1:0[12]。

    忽略:--

    集 2:...

    忽略:--

    集 3:....

router#test voice translation-rule 12 "01208-333444"
Matched with rule 1
Original number: 01208-333444   Translated number: 01208333444

router#test voice translation-rule 12 "01208-72345" 
Matched with rule 1
Original number: 01208-72345    Translated number: 0120872345

router#test voice translation-rule 12 "0161-333-4444"
Matched with rule 2
Original number: 0161-333-4444  Translated number: 01613334444

router#test voice translation-rule 12 "0208-123-4567"
Matched with rule 2
Original number: 0208-123-4567  Translated number: 02081234567

相关的思科支持社区讨论

思科支持社区是您提问、解答问题、分享建议以及与工作伙伴协作的论坛。


相关信息


Document ID: 61083