巧用RBF解决S1240交换机用户割接中的相关问题(一)

时间:2020-08-28 17:36:12 通信工程毕业论文 我要投稿

巧用RBF解决S1240交换机用户割接中的相关问题(一)

一、前言
 在日常的维护作业中,我们经常会碰到要调整某个号码的EN的情况,对S1240EC74机型而言,平常的人机命令需要依次执行“删号->创号->补录新业务”几个步骤,在需要对多个用户进行操作时,虽可使用MACRO进行批处理,但仍需要人工检查并手工补录号码的程控新功能,若批处理的号码中存在BCG用户,则还需要人工检查该号码的BCGID及PN等值,这大大降低了工作效率并增加了出错的风险,容易引起用户投诉,特别是近两年进行的交换机减容工作,使这一问题变得更加突出。
 有鉴于此,我通过查询相关资料,使用MPTMON编程的方法成功地解决了这一问题,并在我县分公司2003年河西模块局的割接及2006年的交换机减容工作中使用这一工具,有效地减少了机房操作人员的工作量,降低了差错率,极大地减少了用户的投诉。

二、程序设计的原理
(一)、相关理论基础
 对贝尔S1240交换机而言,要修改号码的EN,可通过直接更改相关RELATION的方式来实现,但其操作起来较为复杂,要求对系统的数据结构有较为深入的了解,而且容易因误操作造成系统的数据混乱,而通过人机命令的方式来进行则较为安全。因此,我采取了对交换机的人机命令报告进行分析的方法来实现EN的自动调整。
 S1240在输出人机命令报告时,会先以ASCII码的形式将报告存在内存的.报告缓存区中,通过报告缓存区指针RBF,我们便可直接读取报告的相关信息。而在MPTMON中,使用SCAN指令可按关键字对内存进行扫描(扫描成功则RCX不为零)。因此,通过对不同程控功能所对应的关键字进行扫描判断,便能很方便地确认出用户具有何种新业务,再通过MPTMON编程用人机命令将相关业务恢复,我们便能够在确保数据安全前提下实现号码割接及程控功能的自动添加。
(二)、对交换系统运行影响的评估
 因该程序是通过人机命令的方式来实现设备号的调整及业务的添加,这与正常情况下的手工操作是一致的;而在程序设计中,对内存的访问仅限于RBF区域,且仅使用SCAN、WOR、BYT等指令进行读操作,不会造成控制单元的内存数据更改;为了暂存错误号码清单,另申请了一个UWA空间ERR_LIST,并限制了ERR_LIST最多储存40个错误号码,这是远低于UWA区域的大小的(2K Bytes),不会造成溢出错误。因此,使用这一工具不会对交换机系统的正常运行造成任何影响。
 需要注意的是,因该MACRO的编写是基于S1240交换机EC74L204版本的,未对其他版本进行分析及测试,尚无法确定其他版本的人机命令报告所需扫描的关键字及相关偏移量信息等是否一致。因此,若将该MACRO使用于其他版本时,请先按本文中介绍的方法对相关报告进行分析并自行调整关键字及偏移量。否则,有可能造成用户程控功能的添加错误(但不会对交换系统运行造成影响)!

三、程序的使用
 使用该程序可方便地对批量号码进行割接处理,该程序具备如下功能:
自动对交换机号码(包括BCG用户)进行删除-创建-新业务恢复等批处理。
自动获取待割接号码的EN信息,并能获取BCG用户的BCGID、PN等值,在批量割接中无须再将BCG用户划出进行单独处理。
在批处理结束时,能自动列出操作不成功的号码供人工分析使用。
 
 该程序分为几个模块,使用时,请自行编辑DN_LIST  MACRO中的待割接号码列表,按如下格式编写:
 :A  DN1,NEWEN1
 :A  DN2,NEWEN2
 ..
 :A  DNx,NEWENx
 其中,A为文档中定义的割接MACRO名,DN为需要进行割接的号码,NEWEN即为新位置的设备号。需要注意的是,因交换机对单个MACRO的大小有限制,请将DN_LIST的号码清单限制在200个以下或采取增加子MACRO定义的方法来解决。
 因在实际使用中,需要改变的仅为DN列表,故可采取将DN_LIST与其他部分分不同文件的方法来导入PTCE内存,以避免重复导入其他MACRO。
 使用时,在MPTMON环境下执行 :MAIN 即可。若全部执行成功,则会出现“CONGRATULATION”等信息提示,若有部分号码不成功,则在执行结束时会给出相关号码清单。
 另外,出于减少无用的交换机指令的考虑,本程序设计时假定新创建用户的SUBGRP=1,OCB=PERM&NAT,若待割接号码的程控功能仅为该两项缺省值时,将省略掉一条修改用户程控功能的指令。若新创建用户为其他缺省值的,请参考说明自行修改程序源码。

