CISCO_CVoice – 005:Translation Rule 和命中法则

1.    TranslationRule : 转换规则
用来对入向和出向号码进行转换,用在dial-peer的出口,voice-port的入口,以及voip-incoming (全局配置),如图:
dial-peer 出口
R1(config)#dial-peer voi 1000 voip

R1(config-dial-peer)#translat?

translate-outgoing  translation-profile

voip-incoming (全局配置)
R1(config)#voip-incoming ?

translation-profile Translation profile

translation-rule    Global digit manipulation and translation

translation-rule 1
rule 1 ^87651 1  将以87651开头的号码转换为1
!
voice-port 2/0:23  在voice-port 口调用translation rule
translate called 1 请注意这里是called,也就是入方向

Voice Translation Rule的字符解释:


符号


用途


.


任意的一个数字(0 -9)


[0 - 9]


在0-9这个区间范围内的任一数字,也可用[0,2-4,6-8]表示间断和连续


*


0个或多个相同位数


+


一个或多个相同位数



0个或1个相同位数


.*


任一数位,可以为0


.+


非0个任一数字


$


结束符


^


从此符号后开始


^$


Null,即没有数字


\


转义符,在match pattern中表示在此之前copy.
         在replace pattern中表示在此之后paste


()


表示一个集合,用于copy数字时

举例:
1.1. 将5191xxx转换为1xxx
此时可以有两个做法,即每条逐一添加:

Rule 1  /^5191001$/ /1001/ 规则的内容写在//里,第一个//是转换的数字,第二个//是转换后。很明显这个是不行的,会极大的增加设备运算和IT维护工作。
用转换变量来统一转换:

Rule 1 /^519\(1...)$//\1/ 请注意这里用到的转义符\,意思是保留被转换//里的第一个()内的内容,即1…

完整的写法:
R1(config)#voicetranslation-rule 1   --- 创建translation rule 1
R1(cfg-translation-rule)#rule 1/^519\(1...\)/ /\1/  -- 定义转换规则 1

R1(config)#voice translation-profile OUT-CALL –创建转换文件OUT-CALL,之所以会有这个profile,因为在一个profile里即可定义入向也可定义出向,方便调用。
R1(cfg-translation-profile)#translate called 1 –调用rule 1

R1(config)#dial-peer voic 1000 voip
R1(config-dial-peer)#translation-profile outgoingOUT-CALL –在dial-peer里调用转换文件OUT-CALL并应用于outgoing方向

用test命令来查看转换情况:

R1#test voicetranslation-rule 1 5191001

Matched with rule 1

Original number:5191001        Translated number: 1001

1.2. 将10开头的4位号码替换为号码"58156000":

voice translationrule 1
rule 1 /^10..$/ /58156000/
用test来查看转换状态

Test voice translationrule 1 1001
Matched with rule 1
Original number: 1001 Translated number: 58156000

1.3. 將所有號碼替換為 "86001000":

R1(config)#voice translation-rule 3

R1(cfg-translation-rule)#rule 1 /.$/ /86110000/

R1#test voice translation-rule 3 123

Matched with rule 1

Original number: 123    Translated number: 1286110000请留意这里,跟上面的rule

R1(config)#voice translation-rule 4

R1(cfg-translation-rule)#rule 1 /.*$/ /86001000/

R1(cfg-translation-rule)#end

R1#test voice translation-rule 4 123

Matched with rule 1

Original number: 123    Translated number:86001000 请注意跟上面的比较

R1#test voice translation-rule 4 5191000

Matched with rule 1

Original number: 5191000        Translated number: 86001000

Original number type: none      Translated number type: none

Original number plan: none      Translated number plan: none

R1#test voice translation-rule 4 ..

Matched with rule 1

Original number: ..    Translated number: 86001000

R1#test voice translation-rule 4 ""  这个符号不行了

^% Invalid input detected at ‘^‘ marker.

R1#test voice translation-rule 4 .*

Matched with rule 1

Original number: .*     Translated number: 86001000

R1#test voice translation-rule 4 //

Matched with rule 1

Original number: //     Translated number: 86001000

1.4转换非空号码到 86001000
R1(config)#voice translation-rule 5

R1(cfg-translation-rule)#rule 1 /.+$/ /86001000/

R1(cfg-translation-rule)#e

R1(config)#end

R1#testvoice translation-rule 5 1

Matchedwith rule 1

Originalnumber: 1      Translated number:86001000

2.    命中法则:

2.1 概述 : 任何路由器在处理voice时都有inbound和outbound
in时有match policy
out时有match dial-peer

任何的dialer-peer都是双向的,既是in,也是out。

2.2 入向的命中法则

DNIS (incomingcalled-number 监控被叫号码.)
ANI(answer-address1001 监控主叫号码)
destination-pattern
port(port 0/0:23)
默认的dial-peer 0被使用

以前面的ISDN试验为例,在做DID时,我们写如下的命令:
dial-peer voice 1 pots
incoming called-number .
direct-inward-dial //这样对于入向的语音呼叫根据入向命中法则,先查DNIS,在这里配置了相应的命令(匹配到了所有号码)则进行先一步路由的查找。

如果在这里不写DNIS,用以下命令:

dial-peervoice 1 pots
answer-address
direct-inward-dial //这样在入向是没有匹配到DNIS,那么紧接着匹配ANI,如上配置,但要注意的是,对于入向的主叫号码的产生(见下“主叫号码的产生”)用destination-pattern的话:

dial-peervoice 1 pots
destination-pattern
direct-inward-dial  //这样在入向是没有匹配到ANI,那么紧接着匹配destination-pattern,如上配置port
默认有一个dial-peer 0

