如何用DELPHI获取程控交换机里的数据????高分---300等你来拿。不够可再加。(300分)

S

sodme

Unregistered / Unconfirmed
GUEST, unregistred user!
在一个小计电话计费的系统中,需要获取程控交换机里的数据,请高手赐教如何用DELPHI实现。
并且请简要介绍一下程控交换机的相关知识,万分感谢。
 
通常交换机的串口接一个打印机,话单通过打印机打印出来,如果需要计费费的话,
把计算机的串口与此串口相连接,接收交换机输出的话单,根据话单进行计费。
DELPHI中你可以使用SPCOMM或其他串口通讯控件接收话单,话单中一般包括:主叫号
码,被叫号码,开始通话时间,通话时间(或结束时间)等信息(不同交换机的话单
内容和格式也不相同),有了这些信息,计费应该没有什么问题了吧。
 
gwd兄,感谢你对此问题作出的回答,小弟还有一事相求,哪里可以找到程控交换机的相关资料,
尤其是其的通信格式及相关的指令操作等。谢谢。先为你记下100分。谢谢。也欢迎其他高手
赐教。
 
程控交换机的通信格式只能从交换机的随机手册中找到,不同的交换机的通信格式

是不一样的。如果只作计费,不用考虑其他操作,直接从交换机的打印机口读取话

单然后计费就可以了。
 
我也要做这个程序,欢迎大家讨论
 
这类问题我只有听听的份!
 
可以通过windows的超级终端接受几条话单,分析话单格式,剩下的就是处理字符串了
(可用vb的Mscomm控件接受数据)
 
首先,再次感谢gwd作出的解答,谢谢。

需要说明的是,此系统不仅仅完成计费功能,还有一些管理,比如一些计费费率的设置,
一些免费电话号码的设置,还有一是否允许市话计费加入总话费等等,所以,必须知道它
的指令格式,以及相应的指令,以便实现计算机对程控机的控制和配置。

我查了很多的资料,但没有具体地谈到这方面的相关知识,只是介绍功能。希望有这方面
资料的朋友能够慷慨献出,在下必以高分报之。

再次谢谢大家的热情参与。
 
计费当然要包括一些管理功能,比如费率的设置,免费电话号码的设置,是否允许
市话计费加入总话费等等,这些都是你的计费软件的功能。
事先设置一费率库,设置到各地的费率,包括区号,费率,计费方式等,如 0531
代表济南,0.70 代表费率为七毛,计费方式为每分钟一次等,免费电话的费率设
置为0即可。
读出的话单中被叫号码中的前几位就是费率库中的区号,由它即可以得到本次通话
需要的费率等信息,再根据通话时长,还不能实现计费吗?

不行我替你写算了。
 
致gwd兄:

  感谢你的帮助,我想接下来就是硬件接口的问题了。从到打印机的串口接收数据,连线
情况是怎么样的呢??或者,可以到市面上直接买到相应的连接器件吗??

  对不起,给您添麻烦了,因为我是首次接触这方面的编程。谢谢指教。

  欢迎大家继续关注此题,并参与讨论。
 
模拟telnet实现
另外:
gwd是济南的吗?陆和?
 
这个方面我只能听了!
 
to: lml
What is 陆和?
 
to sodme:
9针 《----》 25针
2 <--> 2
3 <--> 3
4 <--> 6
5 <--> 7
6 <--> 20
7 <--> 5
8 <--> 4
 
呵呵。我有个现成的程序,不过是用Pascal写的,用在DOS环境下。该程序也有个Delphi1的
版本,因为需要在一个386/486档次的机器上运行在Windows 3.2环境下,一般人都不愿意用
太好的机器,感觉不是太合算,用户的这种考虑也不是没有道理的,应该尊重。我来谈一下。

