[摘要]文章描述预付费用户1X业务实时计费的技术方案,现网运用效果很好,供各通信同行借鉴参考。
[关键词]预付费,1X实时计费,计费方案
1.引言
随着预付费用户的开拓,为了更好的为用户提供高质量增值业务,需要解决预付费用户的1X实时计费问题。预计随着1X网络的开通,数据服务将呈爆炸性的增长,为了面向预付费用户开通1X数据业务,也要求能够提供数据实时计费的解决方案。
2.技术方案
2.1预付费用户1X数据业务实时计费网络结构
图1:PDSCP数据业务实时计费体系结构示意图
除基本的按流量/时长的1X数据业务外,PDSCP平台还可承载其它增值数据业务。如WAP、BREW/Java下载、多媒体邮件业务等。
2.2计费流程
当1X用户使用数据业务时,首先由PDSN发起接入请求,AAA服务器收到接入请求后,从本地信息中,根据用户IMSI号码确定用户的电话号码,并确定该用户是否预付费用户,如果是预付费用户,则将AAA消息代理到PDSCP服务器;否则按其现有流程处理。
PDSCP服务器收到接入请求后,到SCP查询用户的状态和余额,如果用户状态非法,则直接返回接入拒绝;如果用户状态合法,则分配用户余额的一部分将之反算为最大可接入时间(或流量),如果允许接入,返回带有接入时间(或流量)的接入允许。
AAA服务器代理PDSCP回应消息给PDSN。
用户经过认证鉴权后,就可以使用1X数据业务,在使用过程中,根据用户的操作或网络的实际情况,会产生多次使用记录,形成用于计费的用户使用记录详单:UDR。
PDSCP对生成的UDR进行实时批价后向SCP发起对应的扣费请求。如果不能实时扣费成功,则系统记录扣费数据,转入异步扣费流程。
2.3消息序列图
2.4流程描述:
此处假设用户按照流量记费,0.1元/K,并且PDSCP每次分配的配额为50K,PDSCP每次向SCP申请的金额为15000分。(在实际计费流程中,PDSCP可以在向SCP发送计费请求前,先发查询余额请求,再向SCP发送计费请求消息,消息中的扣费金额是余额的比例或固定金额分配的)
1. PDSN具有预付费能力,发送Access-Request给HAAA,携带PrePaidAccountingCapability
(PPAC)属性告诉HAAA预付费客户端支持的预付费能力。
2. HAAA进行常规的认证和授权操作。如果用户资料显示这是预付费用户,需向PDSCP转发Access-Request。由于PDSCP不需要对用户身份进行认证,HAAA需重新构造Access-Request的User-Password(2)
3. PDSCP发送扣费请求到SCP,申请一定用户金额
4. SCP检查用户金额是否足够,返回扣费响应
5. PDSCP根据扣费响应消息判断用户的状态以及金额状况,如果扣费成功,则返回Access-Accept给AAA,反之返回Access-Reject.返回的Access-Accept必须携带PPAC和PPAQ属性,PPAC用来表明该用户使用的预付费方式(流量/时长).PPAQ则携带配额(Quota),配额门限(Threshold)和相应的QuataID。同时PDSCP需反算出申请到的金额对应的最大配额数.
6. AAA转发PDSCP的答复消息
7. PDSN开始记录用户使用的流量,当发现到达配额门限时,发送Access-Request(PPAQ).其中VQ属性表明使用的流量值(包含上行和下行流量)
8. AAA转发该消息
9. PDSCP由携带PPAQ的Access-Request得知是对于一个已有会话的再次配额申请,检查该会话对应的用户金额,重新分配配额,发送Access-Accept(PPAQ),包含VQ和VT, VQ为累计的分配流量配额.(如第一次分配流量50K,本次再次分配50K,VQ=100K)
10. AAA转发该消息
11. 同7
12. 同8
13. 同9
14. 同10
15. 同7
16. 同8
17. PDSCP此时发现分配的配额达到最大可分配配额,从SCP处获得的金额已经使用完毕,则重新向SCP发起扣费请求
18. SCP检查用户金额是否足够,返回扣费响应
19. PDSCP根据扣费响应消息判断用户的状态以及金额状况,如果扣费成功,则返回Access-Accept给AAA,反之返回Access-Reject.返回的Access-Accept必须携带PPAC和PPAQ属性,PPAC用来表明该用户使用的预付费方式(流量/时长).PPAQ则携带配额(Quota),配额门限(Threshold)和相应的QuataID。
20. AAA转发该消息
21. 当用户主动断开连接时,PDSN发送Access-Request(PPAQ)请求配额,其中预付费属性PPAQ的子属性UR(Update-Reason)设置为4:用户主动结束预付费会话,VQ携带已经使用的流量
22. AAA转发该消息
23. PDSCP检测到PPAQ的Update-Reason为4,由VQ得出已经使用的流量,算出对于此次剩余配额对应的金额.向SCP发送补款请求.将原来得到的金额未分配的余额重新补给用户
24. SCP更新用户余额,发送补款回应消息
25. PDSCP发送不带PPAQ的Access-Accept给AAA,表明不在分配配额,会话结束
26. AAA转发该消息,PDSN收到转发的不到PPAQ的Access-Accept,结束会话
3.关于预付费的几个问题
3.1关于用户余额预扣费和费率切换
为了便于实现预付费用户的灵活的记费方案和套餐方式。PDSCP制定了一套机制支持一个用户的多会话(Session)管理和费率切换机制。
当预付费客户端(PDSN)向PDSCP发送“AccessRequest”时,PDSCP将向SCP申请用户的一部分余额,并根据记费规则反算出用户本次Request分配的的最大接入时长(或流量)。
这样的过程将一直重复,直到用户终止本次会话或用户的余额用尽。
这里有一个问题,每次PDSCP应向SCP申请多少的余额。如果申请的数量太小,Access-request(Quotadepleted)将会在一次会话(Session)中重复多次,造成PDSN-AAA-PDSCP的负荷加重。若申请的余额过大,将限制用户支付其他费用(因为用户的大部分余额被PDSCP预分配),如内容记费的支付和多会话的使用。
同时为了适应灵活多变的记费策略,应考虑费率切换的临界点。
按时间收费,不同时段可对应不同价格。例如:在每天18:00之前每小时4元,18:00之后每小时2元
按流量收费,不同时段可对应不同价格。例如:在每天18:00之前每MB4元,18:00之后每MB2元
按流量收费,随着用户的消费流量增加而调整价格。例如:在前30MB每小时4元,后面每MB2元
下面是一种推荐的预扣费方案:
1. 根据用户申请的用户业务特性,分配让用户能工作M个小时的余额(M可配置文件)
2. 用户余额的一部分N(N的取值范围1%-50%)(N可配置)
3. 用户费率切换的临界点
4. 先查询用户余额,根据余额所属金额范围进行扣款
余额取上述三项中的最小值。
同时可规定每次分配的下限(最小值)
3.2关于用户在线
PDSCP应对用户在线状况进行监控,当PDSCP监控的某个用户在一段时间(可配置)内,PDSN没有发送ACCESS_request消息,则PDSCP发送disconnect_request消息给HAAA,由HAAA转发给PDSN,PDSN根据用户的状况如用户一直在线,但没有流量产生,则断开用户的连接,并向PDSCP发送disconnect_accept消息;如用户在线,但有流量产生,则向PDSCP发送disconnect_reject消息。
4.结束语
综上所述,采用以上技术方案,只要预付费用户有充足余额及正常状态,就可以实现预付费用户使用1X业务的实时计费功能。现网运行至今,运行情况良好,避免了因延迟扣费造成的高额欠费等问题。