首页 > C和C# > 基于TSAPI协议的CTI应用

基于TSAPI协议的CTI应用

2007年6月7日 发表评论 阅读评论

计算机电话集成(CTI,Computer Telephony Integration)
是指通过软硬件接口及控制设备把电话和计算机信息处理集成在一起,
实现对语音、数据、视频等的相互融合,增强通信能力的一种技术[1]。近几年来,随着通信网络数字化的飞速发展和计算机处理能力的不断提高,通信技术和计算机技术相互渗透的进程明显加快,CTI技术也随之得到了广泛的应用。其中呼叫中心是最主要的应用领域。
对于CTI技术而言,CTI应用标准是CTI技术发展的关键因素。目前流行的CTI标准主要有CSTA( Computer Supported
Telecommunication  Application)、TAPI(Telephony API)、TSAPI(Telephony
Services API)、JTAPI(Java Telephony
API)。本文以目前应用最为广泛的TSAPI协议为基础,介绍了一种呼叫中心的硬件结构组成及其软件实现。
基于TSAPI协议的CTI系统硬件架构
本文以正在建设的某地119火警报警服务中心(Call
Center)电话调度工程为例,提出了基于TSAPI协议的CTI建设方案。方案参考ECTF(Enterprise Computer
Telephony
Forum)定义的TSAPI系统设计标准模式,采用客户/服务器(C/S,Client/server)组网模型,通过局域网实现电话交换系统(PBX,
Private Branch  Exchange)、电话服务器(TS,Telephony
server)和应用通讯程序之间的三方连接【2】,本方案在TSAPI标准构架的基础上做了进一步的改进,设立警情服务器(Agent
Server)和通讯服务器(Communication server )。
警情服务器用于集中监控坐席电话状态,传递系统内部消息和完成呼叫分配等工作。通讯服务器主要负责接收解析数据包和消息,并通过内部协议将数据包翻译为TSAPI协议的标准格式发往电话服务器,与排队机(ACD)或者交换机(PBX)进行信息交换,达到了使用TSAPI协议对坐席电话控制的目的。事实上警情服务器和通讯服务程序是整个系统内信息交换的枢纽。
基于通讯服务程序在系统中所要实现的功能,程序设计遵循了以下几点原则:
应用通讯程序采用WindowsNT/2000服务模式运行。通讯服务程序在后台自动运行,与用户不需过多交互,故采用Windows
NT/2000服务模式进行安全,避免人为因素造成的通讯中断。
通讯服务程序采用多线程编程方式。通讯服务需要接收警情服务器、电话服务器两个方向上的数据包及消息并处理,且数据包、TSAPI消息到达的时间及数量是完全异步的。因而采用多线程及同步异步等灵活多样的模式。
在程序设计之前,首先要明确TSAPI协议实现CTI功能时,首先利用AcsOpenStream()函数在通讯应用程序和电话服务器之间开启一条通信虚拟通道:ACS流(Application
Control services stream),当电话服务器返回创建成功的确认消息ACSOpenStreamConfEvent后,
ACS流成功开启,然后应用程序就可以与电话服务器进行通信应用程序在处理TSAPI消息时,使用cstaMonitorDevice (
)函数开启对该电话的监控,以获得该电话的相关呼叫消息。通常,应用程序会接收到两种消息类型:确认消息(消息头为CstaConfEvent)和事件消息(消息头为CstaUnsolicitedEvent)。TSAPI程序工作流程如图2所示。
功能模块设计
通讯服务器软件由两大部分组成,分别为服务控制台部分、通讯服务程序部分。其中服务控制台部分主要负责通讯服务程序的初始化。通讯服务程序部分主要功能是实现警情服务器和电话服务器之间的协议转换,完成基本呼叫控制、信息获取等功能。按照总体设计要求,将通讯服务器划分为五大功能模块,分别为:TSAPI消息获取与分配模块、TSAPI消息处理模块、数据包收发模块、数据包处理模块和辅助功能模块。整个通讯服务器软件程序采用VC++6.0编写。
通讯服务控制台模块主要功能:在应用程序初始化时,需要对服务模式的通讯服务程序进行控制。当通讯应用程序初次运行时需要在注册表中创建子键用于存储应用程序相关信息,同时在用户界面上操作人员能够完成启动服务、停止服务、设置自动/手动启动服务模式等交互操作。

分类: C和C# 标签: 2,876 次阅读
原文链接:http://www.wenhq.com/article/view_31.html
欢迎转载,请注明出处:亲亲宝宝
  1. 本文目前尚无任何评论.
  1. 本文目前尚无任何 trackbacks 和 pingbacks.