一、关于程控交换机计费系统
一般讲,交换机分为局用机和用户机两种,前者多为离线式计费,例如贝尔机实时话单都记录
在磁带上,每两三天下一次磁带,读入到计费用的主机上,Unix环境或Windows环境下的都有。
后者一般都是实时记费,即每个话单都实时地传到计费终端上。例如加拿大北方电讯公司、原邮电部
洛阳交换机厂、珠海电讯设备厂等生产厂家所生产的设备。可笑的是:有些小的电信局如县级局
仍然用一些用户机。
用户交换机一般用于大型集团和宾馆酒店使用,更小型的系统可用于一般单位内部交换使用。如
医院、厂矿、学校和一些小的企事业单位。除酒店使用外,一般的用户交换机对计费的要求不是
太严格,而一般的用户交换机在购买时计费系统作为选购件已经提供给用户,绝大部分情况下是
可以满足用户需求的。唯有酒店使用的交换机意义不太一样,往往厂家提供的系统不能满足用户
的需求。因为酒店对交换机的要求有一些特别的地方,例如旅客可以通过拨交换机设定的一些特
服号向酒店发出一些服务请求,例如,9099表示送一杯酒到房间,9084表示请打扫房间,等等。。
这些信息通过总机接收并送达到酒店的执行部门。
单就计费系统而言,只是对中继路由的呼叫记录提供一些记载和处理,这些系统一般通过RS-232C
实现。每种交换机是不一样的,原始的记录方式是采用一个串口打印机打印,手工进行汇总计算。
有些交换机有一台控制终端,可以设定通信参数,有些是设定好了不能变更的。
需要说明的是,有些小型交换机的BIOS中不包括话单输出模块,如果没有这些模块交换机不能输出
话单。例如珠海产的HJ系列。这种情况下需要与厂家联系,并更新Bios系统。一般说明书上提供有
详细说明,说明Bios版本号,并提示是否有输出话单的功能。
最后一点是需要向提供中继线的电信部门咨询是否提供中继线的反极信号用于向交换机指示此话务
已提交或结束,否则一个占线的呼叫也会计费。
二、关于硬件连接
当然几乎所有的计费终端都是通过RS-232C连接的,而且速率一般很低,我接触到的十多种交换机最
高的通讯速率才2400bps,在这种连接下100M的距离通讯没有任何问题。如果达到300M以上则需要接
驳光隔离长线收发器了。这种设备很廉价,一般200-700元一对不等,只提供长距离时的阻抗匹配,
最长可将RS-232C连接延长到9KM之遥。连接这种设备时都有详细的使用说明,连接没有什么困难。但
在订购时需向供货方说明用途,用于终端的收发器和用于处长串口的收发器是不一样的。
至于9-9针、25-25针、9-25针的连接应该都不是什么问题,有很多资料上有说明。我就有一篇论文对
此有极为详尽的解释。
三、关于交换机对软件的要求
大多数情况下,计费终端的传输是单向的,即交换机向计费终端提供详话单。但有些大的酒店使用的
交换机比较高档,能够通过计费终端向交换机提供关闭或打开某些话务的功能。例如,酒店前台可以
根据情况打开或关闭某个房间的国际或国内长话功能。这种情况下是双向的。所传输的命令格式可参
阅交换机随机说明书。如果说明书已遗失的话可向厂家或有同型号交换机的用户协商。
四、关于计费软件的编制
在不同的使用环境下对串口的编程是不同的。在DOS下较为简单,一般处理思路是截获硬中断Int 0BH(Com2)
或Int 0CH(Com1)。在中断处理程序中向某个缓冲区队列填充接收到的内容,主程序从该队列中取数据。
读数据的驱动则是从Int 16H产生的,也就是说在等待键盘输入的时候才去读缓冲区。
Windows环境下相对要简单得多,16位环境下使用Com16控件,32位环境下使用Com32控件,有数据传输
时会触发相应的事件。还有一个控件根本是由Microsoft提供的,就是MSCom,在VB中使用非常方便。
如何改善程序的性能有几点提示:
1.尽可能在使话单具有由用户设定解析的功能,不要每遇到一种新的交换机、一种新的话单格式都要
修改程序。一般只关心:主叫、被叫、开始通话时间、话务长度四个字段,由用户指定一个话单中每
个字段的开始位置和结束位置。
2,呼叫开始通话时间是由交换机时间决定的。有些交换机停电后重启动时时间复零,有些交换机报告
的时间年份只有两位。这样可以使用计费终端上的时间。
3,每一个话单的处理要求的效率较高,应该对算法进行优化。例如,交换机是不能对被叫地进行说别
的。而国际、国内长话的区号又不等长,如何将一个呼叫分解为被叫地和被叫号需要高效率的算法。
这方面我有一个很高效率的算法。大概意思是取呼叫号(有些交换机要赐除出线路由号)取前6位,前加
1娈成一个长整数,与区号库中前面也加过1的索引号进行查找(用二分法)确定区号表中是还存在这个
区号,如何没有的话,也可以定下来这个区号长多少位。这样不仅可以区分国际长话、国内长话、市
话和本地网话。
4,计费方式变动是很大的。今年二月份中国电信的计费方式改了,估计下半年还得改。这样很多以前
由厂家提供的计费系统大多需要进行修改。可以设定一个通用的方式来适应各种变化。第一是每个话
务分成两部分,每个部分可以由用户来设定秒数(如市话可设为180秒和60秒,长话为0秒和6秒)。然后
两部分有不同的价格(如市话为0.2和0.1元,国内长话为0和0.07元)。
5,费率库与区号库其实是分开的,有两个费率指向:一个是标准价格,另一个是折扣价格。每个折扣
都有时段范围。除每天的折扣时段外,还有节假日折扣说明(现在中国电信已经取消了节假日优惠,我
想总有一天会恢复的),这些节假日如周六、周日还好判断,元旦、五一、国庆也好判断,只有农历春
节和伊斯兰传统节日不好判断。农历春节还稍简单一点,大不了提供一个50年的表格来查询。困难的伊
斯兰的古尔邦节和肉孜节。为找到这个算法我访问了近千个网站,最后也是用查表法搞定。
6.话单库和话费库也是分开的。若干个详话单(talk)组成一个话费单(bill)。

这个回答满意吗?
 
这方面我也只有听了。
 

Similar threads

S
回复
0
查看
3K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
2K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
1K
SUNSTONE的Delphi笔记
S
S
回复
0
查看
932
SUNSTONE的Delphi笔记
S
D
回复
0
查看
2K
DelphiTeacher的专栏
D
顶部