4.3路由服务器介绍
在3.1节的软交换呼叫中心路由技术中,我们提到软交网络中存在两种组网方式:分级网络、无级网络。
a在本章中我们将着重介绍通过路由服务器实现组大网的思路,技术实现如图4-3所示。假定查询协议采用SIP,同时路由服务器之间支持同步机制。
图4-3通过路由服务器(RS)实现组大网
4.3.1 采用SIP+TRIP组网的优势
采用这种组网的优势在于:
1)路由服务器仅充当了对全网被叫用户的定位作用,本身不参与呼叫的建立和过程,很大程度上简化了呼叫环节,同时使网络的拓扑结构变得简单。软交换呼叫中心之间是平等关系,路由服务器之间的位置信息变化通过协议自动更新,可以简化网络管理负担,节约维护成本。当有新增软交换呼叫中心局时,只需在所属路由服务器的拓扑结构描述上增加该设备,其上的位置更新就可以自动同步,不需要对其他软交换呼叫中心上的数据进行任何修改。
2)软交换呼叫中心中关于位置变化的信息,可以自动通知路由服务器发起信息同步。同时由于软交换呼叫中心与路由服务器之间存在心跳行为,因此路由服务器可以动态获知与自己相连的软交换呼叫中心设备的存活信息,然后将该信息同步到其他路由服务器。
3)路由服务器可提供全网的位置信息查询服务,因此容易提供那些需要集中的大数据库管理的关于位置信息的业务,如全网的号码携带业务、广域Centrex业务。当然这只是为某类业务实现提供了一种思路,各个运营商可根据自己网络的实际情况决定各类业务提供的位置。
4)TRIP能够解决的问题:
√ TRIP是一种基于域的电话路由同步协议,将网络上的路由服务器按照层次和功能划分为若干个域,例如,同一城市内的若干路由服务器可以划分在同一个域内。这个域内的位置变化是相互同步的,而且向上层路由服务器同步,而上层可自己定义自己的同步域,这样达到路由全网同步的目标。
√ 由于域内的位置信息是基本相同的,当某个路由服务器发生故障时,其他路由服务器可以无缝地进行替代,下层对其的路由查询结果是完全一样的。这样可以消除单点故障,消除分层结构所带来的越上层故障影响越大的缺点。
4.3.2采用路由服务器进行无级组网存在的隐患
一个隐患是查询效率问题。无级网络虽然声称通过一跳完成寻址,但从本质上讲,无级网络将分级网络软交换呼叫中心设备间的分级转嫁到路由服务器之间的分级。因此,单从整个会话经过的路径来讲,无级网络未必有很多优势。而且,影响无级网络时延的另外两个因素还包括:将一个内部模块之间的访问变成两个独立物理设备的访问;每个查询技术的实现对时延产生的影响将会存在不同。
此外,位置信息的同步可能导致网络上数据量的不平衡增加。在现有电信网络中,有关路由的数据都是静态配置的,因此当在电信网络中引入一种动态同步的技术时,人们担心可能会引起数据的动荡,这些都需要通过实验来验证和消除。
4.3.3 SIP简介
关于SIP部分的简介请参照本书的2.6.2部分。
4.3.4 TRIP 简介
我们已经在3.1.2章节对TRIP提出的背景进行了介绍,在本节中,我们将对TRIP进行较为详细的介绍。
TRIP中存在以下网络实体:
1) Location Server:就是我们目前提到的路由服务器,本书中称为RS。
2) TRIB(Telephony Routing Information Base):电话路由信息库,它位于路由服务器中,用于存储软交换呼叫中心设备(TRIP中称为网关,我们称为软交换呼叫中心设备)的IP地址信息。
3) ITAD(InternetTelephonyAdministrativeDomAIn):Internet电话管理域,它包括了单个管理机构控制下的资源集合(包括软交换呼叫中心、路由服务器),是为了管理和描述行为的需要而提出的概念。
4) Peer:对等实体,建立了TRIP会话连接的两个路由服务器,如果两者属于同一个ITAD中,则称为内部对等实体,否则称为外部对等实体。
TRIP消息必须而且在全部接收结束后才能开始进行处理,TRIP消息的最大长度是4K(4096)B,最短长度是只包含消息头部分的3B,大于4KB和小于3B长度的消息都属于无效的TRIP消息。
4.3.4.1 TRIP消息
TRIP中主要有四个消息,分别是OPEN、UPDATE,NOTIFICATION、KEEPALIVE。每个TRIP消息都有固定的消息头,TRIP消息的消息头格式如图4V所示,共有3B。
图4-4TRIP消息头格式
前两个字节标明了消息总长度,最大值为4096,最小值为3;第三个字节表示消息类型,取值范围是1〜4,表示的意义如下:
1-----Open消息;
2 -----Update消息;
3 -----Notification消息;
4 -----Keepalive消息。
1.Open消息
当对等实体(进行消息交互的路由服务器)建立连接后,双方都会向对端发送Open消息,这是发送的第一个消息。接收到Open消息的一方,将向对端返回Keepalive消息,以确认收到Open消息。
当初始交互完成后,后续才可以发送Update、Notification消息。
最小的Open消息(含消息头)有17B,消息格式如图4-5所示。
图4-5 Open消息格式
Version:表示消息所支持的TRIP版本,当前版本是1。
Reserved:保留字节。
HoldTime:会话保持时间。两个相继的Keepalive或Update报文之间的最大时间间隔,当超过时间后,路由服务器将放弃本次会话连接,单位为s,其值可以是0,表示连接永远存在,最小推荐值为3。
My ITAD:发送者所在的HAD编号,这是由IANA组织分配的一个惟一值,1〜255是协议的私有值,一般取值为从256〜232-1中的一个。
TRIP Identifier:发送者在所在ITAD域中惟一的TRIP标识号。
Optional Parameters Len:表示OptionalParameters(variable)List域的长度,单位为字节,如果为0,则表示本消息无操作参数。
Optional Parameters(variable)List:是Open消息要发送数据或变量值的详细列表,包括参数类型、参数长度、参数的值,参数主要与能力协商相关。对等实体可通过Open消息实现能力协商功能,协商的能力包括:
1)支持的路由类型:如果路由服务器不支持对等实体所支持的路由类型,它将结束本次会话,路由类型包括了地址和应用协议两部分,例如,〈E.164,SIP〉表示采用E.164号码而且支持SIP进行信令交互;
2)与对等实体的操作模式:操作模式包括SendOnlymode>ReceiveOnlymode、SendReceivemode。默认情况下是发送接收模式,如果是只发送模式,那么如果收到对等实体的Update消息,路由服务器将丢弃该消息。只接收模式适用于管理平台,它只需要接收路由信息并把它显示出来。如果两个操作模式不匹配,例如,两者都是发送模式,那么将发送Notification消息。
2.Update消息 ,
Update消息是TRIP的核心消息,路由服务器之间的路由更新行为就是通过该消息完成。它具有广播新路由信息,删除、修改不可用的路由信息等功能。最小的Update消息(含消息头)有3B。
Update消息是由一系列路由属性组成,.每个路由属性的格式如图4-6所示。
图4-6 Update消息格式
(1) AttributeFlags:对非公认路由属性类型的处理机制,公认(Well-Known)是指对所有路由服务器都是可知的属性:
√ BitO,Well-KnownFlag,路由属性是否公认标志。
√ Bit1,TransitiveFlag,路由属性是非公认时是否传送标志。
√ Bit2,DependentFlag,对于可传送的非公认路由属性的信息,是独立的信息或与别的信息关联的标志。
√ Bit3,PartialFlag,对于可传送的非公认路由属性内的信息,是完整信息还是只是部分信息标志。
√ Bit4,Link-stateEncapsulatedFlag,是否封装连接状态标志。
(2)AttributeTypeCode:属性类型码的值决定了当前消息中所发送的路由信息的操作类型,属性码类型的意义如下:
√ WithdrawnRoutes,取消路由。
√ ReachableRoutes,增加新的路由。
√ NextHopServer,消息发送下一跳的路由服务器标识。
√ AdvertisementPath,功能类似于BGP4的记录了路由信息向外发散所经过的一系列的ITAD域的号码。产生路由的路由服务器把该路由发送给外部对等实体时,将把自己的FTAD号码加在该属性值中,以后每个接收路由并发送给其他对等实体的路由服务器将自己的ITAD号码加在该属性值中。
√ RoutedPath,它与AdvertisementPath的功能类似,不同的是RoutedPath真正反映了到目的地的信令路由。RoutePath是AdvertisementPath的子集,产生路由的路由服务器把该路由发送给外部对等实体时,将把自己的HAD号码加在该属性值中,随后的路由服务器,如果不改变NextHopServer的值,路由服务器将不改变该值。
√ AtomicAggregate,聚合路由标示,当路由服务器从对等实体收到重叠路由,它选择了不发送明确的路由,那么将在该属性值中表示该路由信息。
√ LocalPreference,在域内使用,给予一个路由信息的优先权。
√ MultiExitDisc,当两个域之间包括了多于一组的对等实体,该参数用来进入该域的各路由的优先权。
√ Communities,团体属性,一个团体是指一组有共同性质的目的地,该属性的功能是把目的地址组成团体。
√ HADTopology,向域内的LS发送本域的Topology结构。
√ ConvertedRoute,表示因为中间的LS改变路由应用协议而影响了路由信息。
(3)AttributeLength和AtttibuteValue(variable):属性值长度和值。
3.Notification消息
当路由服务器检测到故障时,将发送Notification,同时立即关闭TRIP会话。
图4-7是Notification的消息格式。
图4-7 Notification消息格式
Error Subcode为每种错误码描述了更具体的原因,这里不再描述。ErrorCode包括以下类型:
1) 消息头出错;
2) Open消息出错;
3) Update消息出错;
4) 会话保持时间超时;
5) 有限状态机出错;
6) 会话终止。
4.Keepalive消息
KeepaHve消息是Open消息成功后的一个响应消息,它也是向对等实体表明存活的消息,Keepdive消息发送的时间间隔是自定义的,比较合理的最大间隔是Open消息中设定的参数HoldTime的1/3,如果协商的HOLDTIME为0,则不发送Keepalive消息。KeepaUve消息仅仅包括TRIP消息头,没有消息体,因此消息格式可参见消息头格式。
4.3.4.2TRIP的实现原理
1.对等实体(路由服务器)之间的TRIP会话的建立和维护
两个对等路由服务器建立连接之后,通过Open消息实现对等实体之间能力的协商以及建立TRIP会话连接;路由服务器相互之间周期性的发送Keepalive消息,表明处于存活状态;当路由服务器检测到故障时,将发送Notification消息,同时两个实体之间的TRIP会话立即关闭。
2.对等实体交换路由表过程
通过此过程,实现数据库同步。
TRIP会话连接成功之后,两个对等实体(路由服务器)将执行路由表同步行为;路由服务器通过Update消息向对等实体发送新的路由信息;TRIP协议不需要周期性地刷新路由信息,因此路由服务器必须保存目前路由信息的版本号;当完成路由数据同步后,同一个HAD内的路由服务器内的路由信息将会是一致的。
3.与内部实体之间的数据同步和与外部实体之间的数据同步
与内部实体(路由服务器)之间的数据同步是采用向域内的所有对等实体广播新的路由信息的方式。
与外部实体(路由服务器)之间的数据同步是采用点对点交换数据库信息的方式。即对同一个ITAD内,任何一个路由服务器都将通过广播方式向其他所有路由服务器进行信息同步;而对于不同HAD,则通过管理手段,只在相关的两个路由服务器之间进行信息同步。
4.TRIP路由信息的发布
TRIP路由信息包括了两部分:目的地址信息以及应用协议(如SIP、H.323等)。
两个路由服务器之间通过Update消息实现路由信息的交换。
TRIP包括了两种通知对等实体某个路由信息不可再用的方法:
√ 利用Update消息的参数WithdrawnRoutes表示该路由不可用。
√ 发布取代原有路由的新的路由信息。
5.路由聚合功能
路由聚合的优势能够降低对等实体之间路由信息交互的数量。
TRIP并没有要求路由服务器必须要执行路由聚合,路由服务器可以根据管理员制定的本地路由策略决定是否执行路由聚合。
4.3.4.3路由值息的具体同步过程
在路由服务器之间采用TRIP的主要原因在于TRIP能够动态更新路由服务器之间的路由信息。在本章节,我们简单介绍同步实现机制。
路由服务器中主要存在三种路由信息:
1)外部路由(ExternalRoutes):从外部对等实体获得的路由信息。
2)内部路由(InternalRoutes):从同一"ITAD域内获得的路由信息。
3)本地路由(LocalRoutes):本地写入的路由信息。
在路由服务器中具体完成数据存储的数据库TRIB,主要由四个部分组成:
√ Adj-TRIB-In:里面存储的路由信息是直接从Update消息中获取的域内、域外的路由信息,因此也称为“未加工的路由信息”,路由服务器为域内(同一个ITAD内)的每个路由服务器建立了一个Adj-TRIB-In,为每个外部对等实体(不同HAD)建立了一个Adj-TRIB-In。
√ Ext-TRIB,里面存储的是根据一定的路由选择算法,从外部路由(存储在Adj-TRIB-In中的外部路由)和本地路由(存储在Adj-TRIB-In中的内部路由)中选择的到达某给定目的地址的最佳的路由,每个路由服务器只有一个Ext-TRIB。
√ Loc-TRIB,里面存储的内容是运用内部策略从Adj-TRIBs-In中的内部路由和Ext-TRIB中选择出来的路由信息。
√ Adj-TRIB-Outi里面存储准备广播给外部对等实体的路由信息,它的内容将携带在Update消息中对外广播。
当Update消息需要更新某条路由时,它将更新Adj-TRIB-In中路由信息,并把该信息发布向所有的内部对等实体。
当Update消息需要新增路由时,路由服务器将把该路由消息放入A(y-TRIB-In中,并执行以下过程:
1)如果Adj-TRIB-In已经存储了到该目的地址的路由信息,那么新的路由信息将取代旧的路由信息,旧的路由信息将不再使用。
2)如果新的路由信息比存储在Adj-TRIB-In中的路由信息更具体,并且两条路由信息具有同样的属性值,那么路由服务器将保持原有的路由信息。
3)如果新的路由信息比存储在Adj-TRIB-In中的路由信息更具体,但两条路由信息具有不同的属性值,那么路由服务器将执行路由决策(Decision)过程。
4)如果新的路由信息没有比原存储在Adj-TRIB-In中的路由信息更具体,那么路由服务器将执行路由决定(Decision)过程。
5)如果新的路由信息没有Adj-TRIB-In内原有的信息详细,那么路由服务器将对那一部分的目的地执行路由决策 (Decision)过程。
路由决策(Decision)过程是确定随后将向所有内部和外部对等实体发布路由信息,过程本身受本地策略信息库(PIB)中存储的策略信息控制,供选择的路由信息存储在Adj-TRIBs-In中,选择的结果存储在Adj-TfUBs-Out中,同一个ITAD域中的路由服务器必须运行相同的Decisiono路由决策(Decision)过程包括以下三个阶段:
√ 第一阶段:计算外部对等实体发来的每个路由信息的优先级。路由服务器必须收到Update消息表明路由信息变化(增加、删减等)时才启动该阶段的行为。
如果路由信息从内部对等实体收到,那么可以从本地优先属性(LocalPreferenceattribute)参数中判断路由的优先级别;如果信息从外部实体收到,那么路由服务器将根据LocalPreference参数来决定该路由的优先权。路由优先级的选择很大一部分程度是由本地策略决定的。
√ 第二阶段:第二阶段必须在第一阶段结束后才能够进行。对于到每个目的地址的路由信息中选择最优路由,并把所选的路由信息存入Loc-TRIB。
√ 第三阶段:当Loc-TRIB内的信息被修改后将启动第三阶段。根据PIB中的路由策略,向每个外部对等实体发散Loc-TRIB内的路由信息,路由发散的时候可以选择采用路由聚合功能。
4.3.5软交换呼叫中心与路由服务器的交互
路由服务器的主要作用是存储路由数据,向软交换呼叫中心设备提供网络中其他所有软交换呼叫中心设备的地址。软交换呼叫中心与路由服务器之间的行为交互可包括:
1.路由数据查询
当软交换呼叫中心设备本身没有被叫用户所在软交换呼叫中心设备的路由数据时,软交换呼叫中心设备将向路由服务器发起路由查询。该查询主要通过SIP消息的INVITE消息完成。与完成会话的INVITE相比,该INIVTE消息并没有特殊之处。只不过,由于不需要完成能力协商,该INVITE消息只需带有简单的头消息即可,可不带有进行会话描述的SDP信息。
2.路由服务器对查询请求的处理
如果当前路由服务器能够得到路由数据,那么路由服务器将会通过重定向的302消息告知当前软交换呼叫中心相关路由信息。该路由服务器启动重定向功能。
如果当前路由服务器中没有软交换呼叫中心所期待的路由数据,那么此路由服务器将向更高一级的路由服务器发送查询请求。该路由服务器启动Proxy功能,将查询请求的INVITE消息转发给高级路由服务器。
如果处于最终查询位置的路由服务器能够确认当前路由信息在整个路由服务器系统中不存在,那么路由服务器将采用SIP的4**、5**、6**消息向前方实体发送失败消息。
3.软交换呼叫中心增加或删减路由
当软交换呼叫中心设备上增加或删减路由时,可利用SIP消息中的REGISTER消息,告知路由服务器。当路由服务器接收到软交换呼叫中心发送的注册消息时有以下几种情况:
1)SIP中的每个地址都有一定的存亡时间。如果注册消息中对某一地址的存亡时间描述为0,则表明该路径对本软交换呼叫中心已经无效,路由服务器需要将指向该软交换呼叫中心的路由数据删除掉。
2)如果该地址的存亡时间不为零,那么路由服务器还需要检验当前的地址信息在路由服务器中是否存在。
√ 如果该地址在路由服务器不存在,则路由服务器需要增加针对该软交换呼叫中心的此路径;
√ 如果该地址在路由服务器中已经存在,则路由服务器不进行内部数据操作,只需向软交换呼叫中心返回正确响应。
还有一种特例情况:注册消息中可能没有地址信息,按照注册本身的功能要求,这属于查询功能,路由服务器应当返回针对该软交换呼叫中心的所有路由信息。为了避免网络流量及增加路由服务器负荷。一方面,要规范软交换呼叫中心不能够发送此类型的注册消息;另一方面,当路由服务器接收到这样的注册消息时,路由服务器只需返回正确响应,不需要在响应消息中带有地址信息。
4.心跳行为
在软交换呼叫中心与路由服务器之间提出心跳行为的目的在于使路由服务器可以动态感知当前软交换呼叫中心是否处于存活状态。当路由服务器发现软交换呼叫中心的当前状态发生变化——例如,从正常态迁移到故障态或者从故障态恢复到正常态,将会向同一ITAD内的其他路由服务器进行广播,完成路由动态更新。在心跳行为上,主要要求如下:
路由服务器应当向软交换呼叫中心定期发送心跳信息,以确认当前软交换呼叫中心是否存活。路由服务器将SIP消息中的OPTIONS消息作为心跳信息。
1)当路由服务器与某一软交换呼叫中心之间的心跳行为失败时,路由服务器将认为该软交换呼叫中心当前“不可达”,路由服务器将会把所有指向该软交换呼叫中心的路由置为“不可达”,并将该信息向本ITAD内的其他路由服务器进行广播,或者启动备份路由并向本HAD内的其他路由服务器进行广播。
2)后续过程中,如果路由服务器接收到该软交换呼叫中心的任何消息(包括心跳信息、注册消息、INVITE消息)时,路由服务器应将“不可达”更改为“可达",并将该信息向本HAD内的其他路由服务器进行广播。
4.3.6路由服务器之间的行为交互
路由服务器之间的交互主要包括两部分的内容:路由数据管理和查询。
1.查询功能
当路由服务器启动查询功能时,此时发起查询请求的路由服务器启动Proxy功能,完成数据查询功能的路由服务器启动重定向功能。
2.路由数据管理
我们所讲的路由数据管理实际上就是TRIP所支持的功能,主要功能将包括:
1)路由版本管理。
2)路由广播功能。
√ 软交换呼叫中心增加某条路由;
√ 软交换呼叫中心删除某条路由;
√ 针对某些路由的软交换呼叫中心当前宕机(所有相关的路由当前不可用);
√ 针对某些路由的软交换呼叫中心当前已恢复到“Inservice”状态;
√ 路由服务器完成路由聚合时;
√ 路由服务器通过“Link-state”机制向同一个HAD内的其他路由服务器进行信息广播,ITAD内的拓扑结构对路由广播没有影响。
3)路由同步功能。
4)路由聚合功能。
5)心跳。
具体实现请参照4.3.4节TRIP部分的简介。
4.3.7实现流程
4.3.7.1增加路由
4.3.7.1增加路由
图4-8是软交换呼叫中心设备增加路由时的信令流程。
当软交换呼叫中心设备上增加路由时,可通过注册消息告知路由服务器。
1.软更换向路由服务器发送注册消息,表明此时要增加新的路由
图4-8 增加路由
REGISTER sip:l.1.1.1 SIP/2.0
//1.1.1.1为路由服务器的地址//
From:sip:2.2.2.2;tag=25486
//2.2.2.2为软交换呼叫中心地址//
To:sip:2.2.2.2
CSeq:1 REGISTER
Call-ID:020386300000@2.2.2.2,
Via:SIP/2.0/UDP2.2.2.2:5060;branch=z9hG4bK1063644978
Maxforward:70
Contact:<sip:0203863@2.2.2.2:5060>
//表明对0203863的局向寻址到该软交换//
Content-Length:0
2.路由服务器向软交换呼叫中心发送200响应,表示已经在数据库中增加了该路径
SIP/2.0 200 OK
From:sip:2.2.2.2;tag=25486
To:sip:2.2.2.2;tag=2343244332
CSeq:1 REGISTER
CaU-ID:020386300000@2.2.2.2.
Via:SIP/2.0/UDP2.2.2.2:5060;branch=z9hG4bK1063644978
Contact:<sip:0203863@2.2.2.2:5060
Expires:2³²-l
〃路由服务器将该地址的存亡时间置为系统默认的最大时间,避免软交换呼叫中心的周期更新行为〃
4.3.7.2删减路由
图4-9是软交换呼叫中心设备删减路由时的信令流程。
当软交换呼叫中心设备上删除某条路由时,可通过注册 软交换呼叫中心设备 路由服务器 消息告知路由服务器。
图4-9 删减路由
1.软交换呼叫中心向路由服务器发送注册消息,表明此时要删减路由
REGISTER sip:l.l.l.l SIP/2.0
//1.1.1.1为路由服务器的地址//
From:sip:2.2.2.2;tag=25488
〃2.2.2.2为软交换呼叫中心地址//
To:sip:2.2.2.2
CSeq:1 REGISTER
Call-ID:020386300011@2.2.2.2.
Via:SIP/2.0/UDP2.2.2.2:5060;branch=z9hG4bK106364498
Maxforward:70
Contact:<sip:0203863@2.2.2.2:5060>
Expire;0
〃要求路由服务器将该路由从该软交换中删除掉〃
Content-Length:0
2.路由服务器向软交换发送200响应,表示已经在数据库中删除了该路径
SIP/2.0 200 OK
From:sip:2.2.2.2;tag=25488
To:sip:2.2.2.2;tag=2343244332
CSeq:1 REGISTER
Call-ID:020386300011@2.2.2.2.
Via:SIP/2.0/UDP2.2.2.2:5060;branch=z9hG4bK106364498
Contact:<sip:0203863@2.2.2.2:5060>;Expire=0;
4.3.7.3查询路由——成功(在一个路由服务器查询)
图4-10是软交换呼叫中心设备查询路由时的信令流程。
图4-10 查询路由
1)软交换呼叫中心向路由服务器发送INVITE消息,向路由服务器发送路由请求。
2)路由服务器接收到INVTTE消息后,对其中的Request-Uri部分进行分析,通过本地路由策略,向软交换呼叫中心返回路由信息。.
3)路由服务器通过302消息向软交换呼叫中心返回路由信息。302消息中的Contact域携带当前被叫侧软交换呼叫中心的路由信息,包括号首、被叫侧软交换呼叫中心的地址、软交换呼叫中心之间采用的协议等信息。
4)软交段接收到302消息后,向路由服务器发送ACK消息,表明收到路由服务器发送的302消息。同时,软交换呼叫中心根据302消息中的内容,向对端软交换呼叫中心发起呼叫。
4.3.7.4查询路由——成功(在多个路由服务器间查询)
图4-11、图4-12是软交换呼叫中心在多个路由服务器之间查询时的逻辑示意和信令实现图:
1)软交换呼叫中心向路由服务器1-1发送INVITE消息,向路由服务器发送路由请求。
2)路由服务器1-1接收到INVITE消息后,对其中的Request-Uii部分进行分析,发现本路由服务器没有路由数据,将向默认高级路由服务器1发送请求。此时路由服务器1-1启动Proxy功能。
图441查询路由——成功(在多个路由服务器间查询)
图4-12查询路由实现路程
3) 路由服务器1通过302消息返回路由信息。路由服务器1启动重定向服务器功能。
4.3.7.5查询路由----失败
路由服务器通过4**、5**、6**消息告知软交换呼叫中心当前路由失败。
软交换呼叫中心接收到失败消息时,将会根据本地策略采取后续动作。
4.3.8路由服务器在无级网络中的具体应用
1,初期建网时(只有一个管理域(ITAD))
图4-13是网络初期建设的示意图。
图4-13单一管理域的网络示意图
我们假定每个路由服务器存储容量为10000条数据记录。软交换呼叫中心、路由服务器设备分别布放在广州、北京、上海三个地方。
在网络建设初期,由于软交换呼叫中心网络的规模较小,因此这三个地点软交换呼叫中心设备中的路由数据也会相应地比较少。假定每个路由服务器的初始路由数据为3000条,这3000条记录只是广州或北京、上海的路由数据,各地软交换呼叫中心设备只向自己本地路由服务器进行查询。
由于初期路由服务器数量比较少,路由数据也不是很多,因此可以将这三个路由服务器设置成同一个HAD。在数据同步行为存在的前提下,网络中任何一个路由服务器将会同时具有其他两个路由服务器内的数据——即广州路由服务器中最终将会有北京、上海的路由数据,共9000条路由记录。
对同一个ITAD内的路由服务器,由于所有路由服务器都有相同的路由数据,因此从某种意义上做到了路由服务器之间的冗余备份。
当广州用户呼叫北京或上海用户时,呼叫流程大体如下:
1)广州020-123******用户呼叫北京010-456******;
2)广州软交换呼叫中心接收到用户的呼叫请求;
3)当发现被叫用户不属于本地软交换用户时,广州软交换向广州路由服务器发起请求,进行路由查询;
4)广州路由服务器向广州软交换呼叫中心返回北京软交换呼叫中心的路由数据;
5)得到路由数据后,广州软交换呼叫中心向北京软交换呼叫中心发起呼叫请求;
6)呼叫正常接续。
2.网络规模逐渐扩大时(多个管理城的精况)
当网络规模逐渐扩大时,此时可能存在多个管理域的情况,此时网络组织如图4-14所示。
注:假定单一路由服务器的容量为10000条数据记录
图4-14 存在多个管理域的网络示意图
仍然继续以上假设,当网络中存在四个或以上的路由服务器时,如果仍然将这四个路由服务器设置在同一个ITAD内,由于数据同步的原因,导致每台路由服务器中的路由数据将会变成12000条,超出单一路由服务器的数据存储容量或处理能力。此时必须划分成两个ITAD。
按照图4-14的示意,网络中有五个路由服务器,并且分成了两个级别。
1)低层路由服务器:属于ITAD1的两个广州路由服务器;属于FTAD2的两个北京路由服务器。
2)高层路由服务器:网络中同时属于ITAD1和ITAD2的路由服务器。
由于数据同步行为,高层路由服务器将会具有全网路由信息。但TRIP本身具有聚合功能,高级路由服务器将进行一定程度的收敛功能。例如,假设ITAD1内的路由服务器的路由信息为020-1234@广州软交换1,那么在高层路由服务器中,由于聚合功能,路由信息将变成020-12@路由服务器1-1(假定020-1234的路由数据初始保留在路由服务器1-1上)。
当北京用户010-567890呼叫广州用户020-123456时,将会执行下列的步骤:
1)北京软交换呼叫中心接收到呼叫广州020-123456用户的请求;
2)北京软交换呼叫中心查询本地路由服务器2-1或路由服务器2-2;
3)由于路由服务器2-1或路由服务器2-2本身没有020-123456的路由数据,将向高层路由服务器发起查询请求;
4)在高层路由服务器中存在这样的信息:020-12@路由服务器1-1的地址,因此高层路由服务器将会向底层路由服务器1-1发起查询请求(可通过管理手段进行配置,高层路由服务器不能够终结查询);
5)在底层路由服务器1-1中,存在020-123@广州软交换呼叫中心1的信息,因此,当接收到查询请求后,路由服务器1-1将通过302消息向上层路由服务器反馈,最终发送到北京软交换呼叫中心处;
6)北京软交换根据得到的路由数据后向广州软交换呼叫中心发送呼叫请求,进行会话。