当前位置: 首页 > 技术资料 > 电话语音留言与查询系统的设计与实现

电话语音留言与查询系统的设计与实现

QooIC.com 新闻出处:电子市场 | 发布时间:2010/11/13 15:39:15

  一、引言


  随着现代通讯业的发展,信息的交流和使用越来越方便,作为通讯业基础的固定电话,由于其在资费和技术上的某些优势,在现代社会中仍占据的不可低估的市场份额,如何将现有的电话网络和传统的语音Modem 相互结合,最大程度的利用现有的信息资源,成为一些单位和电脑爱好者的所追求目标,虽然在这方面已经有技术较为成熟的多路语音卡等产品,能在一条电话线上,通过语音卡内的硬件系统实现多路语音电话的接听。本文将从另外的角度出发,讨论利用TurboPower 公司强大的通讯控件及计算机系统中具有语音功能的Modem 来实现电话留言和语音查询这一功能,在此基础上,按照个人的喜好来增添部分特色的功能。本系统和数据库联系在一起,可做到实时查询数据库中的信息。


  二、设计


  语音软件产品的开发,离不开系统底层的调用,在这一方面,微软的操作系统提供了一系列的应用程序接口Win32 API,并扩展了标准的API 中的电话功能,构成了电话应用程序接口Telephony API(TAPI) 函数库,并将其与系统紧密集成,其核心文件为Tapi32. dll、Tapisrv. dll 等。通过调用这些系统提供的函数,我们可以很方便的开发出有关电话语音方面的软件产品,而TurboPower 公司更为广大Delphi 程序员提供了一个更加快捷和方便的使用方式,利用其Apro 控件包中的提供强大控件,经过简单的一些编程,即可实现所需的电话语音功能。在具体使用时,我们只需用到TApdTapiDevice 控件所提供的属性、方法及事件,即可完成我们所需要的功能。首先,检测系统有无TapiDevices 设备,在检测到有或有多个电话语音设备后,可指定是那个设备出于工作状态,并根据需要,设定响铃几次后,自动开始接听,同时可以决定是否启用声卡扩音来监听电话中的声音,此时,电话语音设备进入待机状态,如果有来电,在满足指定的振铃次数后,设备即自动接通,并播放欢迎词和提示音,随后,利用TApdTapiDevice 控件所提供的TapiWaveNotify 事件和以上每一环节给出的语音设备状态,来完成一系列的电话录音功能,并可利用TapiDTMF 事件来响应用户通过电话按键所需要的查询功能。


  三、实现


  1、新建一项目,在主界面上放置一个TApdTapiDevice,和一些其他的辅助相关控件如Label、Edit、Button 等,其中TApdTapiDevice控件的相关属性、方法、事件说明如下:


  其他更多的相关属性及详细的含义可以参阅Async Professional控件包中的帮助说明,将相关的属性设置好完成后,按照语音设备的工作流程,开始编写相关的处理过程程序,主要是对Modem 设备接通时、接通后的处理,和对录音部分的控制。


  其中在整个程序中用到的状态标志为自定义常量:


  4、查询功能的实现,可以利用控件提供的TapiDTMF 事件来响应和处理,并且可以根据具体的需求做相应的调整。


  至此,一个具有语音录音及语音查询功能的电话语音系统的核心就基本完成了,本程序在Windows2000 + Delphi7 下运行,结合外置的支持语音的Modem 在使用中效果良好,充分利用了现有条件下硬件设备,完成了多路语音卡的一些基本功能。