GPRS移动数据网络 – Charging Characteristics(计费特性)
作者:千里孤行(http://blog.csdn.net/yanghehong)
这里要说的是Charging Characteristics,把它翻译作计费特性,是因为看到网上有这样翻译的。不知道是不是最恰当,因为标准中是区分Charging和Billing。两个单词都比较长,为了简单,下面都用CC代指Charging Characteristics(计费特性)。
CC在GPRS移动数据网络系统里的各种消息里是个16比特的域。手机用户入网的时候就需要确定一些计费的特性,比如预付费还是后付费这些。所以CC最开始是由运营商配置在HLR上面的。当手机开机attach到网络上或者用户上网的时候,HLR在MAP消息里头把CC带给SGSN,SGSN再在GTP消息里头发CC给GGSN。下面的图是一个简单的示意。
在HLR上的手机用户注册数据里头,有两类CC:
PDP-Charging Characteristics ;
Subscribed Charging Characteristics.
PDP-Charging Characteristics是特定于某个PDP Context的;Subscribed Charging Characteristics呢,是某个手机用户持有的全局CC。当某个手机通过激活某个PDP context上某个internet/intranet的时候,会应用该PDP Context对应的CC,如果该PDP Context没有对应的CC,则应用该手机Subscribed Charging Characteristics,如果连Subscribed Charging Characteristics都没有,那么SGSN会选择配置的一个默认值。 标准对CC的选择做了一些规定和说明。
那么SGSN转发什么样的CC给GGSN呢?前面说了,SGSN会根据协议标准作一个匹配和选择,最终确定一个CC,应用在SGSN的计费上面。这里常见的一个错误就是,把SGSN最后选到的CC,转发给GGSN。
这是不对的。SGSN和GGSN的计费需要分开算的。SGSN靠近无线接入网络,主要负责计算无线资源的使用;GGSN靠近数据网络端(手机用户想上的internet/intranet),主要负责数据网络使用的计算。SGSN的CC选择规则,只适用于SGSN自己;而SGSN转发给GGSN的CC,是从HLR那得到的原封不动地给GGSN(当然,没有PDP-Charging Characteristics的时候转发的是Subscribed Charging Characteristics)。如果HLR给SGSN的消息里没有CC,那么SGSN就不要转发任何CC给GGSN。
CC这个域的格式和意义,有关于Charging标准做了定义。只不过3GPP在这个协议标准上,做得不太漂亮。它在不同release间,不是对同一个编号的标准作更新,而是每次出一个不同编号的标准,这就让厂商比较难追踪,也容易出问题。比如,以为新的release没有更新,其实是有更新,有改变,只是写在了另外一个标号的文档。这也是一个常见的问题,因为更新在另一个标准文档里头,所以一些新的特性可能没注意到,比如对CC格式的新的解析,而忘了更新代码来实现。
Release 99 - TS 32.015
Release 4/5 - TS 32.215
Release 6/7 - TS 32.251
这里,不同release的标准确实对CC这16个比特的意义做了不同规定。
在 R99 (32.015)中, 4 个比特是4个flag,对应4种计费方法。其他比特是spare bit:
N flag - normal charging,
P flag - prepaid charging,
F flag - flat rate charging
H flag - charging by hot billing
在 R4/5/6/7中, 对CC的16个比特的含义做了扩充。那四个比特的所有组合 0000~1111 都是有意义的, 因为它可以支持至少16 种profile,另外12个比特自定义:
尽管在新标准中提到说也可以向后兼容的,可以采用R99的解释;恩,如果只用同一个厂商的SGSN和GGSN,两个都遵从R99的解释,那是可以。但是,如果SGSN和GGSN分别来自不同厂商,并且SGSN用R99的解释,GGSN实现了比较新的R4之后的,那就会出问题了。其实这挺有可能的。一个运营商可能用同一设备商的SGSN和GGSN,但即使这样,在漫游的时候,可能本运营商的SGSN连到另一运营商的GGSN,这个时候这两个设备来自不同厂商的可能性就很大了:)
实际上,Juniper 的GGSN 支持 16 个Charging Profiles 0~15;
Cisco的 GGSN 支持 256 个Charging Profiles 0~255.
参考文献
3GPP TS 23.060 General Packet Radio Service (GPRS); Service description; Stage 2
3GPP TS 32.015Telecommunications management; Charging management; 3G call and event data for the Packet Switched (PS) domain
3GPP TS 32.251 Telecommunication management; Charging management; Packet Switched (PS) domain charging
3GPP TS 32.298 Telecommunication management; Charging management; Charging Data Record (CDR) parameter description