簡介
本文檔介紹如何確定和定義語音轉換規則。
必要條件
需求
本文件沒有特定需求。
採用元件
本文件所述內容不限於特定軟體和硬體版本。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
慣例
如需檔案慣例的相關資訊,請參閱思科技術提示慣例。
背景資訊
本文檔中使用的語法為:
語法 |
定義 |
規則優先順序/match pattern/ /replacement pattern/ |
/ - /分隔整數。 |
規則優先順序/match pattern/ /replacement pattern/ |
/ - /分隔整數。 |
簡單匹配和替換
範例 1
此範例將第一次出現的編號123替換為456。
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
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
此示例說明如何用456替換數字開頭的任何出現123。
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
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] |
任意字元範圍或序列 |
* |
修飾符 — 不匹配或多匹配項 |
+ |
修飾符 — 匹配一個或多個匹配項 |
? |
修飾符 — 不匹配或只匹配一次 |
萬用字元組合 |
定義 |
.* |
任何數字,後跟不出現或出現多個數字。這包括null或任何其他數字。 |
.+ |
任何數字,後跟不出現或出現多個數字。這包括null或任何其他數字。 |
^$ |
無數字,空值 |
範例 1
此範例將任何以40開頭的五位數字替換為數字6666000。
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替換除null之外的所有數字。
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
此範例將以0(0、00等)的組合開頭的任何數字替換為909。
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/
將匹配數拆分為三組x、y和z。反斜槓(\)指示要對數字進行切分的位置。方括弧()指示要在替換模式中重用的集合。Thw表示要插入替換號碼的附加數字。
-
集1變成表達式。
-
集合2變為表達式。
-
表達式被忽略。
替換編號是一個串聯編號:wxz。
相關範例
此範例提供進一步的詳細資訊:
voice translation-rule 1
rule 1 /^\(12\)3\(45\)$/ /6\1\2/
router#test voice translation-rule 1 12345
Matched with rule 1
Original number: 12345 Translated number: 61245
編號型別和計畫
您可以將匹配限製為特定編號或計畫型別。此外,還可以修改替換計畫或型別。
範例 1
在本例中,如果數字以4開頭,並且型別為national,則規則會將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
當電話公司(Telcos)刪除國內和國際號碼的接入代碼時,此功能非常有用。您可以新增正確的字首,並以號碼型別為基礎。
範例 2
此示例更改號碼型別和計畫。
voice translation-rule 8
rule 1 /^2\(...$\)/ /01779345\1/ type unknown national plan unknown isdn
此規則匹配任何以2開頭的四位數字。規則將刪除2,將數字01779345加為字首,並將計畫設定為isdn,將型別設定為national。
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
拒絕呼叫
使用rejectkeyword拒絕匹配的呼叫。此範例會拒絕所有以「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: .. 2位
替換語句指定Set 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
刪除號碼中的不需要的數字
此示例非常有用,因為已知某些Telcos將連字元插入主叫方號碼。由於這是違反標準的,因此會導致忽略主叫方號碼。Telco以兩種格式傳送呼叫號碼,一種為連字元,有時為兩種。語音轉換規則需要兩個規則。此外,第一個格式可以在連字元後有五或六個數字。您可以用包含「?」字元的一個規則匹配這兩個條件(不匹配或只匹配一次)。
特殊字元:
-
連字元用於表示匹配模式中的範圍,例如[0-9]。要在此規則中指示要在連字元上匹配,必須使用「\」字元轉義其含義。這是因為連字元是特殊字元。「\ — 」字元實際上表示連字元。結尾「\」表示在此對數字進行切片。
-
如果您直接輸入?,Cisco IOS®會認為這是在請求幫助。您必須鍵入Control-Vthen?。
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
相關資訊