1、中国电信融合计费中国电信融合计费_ OCS系统介绍系统介绍SouthQA-HZ 曲默 科技(中国)有限公司内容提要内容提要一.系统介绍二.系统配置三.维护事项2现有业务支撑系统现有业务支撑系统3出现的问题出现的问题两套系统带来的问题割裂的客户,无法实现统一客户视图割裂的产品,无法向客户提供统一的产品目录和定价模型割裂的用户,无法实现用户属性切换、交叉捆绑优惠智能网用户问题新业务开展困难,尤其是增值业务产品资费种类不够丰富非智能网用户问题恶意欠费问题(最后一条话单欠费,短信群发等)无法提供更多个性化服务 实时提醒与控制(AOC,小区位置提醒等,实时话务拦截等)4OCSOCS介绍介绍在线计费系统在
2、线计费系统,OCS(Online Charging System)是电信运营商进行预付费计费、实时信用控制及欠费管理的重要手段,OCS采用了计费体制与会话/服务控制的直接交互,使计费完全参与到服务的使用过程中。在这样的体系下,既可以利用独立计费系统的强大能力以提供接近于准实时计费系统的灵活性,又可以利用参与使用过程的实时特性,将欠费成本降到最低。统一用户与产品资料管理灵活的资费策略实时信用控制多种方式的AOC服务5OCSOCS系统结构系统结构离线话单前置机DCCFileXDR CCR反算批价反算批价反算批价应急话单应急话单分发入库CRM解 码话单查重正算批价正算批价XDR FILE内存数据库用
3、户MDB帐户MDB实时计费引擎实时计费引擎Socket应急话单应急话单SACPVACSMSCGGSNSMPP+固费固费FileXDR FILE前置机帐务处理帐务处理外围系统帐务处理OCP6OCSOCS消息类型消息类型会话型消息会话型消息 应用在SACP,GGSN业务中。在一个典型的OCS会话中,包括如下几类CCR/CCA消息:鉴权包,也称I包更新包,也称U包结束包,也称T包7OCSOCS消息类型消息类型事件型消息事件型消息 应用在VASP,SMSC业务中。事件型消息相对简单,只有鉴权请求包。扣费请求包补款请求包8时间片时间片时间片时间片 即配额,OCS一次会话中授权给网元的可用资源量。时间片可
4、以为时长(秒),流量(KB)SACP业务中根据长途类型+用户套餐产品决定时间片GGSN业务中根据RatingGroup+APNNI_CODE+用户套餐产品决定时间片9基本概念基本概念网元网元 为了支持OCS应用,网元需要升级为支持预付费协议,与OCS系统的前置机通讯。如:SACP:语音,DCC协议SMSC:点对点短信,DCC+SMGP协议VAC:增值平台,DCC协议GGSN:数据业务,DCC协议10基本概念基本概念前置机前置机 InBoss,前端连接网元侧,完成计费消息的接收解析和打包发送;后端连接实时计费引擎。前置机对收到的计费消息进行会话管理,并负载均衡后发送给实时计费引擎。协议适配器,具
5、可扩展性,动态挂载不同的编解码库;会话管理高可用性,支持会话HA机制,实现了会话的实时热备;分布式管理,通过负载均衡算法,把网元的请求负载到不同的实时计费引擎上,根据业务需要,可灵活增减实时计费引擎的部署数量。动态刷新,修改基本配置参数后,可动态刷新,无需重启进程;监控功能,完整的日志功能。11前置机前置机 通过欣方端连接网元通过欣方端连接网元 在中国电信OCS中,在网元和InBoss之间增加了一个协议适配器,由北京欣方公司开发。网元和欣方连,InBoss与欣方端连。欣方端前置机负载均衡负载均衡实时计费引擎欣方端前置机负载均衡负载均衡实时计费引擎实时计费引擎HA机制机制实时计费引擎实时计费引擎
6、实时计费引擎12基本概念基本概念离线计费与离线计费与OCSOCS的融合的融合 OCS将离线处理与OCS系统融合在一起,可根据业务需要来灵活部署。离线流程,挂载解码、统一查重模块应用于:暂时无法支持预付费协议的网元与平台应用于:OCS异常时的应急话单应用于:其它需要采用文件方式扣费的场合13基本概念基本概念实时计费引擎实时计费引擎 即反算服务器,它是整个OCS系统的计费核心,提供有正算批价和反算批价两个接口。反算服务器通过的框架程序来统一调度,可根据需要在一个实时计费引擎中挂载不同的功能模块。对于OCS,计费引擎挂载业务分析+反算批价对于离线计费,计费引擎挂载业务分析+正算批价14反算批价反算批
7、价反算批价反算批价 反算批价包含正算批价的所有功能,并根据用户余额反算出可用时间片,根据不同的消息类型(I包、U包、T包),反算批价还需要做附加的工作,最后再返回时间片、DCC ResultCode,FinalFlag给前置机。在I包中,有预开通用户激活功能,可赠送相应的帐本,再执行反算,支持同时对一个或多个用户帐本做冻结(预占);在U包中,做反算与冻结更新;在T包中,除完成正算批价的全部功能,另外还需要进行冻结清除15基本概念基本概念帐务处理帐务处理 对于OCS系统用户的固定费用与程控功能费,由帐务处理模块每天定时产生固定费用话单文件,以离线话单方式送给实时计费引擎处理,将费用扣到用户帐本上
8、保证信控的准确。16内容提要内容提要一.系统介绍二.系统配置三.维护事项17前置机配置前置机配置序号配置文件名(根据需要,可任意指定名字)说明1xdr_define.fdb与反算服务器的接口格式文件该配置文件的内容需与反算使用的XDR_DEFINE表一致。2inboss_sacp30800.dcd协议编解码dcd模版注意:不同网元使用不同的模版3create_xdr.cfgINBOSS创建XDR使用的参数4decode.cfg配置协议编解码使用的dcd模版以及其它转换库,与第2行中对应上。5merge_xdr.cfg会话XDR信息维护参数注意:不同网元使用不同的Merge配置文件。6inbo
9、ssd_sacp30800.cfgInBoss进程主配置文件注意:不同网元使用不同的主配置文件。18前置机配置前置机配置在config文件夹下面是前置机需要的配置文件。其中:*.cfg是配置文件,作用是设置前置机的基本信息和状态,如IP、端口、日志目录、所需模文件名等等。*.dcd是模板文件,它是解析消息或构造打包消息的依据。下面详细介绍INBOSS的主配置文件:INBOSS的主配置文件包括system、ha、replace、tmp_cdr、opp_control等,其中,根据业务需要,可对其中的部分节进行增减、组合、或配置多套。system节 在system部分是系统基本配置信息,如msg_
10、key等。19前置机配置前置机配置#控制会话型业务的过负荷保护的最大在线会话数如果语音CS,数据PS业务最大在线会话数超出该值,直接回复网元说OCS系统忙。缺省值为200000,一般根据用户数来估算。注意:不管是会话型还是事件型业务,前置机在启动时会根据需要支持的最大会话数来预申请内存空间,因此该值的大小还要考虑到主机内存空间的限制,如果配置很大的值会占用非常多的内存。建议在功能测试环境时该值不要配得太大。200000#对前置机是否开启HA机制0-不开启,缺省值;1-开启。当开启HA机制时,会去读取ha节的配置。1 20前置机配置前置机配置ha节#设置HA是采取同步还是异步模式0-同步;1-异
11、步同步方式下,必须等备机处理完消息返回后主机才能继续业务处理,影响较大,一般不采用。建议采用异步方式。1#主INBOSS服务器 IP130.38.24.22#主INBOSS服务器 的HA端口号31022#备份INBOSS服务器 IP130.38.24.23#备份INBOSS服务器 的HA端口号31023 21前置机配置前置机配置tmp_cdr节 tmp_cdr#InBoss收到网元发过来的会话型T包或者事件型消息时,如果反算忙或者反算异常(无法连接,无心跳等)时的处理机制。这种消息(包括事件型消息和会话的T包)没有发给反算,相当于是由Inboss直接做的代应答,然后生成到指定的文件目录。#指定
12、将消息输出成话单到的磁盘的路径 data/scp#输出话单到磁盘上的临时目录data/scp/tmp#输出话单的文件名前缀文件名格式:前缀+YYYMMDDHH24MISSscp_cdr_#达到多少秒后,将临时文件生成到正式路径。注意:为了保证MDB中的冻结与扣费及时,此时间建议为9秒,不能太长。9 22前置机配置前置机配置tmp_cdr节#当反算恢复正常后,如果该目录中还有文件,INBOSS是否将这些文件中的消息再重新发往反算去做计费与清理冻结,发送之后,InBossd直接将文件删除。0-不发往反算。此时需要配置一个传输,将文件取到离线批价进程的输入目录去做补扣。缺省值为0。建议此种处理方式。
13、1-发往反算。此时不需要配置传输。0#当反算正常后,如果选择将话单发往反算处理,发一条话单后暂停的时间间隔。注意:如果配置成0,表示连续发送,可能导致反算忙死。缺省值10,单位为ms10 23前置机配置前置机配置exception_cdr节 exception_cdr#InBossd中管理的某一个会话,在指定的超时时间内(配置项t_response节中的),未再接受到从网元发来的对应会话的后续消息包(如有I包,再无U或T包),就认为会话超时。InBoss后台有一个定时器线程,每隔10秒去检查所有会话,将超时的会话输出到磁盘文件,同时清掉该会话。#指定将消息输出成话单到的磁盘的路径 data/e
14、xception_cdr#输出话单到磁盘上的临时目录 data/exception_cdr/tmp#输出话单的文件名前缀文件名格式:前缀+YYYYMMDDHH24MISSexception_cdr_24前置机配置前置机配置exception_cdr节#达到多少秒后,将临时文件生成到正式路径。9#将会话输出到磁盘文件的同时,是否主动生成T包发往反算,由反算去做扣费与清除冻结。0-不发往反算。此时需要配置一个传输,将文件取到离线批价进程的输入目录去做补扣。缺省值为0。建议此种处理方式。1-发往反算。此时不需要配置传输。0 25前置机配置前置机配置local_server节 local_server
15、InBoss与网元通迅的配置项适用于InBoss作为服务器端的情况。#指定InBoss的IP,接收网元消息,返回反算结果给网元。当存在多IP的情况下,建议不要配置成0.0.0.00.0.0.0#侦听端口30800#协议编解码库注意:这里是完整路径文件名,可以带环境变量。$(WORK_BASE)/lib/libDCCAlgoD.so#编解码配置文件如果配置的是相对路径,相对于$IN_BOSS_PATH。config/sacp_decode.cfg 26前置机配置前置机配置local_client节 local_client#InBoss与网元通迅的配置项适用于InBoss作为客户端的情况。#指
16、定与网元通迅的协议编解码库如:使用SMPP+与SMSC通讯。$(WORK_BASE)/lib/libSmppAlgoD.so#编解码配置文件如果配置的是相对路径,相对于$IN_BOSS_PATH。config/smsc_decode.cfg#设置网元服务器的配置#网元 IP130.38.18.105#网元的侦听端口号16000 27前置机配置前置机配置boss_server节 boss_server#InBoss与反算通迅的配置项目前我们支持的是1-N的部署模式,即一个InBoss,可对多个反算进程进行分布式的控制,并支持负载均衡。InBoss是作为客户端去连接一个或多个反算的,这一节的配置可
17、以重复配置多个。#指定反算服务器的IP,转发网元消息给反算,接收反算的返回结果。130.38.24.25#反算服务器侦听端口注意:由于存在端口漂移现象,建议多个反算服务器的端口号配置成相差10,如40080,4009040080#指定前置机与反算的心跳超时时间,单位为微秒。经验值为2秒。2000000 28前置机配置前置机配置t_response节 t_response#会话控制配置选项 注意:此配置项也和网元前端的超时配置相关,它应该大于等于前端网元的超时配置。比如电信中InBoss连接的是欣方,如果欣方配置的超时是6分钟,而我们这里配置的是4分钟,则可能造成前置机认为某一会话超时而将会话清
18、掉并生成exception_cdr,但在第5分钟的时候欣方过来了一次通话的T包,这样就只能将这个T包当成垃圾数据包扔掉,而用户的冻结却没有按正常流程清除。360 29前置机启停前置机启停启动脚本 shcujfcs%cat inboss_start_sacp.csh#!/usr/bin/csh setenv IN_BOSS_PATH$WORK_BASE/inboss$WORK_BASE/bin/inbossd start$WORK_BASE/inboss/sacp30850/config/sacp_30850_inboss.cfg 启动之后,可以通过“ps ef|grep inboss”命令查看
19、进程是否启动起来了。如果提示“msg_que键值:31500 已被使用”,则说明程序已经启动键值被占用了或者信号量还在,可以先停止程序,清除消息队列,再启动。或者用ipcs q命令查找信号量,ipcrm q清除信号量。30前置机启停前置机启停 动态刷新脚本#!/usr/bin/csh setenv IN_BOSS_PATH$WORK_BASE/inboss/sacp30800$WORK_BASE/bin/inbossd restart$IN_BOSS_PATH/config/inbossd_sacp30800.cfg&停止脚本#!/usr/bin/csh setenv IN_BOSS_PATH
20、WORK_BASE/inboss/sacp30800$WORK_BASE/bin/inbossd stop$IN_BOSS_PATH/config/inbossd_sacp30800.cfg&31反算配置反算配置反算进程的配置select*from all_proc_def where proc_id=30010Input_type=1 表示socket通信deal_rule_id=999 表示dr_type 为dr_scpInput_path 中的端口为与前置机连接的端口select*from all_rating_task where proc_id=3001032反算配置反算配置rat
21、ing_algo节 check_subtime=1#指定批价时采用哪种时间为基准,0为不检查;1为以话单时间为准;2为以当前时间为准;3以当前帐期起始时间+配置的时间偏移量(rigor_query_mdb_offset)为准#check_subtime=0:not check;=1 based cdr time;=2 based now time;3:bill_month+offset(主要应用于CMPAK,福建联通扣包月费成功才送下月免费资源)rigor_query_mdb_offset=-7200 指明进行免费资源切换,查询MDB的免费资源时间偏移量,以秒为单位。如在本月初,扣月租费送本周
22、期的免费资源时,由于批价需要查询到上周期的免费资源,因此需要配置以本帐期起始时间+偏移量,来查询到MDB中现存的上周期免费资源。要求check_subtime=3。如:rigor_query_mdb_offset=-7200则在8月1点零点20分时会按照7月31日23:00:00来查询免费资源。33反算启停反算启停启动脚本 shcujfcs%cat rating_ocs_cs_30010.csh nohup$OB_REL/bin/taskframe-i$OB_REL/config/rating/rating_ocs_cs_30010.cfg-m reverse/dev/null&反算启动好后,
23、可以使用netstat an|grep 42010查看反算与前置机的连接情况fjocs%netstat-an|grep 42010tcp4 0 0 10.10.10.188.42010 10.10.10.188.43766 ESTABLISHEDtcp4 0 0 10.10.10.188.43766 10.10.10.188.42010 ESTABLISHEDtcp4 0 0 *.42010 *.*LISTEN这样表示反算与前置机连接正常 34反算启停反算启停重启脚本 当资费有变更或其他原因需要重启反算,我们采用下面的脚本来重启反算for PROC_ID in 30500 30510 3052
24、0 30530 30540 30550 30560 30570doecho stop rating_ocs_cs_$PROC_IDps-ef|grep config/rating/rating_ocs_cs_$PROC_ID|grep-v grep|grep$USER|awk print kill$2|shsleep 60echo start rating_ocs_cs_$PROC_ID ././bin/taskframe-i././config/rating/rating_ocs_cs_$PROC_ID.cfg-m rating/dev/null&sleep 300done35反算启停反算启
25、停停止脚本fjocs%cat stop_rating_ocs_main.cshps-ef|grep config/rating/rating_ocs_cs|grep-v grep|grep$USER|awk print kill$2|sh 36内容提要内容提要一.系统介绍二.资费能力三.维护事项37维护事项维护事项OMCOMC管理中心管理中心 通过OMC系统,对OCS的运行状况进行监控。进程是否存在;主机磁盘空间;数据库是否正常,表空间充足;进程是否僵死;离线处理进程的输入目录是否有文件积压;分析是否有InBoss应急话单和网元应急话单产生,用ocsstat e查看。38维护事项维护事项局数据
26、更新局数据更新 局数据更新后,做实时刷新。不需要停业务分析进程。通过restart_odac_xxx.csh来实时刷新并生效;39维护事项维护事项40维护事项维护事项41维护事项维护事项OCSOCS版本升级版本升级 因为OCS版本升级不得不停进程时,按如下提示进行。选择系统在线会话数比较小的时间进行;ocsstat u 查看。前置机的参数修改后,可在不停进程的情况下,通过restart来实时刷新。如果要停实时计费引擎,可使用前置机的实时刷新功能,先将要停的实时计费引擎从配置中去掉,不再接收前置机的CCR消息;如果要停InBoss,可手工杀掉,由网元来下应急话单;42维护事项维护事项except
27、ion_cdr话单详解 产生原因 在生产运行中,前置机当前维护着大量的Sessions,如果其中有些Session会话有I包但再无U、T包过来,或者对I包、U包回了4012给网元,网元再不过来T包等,我们就认为产生了与网元的会话超时。超时的阀值通过exception_cdr-timeout配置项指定。InBossd后台有一个定时器线程,每隔10秒去检查所有会话,将超时的会话输出到磁盘文件,也就是exception_cdr目录中的话单,同时从维护的Session清单中清掉该会话。话单分析 1.网元收到4012之类拒绝接续的回复后,不送T包给前置机 I包.如果用户余额不足,则前置机会回4012给网
28、元;U包:当前会话某一个时间片正常返回给网元,且FinalFlag=0,表明还可以有下一个时间片;但此时用户有并发的业务,在另一个Session中冻结掉了剩下的余额,则本Session下次在申请配额时,前置机会回4012给网元;正常情况下,如果网元在收到4012回复后,也回一个T包给前置机来结束些会话,则整个过程比较完整。但有部分网元,它们在收到4012后不再送T包,此时对OCS来说,Session管理就出现了等待。在超时后,以上两种情况如下处理:43维护事项维护事项I包 前置机可直接清除掉会话。最终解决方案为:修改前置机流程,前置机收到反算的I包应答时,判断IN_BUGET_RES是否为空或
29、0,条件为真时前置机转发给网元应答后,直接删除该会话,也就不存在超时等待了;U包 最终解决方案:前置机收到反算的U包应答时,判断IN_BUGET_RES是否为空或0,条件为真时前置机转发给网元应答后,同时生成一条自释放的结束包到反算并删除会话。前置机增加配置是否启用该功能,用于兼容针对4012包,网元过来T包或不过来T包 2.正常应答(非4012之类)给网元后,不送T包给前置机 在正常应答的情况下,如果会话有I包但再无U、T包过来,则只能在超时机制中被捕获到。由于前置机无法知道已经分配给网元的最近一个时间片被网元实际使用的资源量情况,因些无法主动做到精确的批价扣费。44维护事项维护事项不做处理
30、 这是建议的解决方案。由前置机产生exception_cdr,作为查找问题的依据。按实际已使用量走离线批价 舍弃掉最后一个时间片,按已知使用量走离线批价计费流程,需要离线部分将notify_type改为104,以及将ADDUP_RES放到DURATION并将ADDUP_RES清空,注意该部分话单在主备前置机都会出,处理时需只处理主机的话单。这样可以产生部分收入,并及时清理冻结。缺点是扣费不准,可能与网元应急话单产生重复计费造成投诉。不建议采用。配置send_to_boss 配置send_to_boss=1,由InBoss主动生成T包发往反算,由反算去做扣费与清除冻结。和按实际已使用量走离线批价一样,也是有利有弊,一般情况下不建议采用。45维护事项维护事项阅读操作手册阅读操作手册 对OCS的各个模块,可参阅相关的操作手册。46提 问?47