计算机技术使得电话有软件化趋向,综合测试仪工厂总结其优势是使电话可以变得灵活,方便地按具体要求实现电话的基本功能以及附加功能。软电话需要和通信硬件设备交互,目前主要有两种实现方法:一是利用电脑板卡和设备公司提供的DLL来实现,但功能有一定的局限性;二是利用协议公开的标准编程接口,但难度大,参数复杂不易实现。本设计利用标准编程接口TAPI,为了便于系统的集成和开发,重点介绍以统一短消息的形式实现应用系统和通信设备之间交互的TAPI模块化设计方法。该模块化组件与系统集成度高,可以方便的实现各种电话与控制功能。
由于TAPI应用是电讯应用,需要连接PC电脑和通讯硬件设备,TAPI运行在PC机上并监控通讯硬件设备,所以首要任务是建立硬件环境。对于VOIP应用通信系统来说,软交换服务器是IP电话网的控制核心,同时落地接入PSTN (公共电话网),PC机与软交换服务器处于同一网段,TAPI与硬件交互也将通过网络使用TCP/ IP协议连接。本设计的开发平台是基于如下软交换系统,。
与新硬件被安装到PC机上相似,需要在PC机上安装驱动程序,但这个驱动并不是软交换服务器的驱动,而是这个软交换服务器上TAPI的驱动,这个驱动通常被称为“TAPI客户端”,目的是使PC机上的TAPIDLL能“找到”该软交换机的TAPI,并能与之通讯。
TAPI实际上是由TAPI、TSPI( Telephony Serv iceProv ider In terface)电话服务提供者接口和MSPI(M edia Serv ice Prov ider Interface)媒体服务提供接口三个部分组成的。TAPI是一个为程序员提供的工具包,它和MSPI一起使微软视窗环境下的用户能够开发电话应用程序。TSPI也是一个为程序员提供的工具包,使他们能够进行后端服务的开发,以操纵来自符合TAPI规范的应用请求,综合测试仪供应商换句话也就是说,它提供了一种连接到某一特定设备的方法。服务守护程序( TAPI Server)就是基于TSPI接口设计的,它直接驱动通信设备并通过与TAPI动态连接库进行交互为应用程序提供电话服务。
本设计主要以C++类的设计思想,在MFC (微软基础类)的框架下实现对TAPI的封装。由于TAPI的函数调用非常复杂,参数个数和形式多种多样,为了便于系统集成和应用程序的开发,设计了3个控制类: TAPI应用控制类Tap iApp lication、TAPI线路控制类Tap iLine、TAPI通话控制类Tap iChannel.Tap iApplication是对整个TAPI的监控,是应用程序和通信设备的交互站; TapiL ine是对TAPI线路的管理,它根据应用指令操作线路通话; Tap iChannel是对具体一路通话的管理,它根据线路指令操作对应的通信设备并实时报告设备状态,这3个类的调用关系如图3所示。
首先需要TAPI的定义文件。由于TAPI与W indow s集成,定义文件在安装好W indow s操作系统后就可以被找到。以C语言方式提供的TAPI. H和TAPI32. dll文件,包含了所有TAPI结构和功能的定义。如果使用C、VC或VB开发应用,只要在相关的开发环境中设置,将文件引入所要开发的应用项目即可;如果使用De lph i开发,需要将TAPI. H转化为Delphi中的头文件,再将这个pas文件引入即可;如果使用Java开发,需要TAPI的c lass文件。
TapiA pplicat ion是对TAPI的管理,它处于调用结构的顶层,通过下层的服务为上层应用程序提供透明、规格化的信息服务。在通过TAPI进行远程通信程序设计时,必不可少的是要调用lineIn itia lizeEx( )函数以初始化TAPI,以及调用lineOpen( )函数以打开线路,然后才能使用TAPI进行监控和代理呼叫等功能。综合测试仪生产厂家认为除此之外,为了编写可靠的远程通信程序,还应调用有关检测线路设备能力的函数lineGetDevC aps( ),检测TAPI版本兼容性函数lineN egotiateAPIV ersion( ),检测线路当前使用状态的函数lineSetStatusM essages( )等以适应各种情况。最后调用lineC lose( )函数来关闭线路,调用lineShutdow n( )函数将应用程序与TAPI断开。
为了使TAPI便于操纵,适应不同的应用开发环境,秋仪科技建议In itia liseTAPI( )这个不要参数的初始化函数,把初始化和协商TAPI版本所需要的参数通过内联机制进行整合,避免了过多的参数传递。初始化成功后表明应用程序已经获得TAPI的数据结构和应用句柄。
![](http://img12.makepolo.cn/images/formals/img/product/960/910/4_23003e26c57ea98c4e575621273aecb9.jpg!280x210)
![](http://img11.makepolo.cn/images/formals/img/product/674/371/4_162af3a3b6208785d253e8bd69d901f6.jpg!280x210)
![](http://img12.makepolo.cn/images/formals/img/product/71/851/4_236f03538b4371fbea64de98637b9922.jpg!280x210)