03-拨号策略配置
本章节下载: 03-拨号策略配置 (570.10 KB)
目 录
拨号策略提供对号码的统一管理,满足各种拨号方案需求,提升业务灵活性和号码管理的合理性和可操作性。
表1-1 拨号策略配置任务简介
配置任务 |
说明 |
详细配置 |
配置主叫限制 |
可选 |
|
配置呼叫权限分组控制 |
可选 |
|
配置专线自动振铃功能 |
可选 |
|
配置号码匹配策略 |
可选 |
|
配置最大呼叫连接数 |
可选 |
|
配置号码变换 |
可选 |
|
配置语音实体的优先级 |
可选 |
|
配置语音实体的选取规则顺序 |
可选 |
|
配置发送号码的控制方式 |
可选 |
|
配置电话号码前缀 |
可选 |
主叫限制功能通过caller-permit命令设置仅允许符合条件的主叫号码进行呼叫。根据用户的组网需求,可以在主叫或被叫侧设备上配置caller-permit命令。在主叫侧配置该命令,表示在主叫侧进行呼出限制;在被叫侧配置该命令,表示在被叫侧进行呼入限制。
表1-2 配置允许呼出或呼入的主叫号码模板
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入语音视图 |
voice-setup |
- |
进入语音拨号策略视图 |
dial-program |
- |
创建语音实体,并进入语音实体视图 |
entity entity-number { ivr | pots | voip } |
- |
配置允许呼出/呼入的主叫号码模板 |
caller-permit calling-string |
缺省情况下,不存在允许呼出/呼入的主叫号码模板,即对呼叫不做任何限制 calling-string的格式为{ [ + ] string [ $ ] }| $,符号的具体含义请参见“语音命令参考”中的“拨号策略” |
图1-1 主叫限制配置举例图
配置主叫限制功能,要求只有主叫1000可以呼叫被叫2000。可以选用以下两种方法配置,任选其一即可。
(1) 在主叫侧Router A上配置呼出限制
<RouterA> system-view
[RouterA] voice-setup
[RouterA-voice] dial-program
# 配置VoIP语音实体,仅允许主叫号码1000呼出。
[RouterA-voice-dial] entity 2000 voip
[RouterA-voice-dial-entity2000] match-template 2000
[RouterA-voice-dial-entity2000] address sip ip 1.1.1.2
[RouterA-voice-dial-entity2000] caller-permit 1000$
(2) 在被叫侧Router B上配置呼入限制
<RouterB> system-view
[RouterB] voice-setup
[RouterB-voice] dial-program
# 配置POTS语音实体,仅允许主叫号码1000呼入。
[RouterB-voice-dial] entity 2000 pots
[RouterB-voice-dial-entity2000] match-template 2000
[RouterB-voice-dial-entity2000] caller-permit 1000$
[RouterB-voice-dial-entity2000] line 2/1/1
呼叫权限分组控制先将用户号码进行分组,具有相同呼叫权限的号码归为同一用户组,然后将用户组绑定到指定的语音实体。根据用户的组网需求,可以在主叫或被叫侧设备上应用呼叫权限分组控制功能。在主叫侧应用该功能,表示在主叫侧进行呼出权限分组控制;在被叫侧应用该功能,表示在被叫侧进行呼入权限分组控制。该功能通常应用于主叫侧设备上。
以呼出权限分组控制为例,某一个用户发起一路呼叫匹配到某一语音实体,如果该语音实体下已经绑定了用户组,则需要将此用户的主叫号码和用户组中的主叫号码模板进行匹配,如果主叫号码满足呼出权限的要求(即能够匹配用户组中的主叫号码模板),则允许/拒绝呼出,否则继续查找下一个匹配的语音实体,直到最后呼叫成功或失败。
表1-3 配置用户组的号码模板
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入语音视图 |
voice-setup |
- |
进入语音拨号策略视图 |
dial-program |
- |
创建一个用户组,并进入用户组视图 |
subscriber-group group-id |
缺省情况下,不存在用户组 在设备上最多可以创建10个用户组 |
(可选)配置用户组的描述信息 |
description text |
缺省情况下,未配置用户组的描述信息 |
配置用户组的主叫号码模板 |
match-template match-string |
缺省情况下,未配置用户组的主叫号码模板 一个用户组下可以配置多个主叫号码模板 |
表1-4 将用户组绑定到指定的语音实体
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入语音视图 |
voice-setup |
- |
进入语音拨号策略视图 |
dial-program |
- |
创建语音实体,并进入语音实体视图 |
entity entity-number { ivr | pots | voip } |
- |
将用户组绑定到指定的语音实体 |
caller-group { deny | permit } group-id |
缺省情况下,语音实体下没有绑定用户组,即允许任意主叫号码呼出/呼入 |
配置专线自动振铃功能后,用户摘机后不需要做任何拨号操作,设备会将string作为被叫号码自动拨出。
表1-5 配置专线自动振铃功能
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入语音用户线视图 |
subscriber-line line-number |
- |
配置并开启专线自动振铃功能 |
private-line string |
缺省情况下,专线自动振铃功能处于关闭状态 |
number-match命令用来决定在匹配号码时是按照最长号码匹配,还是按照最短号码匹配。例如,在两个语音实体中分别配置match-template 0106688和match-template 01066880011。
当用户拨打电话01066880011时:
· 如果配置使用最短号码匹配策略,则会匹配match-template 0106688,即设备向被叫号码0106688发起呼叫。
· 如果配置使用最长号码匹配策略,则会匹配match-template 01066880011,即设备向被叫号码01066880011发起呼叫。
当用户拨打电话0106688时:
· 如果配置使用最短号码匹配策略,则在用户拨号后立即匹配match-template 0106688。
· 如果配置使用最长号码匹配策略,设备会继续等待用户拨号,拨号超时后,将收到的号码与号码模板进行匹配,匹配成功,则发起呼叫,匹配失败,则释放呼叫。
当用户拨打电话0106688#时,如果配置使用最长号码匹配策略,又配置拨号终结符“#”,设备会忽略已经配置的最长号码匹配策略,将收到的号码与号码模板进行匹配,匹配成功,则发起呼叫,匹配失败,则释放呼叫。
表1-6 配置号码匹配策略
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入语音视图 |
voice-setup |
- |
进入语音拨号策略视图 |
dial-program |
- |
配置号码匹配策略 |
number-match { longest | shortest } |
缺省情况下,使用最短号码匹配策略 |
拨号终结符用来表示拨号已经结束,设备接收到这个符号就会根据所拨的号码发起呼叫,即使配置使用最长号码匹配策略,也不会再等待。
表1-7 配置拨号终结符
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入语音视图 |
voice-setup |
- |
进入语音拨号策略视图 |
dial-program |
- |
配置拨号终结符 |
terminator character |
缺省情况下,未配置拨号终结符 |
图1-2 号码匹配策略配置举例图
Telephone A采用不同号码匹配策略拨打Telephone B或Telephone C,情况如下。
(1) 使用最短号码匹配策略
· 配置Router A
<RouterA> system-view
[RouterA] voice-setup
[RouterA-voice] dial-program
# 配置POTS语音实体。
[RouterA-voice-dial] entity 1000 pots
[RouterA-voice-dial-entity1000] match-template 10001234$
[RouterA-voice-dial-entity1000] line 2/1/1
[RouterA-voice-dial-entity1000] quit
# 配置VoIP语音实体。
[RouterA-voice-dial] entity 2000 voip
[RouterA-voice-dial-entity2000] match-template 20001234$
[RouterA-voice-dial-entity2000] address sip ip 1.1.1.2
[RouterA-voice-dial-entity2000] quit
[RouterA-voice-dial] entity 2001 voip
[RouterA-voice-dial-entity2001] match-template 200012341234$
[RouterA-voice-dial-entity2001] address sip ip 1.1.1.2
[RouterA-voice-dial-entity2001] quit
· 配置Router B
<RouterB> system-view
[RouterB] voice-setup
[RouterB-voice] dial-program
# 配置POTS语音实体。
[RouterB-voice-dial] entity 2000 pots
[RouterB-voice-dial-entity2000] match-template 20001234$
[RouterB-voice-dial-entity2000] line 2/1/1
[RouterB-voice-dial-entity2000] quit
[RouterB-voice-dial] entity 2001 pots
[RouterB-voice-dial-entity2001] match-template 200012341234$
[RouterB-voice-dial-entity2001] line 2/1/2
Telephone A拨打20001234时,由于设备缺省情况下使用最短号码匹配策略,所以号码20001234会匹配上VoIP语音实体2000,Telephone B振铃。
(2) 使用最长号码匹配策略
# 在Router A上配置采用最长号码匹配策略,其他步骤不变。
[RouterA-voice-dial] number-match longest
Telephone A拨打20001234时,在等待一段时间后(在这段时间里可以继续拨号),拨出的号码20001234才会匹配上VoIP语音实体2000,Telephone B振铃。
如果在等待一段时间中继续拨1234,即实际拨出的号码是200012341234,那么VoIP语音实体2001被匹配,Telephone C振铃。
(3) 使用拨号终结符
# 在Router A上配置使用最长号码匹配策略和拨号终结符#,其他步骤不变。
[RouterA-voice-dial] number-match longest
[RouterA-voice-dial] terminator #
Telephone A拨打20001234#后,立即匹配VoIP语音实体2000,Telephone B振铃。
根据网络规模实际需求,用户可以对指定语音实体的呼叫连接总数进行限制。设备通过比较配置的最大呼叫连接数和通过该语音实体已建立的呼叫连接数,来决定是否可以通过这些语音实体建立新的呼叫。
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入语音视图 |
voice-setup |
- |
进入语音拨号策略视图 |
dial-program |
- |
进入语音实体视图 |
entity entity-number { ivr | pots | voip } |
- |
配置最大呼叫连接数 |
max-conn max-number |
缺省情况下,没有配置最大呼叫连接数,即不对呼叫连接数进行限制 |
根据网络要求,用户可以先配置号码变换规则表,并定义具体的号码变换规则。用户可以在全局、语音实体、语音用户线上应用这些变换规则,实现号码变换。
号码变换匹配过程如下:
(1) 首先匹配首选变换规则,如果匹配成功,则按照该规则进行号码变换。
(2) 如果匹配不成功,则顺序匹配其它号码变换规则,只要有一个匹配成功,就停止继续匹配其它号码变换规则。
无论是全局号码变换、语音实体的号码变换还是语音用户线的号码变换,均只对号码进行一次变换。
主叫侧号码变换流程图如图1-3所示。
(1) 主叫侧设备首先根据语音用户线上配置的号码变换规则,对该语音用户线上的主/被叫号码进行号码变换。
(2) 主叫侧设备根据全局号码变换规则,对主/被叫号码进行号码变换。
(3) 主叫侧设备选择可以匹配的呼叫入实体,并根据呼叫入实体的号码变换规则对主/被叫号码进行号码变换。
(4) 主叫侧设备选择可以匹配的呼叫出实体,并根据呼叫出实体的号码变换规则对主/被叫号码进行号码变换。
(5) 主叫侧设备向被叫发起呼叫。
被叫侧号码变换流程图如图1-4所示。
(1) 被叫侧设备接收到呼叫后,根据全局号码变换规则,对呼入的主/被叫号码进行号码变换。
(2) 被叫侧设备选择可以匹配的呼叫入实体,并根据呼叫入实体的号码变换规则对主/被叫号码进行号码变换。
(3) 被叫侧设备选择可以匹配的呼叫出实体,并根据呼叫出实体的号码变换规则对主/被叫号码进行号码变换。
(4) 如果被叫是本地语音用户线,则直接接通被叫。如果被叫在PSTN网络中,则向PSTN发起呼叫,由PSTN中的设备接通被叫。
表1-9 配置全局号码变换
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入语音视图 |
voice-setup |
- |
进入语音拨号策略视图 |
dial-program |
- |
创建号码变换规则表,并进入语音号码变换视图 |
number-substitute list-number |
缺省情况下,不存在号码变换规则表 |
配置点号“.”的匹配规则 |
dot-match { end-only | left-right | right-left } |
缺省情况下,点号“.”的匹配规则为end-only |
配置号码变换规则 |
rule id input-template output-template [ number-type input-number-type output-number-type | numbering-plan input-numbering-plan output-numbering-plan ] * |
缺省情况下,未配置任何号码变换规则 |
(可选)配置号码变换表首先使用的号码变换规则ID |
first-rule id |
缺省情况下,没有配置首先使用的号码变换规则ID |
退回语音拨号策略视图 |
quit |
- |
将号码变换规则表绑定到入局/出局呼叫的主/被叫号码 |
substitute { incoming-call | outgoing-call } { called | calling } list-number |
缺省情况下,未绑定号码变换规则表,即不进行号码变换 |
表1-10 配置语音实体号码变换
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入语音视图 |
voice-setup |
- |
进入语音拨号策略视图 |
dial-program |
- |
创建号码变换规则表,并进入语音号码变换视图 |
number-substitute list-number |
缺省情况下,不存在号码变换规则表 |
配置点号“.”的匹配规则 |
dot-match { end-only | left-right | right-left } |
缺省情况下,点号“.”的匹配规则为end-only |
配置号码变换规则 |
rule id input-template output-template [ number-type input-number-type output-number-type | numbering-plan input-numbering-plan output-numbering-plan ] * |
缺省情况下,未配置任何号码变换规则 |
(可选)配置号码变换表首先使用的号码变换规则ID |
first-rule id |
缺省情况下,没有配置首先使用的号码变换规则ID |
退回语音拨号策略视图 |
quit |
- |
进入语音实体视图 |
entity entity-number { ivr | pots | voip } |
- |
将号码变换规则表绑定到指定语音实体 |
substitute { called | calling } list-number |
缺省情况下,未绑定号码变换规则表,即不进行号码变换 |
表1-11 配置语音用户线号码变换
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入语音视图 |
voice-setup |
- |
进入语音拨号策略视图 |
dial-program |
- |
创建号码变换规则表,并进入语音号码变换视图 |
number-substitute list-number |
- |
配置点号“.”的匹配规则 |
dot-match { end-only | left-right | right-left } |
缺省情况下,点号“.”的匹配规则为end-only |
配置号码变换规则 |
rule rule-tag input-number output-number [ number-type input-number-type output-number-type | numbering-plan input-numbering-plan output-numbering-plan ] * |
缺省情况下,未配置任何号码变换规则 |
(可选)配置号码变换表首先使用的号码变换规则ID |
first-rule rule-number |
缺省情况下,没有配置首先使用的号码变换规则ID |
退回语音拨号策略视图 |
quit |
- |
退回语音视图 |
quit |
- |
退回系统视图 |
quit |
- |
进入语音用户线视图 |
subscriber-line line-number |
- |
将号码变换规则表绑定到指定语音用户线 |
substitute { called | calling } list-number |
缺省情况下,未绑定号码变换规则表,即不进行号码变换 |
图1-5 号码变换组网图
使用全局号码变换对被叫号码进行变换。
在Router A上进行如下配置:
<RouterA> system-view
[RouterA] voice-setup
[RouterA-voice] dial-program
# 创建号码变换规则表1,并配置号码变换规则。
[RouterA-voice-dial] number-substitute 1
[RouterA-voice-dial-substitute1] rule 0 ^010....$ ....
[RouterA-voice-dial-substitute1] quit
# 配置VoIP语音实体,呼叫目的IP地址为1.1.1.2,被叫号码模板为1001。
[RouterA-voice-dial] entity 1001 voip
[RouterA-voice-dial-entity1001] address sip ip 1.1.1.2
[RouterA-voice-dial-entity1001] match-template 1001
[RouterA-voice-dial-entity1001] quit
# 配置将号码变换规则表1绑定到出局呼叫的被叫号码。
[RouterA-voice-dial] substitute outgoing-call called 1
Telephone A拨打0101001后,号码能够匹配全局号码变换,变换后的被叫号码1001会匹配上VoIP语音实体1001,Telephone B振铃。
使用语音实体变换对被叫号码进行变换。
在Router A上进行如下配置:
<RouterA> system-view
[RouterA] voice-setup
[RouterA-voice] dial-program
# 创建号码变换规则表1,并配置号码变换规则。
[RouterA-voice-dial] number-substitute 1
[RouterA-voice-dial-substitute1] rule 0 ^010....$ ....
[RouterA-voice-dial-substitute1] quit
# 配置VoIP语音实体,呼叫目的IP地址为1.1.1.2,被叫号码模板为0101001。
[RouterA-voice-dial] entity 1001 voip
[RouterA-voice-dial-entity1001] address sip ip 1.1.1.2
[RouterA-voice-dial-entity1001] match-template 0101001
# 配置将号码变换规则表1绑定到语音实体,表示先进行语音实体匹配,然后对被叫号码应用号码变换。
[RouterA-voice-dial-entity1001] substitute called 1
Telephone A拨打0101001后,号码匹配到语音实体,语音实体下的号码变换将被叫号码0101001变换为1001,Telephone B振铃。
使用语音用户线对被叫号码进行变换。
在Router A上进行如下配置:
<RouterA> system-view
[RouterA] voice-setup
[RouterA-voice] dial-program
# 创建号码变换规则表1,并配置号码变换规则。
[RouterA-voice-dial] number-substitute 1
[RouterA-voice-dial-substitute1] rule 0 ^010....$ ....
[RouterA-voice-dial-substitute1] quit
# 配置VoIP语音实体,呼叫目的IP地址为1.1.1.2,被叫号码模板为1001。
[RouterA-voice-dial] entity 1001 voip
[RouterA-voice-dial-entity1001] address sip ip 1.1.1.2
[RouterA-voice-dial-entity1001] match-template 1001
[RouterA-voice-dial-entity1001] quit
[RouterA-voice-dial] quit
[RouterA-voice] quit
# 配置将号码变换规则表1绑定到语音用户线,对被叫号码应用号码变换。
[RouterA] subscriber-line 2/1/1
[RouterA-voice-line2/1/1] substitute called 1
Telephone A拨打0101001后,进行语音用户线上的号码变换,变换后的被叫号码1001会匹配上VoIP语音实体1001,Telephone B振铃。
当存在多个相同的号码模板时,优先级高的语音实体会被优先匹配。
表1-12 配置语音实体的优先级
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入语音视图 |
voice-setup |
- |
进入语音拨号策略视图 |
dial-program |
- |
进入语音实体视图 |
entity entity-number { ivr | pots | voip } |
- |
配置语音实体的优先级 |
priority priority |
缺省情况下,优先级别为0 |
当号码能匹配多个语音实体时,设备会根据配置选取规则顺序来选择语音实体。如果应用第一个规则后仍无法区别语音实体优先顺序,就应用第二个选取规则,依此类推。
表1-13 配置语音实体的选取规则顺序
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入语音视图 |
voice-setup |
- |
进入语音拨号策略视图 |
dial-program |
- |
配置语音实体的选取规则顺序 |
entity hunt hunt-number |
缺省情况下,语音实体的选取规则顺序为0,即首先采用精确匹配,其次是语音实体优先级,最后是随机选择 |
设备可以选择如下三种控制方式发送被叫号码。
· 按照配置的号码长度(从号码末尾依次向前提取)发送被叫号码;
· 发送全部被叫号码;
· 按号码截断方式发送被叫号码,即当match-template命令配置的号码中包含点号“.”时,仅发送与点号“.”匹配的号码。
表1-14 配置发送号码的控制方式
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入语音视图 |
voice-setup |
- |
进入语音拨号策略视图 |
dial-program |
- |
进入POTS语音实体视图 |
entity entity-number pots |
- |
配置发送号码的控制方式 |
send-number { digit-number | all | truncate } |
缺省情况下,采用truncate方式发送号码 |
图1-6 发送号码的控制方式组网图
Router A和Router B之间可以通过IP和E1语音接口两种方式连接。在本例中设备两侧的话机使用E1语音接口建立呼叫,先在Route A和Router B上完成如下配置。
在Router A上进行如下配置:
<RouterA> system-view
# 创建使用R2信令的时隙组。
[RouterA] controller e1 2/4/1
[RouterA-E1 2/4/1] timeslot-set 0 timeslot-list 1-31 signal r2
[RouterA-E1 2/4/1] quit
[RouterA] voice-setup
[RouterA-voice] dial-program
# 配置POTS语音实体中的号码模板为010….$,并将数字语音用户线line 2/4/1:0绑定到此POTS语音实体上。
[RouterA-voice-dial] entity 1001 pots
[RouterA-voice-dial-entity1001] match-template 010....$
[RouterA-voice-dial-entity1001] line 2/4/1:0
# 配置POTS语音实体中的本地号码为2000,并将FXS语音用户线line 2/1/1绑定到此POTS语音实体上。
[RouterA-voice-dial] entity 2000 pots
[RouterA-voice-dial-entity2000] match-template 2000
[RouterA-voice-dial-entity2000] line 2/1/1
在Router B上进行如下配置:
<RouterB> system-view
# 创建使用R2信令的时隙组。
[RouterB] controller e1 2/4/1
[RouterB-E1 2/4/1] timeslot-set 0 timeslot-list 1-31 signal r2
[RouterB-E1 2/4/1] quit
# 配置POTS语音实体中的本地号码为01001,并将FXS语音用户线line 2/1/1绑定到此POTS语音实体上。
[RouterB] voice-setup
[RouterB-voice] dial-program
[RouterB-voice-dial] entity 1002 pots
[RouterB-voice-dial-entity1002] match-template 01001
[RouterB-voice-dial-entity1002] line 2/1/1
[RouterB-voice-dial-entity1002] quit
# 配置POTS语音实体中的本地号码为0101001,并将FXS语音用户线line 2/1/2绑定到此POTS语音实体上。
[RouterB-voice-dial] entity 0101001 pots
[RouterB-voice-dial-entity101001] match-template 0101001
[RouterB-voice-dial-entity101001] line 2/1/2
[RouterB-voice-dial-entity101001] quit
# 配置POTS语音实体中的本地号码为1001,并将FXS语音用户线line 2/1/3绑定到此POTS语音实体上。
[RouterB-voice-dial] entity 1001 pots
[RouterB-voice-dial-entity1001] match-template 1001
[RouterB-voice-dial-entity1001] line 2/1/3
[RouterB-voice-dial-entity1001] quit
(1) 按照配置的号码长度发送被叫号码
[RouterA-voice-dial-entity1001] send-number 5
Telephone A拨打0101001后,Router A发送后5位号码,即01001,Telephone B振铃。
(2) 发送全部被叫号码
[RouterA-voice-dial-entity1001] send-number all
Telephone A拨打0101001后,Router A发送全部号码,即0101001,Telephone C振铃。
(3) 按号码截断方式发送被叫号码
[RouterA-voice-dial-entity1001] send-number truncate
Telephone A拨打0101001后,Router A发送与号码中和点号“.”匹配的号码,即1001,Telephone D振铃。
配置号码前缀后,设备以“号码前缀+拨入号码”作为被叫号码。添加号码前缀后,如果号码总长度超过31位时,设备只发送前31位号码。
表1-15 配置号码前缀
操作 |
命令 |
说明 |
进入系统视图 |
system-view |
- |
进入语音视图 |
voice-setup |
- |
进入语音拨号策略视图 |
dial-program |
- |
进入POTS语音实体视图 |
entity entity-number pots |
- |
配置号码前缀 |
dial-prefix string |
缺省情况下,未配置号码前缀 |
A地和B地各有一个由PBX组成的本地电话网,要求实现以下需求:在A地和B地都有财务部、市场部和销售部。B地的区号是021,A地的区号是010。在这些部门中,本地拨打外地的电话,只要知道本地的电话号码和外地区号。例如,B地的财务部电话拨打本地的市场部电话,直接拨3366即可。B地的财务部电话拨打A地的市场部电话,拨0103366即可,而A地的市场部来电显示为0211234,即B地区号+A地财务部电话号码。
在Router A和Router B上配置号码变换功能,Router B负责将被叫号码变换成中间号码。Router A收到的中间号码后,将中间号码变换成本地号码。
以下配置只实现从B地到A地的呼叫的号码变换。
(1) 配置Router B
# 创建号码变换规则表21101,配置如下号码变换规则。
<RouterB> system-view
[RouterB] voice-setup
[RouterB-voice] dial-program
[RouterB-voice-dial] number-substitute 21101
[RouterB-voice-dial-substitute21101] rule 1 ^0101688$ 0001
[RouterB-voice-dial-substitute21101] rule 2 ^0103366$ 0002
[RouterB-voice-dial-substitute21101] rule 3 ^0102323$ 0003
[RouterB-voice-dial-substitute21101] quit
# 创建号码变换规则表21102,配置如下号码变换规则。
[RouterB-voice-dial] number-substitute 21102
[RouterB-voice-dial-substitute21102] rule 1 ^1688$ 0210001
[RouterB-voice-dial-substitute21102] rule 2 ^3366$ 0210002
[RouterB-voice-dial-substitute21102] rule 3 ^2323$ 0210003
[RouterB-voice-dial-substitute21102] quit
# 配置VoIP语音实体,呼叫目的IP地址为1.1.1.1,被叫号码模板为010….。
[RouterB-voice-dial] entity 10 voip
[RouterB-voice-dial-entity10] match-template 010....
[RouterB-voice-dial-entity10] address sip ip 1.1.1.1
# 配置将号码变换规则表21101绑定到语音实体,表示对被叫号码应用号码变换。将被叫号码分别变换为中间号码0001、0002、0003。
[RouterB-voice-dial-entity10] substitute called 21101
# 配置将号码变换规则表21102绑定到语音实体,表示对主叫号码应用号码变换。将主叫号码分别变换为中间号码0210001、0210002、0210003。
[RouterB-voice-dial-entity10] substitute calling 21102
(2) 配置Router A
# 创建号码变换规则表101,配置如下号码变换规则。
<RouterA> system-view
[RouterA] voice-setup
[RouterA-voice] dial-program
[RouterA-voice-dial] number-substitute 101
[RouterA-voice-dial-substitute101] rule 1 ^0001$ 1234
[RouterA-voice-dial-substitute101] rule 2 ^0002$ 6788
[RouterA-voice-dial-substitute101] rule 3 ^0003$ 6565
[RouterA-voice-dial-substitute101] quit
# 创建号码变换规则表102,配置如下号码变换规则。
[RouterA-voice-dial] number-substitute 102
[RouterA-voice-dial-substitute102] dot-match left-right
[RouterA-voice-dial-substitute102] rule 1 ^...0001$ ...1234
[RouterA-voice-dial-substitute102] rule 2 ^...0002$ ...6788
[RouterA-voice-dial-substitute102] rule 3 ^...0003$ ...6565
[RouterA-voice-dial-substitute102] quit
# 配置将号码变换规则表101绑定到入局呼叫的被叫号码,表示对接收到的被叫号码应用号码变换。将接收到的被叫号码(即中间号码0001、0002、0003)分别变换为1234、6788、6565。
[RouterA-voice-dial] substitute incoming-call called 101
# 配置将号码变换规则表102绑定到入局呼叫的主叫号码,表示对接收到的主叫号码应用号码变换。将接收到的主叫号码(即中间号码0210001、0210002、0210003)分别变换为0211234、0216788、0216565。
[RouterA-voice-dial] substitute incoming-call calling 102
# 配置POTS语音实体中的本地号码模板为....,并将FXO语音用户线line2/2/1绑定到此POTS语音实体上。
[RouterA-voice-dial] entity 1010 pots
[RouterA-voice-dial-entity1010] match-template ....
[RouterA-voice-dial-entity1010] line 2/2/1
[RouterA-voice-dial-entity1010] send-number all
对于异地电话,以B地的财务部电话拨打A地的市场部电话为例。对于主叫号码,Router B将主叫号码1688变换为0210001,Router A将0210001变换为0211234。实现在A地区看到的主叫号码为B地区号+A地财务部电话号码。对于被叫号码,Router B将被叫号码0103366变换为中间号码0002,Router A将中间号码0002变换为6788。实现了B地的财务部电话拨打A地的市场部电话,即拨0103366即可。
A、B和C三地通过SIP服务器进行SIP呼叫。但是当VoIP链路出现故障时,要求能够自动启用PSTN线路进行呼叫备份。使用PSTN线路进行呼叫时,具体要求如下:
· A地的以1100开头的号码只能呼叫B地的号码;
· A地的以1200开头的号码既可以呼叫B地的号码,也可以呼叫C地的号码。
图1-8 呼叫权限分组控制配置组网图
本例的配置步骤中省略了SIP代理服务器以及数字语音用户线的具体配置,具体配置可以参见“语音配置指导”中的“SIP”和“数字语音用户线”。
(1) 配置Router A
# 创建两个用户组,用户组1的主叫号码模板为1100..,用户组2的主叫号码模板为1200..。
<RouterA> system-view
[RouterA] voice-setup
[RouterA-voice] dial-program
[RouterA-voice-dial] subscriber-group 1
[RouterA-voice-dial-group1] match-template 1100..
[RouterA-voice-dial-group1] quit
[RouterA-voice-dial] subscriber-group 2
[RouterA-voice-dial-group2] match-template 1200..
[RouterA-voice-dial-group2] quit
# 配置到B地的VoIP语音实体,使用SIP代理服务器查找呼叫目的地址,被叫号码模板为2…。
[RouterA-voice-dial] entity 2000 voip
[RouterA-voice-dial-entity2000] address sip proxy
[RouterA-voice-dial-entity2000] match-template 2...
[RouterA-voice-dial-entity2000] quit
# 配置到C地的VoIP语音实体,使用SIP代理服务器查找呼叫目的地址,被叫号码模板为3…。
[RouterA-voice-dial] entity 3000 voip
[RouterA-voice-dial-entity3000] address sip proxy
[RouterA-voice-dial-entity3000] match-template 3...
[RouterA-voice-dial-entity3000] quit
# 配置到B地的POTS语音实体,并且将用户组1和用户组2绑定到该语音实体,实现A地的以1100开头的号码以及1200开头的号码都能够呼叫B地的号码。
[RouterA-voice-dial] entity 2100 pots
[RouterA-voice-dial-entity2100] line 2/4/1:15
[RouterA-voice-dial-entity2100] send-number all
[RouterA-voice-dial-entity2100] match-template 2...
[RouterA-voice-dial-entity2100] caller-group permit 1
[RouterA-voice-dial-entity2100] caller-group permit 2
[RouterA-voice-dial-entity2100] quit
# 配置到C地的POTS语音实体,并且将用户组2绑定到该语音实体,实现A地的以1200开头的号码可以呼叫C地的号码。
[RouterA-voice-dial] entity 3100 pots
[RouterA-voice-dial-entity3100] line 2/4/1:15
[RouterA-voice-dial-entity3100] send-number all
[RouterA-voice-dial-entity3100] match-template 3...
[RouterA-voice-dial-entity3100] caller-group permit 2
[RouterA-voice-dial] quit
# 配置POTS语音实体中的本地号码模板为1.....,并将数字语音用户线line 1/0:15绑定到此POTS语音实体上。
[RouterA-voice-dial] entity 2100 pots
[RouterA-voice-dial-entity2100] line 2/4/1:15
[RouterA-voice-dial-entity2100] send-number all
[RouterA-voice-dial-entity2100] match-template 1.....
(2) 配置Router B
# 配置POTS语音实体中的本地号码模板为2...,并将数字语音用户线line2/4/1:15绑定到此POTS语音实体上。
<RouterB> system-view
[RouterB] voice-setup
[RouterB-voice] dial-program
[RouterB-voice-dial] entity 2100 pots
[RouterB-voice-dial-entity2100] line 2/4/1:15
[RouterB-voice-dial-entity2100] send-number all
[RouterB-voice-dial-entity2100] match-template 2...
(3) 配置Router C
# 配置POTS语音实体中的本地号码模板为3...,并将数字语音用户线line2/4/1:15绑定到此POTS语音实体上。
<RouterC> system-view
[RouterC] voice-setup
[RouterC-voice] dial-program
[RouterC-voice-dial] entity 3100 pots
[RouterC-voice-dial-entity3100] line 2/4/1:15
[RouterC-voice-dial-entity3100] send-number all
[RouterC-voice-dial-entity3100] match-template 3...
· A地的以1100开头的号码只能呼叫B地的号码;
· A地的以1200开头的号码既可以呼叫B地的号码,也可以呼叫C地的号码。
为了保证Router C不被Router A或Router B的呼叫完全占用,需要限制Router A和Router B的呼叫数量。
图1-9 最大呼叫连接数组网图
(1) 配置Router A
# 配置VoIP语音实体,呼叫目的IP地址为1.1.1.3,被叫号码模板为010....。
<RouterA> system-view
[RouterA] voice-setup
[RouterA-voice] dial-program
[RouterA-voice-dial] entity 2000 voip
[RouterA-voice-dial-entity2000] match-template 010....
[RouterA-voice-dial-entity2000] address sip ip 1.1.1.3
[RouterA-voice-dial-entity2000] quit
# 配置POTS语音实体中的本地号码为1000,并将FXS语音用户线line2/1/1绑定到此POTS语音实体上。
[RouterA-voice-dial] entity 1000 pots
[RouterA-voice-dial-entity1000] match-template 1000
[RouterA-voice-dial-entity1000] line 2/1/1
[RouterA-voice-dial-entity1000] quit
# 配置POTS语音实体中的本地号码为1001,并将FXS语音用户线line2/1/2绑定到此POTS语音实体上。
[RouterA-voice-dial] entity 1001 pots
[RouterA-voice-dial-entity1001] match-template 1001
[RouterA-voice-dial-entity1001] line 2/1/2
[RouterA-voice-dial-entity1001] quit
# 配置最大呼叫连接数为2。
[RouterA-voice-dial] entity 2000 voip
[RouterA-voice-dial-entity2000] max-conn 2
(2) 配置Router B
# 配置VoIP语音实体,呼叫目的IP地址为1.1.1.3,被叫号码模板为010....。
<RouterB> system-view
[RouterB] voice-setup
[RouterB-voice] dial-program
[RouterB-voice-dial] entity 1000 voip
[RouterB-voice-dial-entity1000] match-template 010....
[RouterB-voice-dial-entity1000] address sip ip 1.1.1.3
[RouterB-voice-dial-entity1000] quit
# 配置POTS语音实体中的本地号码为2000,并将FXS语音用户线line1/0绑定到此POTS语音实体上。
[RouterB-voice-dial] entity 2000 pots
[RouterB-voice-dial-entity2000] match-template 2000
[RouterB-voice-dial-entity2000] line 2/1/1
[RouterB-voice-dial-entity2000] quit
# 配置POTS语音实体中的本地号码为2001,并将FXS语音用户线line1/1绑定到此POTS语音实体上。
[RouterB-voice-dial] entity 2001 pots
[RouterB-voice-dial-entity2001] match-template 2001
[RouterB-voice-dial-entity2001] line 2/1/2
[RouterB-voice-dial-entity2001] quit
# 配置最大呼叫连接数为2。
[RouterB-voice-dial] entity 1000 voip
[RouterB-voice-dial-entity1000] max-conn 2
(3) 配置Router C
# 配置POTS语音实体中的本地号码为010....,并将中继线路绑定到POTS语音实体上,发送号码的控制方式为发送全部号码。
<RouterC> system-view
[RouterC-voice-dial] entity 1000 pots
[RouterC-voice-dial-entity1000] match-template 010....
[RouterC-voice-dial-entity1000] line 2/2/1
[RouterC-voice-dial-entity1000] send-number all
[RouterC-voice-dial-entity1000] quit
[RouterC-voice-dial] entity 1001 pots
[RouterC-voice-dial-entity1001] match-template 010....
[RouterC-voice-dial-entity1001] line 2/2/2
[RouterC-voice-dial-entity1001] send-number all
[RouterC-voice-dial-entity1001] quit
[RouterC-voice-dial] entity 1002 pots
[RouterC-voice-dial-entity1002] match-template 010....
[RouterC-voice-dial-entity1002] line 2/2/3
[RouterC-voice-dial-entity1002] send-number all
[RouterC-voice-dial-entity1002] quit
[RouterC-voice-dial] entity 1003 pots
[RouterC-voice-dial-entity1003] match-template 010....
[RouterC-voice-dial-entity1003] line 2/2/4
[RouterC-voice-dial-entity1003] send-number all
Router A和Router B侧的号码1000、1001、2000和2001同时呼叫PBX侧的电话。如果Router A或Router B下新增一部电话去呼叫PBX侧的电话,由于配置最大呼叫连接数,该呼叫会被拒绝。
不同款型规格的资料略有差异, 详细信息请向具体销售和400咨询。H3C保留在没有任何通知或提示的情况下对资料内容进行修改的权利!