出向的命中法则
1. 匹配dial-peer,找到匹配项
2. 如果有多个匹配项则看优先级的配置。
3. 如果有相同的优先级,循环使用多个dial-peer
注意:预设的出向dial-peer匹配法则可以根据“dial-peer hunt”命令该修改

主叫号码的产生
1. 如果连接电话的是S口,可以手工的输入:station-id numner 1001
2. 通过命中入向的“destination-pattern”实现:

例如在R1上:Dial-peer

destion-patt1001
port2/0  //实际上是命中第四条件,然后利用destion-pat作为策略使用注意:主叫号码的产生一定用明细,不详细的号码不能作为主叫

被叫号码的产生通过TDMF

Debug查看

deb voip dial-peer 能看到详细的路由命中方式

时间: 2024-10-12 19:32:05

CISCO_CVoice – 005:Translation Rule 和命中法则的相关文章

CISCO_CVoice – 003 : 模拟与数字中继

这节主要讨论模拟语音的接口配置及信令行为. 3个概念的理解: 1.    语音接口:提供模拟中继及用户线的接入与处理,实现语音信号在数据网路中的传输. 2.    语音信令:用来控制电路行为,如呼叫建立,拆除,网络管理等 3.    语音媒体:描述通讯会话中传递信息,协商等信息 以上拓扑图为例,讨论如下问题: 实验环境中的接口连接,如上图 接口及dial-peer配置 信令行为 FXO口的"吃号"问题 FXS口的位间超时问题 ConnectionPlar opx 在FXO/FXS的应用

常见计算机英语单词

1. file n. 文件:v. 保存文件 2. command n. 命令指令 3. use v. 使用用途 4. program n. 程序 5. line n. (数据程序)行线路 6. if conj. 如果 7. display vt. 显示显示器 8. set v. 设置n. 集合 9. key n. 键关键字关键码 10. list n. 列表显示v. 打印 11. by prep. 凭靠沿 12. press v. 按压 13. with prep. 用与随着 14. forma

hdu4493(C++)

//卡格式的题目 #include<iostream> #include<iomanip>using namespace std;int main(){ int T,i; double money,sum,overage; cin >> T; while (T--){ sum = 0.00; for (i = 0; i < 12; i++){ cin >> money; sum += money; } overage = sum/12; int m =

霍纳法则(Horner&#39;s rule)

卡在hdu 1402 的高精度乘法了,要用FFT(快速傅里叶变换),然后看到了这个霍纳法则,顺便就写下来了. 霍纳法则:求多项式值的一个快速算法. 简单介绍: 假设有n+2个数 , a0,a1,a2,a3,--an 和x组成的一个多项式,形式如下:   a0*x^0+a1*x^1+a2*x^2+a3*x^3+--an*x^n   ,通常都是一项一项的求和然后累加,这样的话要进行n* (n+1)/2 次乘法运算 和 n 次加法运算 , 而霍纳法则就是一个改进的一个算法.通过变换得到如下式子: ((

[jzoj]3456.【NOIP2013模拟联考3】恭介的法则(rule)

Link https://jzoj.net/senior/#main/show/3456 Description 终于,在众亲们的奋斗下,最终boss 恭介被关进了库特设计的密室.正当她们松了一口气时,这个世界却发生了天翻覆地的变化:地面开始下沉,天空开始变成血红色,海水沸腾……一幅世界末日的图景.美鱼从她手中的古籍<若山牧水诗歌集>中发现了原因:白鸟は かなしからずや 空の青 海のあをにも 染まずただよふ .大(xia)意(shuo)就是狡猾的恭介在创造这个世界的时候就篡改了法则.而这个法则

右左法则----复杂指针解析

核心提示:因为C语言所有复杂的指针声明,都是由各种声明嵌套构成的.如何解读复杂指针声明呢?右左法则是一个既着名又常用的方法 因为C语言所有复杂的指针声明,都是由各种声明嵌套构成的.如何解读复杂指针声明呢?右左法则是一个既着名又常用的方法.不过,右左法 则其实并不是C标准里面的内容,它是从C标准的声明规定中归纳出来的方法.C标准的声明规则,是用来解决如何创建声明的,而右左法则是用 来解决如何辩识一个声明的,两者可以说是相反的.右左法则的英文原文是这样说的: The right-left rule:

char (*(*p[3])( int ))[5] 等等一系列 左右法则

看这个: C指针声明解读之左右法则C语言所有复杂的指针声明,都是由各种声明嵌套构成的.如何解读复杂指针声明呢?右左法则是一个既著名又常用的方法.不过,右左法则其实并不是C标准里面的内容,它是从C标准的声明规定中归纳出来的方法.C标准的声明规则,是用来解决如何创建声明的,而右左法则是用来解决如何辩识一个声明的,两者可以说是相反的.右左法则的英文原文是这样说的:  The right-left rule: Start reading the declaration from the innermos

OC4_内存管理法则

// // Dog.h // OC4_内存管理法则 // // Created by zhangxueming on 15/6/18. // Copyright (c) 2015年 zhangxueming. All rights reserved. // #import <Foundation/Foundation.h> @interface Dog : NSObject @end // // Dog.m // OC4_内存管理法则 // // Created by zhangxueming

Firewall Rule Properties Page: Advanced Tab

Applies To: Windows 7, Windows Server 2008 R2 Use this tab to configure the profiles and interface types to which this firewall rule will be applied. To get to this tab In the Windows Firewall with Advanced Security MMC snap-in, in either Inbound Rul