本文檔介紹如何確定和定義語音轉換規則。
本文件沒有特定需求。
本文件所述內容不限於特定軟體和硬體版本。
本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除(預設)的組態來啟動。如果您的網路運作中,請確保您瞭解任何指令可能造成的影響。
本文檔中使用的語法為:
| 語法 |
定義 |
| 規則優先順序/match pattern/ /replacement pattern/ |
/ - /分隔整數。 |
| 規則優先順序/match pattern/ /replacement pattern/ |
/ - /分隔整數。 |
此範例將第一次出現的編號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的數字的第一個匹配項。具體來說,可以使用數字指示符的開始和結束。以下範例可證明此情況。
此示例說明如何用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
如果只需要精確數字的匹配項,請同時指定起始和終止數字指示符:
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] |
任意字元範圍或序列 |
| * |
修飾符 — 不匹配或多匹配項 |
| + |
修飾符 — 匹配一個或多個匹配項 |
| ? |
修飾符 — 不匹配或只匹配一次 |
| 萬用字元組合 |
定義 |
| .* |
任何單個字元,後跟不出現或多次。這表示它可以匹配空字串、單個字元或許多字元的序列(預設情況下,換行字元除外)。 |
| .+ |
任何單個字元後跟一個或多個匹配項。預設情況下,除換行字元外。 |
| ^$ |
無數字,空值 |
此範例將任何以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
此示例使用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
此示例使用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
此範例將以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/
集合1:12
集合2:45
忽略:3
router#test voice translation-rule 1 12345 Matched with rule 1 Original number: 12345 Translated number: 61245
您可以將匹配限製為特定編號或計畫型別。此外,還可以修改替換計畫或型別。
在本例中,如果數字以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)刪除國內和國際號碼的接入代碼時,此功能非常有用。您可以新增正確的字首,並以號碼型別為基礎。
此示例更改號碼型別和計畫。
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
使用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: .. 2位
替換語句指定集合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
| 修訂 | 發佈日期 | 意見 |
|---|---|---|
4.0 |
29-May-2026
|
重新認證 |
2.0 |
13-Nov-2023
|
已更新格式設定和拼寫。 |
1.0 |
10-Aug-2004
|
初始版本 |