
参加免费公开课,请您说是由【攻城狮论坛】推荐的。报名收费培训的论坛会员,可享受优惠价格+赠送攻城狮论坛VIP会员。本文转自 三旗培训 http://www.37vi.com/,版权归原作者所有。························································
Task 12.1 在R3上配置E1控制器,并且开启使用一个H.323网关
首先我们要知道,这个网关将不能连接CUCM,因为R3上面使用的是CUCME。这也意味着,这里只能使用H.323网关。但是这里也会解说H.323网关连接CUCM功能的参考,虽然这个实验不被使用。
根据配置文档,这里使用E1 PRI信令,CRC4框架,和HDB3线路解码。ISDN交换类型必须被配置为Primary-Net5并且E1应该只使用timeslots 1 – 3。
正如前面的配置,第一个命令是showinventory。这将查看我们可以配置的硬件。接着,配置cardtype,network-clock-participate,network-clock-select,和isdnswitch-type命令。和前面两个网关配置同样。这里唯一不同的是,控制器将配置为E1。
R3&
R3#sh inventory
...
NAME: "VWIC3-1MFT-T1/E1 -1-Port RJ-48 Multiflex Trunk - T1/E1 on Slot 0 SubSlot 0",DESCR: "VWIC3-
1MFT-T1/E1 - 1-Port RJ-48 Multiflex Trunk - T1/E1"
PID: VWIC3-1MFT-T1/E1 , VID: V01 , SN: FOC1750870L
...
R3#conf t
Enter configuration commands, one per line. End with CNTL/Z.
R3(config)#card type e1 0 0
R3(config)#network-clock-participate wic 0
R3(config)#network-clock-select 1 e1 0/0/0
Oct 16 18:54:49.044: %MARS_NETCLK-3-CLK_TRANS: Network clock sourcetransitioned from priority 10 to
priority 1
R3(config)#isdn switch-type primary-net5
现在我们可以来配置E1控制器了。在一个E1,CRC4框架,和HDB3线路解码默认都和需求相同,不要去做任何配置。这里只要配置控制器作为一个PRI,使用pri-group命令。我们也必须按照需求配置利用timeslots 1–3。
R3&
R3(config)#controller e1 0/0/0
R3(config-controller)#pri-group timeslots 1-3
和前面的实验一样,配置pri-group命令之后,会产生两个接口使用到ISDN D-Channel,一个Serial interface和一个voice-port。注意Serial interface是“:15”,而不是“:23”。这是因为D-Channel配置使用timeslot16代替最后的timeslot (T1)。
R3&
R3#sh run int s0/0/0:15
Building configuration...
Current configuration : 140 bytes
!
interface Serial0/0/0:15
no ipaddress
encapsulation hdlc
isdnswitch-type primary-net5
isdnincoming-voice voice
no cdpenable
end
R3#sh run | sec voice-port
voice-port 0/0/0:15
我们现在可以使用show isdn status命令来确保它的可操作性。
R3&
R3#sh isdn status
Global ISDN Switchtype = primary-net5
ISDN Serial0/0/0:15 interface
dsl 0,interface ISDN Switchtype = primary-net5
Layer 1Status:
ACTIVE
Layer 2Status:
TEI = 0,Ces = 1, SAPI = 0, State = MULTIPLE_FRAME_ESTABLISHED
Layer 3Status:
0 ActiveLayer 3 Call(s)
Activedsl 0 CCBs = 0
The FreeChannel Mask: 0x80000007
Number ofL2 Discards = 0, L2 Session ID = 1
TotalAllocated ISDN CCBs = 0
上面的2层状态输出MULTIPLE_FRAME_ESTABLISHED表明,PRI是被激活的,并且准备好处理入站和出站呼叫。
························································
Task 12.2 确保R3使用环回接口作为信令数据源
R3没有连接任何CUCM,在H.323协议通信设置一个源接口是非常重要的。使用h323-gateway voip bindsrcaddr 命令来定义原地址。
3&
R3(config)#int loopback0
R3(config-if)#h323-gateway voipbind srcaddr 142.1.66.254
一旦配置,所有其他的H.323终端都可以使用地址142.1.66.254来与R3通信。我们还必须在voice service voip下面,使用allow-connections命令来与其他的协议进行通信。
R3&
R3(config)#voice service voip
R3(conf-voi-serv)#allow-connections h323 to h323
R3(conf-voi-serv)#allow-connections h323 to sip
R3(conf-voi-serv)#allow-connections sip to h323
R3(conf-voi-serv)#allow-connections sip to sip
························································
Task 12.3 用户应该可以从PSTN接收9位数的DNIS(被叫号码识别)。确保这个呼叫能够在SC的IP电话上振铃。
E1 PRI早已配置好了,所以现在只要启用dial-peers来进行通信。在这个任务,我们只需要一个dial-peer。因为每台电话注册时就早已创建了各自的dial-peer,SCCP电话是一个虚拟的POTSdial-peer,SIP电话是一个虚拟的VoIP dial-peer。
R3&
R3(config)#dial-peer voice 1 pots
R3(config-dial-peer)#incoming called-number .
R3(config-dial-peer)#direct-inward-dial
这里创建了一个POTSdial-peer,正如先前的SIP网关配置。incomingcalled-number命令用于匹配来自PSTN的所有呼叫,direct-inward-dial命令避免2次拨号行为。
现在让我们从PSTN电话来尝试呼叫SC电话,并且看看会发送什么。使用SC PSTN线路(+85225353333)拨打SC电话(894443002)。,开启debug isdnq931命令来查看呼叫到路由器上的细节。
R3&
R3#debug isdn q931
debug isdn q931 is ON.
R3#
Oct 16 23:48:50.479: ISDN Se0/0/0:15 Q931: RX <- SETUP pd = 8callref = 0x008D
BearerCapability i = 0x8090A3
Standard = CCITT
Transfer Capability = Speech
Transfer Mode = Circuit
Transfer Rate = 64 kbit/s
ChannelID i = 0xA98381
Exclusive, Channel 1
Display i= 'SC PSTN Phone'
Calling Party Number i= 0x1181, '225353333'
Plan:ISDN, Type:International
Called PartyNumber i = 0xA1, '894443002'
Plan:ISDN, Type:National
Oct 16 23:48:50.479: ISDN Se0/0/0:15 Q931:
R3# Received SETUP callref = 0x808D callID = 0x0003 switch =primary-net5 interface = User
Oct 16 23:48:50.487: ISDN Se0/0/0:15 Q931: TX -> CALL_PROC pd =8 callref = 0x808D
ChannelID i = 0xA98381
Exclusive, Channel 1
Oct 16 23:48:50.487: ISDN Se0/0/0:15 Q931: TX -> DISCONNECT pd =8 callref = 0x808D
Cause i =0x8081 - Unallocated/unassignednumber
Oct 16 23:48:50.503: ISDN Se0/0/0:15 Q931: RX <- RELEASE pd = 8callref = 0x008D
Oct 16 23:48:50.503: ISDN Se0/0/0:15 Q931: TX ->RELEASE_COMP
R3#pd = 8 callref = 0x808D
我们可以看到这输出的debug信息,这个呼叫没有成功的通过“Unallocated/unassigned number”信息。这是因为到达路由器是9位数的格式,并且DNs分配给电话的是4位数的长度。基于这个信息,为了成功的通过CUCME到达电话,我们必须进行号码处理。这里我们必须运用翻译规则和配置文件(translationrules和profiles)。
为了理解翻译规则,我们必须理解匹配号码字符的常规表达式。下面的列子就是常规的表达式:
·(.)----表示所有的单个号码
·0-9,*,#----表示特殊的号码进入
·[0-9]----表示一个范围字符
·(*)----表示0个或更多前面出现的字符
·(+)----表示1个或更多前面出现的字符
·(?)----表示0个或1个前面出现的字符
·(\)----脱离这个特殊的意义,进入下一个字符段
·(/)----表示开始和结束两个都匹配的字符
·(^)----表示一条线路的开始
·(or)----组群常规表达式
接着,让我们来审查voicetranslation-rule的格式。对于每一个规则,都是一个“匹配设置”和一个“替换设置”。两个都是正斜杠“/”来划分(比如 rule 1 // //)。例如,我们要表示一个号码开始于“9”跟着任何号码。确保“9”被丢号,并且用“88”替换作为结果号码。这可以被完成指定如下:
rule 1 /^9\(.*\)/ /88\1/
基于上面的这条规则,输入一个号码为91234,将转换成一个替换号码881234。在这里,插入符号(^)定义号码必须以“9”开头。接着,反斜杠(\)表示一个特殊的意义,接着的字段应该被忽略。接着一对小括号中包含了一个子集。后面的“替换设置”来代替前面的“匹配设置”,所以“匹配设置”第一个子集用“\1”表示。如果要代替第二个子集,用“\2”表示。括号里的(.)表示任何一个单个的数字,(*)表示0个或更多前面出现的字符,最后又一个反斜杠(\)表示结束该子集。再一个正斜杠(/)表示结束该“匹配设置”。“替换设置”插入“88”。
说到这里,我们必须创建一个voicetranslation-rule为了来修饰进入路由器的9位数号码。我们来尝试处理一串号码“894443002”。
R3&
R3(config)#voice translation-rule 1
R3(cfg-translation-rule)# rule 1 /^89444\(3...$\)/ /\1/
上面在系统里定义了一个voicetranslation-rule编号“1”。这里可以定义100条voicetranslation-rule。在rule 1,所有的拨号都要与“894443”匹配。在第一个子集,任何4位数号码都要3开头。在后面的“替换设置”,只使用第一个子集。基于输入的号码,这意味着这里只保留“3002”。
接下来,来应用这个规则作为一个被叫,主叫,或者重定向号码。并且在voicetranslation-profile指定一个方向(入站或者出站)。
R3&
R3(config)#voice translation-profile TRANSLATE-PSTN-INBOUND
R3(cfg-translation-profile)#translate called 1
上面做了一个描述性的名称(“TRANSLATE-PSTN-INBOUND”)。我们必须确定这个号码被翻译,再让它进入路由器。这个“Called1”对应前面的“rule 1”。基本上这个命令可以实现被叫号码的翻译,按照voice translation-rule1。
最后做一条导向来应用这条翻译文件。这是把voicetranslation-profile分配到一条dial-peer,或者到自动产生的voice-port。如果分配到voice-port,所有的呼叫,不管拨打的数字,都会影响到这条规则。如果应该到一条dial-peer,只会按照这条dial-peer下面的翻译文件来匹配。这两个选择只有一点相同,因为incomingcalled-number命令只有在dial-peer voice 1pots下面有。
R3&
R3(config)#dial-peer voice 1 pots
R3(config-dial-peer)#translation-profile incomingTRANSLATE-PSTN-INBOUND
上面的命令对于呼叫的影响,只影响入站呼叫。这个配置下面挂载的是一个“callednumber”,“894443”会被翻译成3XXX。运行debug isdnq931命令并且做一条呼入呼叫来验证配置是否成功。
R3&
R3#debug isdn q931
debug isdn q931 is ON.
Oct 17 00:52:29.529: ISDN Se0/0/0:15 Q931: RX <- SETUP pd = 8callref = 0x008E
BearerCapability i = 0x8090A3
Standard = CCITT
Transfer Capability = Speech
Transfer Mode = Circuit
Transfer Rate = 64 kbit/s
ChannelID i = 0xA98381
Exclusive, Channel 1
Display i= 'SC PSTN Phone'
Calling Party Numberi = 0x1181, '225353333'
Plan:ISDN, Type:International
CalledParty Number i = 0xA1, '894443002'
Plan:ISDN, Type:National
Oct 17 00:52:29.529: ISDN Se0/0/0:15 Q931:
R3# Received SETUP callref = 0x808E callID = 0x0004 switch =primary-net5 interface = User
Oct 17 00:52:29.541: ISDN Se0/0/0:15 Q931: TX -> CALL_PROC pd =8 callref = 0x808E
ChannelID i = 0xA98381
Exclusive, Channel 1
Oct 17 00:52:29.625: ISDN Se0/0/0:15 Q931: TX -> ALERTING pd = 8callref = 0x808E
························································
Task 12.4 确保主叫名称和号码能够被发送到PSTN
我们必须改变R3网关自动产生的serial接口,ISDN D-Channel(Serial 0/0/0:15)。在此接口下面配置isdn outgoingdisplay-ie命令,为了允许这些信息会发送出去。
R3&
R3(config)#int s0/0/0:15
R3(config-if)#isdn outgoing display-ie
························································
附录:将H.323网关连接到CUCM
前面做的H.323网关是支持CUCME电话,R3没有CUCM。如果假设这里R3有CUCM,要把H.323网关连接CUCM。下面的命令必须输入。
R3&
R3(config)#card type e1 0 0
R3(config)#network-clock-participate wic 0
R3(config)#network-clock-select 1 e1 0/0/0
Oct 16 18:54:49.044: %MARS_NETCLK-3-CLK_TRANS: Network clock sourcetransitioned from priority 10 to
priority 1
R3(config)#isdn switch-type primary-net5
R3(config)#controller e1 0/0/0
R3(config-controller)#pri-group timeslots 1-3
R3(config)#int loopback0
R3(config-if)#h323-gateway voipbind srcaddr 142.1.66.254
R3(config)#voice translation-rule 1
R3(cfg-translation-rule)# rule 1 /^89444\(3...$\)/ /\1/
R3(config)#voice translation-profile TRANSLATE-PSTN-INBOUND
R3(cfg-translation-profile)#translate called 1
R3(config)#dial-peer voice 1 pots
R3(config-dial-peer)#translation-profile incomingTRANSLATE-PSTN-INBOUND
R3(config-dial-peer)#incoming called-number .
R3(config-dial-peer)#direct-inward-dial
接着我们必须还要创建一条dial-peer,把已经翻译的4位数号码发送到CUCM。我们来假设使用SB CUCM服务器。正如在R2上面配置SIP网关,我们可以配置一个voice classcodec的解码选择。和一条4位数的dial-peer指向SB CUCMpub(142.100.65.11)。
R3&
R3(config)#voice class codec 1
R3(config-class)#codec preference 1 g711ulaw
R3(config-class)#codec preference 2 g729r8
R3(config)#dial-peer voice 3000 voip
R3(config-dial-peer)#destination-pattern 3...$
R3(config-dial-peer)#sessiontarget ipv4:142.100.65.11
R3(config-dial-peer)#voice-class codec 1
R3(config-dial-peer)#dtmf-relay h245-alphanumeric
R3(config-dial-peer)#no vad
接着,我们必须登录CUCM,并且在上面创建一个H.323网关。Device-->Gateway,点击Add New按钮并且选择“H.323 Gateway”。
clip_image001
输入“DeviceName”,使用R3上面的H.323网关的原地址(142.1.66.254)。这个IP地址必须被使用。
clip_image002
接着选择一个合适的“DevicePool”
clip_image003
在“CallRouting Information-Inbound Calls”部分下面,选择一个“Calling SearchSpace”。“SignificantDigits”这里可以是默认的“All”,因为送来的号码已经是4位数的了。
clip_image004
在“CallRouting Information-Outbound Calls”下面,确保“Display IE Delivery”和“RedirectingNumber IE Delivery–Outbound”被勾选。
clip_image005
最后,点击Save和Reset按钮来应用配置。
························································
参加免费公开课,请您说是由【攻城狮论坛】推荐的。报名收费培训的论坛会员,可享受优惠价格+赠送攻城狮论坛VIP会员。本文转自 三旗培训 http://www.37vi.com/,版权归原作者所有。 |
|