科技7钉
捌刎晒觌
使用Ⅶ编程语言开发数字中继语音卡
吴友宣
(中国联通汕头分公司,广东汕头515000)
腧耍】笔者单位是一个电信企业,常用数字中继语音卡做业务支撑,如改号通知,语音激活登记,语音话费通知等,现结合实际,以
D 327/647/1287PC I 为例,以V B 编程语言来说明如何进行数字中继语音卡的开发。以及一些相关事项。
既键词]Ⅶ编程;语言开发;数字中继语音卡
1
V B 接口简介在V i sua l B a si c 中,对动态库T C N 07.D L L 的调用是通过
N 07D L L B A S 来声明的,对动态库T CE l _32.D L L 的调用是通过T CE l —32.BA S 来声明的。
由于在本质上,V B 也是通过调用TC E l _32.D L L 来实现对
D 327,647门287PC I 硬乍-t-的控制。
2
V B 对动态库的调用
在V B 中,需要首先对D LL 中的函数进行声明,然后才能对该函数进行调用。关于如何声明D LL 中的函数,请参考V B 中的H ELP 文
件“D ec l a r es t at em ent ”o
下面,通过举例来说明,例如:在TC E l _32.H 中的函数
B 00L W I N A P I D J V oc _Pl ayFi l e 6nt t r unkl D ,cha r +Fi l e N am e);
在TC El —32.B A S 中声明为
D e cl a r eFunct i onD JV oc_Pl ayFi l e L i b 。t cel -32.dl l ’(B yV al t r unk-I D A s Lon#B yV al Fi l eN am eA s St r i ng)A s Long :
分析:
在V C 中(32位环境】,B O O L 为32位,i nt 为32位:因此,在V B 中,相应的使用Lon g(32位),Long(32位)要注意的最关键一点是,所有参数和返回值的宇节长度要相等。在V B 中,变量类型I nt eger 仍然是16位的。其范围是一32767-32767。V C 中的i nt ,l ong ,D W O R D ,B O O L 在V B5中需用32位的l ong 表示;而V C 中的W O R D 在V B 5.0中需用I nt eger 表
V B 编程简介
V B 对卡的操作,也包括三部分。一、初始化部分,包括初始化数字中继卡、设置中继类型等等,在Form —Load 中运行。二、结束部分,包括释放中继卡、释放驱动程序,在F orm —U nl oa d 中运行。三、处理部分,这部分在TI M E R 中运行,或放在For m _A ct i vat e 函数里,具体用法请参见示范程序。
注意:F orm _A ct i vat e 是一个死循环,如果将处理部分放在这里,要调用D oEvent s ,以使
得其他98,N T 佐000程序能正常工作。PU SH —PL A Y 在每次循环中需要调用,以维持文件放
音的继续o
3
V B 编程的注意事项
由于V B 是解释型的编程语言,它在设计时有一些不同的出发点,因此,在使用V B 调用D L L 时,有一些事项应引起注意。
在C 语言中返回值是指针的函数,在V B 中不能使用这些函数包括:
D J T r k_G et D t m f C ode
D J Sys
G e t l nst a l l Di r 等等
在V B 中,请使用如下函:
D J T r k _G et D t m f CodeA
,如果在C 语言中某函
的参为字符串,并且在函调用完毕后,
有内容i 嗽参返回,当VB 使用该函时,带入的变量必须是已经
2009年9月(上1
分配空间的。这些函数有:
D J T r k :G et D t m f C odeA
例如:
得到某一中继通道的被叫号码
D i m A ce pS t r A sSt ri ng ’40
D J T r k_G et M f cC odeA t r unk l D A cepSt r
在N T 下使用V B 编程时,
如果主处理流程放在T i m e r 中,初试化放在F or m —L oa d 中,必须保证D J S ys —E nabl eC ar d 函数调用成功后才去运行Ti m e r 中的处理程序。
具体方法:
可以设定一个全局变量,在For m —L oad 的最后将其置为T R U E :在T i m er 中判断该变量,来决定是否工作。
也可以在F orm —L oad 的开始调用T i m e r .Ena bl e=F a l s e ,在最后调用Ti m er .E nabl e =Tr ue :在F orm —U nl oad 时,先调用Ti m er .E n —a bl e=F a l s e ,再调用D JSys _D i s a bl eC ar do
4
V B 示范程序
为使大家能理解上面所述内容,本文以—个简单的银行服务为例,实现如下功能:如果~个电话呼八,在完成M F C 接续后,进入语音服务,其服务流程如下:
1)提示“这里是X X 银行演示系统“。
2)提示‘请输入您的银行巾长号”接收8位数字按键,作为帐号
3)提示”请输入您的私人密码“。
接收6位数字按键,作为密码。不f 黼r 厶法性判断。4)提示”按1查询余额,按2查询利率,按3查询利息”
接收,按照选择播放相应的语音。
5)播放”谢谢使用本系统,再见”,挂柯k
编程语言vb是什么TC E l -32.B A S D em o .vbp
各文件相关说明如下:
对动态库TC N 07.D LL 的调用是通过N 07D LLB A S 来声明的,对动态库TC El _32.D LL 的调用是通过TC El —32.BA S 来声明的。D e m o .
vbp 是项目文件。M ai nForm f r m 窗体文件o
D em oba s 是单元文件。
‘J
嗲考文献]
f 1】桂海源.张碧玲信令系统【M 埘E 京邮电大学出版社,2008.
【2】纪江.7号信令系统(《茎订本)IM I .人民邮电出版{{:,199913l 姚巍.W i n dow s A Pl 函数往V ksuzl B 疵中的碰用实例I M I .人民邮电出版社.1999.

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。