摘 要:第三代移动通信将向基于全IP的网络架构演进, 3GPP提出了IMS即IP多媒体子系统的网络架构, 在策略和计费等方面对多媒体业务提供了保障。文章首先简要介绍3GPP R7版本的IMS策略和计费控制(PCC)架构,然后引入两个开源软件平台OSIMS和UCT PCF,阐述其对PCC架构的实现,最后给出在此基础上实现IMS在线计费的方法。
关键词:IP多媒体子系统;策略和计费控制架构;在线计费
一、引言
IMS(IP Multimedia Subsystem,IP多媒体子系统)是3GPP在Release5版本标准中提出的,其显著特点是采用SIP进行呼叫控制、与接入无关以及能够灵活提供多种业务等。IMS为未来的多媒体应用提供一个通用的业务平台,是向全IP网络体系演进的重要一步。
策略和计费功能是IMS网络不可缺少的组成部分。在3GPP R7版本中提出了稳定的策略和计费控制PCC(Policy and Charging Control)架构[1]。要进行IMS策略和计费的研究,首先要对PCC架构有充分的认识和分析,并在此基础上寻找创新和突破点。虽然目前已经有一定数量的IMS商业化部署,但是尚未见到部署PCC架构的相关报道。因此,我们将目光转向开源软件。借助开源软件的帮助,对IMS PCC架构进行研究。本文将结合3GPP R7版本PCC架构,介绍开源软件平台OSIMS[2]和UCT PCF[3],并阐述其对PCC架构的实现。但是由于这两个软件的开源部分不支持计费功能,我们将在此基础上给出实现IMS在线计费的方法。
二、PCC架构
3GPP R7版本的总体PCC逻辑架构如图1所示,由六个功能实体构成:策略和计费规则功能PCRF (Policy and Charging Rules Function)、策略和计费执行功能PCEF (Policy and Charging Enforcement Function)、应用功能AF ( Application Function)、用户签约数据库SPR (Subscription Profile Repository)、在线计费系统OCS (Online Charging System)和离线计费系统OFCS (Offline Charging System)。PCC架构的功能包含策略控制、基于流的计费和关于业务数据流的事件报告。各功能实体具体功能如下:

图1 总体PCC逻辑架构
■ PCRF
PCRF包含策略控制决策和基于流的计费控制功能。PCRF接受来自PCEF、SPR和AF的输入,结合PCRF的自定义信息做出PCC决策。
■ PCEF
PCEF包含业务数据流检测、策略执行和基于流的计费功能。此功能实体位于网关中(在GPRS中是GGSN,在WLAN中是PDG)。PCEF与PCRF通过Gx参考点进行交互,使用的协议是Diameter协议。
■ AF
AF提供应用业务。这些业务需要动态策略和计费控制。AF通过Rx参考点,传送PCRF需要的动态会话信息,接收IP连接接入网(IP-CAN)的特定信息和IP-CAN承载层事件的确认。Rx参考点采用Diameter协议。
■ SPR
SPR逻辑实体包含与所有用户相关的签约信息。SPR可能与运营商网络中分布的多个数据库关联。SPR提供的签约信息包括:可签约的业务、关于抢占的优先权、用户QoS信息、计费信息和用户的种类。SPR与PCRF通过Sp参考点进行交互,在当前版本中尚未定义Sp参考点的细节。
■ OCS
OCS完成在线计费,通过Gy参考点和PCEF交互,Gy参考点采用Diameter Credit Control协议。
■ OFCS
OFCS完成离线计费。通过Gz参考点和PCEF交互,Gz参考点采用Diameter Base协议。
三、OSIMS项目
1、简介
OSIMS全称Open Source IMS,由Fraunhofer研究所FOKUS发起。它不是一个商业产品,目的是为相关研究机构提供关于IMS核心网的实现和测试平台,包括核心平台OSIMS core、SIP应用服务器、IMS客户端OpenIC和策略计费模块PoCCA等。OSIMS core主要由IMS CSCFs和HSS两部分组成,其结构如图2所示。OSIMS实现了IMS 核心网的基本功能,目前只支持LINUX系统。

