2023年12月29日发(作者:)

一种IMS业务控制机制的设计方法

阮绍臣;卢美莲

【摘 要】IMS可以针对用户不同的需求提供广泛的增值多媒体业务,通过专门的SIP应用服务器可以在IMS网络之上实现这些业务.本文主要讨论当用户获得一个IMS订购关系且其订购关系包含一些增值业务时,如何创建业务专用的数据即过滤规则;当用户在IMS网络上发起业务请求时,通过业务控制机制将SIP请求正确的路由到应用服务器,以执行相应的业务逻辑.

【期刊名称】《软件》

【年(卷),期】2010(031)012

【总页数】4页(P61-64)

【关键词】IP多媒体子系统;过滤规则;可扩展标记语言

【作 者】阮绍臣;卢美莲

【作者单位】北京邮电大学,网络与交换国家重点实验室,北京,100876;北京邮电大学,网络与交换国家重点实验室,北京,100876

【正文语种】中 文

【中图分类】TP393.02

IMS是一个可重用的业务平台,基于SIP协议可以在IMS上实现多媒体业务,如呈现(Presence)、即时消息、PoC、视频点播等业务。由于IMS融合了语音和数据业务,又结合了IP网的灵活性和SIP的可扩展性,使得IMS支持的业务更加丰富。区别于传统电信网的垂直业务提供模式,IMS采用了水平分层的业务体系结

构,以实现控制和业务的分离。IMS的业务控制机制使得对应于特定业务的SIP消息能够被正确地路由给执行相应业务逻辑的应用服务器,从而达到不需要区分业务类型就可以完成业务控制过程的目的[3]。

初始过滤规则(initial Filter Criteria)主要用于控制多媒体会话,HSS负责存储用户订单对应的初始过滤规则。由于一个用户可能订购多种不同的业务,因此HSS需要为每一个用户存储多个属于不同业务的初始过滤规则[2]。在业务控制的过程中,初始过滤规则决定了提供给每个用户的业务,可以协助S-CSCF决定何时需引入一台特殊的应用服务器来提供业务。包含过滤规则的用户配置信息使用XML文档来描述。

本文基于XML提供了IMS业务控制机制的一种设计方法,主要分为以下三个部分。第一,分析过滤规则中需要涉及的各个标签字段的定义和功能,使用XML编码设计通用的过滤规则模版;第二,根据应用服务器的会话方式设计与模版相关联的场景逻辑,选择满足对应场景的业务触发点,建立业务逻辑然后转换成符合该场景逻辑的XML文档表示的初始过滤规则;将生成的初始过滤规则以及它的优先级和业务类型字段添加到HSS的数据库中,以实现初始过滤规则信息在HSS中的存储;第三,用户发出的业务请求到达为其服务的S-CSCF之后,S-CSCF首先查找注册时下载得到的此用户相关的过滤规则,将用户的请求与过滤规则进行匹配,然后将SIP请求消息路由到正确的应用服务器。

在目前的3GPP规范中,基于IMS的业务体系架构是利用S-CSCF、HSS、AS三类功能实体共同合作来提供业务控制机制的,IMS业务控制机制的通用模型如图1所示[3-4]。

其中各功能实体完成的功能如下:

(1) AS负责接收来自S-CSCF的SIP消息并执行相应的业务逻辑。除此之外,AS还负责归属网络域中的业务部署,即构造与自身业务逻辑对应的过滤规则。AS可

以根据用户订单和自身业务逻辑的需要,主动向HSS添加、修改或删除用于业务匹配的过滤规则(使用Sh接口)。过滤规则的流向是从应用服务器(AS)的业务逻辑出发,被抽象成iFC,再写入到HSS中进行存储的。

(2) HSS主要负责存储用户订单相应的iFC。由于一个用户可能订购多种不同的业务,因此HSS需要为每一个用户存储多个属于不同业务的初始过滤规则。在S-CSCF向HSS请求特定用户的业务描述的时候,HSS负责将相应的信息下载到S-CSCF上的业务控制功能模块(使用Cx接口)。

