当前位置:首页 > 作文大全 > 【NGN话单处理系统的设计与开发】 内话系统
 

【NGN话单处理系统的设计与开发】 内话系统

发布时间:2019-02-21 04:43:39 影响了:

  摘要:为了适应新的网络结构,丰富网管监控手段,向市场部门提供强有力的后台支撑,我开发出了NGN(新一代通信网络)话单处理系统,本文介绍了NGN话单处理系统的设计与开发,详细介绍了话单文件的下载,更名,格式转换,入库,统计分析等模块。
  关键词:NGN SS1 SS2 话单 主叫号码 被叫号码 通话时长 话务量
  中图分类号:TP3 文献标识码:A 文章编号:1007-9416(2012)01-0097-02
  
  前言
  2006年底,河南网通公司对全省电话网络进行大改造,新建的网络打破了以前的网络结构,以两个功能强大的新一代交换机(SS1,SS2)为枢纽,连接全省所有的市话交换机(市话、网关、汇接、长途等交换机),对全省所有的话务进行汇接、交换、统计,交换机对每个地市的话务情况进行详细记录,这样一来,对于我们网管来说,怎样统计SS上的话单成为了一个新的问题,由于省公司没有提供相应的程序,所以,只有自己想办法解决。于是,经过近1个月的努力,我开发出了NGN话单处理程序。
  1、NGN话单处理的概念
  NGN 话单就是功能强大的两台交换机SS1和SS2生成的话单文件,该文件包括3种类型:市话文件,长话文件,对端入网。两台交换机互为负荷分担。每个交换机产生的每种类型的文件数量相等,一天的文件为96个,两台交换机每天共产生96*3*2个文件,这些文件存放在省公司的两台专门的ftp服务器上。要想处理话单文件首先第一步要每天下载这些文件,第二步对话单文件批量更名(转换程序对转换前的文件名称有严格规定),然后用转换程序将这些二进制文件转换成标准文本格式(厂家对二进制文件的格式保密,只提供话单的格式转换程序,将二进制文件转换为文本文件),具体话单样式如下(两条记录):
  10 86A2AD31 02 3933960000 00 15839348150 2007/08/23 22:00:34.5 3 2007/08/23 22:01:22.9 0 0000048.4 0006 2220 0173 00000006000000 001 00 15839348150 00000000 EE
  最后,对文本文件编程读取内容,插入到相应的库表中,再编写程序对库表中的文件进行统计分析,得到我们需要的内容,最终形成报表。
  2、NGN话单处理系统的设计
  话单处理系统采用两台服务器,一台作为数据库服务器,数据库采用sql server2000数据库,根据原始话单的特征,建立数据库ngnbill,分配用户py_ngnser,passwd:zhangfan,考虑到话单数据的量比较大,修改库文件大小为10G建立原始库表6张,ss1市话表ss1_loc,ss1长途表ss1_tol,ss1对端入网ss1_tom,ss2市话表ss2_loc,ss2长途表ss2_tol,ss2对端入网ss2_tom。
  另外一台服务器作应用程序服务器,负责运行程序,定时从省公司的ftp服务器上下载话单文件,然后执行一系列程序,直到数据入库,分析出结果。
  我开发程序时使用的Powerbuilder6.5以及sql server2000数据库。Powerbuilder6.5是Powersoft公司开发的用于开发大型数据库应用的工具,它是以客户/服务器体系结构来开发数据库应用程序,也是一种面向对象的图形方式的集成开发工具。
  3、NGN话单处理系统的程序简要流程图:
  4、各模块说明
  4.1 文件自动下载,利用DOS的批处理程序和WINDOWS的计划任务实现了自动FTP功能,以下为程序部分源码(略)
  该程序主要是利用dos批处理取得当前的日期,然后计算出昨天的日期,合成文件名的共性部分(文件名举例:SISDN_20070 8230015.393.PY_01.LOC.04.0001),然后利用mget命令将所有符合条件的文件下载到本地服务器相应目录,说明:利用批处理程序实现日期的加减较为繁琐,上面的程序用到了一个第三方的小程序date1,用来取前一天的日期,最终用windows的计划任务定时运行程序即可。本模块我还提供了另外一种方式手动方式下载,具体是利用现有的网络下载工具cute ftp,可以时时根据需要下载自己需要的相应日期或时区的文件,由于是现有的程序,不再介绍。
  4.2 文件批量更名模块
  上面提到了刚下载的文件的名字比较长,具体文件名举例如下:
  并且不符合转换程序对需要转换文件的文件名的要求,具体要求文件名格式为d********.s12,“*”为任意数字,转换后的文件名见下
  SISDN_200708230245.393.PY_01.LOC.04.0011
  SISDN_200708230015.393.PY_01.TOL.04.0001
  SISDN_200708230045.393.PY_01.TOM.04.0003
  该部分的程序用powerbuilder6.5编写,部分主要代码(略):
  该段程序完成的功能是将计算机上相应目录下的文件找到,并按照事先规定的文件名规则进行批量更名,主要用到了windows自带的api函数movefile。
  4.3 文件转换模块
  该程序主要功能是将符合文件名要求的话单文件从二进制格式转换为文本格式,另外还将转换后的许多文件合成一个文本文件。其他不再介绍。
  4.4 文本文件入库
  该模块的主要功能为将文本文件逐条读取,然后插入到数据库响应的数据库表中该程序有power builder6.5编写,主要是在窗口中的“开始”按钮中编写代码,代码省略。
  该段代码主要利用power builder6.5的读取文本文件的函数功能,将文本文件打开,然后循环逐条读取,将读取的字符串按照字段长度逐级截取,然后将各个字符串插入到数据库表中,直到最后一条为止,页面的开始时间和终止时间用来观察所有一天的数据处理完成所需要的时间,判断处理速度。
  4.5 话单的统计分析
  话单的统计主要完成的功能是将话单按主叫或被叫号码分析,根据号码段判断出所属局向,从而计算出不同的局向产生的市话,长途,以及对端入网的呼叫总时长,进而计算出话务量,这在以前是不可能实现的,通过对这些日常话务量的监控,发现话务量激增或锐减时可以立即对话单进行核对,从而做到发现问题及时应对。
  该部分的程序编写主要是数据库编程,编写好的数据库存储过程用power builder6.5编写程序调用运行,只所以这样做主要考虑到ngn话单的量特别大,每天都有几百万条数据需要处理,如果单独用power builder6.5和简单的sql语句处理起来速度相当慢,用数据库存储过程来处理会大大加快处理速度,这样我们用同样的服务器处理起来速度会成倍提高。主要的存储举例:市话处理存储过程pro_sh_qq(将主叫号码和被叫号码分别截取前4位插入到千群表中),pro_zbjx(将千群表中的数据按照目前濮阳各局向所包含的千群来增加主被叫局向同时插入到局向表中),这两个存储过程同时会处理长途和对端入网的数据,只不过截取的局向长度不同,其他相同。有了主叫和被叫局向,我们就可以对所有的局向通话的总量进行计算,从而得出任意局向间的通话情况。具体存储过程代码省略。
  注意事项:backup log ngnbill with no_log的功能是截取数据库日志文件长度,因为数据量比较大,日志增长比较快,要及时截取,避免硬盘空间很快就满时造成程序停止向下运行。
  4.6 数据存储
  该部分的功能是将数据库中处理后的数据,根据所需保存成exccel文件,以便于形成报表。具体是利用power builder6.5编写,利用数据窗口的检索功能将符合条件的数据检索出来,然后保存成excel文件。
  另外值得注意的是如果处理的是对端入网时或者是对全区的数据进行保存时,不能保存成excel文件,因为excel文件最大保存65536条记录,这时只能保存成txt文件。
  参考文献
  [1]《PowerBuilder6.5参考手册》.
  [2]《SQL Server 2000 开发人员指南》.
本文为全文原貌 未安装PDF浏览器用户请先下载安装 原版全文

猜你想看
相关文章

Copyright © 2008 - 2022 版权所有 职场范文网

工业和信息化部 备案号:沪ICP备18009755号-3