图2 OSIMS Core与OSIMS PoCCA结构图
下面分别介绍OSIMS core各模块的功能:
■ P-CSCF
P-CSCF是OSIMS核心开发项目的一部分,由C语言编写,除了具有IMS会话控制层的一部分功能外,还通过Rx接口与策略架构交互。在多媒体会话建立过程中,允许所需的信息交互用于执行策略与计费控制。在SDP会话描述中交换的信息包含客户端提供的参数。
■ I-CSCF
I-CSCF由C语言编写,通过Cx接口与HSS利用Diameter协议通信。I-CSCF根据呼叫方或者被叫方的公共标识,查询家乡订阅服务器HSS(Home Subscriber Server),根据HSS的反馈,将消息发送到正确的S-CSCF。为了保护家乡网络,I-CSCF具有防火墙能力,即只接收来自受信任网络的信令。
■ S-CSCF
S-CSCF由C语言编写,通过Cx接口与HSS利用Diameter协议通信,取得认证矢量,更新注册信息,下载用户订阅信息。S-CSCF根据初始过滤准则(initial Filter Criteria),把用户订阅消息用于执行特定的SIP路由规则。它支持IMS数字认证和密钥分配协议(AKA)。
■ HSS
FOKUS推出了一个自己的HSS原型-FHoSS,是基于开源软件利用JAVA编写的。它具有协议检查功能和Diameter命令逻辑模块,支持3GPP Cx接口和Sh接口的Diameter应用。FHoSS提供基于HTTP的管理界面,用于管理用户的订阅信息和iFC等。用户数据保存在MySQL数据库中。
2、FOKUS PoCCA介绍
FOKUS PoCCA原型系统(见图2)是在OSIMS core平台基础上,添加PCRF与PCEF,支持策略控制和计费。FOKUS PoCCA所增加网元的功能如下:
■ PCRF
FOKUS PCRF由C语言编写,支持会话授权、策略控制和基于流的计费,支持3GPP R7版本的Rx和Gx参考点。Gx和Rx参考点均采用Diameter协议。PCRF的主要信息单元是策略规则单元,允许执行接纳控制、资源控制和QoS执行。
■ PCEF
PCEF由C语言编写,位于WLAN或者WiMAX接入的网关中。它执行接入控制和基于IP流监测的反向QoS控制。它能够检测事件,同时报告事件给PCRF,执行PCRF下发的策略。
第一版本FOKUS PoCCA主要关注的是:在符合3GPP 标准情况下策略的执行、有效性和健壮性。第二版本已经在2008年年中完成,主要关注策略的定义,同时包括计费、漫游情况下的分析、基于XML的策略语言管理、在策略仓库中存储策略、用于更新和管理策略的管理界面。但是,FOKUS PoCCA是非开源的,目前暂时无法看到其源代码。所以我们可以借鉴下面的开源软件UCT PCF,对策略控制进行研究。
四、UCT PCF(Policy Control Framework)
UCT PCF是由南非开普敦大学开发的开源IMS软件,核心是基于OSIMS core平台,其示意图同图2。UCT PCF组成单元包括:PCRF、PCEF、XML 驱动的数据仓库和Web管理页面。这个系统用于IMS中的QoS和策略控制,它是基于3GPP Release 7,但是不包括计费功能。下面分别介绍UCT PCF各模块的功能:
■ PCRF
PCRF由Java编写,利用了以XML格式存储的动态和静态域名策略。PCRF与P-CSCF之间是Rx参考点,按照3GPP TS 29.214设计,利用Diameter协议传递会话信息。
■ PCEF
PCEF由Java编写,作为Linux DiffServ路由器,利用IP列表来执行策略规则。一个DiffServ优先级队列是建立在主要接口(默认是eth0)上的。PCEF与PCRF之间是Gx参考点,按照3GPP TS 29.212设计,利用Diameter协议把PCRF的策略规则发送给PCEF。
■ 数据仓库及Web管理页面
控制策略存储在本地或者远端的XDM服务器上。Web管理页面提供查看静态和动态策略的方法,也能让用户编辑这些静态策略。这使得管理者能在策略架构上方便地进行控制。Web管理页面也能对管理权限和网络拓扑进行控制。
UCT PCF主要包含如下几个类和接口:
diameterPeer类:定义通信节点所属域名、通信端口、节点API接口、Diameter的请求及应答等等。
CommandListener类:是个抽象的类,监听来自接口的命令并进行响应,包含所服务的diameter节点。它的子类GxCommandListener和RxCommandListener分别执行在Gx和Rx接口上的功能。
pcefDiameterStack.类:创建diameterPeer类的实例,定义对通信节点Peer的命令行监听,监听Gx接口的特别请求,并且以适当的方式反馈。启动PCEF对应的Diameter节点。
pcrfDiameterStack类:创建diameterPeer类的实例,添加对节点Peer的命令行监听,监听Rx接口的特别请求,并且以适当的方式反馈。启动PCRF对应的Diameter通信节点。
xcap类:用于从XDM服务器获取策略或者修改策略,也定义了修改和读取XML文档的方法。
LinuxRouter类:作为Linux DiffServ路由器,对PCEF获得的消息做出响应。构造IP列表,允许或者禁止数据流通过。
EventListener接口:这个接口用于处理接收到的Diameter消息。
五、扩展计费功能
上面两节我们介绍了OSIMS和UCT PCF,将这两者结合在一起可以简单模拟3GPP R7版本PCC架构中的策略控制,但是缺少计费功能。在此基础上,我们介绍添加计费功能的方法。
1、IMS总体计费架构
IMS计费架构[4]如图3所示。

