目錄

簡介

必要條件

需求

採用元件

慣例

背景資訊

簡單匹配和替換

範例 1

範例 2

範例 3

使用萬用字元的模式匹配

範例 1

範例 2

範例 3

範例 4

數字切片

通用示例

相關範例

編號型別和計畫

範例 1

範例 2

拒絕呼叫

應用規則

其他示例

將數字截斷到最後兩位

刪除號碼中的不需要的數字

相關資訊

簡介

本文檔介紹如何確定和定義語音轉換規則。

必要條件

需求

本文件沒有特定需求。

採用元件

本文件所述內容不限於特定軟體和硬體版本。

本文中的資訊是根據特定實驗室環境內的裝置所建立。文中使用到的所有裝置皆從已清除（預設）的組態來啟動。如果您的網路運作中，請確保您瞭解任何指令可能造成的影響。

慣例

如需檔案慣例的相關資訊，請參閱思科技術提示慣例。

背景資訊

本文檔中使用的語法為：

語法

定義

規則優先順序/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/

- 集合1:12

- 集合2:45

- 忽略：3

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

相關資訊

- 媒體網關中的語音轉換規則

- Rule（語音轉換 — 規則） Cisco IOS語音指令

- Cisco IP電話故障排除（Amazon手冊）

- 技術支援與文件 - Cisco Systems