付费下载
下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
一、预分拣模块简介在介绍新版Billing预分拣模块之前,需要先对老系统的预处理和分拣模块进行简要的说明。老版Billing系统预处理模块预处理模块是对原始计费话单数据的分析和信息的提取,再转换为标准格式的话单文件。主要包括数据的提取、格式转换、值的转换、字段校验、话单拆分、生成日志、告警等处理功能。老版Billing系统分拣模块分拣模块负责处理从综合 模块传输来的标准话单、回收回退处理后的标准话单、其他模块生成的包月话单,针对各种不同业务不同格式的话单进行字段解析,的格式,并且能够支持按输出。格式转换,字段提取,变成综合计费帐务系统照各种可配置的标准进行话单分拣,将话单分3.老版BILLING系统的结构图二、新版Billing系统结构图2.1.新老Billing系统主要差异说明新版Billing系统•预处理和分拣合并为单独的模块-预分拣模块预处理后文件不
,
以消息的形式交互结构配置在参数表中配置文件的调整,漫游来访话单的改造•资料的方式:通过redis老版Billing系统••预处理和分拣为两个单独的模块预处理后文件
,作为分拣模块的输入结构配置在配置文件中配置文件的调整资料的方式:内存库mdb2.2.新版Billing预分拣模块介绍和老系统的预处理和分拣模块相比,新版Billing的预分拣在业务层面上可以认为是把老系统的预处理和分拣模块的功能进行了合并。新版Billing的预分拣模块处理流程预分拣模块接收 模块和 下发的漫游出访文件,通过初始化配置文件方式后读取并处理,解析文件头/尾、块头/尾、记录体,进行一系列字段规整、校验后输出标准的话单记录信息,标准化后的话单记录直接以消息的方式进行后续分拣侧功能的实现,如:计费方设定、排重字段提取、属性求解、稽核、资料绑定、通道分拣等。需要特别说明的是,对于漫游来访话单,新版Billing的处理模式是走完整个预分拣的过程,最后按照分拣侧的话单输入记录原值输出给漫游侧。关于漫游来访的配置侧的调整,后续再做详细的说明。2.3.配置改动说明新版Billing系统预处理模块的配置文件为:pfilter.cfg分拣的配置信息对应的子配置文件为:<common_cfg>INCLUDE_CONFIG
=
${BOSS_HOME}</common_cfg>mon.cfg老系统预处理和分拣对应的配置文件为:pp.cfg/filter.cfg/filter.file_format.cfgpfilter.cfg配置文件说明
pfilter.cfg作为预分拣模块的的大部分内容,并有所变化配置文件,包含了老系统pp.cfg/filter.cfg两个配置文件1.pfilter.cfg中新增了po客户端的配置信息,用于po客户端初始化的参数来源<common>ctlfile=${BOSS_HOME}/etc/shmbase/pfilter #创建空文件即可hearttime=60maxwaitcheckdir_mode=1=20#是否对 校验
0=不校验,1=校验,2=校验并创建</common>2.新增了monitor的通道配置信息实例:<monitor_info><1001>shm_key_path</1001></monitor_info>=${BOSS_HOME}/data/monitor/1009/key_path新系统采用的新框架会关联monitor,以便前台 界面对程序进行启停和,所以配置文件中都新增加了这部分的配置。1001为预分拣程序的应用通道号,通道号由各模块规划好,前台
配置。pfilter.cfg的通道说明
#原始通道配置信息INCLUDE_CONFIG
=
${BOSS_HOME}/etc/pfilter.channel_source_58.cfg此部分配置信息相当于老系统预处理模块的pp.cfg配置文件的内容,下面对此次做的改造进行说明:实例说明:通道配置详见下图和老系统的pp.cfg中的通道配置信息相比,新版预分拣的通道配置的改动有:新增了redis的 方式的配置,比如:mdm_channelType_GETIDBYmdm_channelType_GETINFOBYIDmdm_channelType_GETLOGICPHONE=11=11
#预分拣2号容器58主机=17 #预分拣20号容器本地资料资料3.2.由于预分拣比如:
destination_pathdes_backup_path不存在文件
的情况,所以删除了老系统的一些配置信息=
/nbilling/data/pp/std/voice/nsn1/=
/nbilling/data/pp/stdbak/voice/voice_01/其余的差异可以查看配置文件。新版Billing通道配置老系统pp.cfg中的通道配置3.3
由于预分拣模块中分拣不再是一个单独的进程,不再配置通道号,故在预分拣的通道配置信息中新增了用于分拣侧文件类型和通道信息的配置。gsm_typefile_type =output_channel_no =其中gsm_type
和channechannel_voice的配置信息位于
mon.cfg中。4.mon.cfg配置文件说明mon.cfg包含了大部分老系统分拣模块的配置文件filter.cfg的信息下面对新版配置的调整做一下说明:4.1.删除了<sm_process_method></sm_process_method>的配置项,新系统改由配置参数表来控制 的
处理方式。对应的参数表为:td_sm_procmethod4.2.排重字段提取的配置做个调整新系统调整了实现方式,新增了类去实现条件的判断,故调整了配置新老系统对应的配置为:新系统配置为:老系统配置为:具体逻辑可以参考预分拣的代码PpRuleBase类代码位于:pfilter/filter/base/结构。预分拣输出的漫游4.3.漫游来访话单输出结构配置调整新版Billing系统除漫游来访话单,其余话单全部采用新的来访话单依然按照老系统的结果输出给漫游。由于 结构配置这一块调整比较大,后续章节会做详细介绍。漫游来访话单输出格式配置调整如下:mon.cfg中新增了配置<roam_type>………..</roam_type>比如:语音业务漫游来访话单结构配置<roam_gsm_type>iridrnrkrqrvrar=ROAM_GSM=ROAM_GSM=ROAM_GSM=ROAM_GSM=ROAM_GSM=ROAM_GSM=ROAM_GSM#ROAM_GSM漫游来访语音输出结构名称,配置在表中</roam_gsm_type>然后在:<file_type><gsm_type>input_field_no=GSMfield_count =
108output_channel_no
=
default_channel_gsmoutput_prefix =prefix_gsmrule_express =rule_prov_gsm #可以填空output_field_no =GSMprocessor =
GsmCDRProc;GsmAttribProc;NpTypeProc;ChannelProc;UniqueProc=1=roam_gsm_type
#配置漫游来访话单输出结构bind_methodroam_type</gsm_type>……………</file_type>结构,对另外需要注意的一点是:在配置TD_B_CDR_FORMAT
表时,所有漫游来访的应的属性下标配置项都要配置成原值输出。即:对应的属性下标对应的为:_MIN_MAX;//=
801;;//=
1000;在extern
const
intATTRI_extern
const
int
ATTRI_配置时,把这部分结构作为特殊话单格式进行输出。4.4
预分拣通道配置变更说明新版Billing对于通道配置和求取这一部分,也做了比较大的改动。下面以语音业务省内通道为例,对此次的变进行详细的说明老系统配置:<default_channel_bindinfo>010203=/nbilling/data/filter2/bind/km01/=/nbilling/data/filter2/bind/km02/=/nbilling/data/filter2/bind/km03/</default_channel_bindinfo>新系统配置为:<channel_voice>prov =${BOSS_DATA}/filter/bind/</channel_voice>一分求通道的模式没有变化,根据配置分通道要素到td_filter表求取。需要注意的是对于以下几类话单if(
t_infoItr->m_channelNo
==
CHANNEL_PROV||t_infoItr->m_channelNo
==
CHANNEL_NOINFO||t_infoItr->m_channelNo
==
CHANNEL_STAT||t_infoItr->m_channelNo
==
CHANNEL_CFMM||t_infoItr->m_channelNo==
CHANNEL_CFMJ||t_infoItr->m_channelNo==
CHANNEL_GPRS_OCBS省内无主统计扣费提醒扣费提醒ocbs)新版Billing在加载通道配置的时候,首先预分拣会根据配置信息、定义的通道类型和数据容器ID根据新增的通道信息表进行完整输出路径的拼接。计费侧常用通道类型(
channel_type
)说明:const
int
CHANNEL_TYPE_RR=1;//排重应用const
int
CHANNEL_TYPE_RATE_ATOMICconst
int
CHANNEL_TYPE_OCAPPconst
int
CHANNEL_TYPE_BDSEVENTconst
int
CHANNEL_TYPE_SHAREAPPconst
int
CHANNEL_TYPE_RATE_DEPLOY数据容器ID:=2;//批价原子通道=3;
//控制应用=4;//BDS应用=5;//共享总量应用=6;//批价应用通道const
int
DATA_CONTAINERID_RR_PROVCDRconst
int
DATA_CONTAINERID_RR_STATCDRconst
int
DATA_CONTAINERID_RR_CFMCDRconst
int
DATA_CONTAINERID_RR_NOINFOCDR=0;//省内=1;//统计=2;//扣费提醒=3;//无主话单const
int
DATA_CONTAINERID_RR_OCBS
=4;//OCBS
FCI话单这些通用参数的定义必须和参数表里面的一致。新版Billing新增的三张通道信息配置表为:用户通道路由:TD_USER_CHANNEL_DEF计费通道定义:TD_CHANNEL物理通道定义:TD_PCHANNEL_DEF数据关联SQL:select
*
FROM
TD_USER_CHANNEL_DEFt,(SELECT
a.channel_type,a.data_container_id,a.channel_no,b.tns_dirFROM
TD_CHANNEL
a,TD_PCHANNEL_DEF
b
WHERE
b.pchannel_type(+)=a.pchannel_type
andb.pchannel_no(+)
=a.pchannel_no)
c
WHERE
c.channel_type(+)=t.channel_type
andc.data_container_id(+)=t.data_container_id
and
c.channel_no(+)=t.channel_no;4.5结构配置变更新版Billing这部分的调整比较大。由于实现模式的调整,故删除了老系统的配置<cdr_attrib_define>INCLUDE_CONFIG
=
${BOSS_HOME}/etc/CDR_ATTRIBUTES_MACRO.cfg</cdr_attrib_define><cdr_format>INCLUDE_CONFIG
=
${BOSS_HOME}/etc/filter/filter.file_format.cfg</cdr_format>对应的属性下标和
结构改成配置数据表属性定义表:TD_B_ATTR_DEFINE结构表:TD_B_CDR_FORMAT需要注意的是,TD_B_CDR_FORMAT中配置的属性下标必须在TD_B_ATTR_DEFINE
中有定义同时要在AttrIdConstDef.h
和AttrIdConstDef.h
中添加属性下标的定义信息。4.6.资料 方式配置变更由于新版Billing资料的mdb_type =0采用redis方式,所以删除了关于mdb的配置信息#{MDB
=0,ODBCMDB}mdb_servername =infodbmdb_hostname
=#填空即为IPC本地通讯不为空为跨主机SOCKET通讯,mdb_port端口才有意义==mdb_portmdb_usermdb_password=资料 涉及的路由规则参数表:TD_USER_CHANNEL_DEF、TD_CHANNE、TD_PCHANNEL_DEF路由条件:ContainerIdEparchyCodeRouteKeyID//容器//地州编码//USER_ID/ACCT_ID后4位,或tableId根据路由条件可以在路由参数表中确定需要
redis的ip和端口。按云南NewBilling的规划目前预分拣 涉及的容器ID有:KVMDB拆分的规则有四种:方式一:不拆分方式二:按表拆分
方式三:地市+ID段方式四:按号码拆分以云南为例,方式三拆分的的规则为:下面简单介绍一下不拆分、地市+ID段拆分方式、按号码拆分的参数表配置及关联方法:1.不拆分insert
into
TD_USER_CHANNEL_DEF
(CHANNEL_TYPE,DATA_CONTAINER_ID,CHANNEL_NO,
EPARCHY_CODE,REMARK,
BEGIN_DATA_CHANNEL,
END_DATA_CHANNEL,
BEGIN_CYCLEID,
END_CYCLEID)values
('11','1','1','ZZZZ','分拣资料_根据设备号求ID',
'0','9999',
'20140801',
'20991231');insert
into
TD_CHANNEL
(CHANNEL_TYPE,
DATA_CONTAINER_ID,
CHANNEL_NO,
CHANNEL_ENAME,CHECK_AME,AREA_CODE,
PCHANNEL_TYPE,
PCHANNEL_NO,
UPDATE_ ,
UPDATE_TIME,,
CHECK_TIME)values('11','1','1','filter_userinfo1','分拣资料集中','ZZZZ','2','11011','billing','20141009212725','billing','20141009212725');insert
into
TD_PCHANNEL_DEF
(PCHANNEL_TYPE,PCHANNEL_NO,
CONN_METHOD,
TNS_DIR,
DB_NO,IP_ADDR,PORT,
PDB_USER)values
('2',
'11011',
'2',
'',
'0',
'9',
'6379',
'');2.地市+ID段拆分方式下面以 为例做一下介绍insert
into
TD_USER_CHANNEL_DEF
(CHANNEL_TYPE,
DATA_CONTAINER_ID,
CHANNEL_NO,EPARCHY_CODE,REMARK,
BEGIN_DATA_CHANNEL,
END_DATA_CHANNEL,
BEGIN_CYCLEID,END_CYCLEID)values
('11',
'2',
'1',
'0871',
'分拣资料_ _根据UID求资料',
'0',
'4999',
'20140801','20991231');insert
into
TD_USER_CHANNEL_DEF
(CHANNEL_TYPE,
DATA_CONTAINER_ID,
CHANNEL_NO,
EPARCHY_CODE,REMARK,
BEGIN_DATA_CHANNEL,
END_DATA_CHANNEL,
BEGIN_CYCLEID,
END_CYCLEID)values
('11',
'2',
'2',
'0871','分拣资料_
_根据UID求资料',
'5000',
'9999',
'20140801','20991231');insert
intoTD_CHANNEL
(CHANNEL_TYPE,
DATA_CONTAINER_ID,
CHANNEL_NO,
CHANNEL_ENAME,CHECK_AME,AREA_CODE,
PCHANNEL_TYPE,
PCHANNEL_NO,
UPDATE_ ,
UPDATE_TIME,,
CHECK_TIME)values('11',
'2','1',
'filter_userinfo21','1段分拣资料UID求资料','ZZZZ','2','11021','billing','20141009212725','billing',
'20141009212725');insert
intoTD_CHANNEL
(CHANNEL_TYPE,
DATA_CONTAINER_ID,
CHANNEL_NO,
CHANNEL_ENAME,CHECK_AME,AREA_CODE,
PCHANNEL_TYPE,
PCHANNEL_NO,
UPDATE_ ,
UPDATE_TIME,,
CHECK_TIME)values('11',
'2','2','filter_userinfo22','2段分拣资料UID求资料','ZZZZ','2',
'11022','billing','20141009212725','billing',
'20141009212725');insert
into
TD_PCHANNEL_DEF
(PCHANNEL_TYPE,
PCHANNEL_NO,
CONN_METHOD,
TNS_DIR,
DB_NO,IP_ADDR,
PORT,
PDB_USER)values
('2',
'11021',
'2',
'',
'0',
'9',
'6389',
'');insert
into
TD_PCHANNEL_DEF
(PCHANNEL_TYPE,PCHANNEL_NO,
CONN_METHOD,
TNS_DIR,
DB_NO,IP_ADDR,
PORT,
PDB_USER)values
('2',
'11022',
'2',
'',
'0',
'9',
'6390',
'');3.按号码拆分(以云南为例分为十段)insert
into
TD_USER_CHANNEL_DEF
(CHANNEL_TYPE,DATA_CONTAINER_ID,
CHANNEL_NO,
EPARCHY_CODE,REMARK,
BEGIN_DATA_CHANNEL,
END_DATA_CHANNEL,
BEGIN_CYCLEID,
END_CYCLEID)values('11','20','1','ZZZZ','
资源1',
'0','999',
'20140801','20991231');insert
into
TD_USER_CHANNEL_DEF
(CHANNEL_TYPE,DATA_CONTAINER_ID,
CHANNEL_NO,
EPARCHY_CODE,REMARK,
BEGIN_DATA_CHANNEL,
END_DATA_CHANNEL,
BEGIN_CYCLEID,
END_CYCLEID)values('11','20','10','ZZZZ','
资源1',
'9000','9999',
'20140801',
'20991231');insert
into
TD_CHANNEL
(CHANNEL_TYPE,
DATA_CONTAINER_ID,
CHANNEL_NO,
CHANNEL_ENAME,CHECK_AME,AREA_CODE,
PCHANNEL_TYPE,
PCHANNEL_NO,
UPDATE_ ,
UPDATE_TIME,,
CHECK_TIME,
PCHANNEL_NO_BAK)values('11','20','1','user_phone','
资源1',
'ZZZZ','2','20001','billing','20141217003718','billing','20141217003718',
'0');insert
intoTD_CHANNEL
(CHANNEL_TYPE,
DATA_CONTAINER_ID,
CHANNEL_NO,
CHANNEL_ENAME,CHECK_AME,AREA_CODE,
PCHANNEL_TYPE,
PCHANNEL_NO,
UPDATE_ ,
UPDATE_TIME,,
CHECK_TIME,
PCHANNEL_NO_BAK)values('11','20','10','user_phone','
资源1',
'ZZZZ','2','20010','billing','20141217003718','billing','20141217003718',
'0');insert
into
TD_PCHANNEL_DEF
(PCHANNEL_TYPE,PCHANNEL_NO,
CONN_METHOD,
TNS_DIR,
DB_NO,IP_ADDR,
PORT,
PDB_USER)values
('2',
'20001',
'2',
'',
'0',
'2',
'6320',
'');insert
into
TD_PCHANNEL_DEF
(PCHANNEL_TYPE,PCHANNEL_NO,
CONN_METHOD,
TNS_DIR,
DB_NO,IP_ADDR,PORT,
PDB_USER)values
('2',
'20010',
'2',
'',
'0',
'2',
'6329',
'');4.7.一分多通道配置调整此处的调整类似与排重字段提取处配置的调整,新老系统的配置如下新系统配置:老系统配置:具体逻辑可以参考预分拣的代码PpRuleBase类代码位于:src/pfilter/filter/base/4.8.预分拣对于回收的话单或者特殊业务(不过排重)的特殊处理#流量转增需求不过排重,预分拣后直接给分发给sender<4006>资料mdm_channelType_GETIDBYmdm_channelType_GETINFOBYIDmdm_channelType_GETSPINFOBYID=
11=11
#预分拣2号容器
58主机=
11mdm_channelType_GETROUTEINFOBYIDmdm_channelType_GETLOGICPHONEmdm_channelType_GETUSERINFOBYXX=
11=17
#预分拣20号容器本地=
11资料redo_msg_type=1
#不过排重直接分发给sender时,这个需要配置#流量转增9a${BOSS_HOME}/etc/pp/rres_misc.cfg#原始话单备份开关(yes/no)presscheck_cdrNo=#话单连续性校验开关(yes/no)#最大允许错误率error_rate
=<channel_0>SOURCE_TYPE
=switch_name
=backup_srcfile
=
yes=
yesno1file_type
=
res_typeoutput_channel_no
=<path>source_pathsrc_backup_pathfile_error_pathroamlog_path</path></channel_0></4006>4.9
启停命令channel_res=
${BOSS_DATA}/gftp/raw/misc/reans/=
${BOSS_DATA}/pp/rawbak/misc/reans/=
${BOSS_DATA}/pp/rawerr/=
${BOSS_DATA}/pp/roam/appstart
1009pfilter
4006(monitor通道号,rr进程名,4006进程通道号)appstop
1009
pfilter
4006appnotify
1009
pfilter
4006NewBilling
排重1.新版Billing排重模块调整说明新版BIlling排重模块改动不大,排重的规则和逻辑都没变化,由于话单文件经过排重后与
sender进行交互,为了满足新版Billing系统架构的SRP模式,对排重的输出结果进行了调整以便后续sender对信息进行正确的分发,后续批价进行处理。排重后文件记录的格式调整为:消息类型批价原子通道号话单记录的内容新版Billing话单文件排重后的记录格式为:1
1319a,18,0
,0,7215030663201995,,,
,,,0,,,20150306,102604,20150306,102605,1,,0872,,,00,,,,,,,,,res_test_wj.20150309,,000,3,1,20150306102604,20150331235959,0,,,,,,,,,,,,,,,,7214072821820281,3,,,,0313152635,7200087205000161,7200087205000161,,,,131,0872,,,,,,,,,0,,,,,,,,,,0313152635,72000872050001612.配置调整说明2.1.以GSM为例先介绍<FILE_TYPE>………………..</FILE_TYPE>的调整。<FILE_TYPE>#GSM=
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 26年中西医效果评估手册
- 山东省枣庄现代实验学校2026届第二学期高三化学试题期中考试试题含解析
- 2025~2026学年江西九江外国语学校九年级下学期英语学情自测
- 2026警务人员考试题及答案
- 2026货运考试题及答案三
- 2026山东第二医科大学附属医院第二批招聘20人备考题库含答案详解(模拟题)
- 2026福建福州市鼓楼区水部街道城管中队人员招聘1人备考题库附答案详解(预热题)
- 2026中国人民大学学生就业创业指导中心招聘2人备考题库附答案详解(精练)
- 2025年脑机接口驱动的手指协调功能康复训练
- 2026重庆广播电视传媒集团股份公司所属企业招聘20人备考题库及答案详解(新)
- 2025年入团考试团队效果试题及答案
- 疟疾防控知识试题及答案
- 中小学女性生理知识课件
- 2025年电信人工智能学习考试题库(含答案)
- 2025年土地使用权永久性转让协议书
- CNAS-CL01:2018 检测和校准实验室能力认可准则
- 借款担保人协议书
- 水生态系统服务价值评估-洞察分析
- DB37T 2012-2011 河道下采煤技术规范
- 手术室物品清点及意外处理
- 2024江苏扬州市扬子工程质量检测限公司招聘7人管理单位遴选500模拟题附带答案详解
评论
0/150
提交评论