(3) S-CSCF在执行一般的呼叫控制之前,需要由其业务匹配功能模块执行业务匹配的操作。S-CSCF上的业务匹配功能模块完成的功能主要包括两个方面:一方面是在用户注册阶段下载用户相关的过滤规则,并在用户注册有效期内为其存储此过滤规则,过滤规则的生存周期也可以由系统实现决定;另一方面是在执行业务匹配的过程中进行初始过滤规则的匹配,并将匹配成功的消息转发到指定的AS上(使用ISC接口)。如果请求经S-CSCF被转发到某个特定业务对应的应用服务器AS上,AS将判断所触发的业务类型,并根据部署在其上的业务逻辑,执行相关的业务。

IMS业务控制机制的设计包含了以下三个组件,分别是过滤规则模板设计、过滤规则的生成和存储设计、以及业务匹配过程的设计。

根据过滤规则的逻辑结构,基于XML设计一个所有业务都能够通用的过滤规则模版,标签字段的属性值均设为空,使得所有的业务逻辑对应的过滤规则实例都可以由此模版生成,并且要包含过滤规则需要包含的所有信息[7]。

如图2,每个初始过滤规则代表一条业务控制信息,并且有自己对应的优先级,数值越低,优先级越高,不存在优先级相同的iFC。每个初始过滤规则都由0个或一个触发器实例以及0个或一个应用服务器实例构成。

触发器用于检查消息是否匹配到某个特定的AS,每个触发器都包含一个或n个业

务触发点(SPT)实例,每条SPT都是一个用“与(CNF)”或“或(DNF)”描述的布尔表达式。触发器值的缺省意味着将请求无条件地路由到特定的AS上。触发器的ConditionTypeCNF属性用于指明SPT集的表达格式(先“与”后“或”还是先“或”后“与”,独立的SPT可以是“非”。每个触发器包含一个或多个业务触发点(SPT)。

应用服务器AS表示一旦匹配到过滤规则的某个触发器,将要把请求路由到哪个AS上。AS还可能带有0个或1个业务数据实例,这些业务数据和具体的业务相关,对HSS来说是透明的。

初始过滤规则的生成与存储系统可划分为三个功能模块,如图3所示。

主逻辑:分别调用iFC实例生成模块和iFC实例存储模块,实现对整个系统的控制。

iFC实例生成模块:此模块在特定的场景逻辑下生成对应于具体业务的过滤规则。分为五种场景,不同场景的区别在于对于某些标签字段的保留和删除以及一些规定为必须的字段。其中业务逻辑由用户在命令行模式下输入,根据用户需要输入相应的业务逻辑范式,在AS中建立业务逻辑,然后转换成符合该场景逻辑的XML文档表示的过滤规则。另外,可以输入多个过滤规则,以生成多个XML文档。

iFC实例存储模块:其中业务类型由用户在命令行模式下输入,此模块根据用户键入的业务类型,扫描XML目录下的全部XML文档,将其中所有的初始过滤规则全部归类在该业务类型下,并将该业务类型的所有初始过滤规则循环读入HSS的相应表项中。

用户发出的业务请求到达为其服务的S-CSCF之后,S-CSCF首先查找注册时下载得到的此用户相关的过滤规则,看用户的请求是否与过滤规则相匹配:如果有匹配的过滤规则,则根据规则将请求路由到相应的AS;如果不匹配,则将请求按照一般的路由过程进行转发。

S-CSCF将用户订购的所有业务相关的初始过滤规则依次连接起来,构造成一个临

时的初始过滤规则集。S-CSCF按照优先级高低对初始过滤规则逐条匹配,并将匹配结果为真的请求转发到此初始过滤规则指定的应用服务器上。具体的匹配步骤可以由具体的实现来决定,一般来说是检查请求的方法、头域、头域值等,一旦这些值与初始过滤规则中某条SPT的值一致,则认为请求和这条初始过滤规则的匹配结果为真[5-6]。

S-CSCF的业务匹配过程为:在有多个过滤规则由HSS发送到S-CSCF之上的情况下,当S-CSCF由Mw接口接收到消息的时候,S-CSCF是根据这些过滤规则的特定优先级来逐个检查规则的。如果接收到一个REGISTER请求,S-CSCF应该向与过滤规则匹配的每个AS发送一个第三方REGISTER请求。在网络发起了解除注册的情况下,S-CSCF应该向与过滤规则匹配的每个AS发送一个第三方REGISTER请求,这时就像是从用户处收到了一个同样的REGISTER请求来解除对此用户公共标识的注册[8]。

收到除REGISTER以外的其他请求时,S-CSCF应该:

1)根据过滤规则的优先级,为请求建立一个过滤规则列表。在请求最终由Mw接口离开S-CSCF之前,这些过滤规则的顺序都不应发生变动;