四、程序设计方案
(一)、程序流程图

(二)程序功能模块及相关说明
 该程序包括主MACRO “MAIN”及以下几个功能模块(MACRO)
普通用户割接MACRO “A”,负责普通用户的EN调整及新业务的恢复。
BCG用户割接MACRO“BCGUSER”,负责BCG用户的EN调整及新业务的恢复。
出错判断及处理MACRO“ERRDEAL”,负责对相关步骤进行检验,并将不成功号码暂存入ERR_LIST列表。
执行结果汇总MACRO“RESULT”,对DN_LIST的割接情况进行分析,将不成功号码作清单列出。

下面对主要的功能模块作简要说明:
(1)、普通用户割接MACRO “A”
    该MACRO先用<4296:指令显示号码的相关信息,并分析报告内容,根据报告中的“BCGID”关键字,判断该号码是否为BCG用户,若是则调用“BCGUSER”MACRO进行相应的处理。
    若为普通用户且显示成功,则收集用户的NA、TN及程控功能等信息,并采用<4295:及<4291:指令进行用户的删创,最后再用<4294:指令进行用户程控功能的恢复。
 号码的NA、TN、BCGID、PN及程控功能的判断,则采取扫描不同的关键字,并根据关键字读取指定偏移量信息的方法来实现。下表列出了本MACRO中需要进行判断及恢复的相关信息。
 表一、各程控功能扫描关键字及偏移量信息
程控功能 扫描关键字 偏移量(RBF+RDX) 获取信息 说明
BCGID BCGID 8-9 BCGID值 需转换为字符
内部号PN PN 5-11 PN值 需转换为字符
设备号EN H' 2-5,18-21/23-26 NA、TN值 需转换为字符
用户组 SUBGRP 9-10 用户组 需转换为字符
密码 PASSWORD 11-14 密码 需转换为字符
截接INTCP INTCP 8 MOVE或BADP 仅根据首字节为“M”或“O”判断
立即计费(BCG) BLNGLEV 17 判断立即计费 判断首字节是否为“I”
呼出权限OCB PERM 6 用户OCB值 仅根据首字判断
来电显示 CGLIP   仅判断 使用23=1&1恢复业务
反极 PAYPHONE   仅判断 仅使用10=2&3参数恢复业务
呼叫转移 CFWDU   仅判断  
遇忙转移 CFWDBSUB 9,11 补充判断首字 补充判断是否为电话助理业务
无应答转移 CFWDNOR 9,11 补充判断首字 补充判断是否为电话助理业务
电话助理1 11832304   仅判断  
电话助理2 11832305   仅判断  
  
 因为不同号码的具体程控功能数目会有所区别,本MACRO定义了数组“.F0”-“.F9”、“.SUBCTRL0”-“.SUBCTRL2、“.OCB_0”-“.OCB_1”等来进行具体的功能恢复,指令参数全部采用数字形式。


(2)、BCG用户割接MACRO“BCGUSER”
 该MACRO先用<4381:指令显示号码的相关信息,并分析报告内容,收集用户的BCGID、PN、程控功能等信息(参见表一),并依次进行删除-创建-恢复的操作,与MACRO “A”功能相似,只是具体的操作指令有所不同。

(3)、出错判断及处理MACRO“ERRDEAL”
   该MACRO通过扫描不同的关键字,对常见的执行不成功的情况进行判断,并通过ERR_LIST列表将不成功号码进行暂存,供MACRO执行完毕后进行汇总分析,为防止缓冲区溢出,限制最大记录数为40,即最多只记录40个不成功的号码。