zoukankan      html  css  js  c++  java
  • 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的字符解释:


    举例:
    1.1. 将5191xxx转换为1xxx
    此时可以有两个做法,即每条逐一添加:
    Rule 1  /^5191001$/ /1001/ 规则的内容写在//里,第一个//是转换的数字,第二个//是转换后。很明显这个是不行的,会极大的增加设备运算和IT维护工作。
    用转换变量来统一转换:

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

    完整的写法:
    R1(config)#voice translation-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 outgoing OUT-CALL –在dial-peer里调用转换文件OUT-CALL并应用于outgoing方向

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

    R1#test voice translation-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 能看到详细的路由命中方式

  • 相关阅读:
    Trie
    [转]Tarjan应用:求割点/桥/缩点/强连通分量/双连通分量/LCA(最近公共祖先)
    [Bzoj2242]常见数值算法
    JavaScript百炼成仙(记录笔记)
    tcpreplay重放报文,tcpdump能抓到包,应用程序收不到包
    用jquery tools来实现选项卡
    ExtNet第二篇
    线性表最简单的表示
    c语言中线性表基本操作方法
    ExtNet第一篇
  • 原文地址:https://www.cnblogs.com/cyrusxx/p/12824284.html
Copyright © 2011-2022 走看看