2)解析接收到的请求以找到其中所包含的SPT;

3)检查下一个优先级的过滤规则的触发点是否和请求中包含的SPT相匹配。如果不匹配,S-CSCF将直接按步骤4处理;如果匹配,S-CSCF应该:

◆给请求中加入一个标记以使得S-CSCF能够在后续的过程中识别此消息,即使其对话标识已经改变,例如由于AS执行了第三方控制;

◆通过ISC接口将请求转发给当前过滤规则中指定的AS。AS执行相应的业务逻辑,可能修改请求并可能通过ISC接口给S-CSCF返回请求;

如果从AS上接收到返回来的请求,则处理步骤4;

4)为步骤1建立的列表中的每个过滤规则执行以上的步骤2和3,直到检查完最

后一个过滤规则;

5)根据一般的SIP路由行为路由请求。

如果AS决定本地终结请求并给S-CSCF返回一个对请求的终结应答,则S-CSCF应该停止验证里表中其他低优先级的触发器。终结应答中应该包含上述步骤3)中的对话标记,以使得S-CSCF能够正确地匹配此消息。

业务匹配机制的测试是在Linux平台下实现的,部署在PC上,使用C++语言开发,开发工具是vim和g++,使用的数据库为mySQL。分别对iFC生成实例程序和业务匹配程序这两个功能模块进行了测试。首先是根据业务的类型分析设定与之对应的场景,随后再把业务置于这个场景下进行过滤规则的XML文档生成,存储以及业务匹配的工作。

最后经过系统联调,基于生成的过滤规则能够正确匹配SIP消息,并将其正确的路由到相应的应用服务器,验证了整个设计方法的正确性,说明该方法能适用于IMS核心网,并能为IMS核心网提供基本的业务控制功能,为丰富和扩展运行在IMS平台上的多种业务提供良好的支持。

本文介绍了一种IMS业务控制机制的设计方法,它引入了XML文档来构建对应于特定业务的过滤规则,并设计一种通用的过滤规则模板,使得过滤规则实例能够在此基础上生成,与用户业务订单想对应的过滤规则实例在用户发出业务请求时,能将SIP消息正确的路由到提供对应业务的应用服务器,在IMS平台上达到了业务控制的效果。

本文的实现与测试方面主要验证了基于Presence和PoC的业务控制过程,在有更多业务加入时该方法是否会引起冲突,还需要进一步的研究与验证。

【相关文献】

[1]3 GPPTS 23.228:"IP Multimedia Subsystem(IMS)(Stage 2) "[S],Release 5,2001.04.

[2]3GPP TS 29.228:" IP Multimedia (IM) Subsystem Cx and Dx interfaces "[S],Release

5,2007.09.

[3]Miikka Poikselka等, The IMS IP Multimedia Concepts and Services[M]

[4]Miikka Mayer编著.赵鹏 周胜 望玉梅等译.《IMS:移动领域的IP多媒体概念和服务》[M].机械工业出版社.2005.

[5]3GPP TS 24.229, IP Multimedia Call Control Protocol based on Session Initiation

Protocol(SIP) and Session Description Protocol (SDP)[S].2006.09

[6]erg, rinne, llo等.RFC3261, Session Initiation

Protocol.[S]IETF.2002.

[7]Gonzalo Camarillo编著 张同须等 译,《3G IP多媒体子系统 IMS-融合移动网与英特网》[M]

[8]3GPP TS24.229v7.7.0, IP multimedia call control protocol based on Session Initial

Protocol(SIP)and Session Description Protocol(SDP) Stage3 [S](Release 7).3GPP.2007.03.