在通过PSTN重新路由调用时使用正则表达式
正则表达式的真正强大之处在于以更复杂的方式使用它们。一种常见的用法是,通常会通过IP WAN的内部呼叫必须在PSTN上重新路由。您必须从被调用的号码中删除任何私有编号(如站点代码),并将其格式化以便在PSTN上使用。
在示例10-4中,一家公司在美国马里兰州有两个地点。一个站点代码是758,另一个站点代码是759。号码内的余数是实际电话号码的最后七位数。在国家编号计划中,这两个地方的区号都是410。要通过PSTN将办公室内的呼叫路由到这些位置,必须将长途代码和区号替换为现场代码。在本例中,前4个数字被转换为1410年,但数量的剩余部分保持不变。
示例10-4使用正则表达式:替换数字
博伊西(配置)#声音translation-rule 2博伊西(CFG-翻译规则)#规则1/ ^75[89]\(.*\)/ /1410\1/博伊西#博伊西#测试语音翻译规则2 7591234567匹配规则1原号码:7591234567翻译号码:14101234567
要理解正则表达式,请将其分解为各个组成部分,并分别解释每个部分。将规则1的匹配部分分解为其组成部分:
^ 75是文字符号。插入符号(^)指定字符串的开头。这一点也不逊色于用开头的字符串7和之后是5。
[89]匹配文字字符8或9。方括号告诉路由器只匹配表达式中包含的一个数字。
在\ (. * \),反斜杠将括号从文字字符更改为设置分隔符。集合内的字符是。*,它匹配任何重复零次或多次的字符。
下面的列表将规则的替换部分分解为其组成部分:
1410替换初始文字字符。
在里面\ 1表达式的一部分,反斜线改变数字1的含义它不再是文字数,相反,它指向在规则的匹配的部分的第一组。第一组是(. *)。因此,任何匹配的设定位被插入后1410。
当您的网关重新路由到PSTN的内部调用时,它可能需要添加数字而不是替换站点代码。实现这一点的一种方法是创建多个拨号对等点,每个对等点都有一个远程站点的目标模式,然后是前缀数字。如果对多个位置的PSTN调用将发出相同的PRI,网关可以通过使用一组在一个翻译配置文件下分组的语音翻译规则更有效地完成这一点。例如,假设您的公司在MPLS WAN上的三个内部站点之间使用七位数拨号。一个站点对你来说是本地的,但是你的电话公司在本地使用十位数拨号。另外两个站点是long distance。您将需要在本地站点的被叫号码以及其他站点的适当长途和区号上再添加三个数字。原始的七位数必须保持不变。
示例10-5显示了语音转换规则来完成这项在美国三个站点。雷竞技比分在本地站点号码与789开始,与在一个远程站点410号码的区域码与123开始,用212区域码,和其他站点始于456与617.长途区号代码为1还示出在该示例中是下一个语音翻译轮廓分组的转换规则;这可以被应用到POTS拨号对等体指向PRI。该节“创建语音翻译配置文件,”在本章的后面,更详细覆盖的语音翻译文件。
示例10-5使用正则表达式:前缀数字
VoiceGW(配置)#声音translation-rule 15VoiceGW (cfg-translation-rule) #规则1 /^789/ /410&/VoiceGW (cfg-translation-rule) #规则2 /^123/ /1212&/VoiceGW (cfg-translation-rule) #规则3 /^456/ /1617&/!VoiceGW(配置)#语音翻译瞩目的TO-PSTN#翻译呼叫15 !VoiceGW #测试语音翻译规则15 7891234匹配规则1原号码:7891234翻译号码:4107891234原号码类型:无翻译号码类型:无原号码计划:无翻译号码计划:无语音留言#测试语音翻译规则15 1234567再配规则2原件编号:1234567转换的号码:12121234567原号码类型:无翻译号码类型:无原始的号码计划:无转换的号码计划:无VoiceGW#测试语音翻译规则15 4561111匹配规则3原号码:4561111翻译号码:16174561111原号码类型:无翻译号码类型:无原号码计划:无翻译号码计划:无
将规则1的匹配部分分解为其组成部分:
^789指定文字字符789在字符串的开头。它匹配以。开头的任意数字的任何字符串789所以它会匹配整个七位被叫号码。
将规则1的替换部分分解为其组成部分:
410告诉路由器放置位410在替换字符串的开头。
&(& and)将所有匹配的数字提取到替换字符串中。
其他两个规则背后的逻辑与规则1相同。
使用正则表达式来删除特定位数
一个在马里兰州的公司位置,美国有连接到它的几个用户的遗留PBX。在其他公司网站的用户拨打的站点代码758到达这个位置,然后是一个七位数。PBX用户的七位数从4445。PBX被编程以期望收到一个由站点代码和电话号码的后四位数字组成的呼入号码。所以你必须保留网站代码,删除后面的三位数字(444),并保持最后四位数字。
在实施例10-6,语音翻译规则3通过将站点代码设置为一组,将后四个数字设置为另一组,但将中间的字符串设置为444任何套。然后,它告诉路由器创建仅由两组字符串。
示例10-6使用正则表达式:删除数字
博伊西(配置)#声音translation-rule 3博伊西(CFG-翻译规则)#规则1 /^\(758\)444\(5…\)$/ /\1\2/!博伊西#测试语音翻译规则1 7584445111匹配规则1原码:7584445111译码:7585111
将规则的匹配部分分解为其组件部分
^ \ (758 \)创建一组包含字符串758在数字串的开始。插入符号表示字符串的开始,反斜杠改变括号的含义从字面字符集分隔符。
444指定3个字面数四肢
后四位数字被组合成第二个集合\(…\ 5日)。这套任何四个数字的字符串的结尾相匹配,如果他们的数量开始5。字符串的末尾由字符指定美元。
将规则的替换部分分解为其组成部分
在表达\ 1时,反斜杠更改数字1从一个文字字符。在转换后的数字中,它被替换为第一个集合的内容-758。
表达方式\ 2分在第二组。在转换的号码,它被替换为第二组,在该示例中,字符串的内容5111。
使用带有集合和替换数字的正则表达式
注意在示例10-6中,的中间字符串444不包括在替换模式中。假设规则被更改为包含该字符串的替换项,如示例10-7所示。现在翻译的数字匹配这三个4,并将它们替换为三个7。
示例10-7使用正则表达式:使用集合替换数字
博伊西(配置)#声音translation-rule 4博伊西(CFG-翻译规则)#规则1 /^ ^\(758\)444\(5…\)$/ /\1777\2/博伊西#测试语音翻译规则4 7584445111再配规则1原件编号:7584445111转换的号码:7587775111
将规则的匹配部分分解为其组件部分
^ \ (758 \)创建一组包含字符串758在数字串的开始。插入符号表示字符串的开始,反斜杠改变括号的含义从字面字符集分隔符。
444指定三个字面值四。
后四位数字被组合成第二个集合\(…\ 5日)。这套任何四个数字的字符串的结尾相匹配,如果他们的数量开始5。字符串的末尾由字符指定美元。
这个等式的替换部分可能看起来令人困惑,因为它的三个组件之间没有视觉上的中断,所以理解路由器如何解释它是很重要的。将规则的替换部分分解为其组成部分
在表达\ 1时,反斜杠更改数字1从一个文字字符。在转换后的数字中,它被替换为第一个集合的内容-758。
接下来的三位,777是替换词的字面意思444。
表达方式\ 2分在第二组。在转换的号码,它被替换为第二组,在该示例中,字符串的内容5111。
使用正则表达式来更改呼叫类型或编号方案
您还可以匹配和替换呼叫类型,如国内或国际呼叫,以及编号计划,如ISDN或国内呼叫。例如,示例10-8中的命令替换了字符串011与1并更改呼叫类型,从国际到全国。
示例10-8使用正则表达式:更改调用类型和编号计划
博伊西(配置)#声音translation-rule 4博伊西(CFG-翻译规则)#规则1/ ^011/ /1/ type international national plan isdn national!博伊西#测试语音翻译规则4 0115551212类型国际计划isdn匹配规则1原号码:0115551212翻译号码:15551212原号码类型:国际翻译号码类型:国家原号码方案:isdn翻译号码方案:国家
在本例中,匹配和替换表达式遵循一种略有不同的模式。这个表达式有三个组成部分:
在第一个分量中,/ / 1 / / ^ 011, 数字011在字符串的开始被替换为数字1。
第二部分,国际型国家,替换编号类型国际与国家。
第三个组件,计划ISDN国家,取代的编号方案isdn与一个国家编号计划。
要使调用与规则匹配,它必须满足所有条件。在这种情况下,呼叫必须从011,具有...的类型值国际,且计划值为isdn。如果没有匹配这些值中的任何一个,该规则将不处理调用。
创建语音翻译简介
语音翻译规则与语音翻译配置文件相关联。使用语音翻译配置文件允许使用多个语音翻译规则,从而为您提供灵活性和可伸缩性。您可以在同一个配置文件中对被呼叫的号码、呼叫的号码和重定向的号码应用语音翻译规则。语音翻译配置文件通常与拨号对等点、语音端口、中继线组或全球所有VoIP呼叫相关联。
创建一个翻译个人资料并与命令输入个人配置模式语音翻译瞩目的名字。然后指定要转换的数字类型,以及应用于该数字的规则。示例10-9显示了一个示例翻译配置文件。
示例10-9创建翻译配置文件
博伊西(配置)#声音translation-profile测试博伊西(cfg-translation-profile) #翻译?被叫号码呼叫翻译规则被叫号码重新直接呼叫翻译规则被叫号码重新直接呼叫规则!博伊西(cfg-translation-profile) #翻译叫2博伊西(cfg-translation-profile) #翻译调用3博伊西(cfg-translation-profile) #翻译重定向所谓1
例10-9中,翻译规则2应用于被调用的数字,翻译规则3应用于调用数字,翻译规则1应用于重定向数字。如果合适,可以对每种类型的数字应用相同的翻译规则。
应用语音翻译配置文件
创建语音翻译配置文件后,可以将其分配给拨号对等点、语音端口、中继线组或全球所有VoIP呼叫。语音翻译配置文件的应用将影响入站和出站拨号对等点的匹配。应用于语音端口的配置文件在入站拨号对等端被匹配之前执行。应用于入站拨号对等点的配置文件在出站拨号对等点匹配之前执行。应用于出站拨号对等点的配置文件在呼叫传输之前执行。在放置您的语音配置文件和配置拨号对等点时,请务必考虑到这一点。