图3 IMS计费架构
对于离线计费,计费数据功能(Charging Data Function)通过Rf接口收集计费事件信息。CDF把这些信息构造成计费数据记录(Charging Data Records)。计费网关功能(Charging Gateway Function)通过Ga接口接收CDRs,对CDRs进行预处理,比如:CDRs的确认、合并,对产生的错误进行处理等等。再进行CDR路由和过滤处理,根据CDR类型、来源CDF等过滤标准,将CDRs存储在不同文件中。然后进行CDR文件管理,比如文件创建、打开和删除等。最后CGF将CDR文件发送给计费域(Billing Domain)。
对于在线计费,收集在线计费信息的过程是与离线计费信息同时发生的。当接收到资源使用请求时,网络会收集相关计费信息,产生计费事件并且实时发送到OCS。OCS返回适当的资源使用授权。这一资源使用授权必须是限制在一定范围内的,因此授权要实时更新。S-CSCF不产生任何在线计费事件。IMS GWF通过ISC来监控S-CSCF的会话状态,实时生成触发计费的信息,并且通过Ro参考点将触发计费的信息发送给OCS。
2、在线计费的设计
在OSIMS和UCT PCF的基础上,给出支持在线计费的方法。核心平台使用OSIMS core,借鉴UCT PCF,对其中的PCRF和PCEF功能进行扩展,使其支持在线计费。另外要添加OCS模块和IMS GWF模块。
对于UCT PCF中的PCEF进行功能扩展,使其支持在线计费,PCEF类如图4所示。根据类CommandListener,定义它的子类RoCommandListener,执行Ro参考点的功能,所有经过Ro参考点的请求命令都继承自这个类。根据信用控制请求与应答[5],定义PCEF与OCS之间进行交互的类CCRCommandListener。它是RoCommandListener类的子类,执行信用控制请求(Credit Control Request)/信用控制应答(Credit Control Answer)的流程,处理接收到的信用请求,在确认是CCA命令后,会发送响应给通信节点Peer。在pcefDiameterStack类中,按照Ro参考点的定义[6],添加对Ro参考点的监听,支持与OCS的互动。

图4 扩展后的PCEF类
对于UCT PCF中的PCRF进行功能扩展,使PCRF生成的PCC规则包含计费信息,PCRF类如图5所示。在PCRF主程序中,扩展RxCommandListener的定义,增加关于计费的AVP(如AF-Charging-Identifier)及相关动作。扩展GxCommandListener的定义,在PCRF下发至PCEF的PCC规则中增加计费项目,如Charging Key,Charging method等。

图5 扩展后的PCRF类
OCS可以在类diameterPeer的基础上,利用Java编写,OCS类如图6所示。OCS含有一个MySQL数据库、用于读取数据库的类baseCap和一个Diameter信用控制服务器类(Diameter Credit Control Application 见[5]及[6])。数据库存储所有用户的帐号信息、业务信息、价目表等,OCS利用baseCap类从MySQL数据库中读取这些信息。DCCA从PCEF接收到CCR请求时,将从CCR提取AVPs,进行判断,然后生成带有返回值的CCA命令,发送给PCEF。另外,OCS也通过Ro接口,利用Diameter协议,与其他IMS计费相关的网元通信。

图6 OCS类
IMS GWF利用Java编写,可以看作一个特殊的SIP应用服务器,提供与OCS进行通信的服务,IMS GWF类如图7所示。IMS GWF包含Ro参考点、ISC参考点的功能和业务控制功能。IMS GWF在ISC参考点收到S-CSCF的SIP业务请求后,在Ro参考点利用Diameter协议,向OCS发送CCR命令,进行信用请求。OCS做出信用控制,通过CCA命令把结果发送给IMS GWF。如果信用足够支持本次业务请求,IMS GWF就会在ISC参考点,把之前收到SIP业务请求发回给S-CSCF。

图7 IMS GWF类
六、总结
OSIMS和UCT PCF为研究机构提供了IMS核心网络实现和测试的平台。本文在此基础上扩展了在线计费功能,增强了对PCC架构的模拟实现。当然,本文所述的方法仍然有待进一步完善,如增加离线计费和对漫游的支持等。虽然此平台暂时达不到商业化的标准,但是对于IMS的应用研究仍然有一定借鉴意义。
作者简介
孙志飞:男,北京邮电大学信号与信息处理专业硕士研究生,主要研究方向为IMS、移动核心网和固定与移动网络融合等。
张琳:男,北京邮电大学副教授,1996年毕业于北京邮电大学,获工学学士学位。2000年通过北京邮电大学信号与信息处理专业博士学位答辩,2001年获得北京邮电大学工学博士学位。2000年12月至2002年12月在韩国情报通讯大学做博士后研究。2003年1月至2004年6月在新加坡南洋理工大学做研究员(Research Fellow)。2004年6月起在北京邮电大学工作,2005年6月评为副教授,2007年6月起任北京邮电大学信息工程学院副院长,2008年7月任北京邮电大学研究生院副院长。曾先后在ETT、IEICE发表论文多篇,目前主要研究方向为通信中的信息处理、IMS、移动智能业务。
