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時都有inboundoutbound
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 能看到詳細的路由命中方式


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章