用TAPI 3.0 建立呼叫中心
在以IP技术为基础的局域网、广域网以及互联网上的IP电话能够将语音、数据和视频集成在一起,这是一项正在逐步发展并走向成熟的技术。IP电话使用开放的IETF和ITUT的标准,使得多媒体能够在任何使用IP的链路上传输,在物理介质和物理位置上都给用户提供了很大的灵活性。例如,用户可以选择使用ADSL、ISDN、卫星或双绞线就可以作为传输媒体,同时用户的位置也可以随意地选取,通过Web、E-mail和数据网将全世界的个人、商业、学校和政府联在了一起。 一、IP电话带来的益处 IP电话降低了单位和个人的已经存在的信息服务消费支出,例如语音传输和视频广播方面,同时也扩宽了通信的方式,包括现代视频会议、应用程序共享等等。 企业或组织需要配置不同的网络来满足不同的需要,例如语音、数据和视频传输都采用不同的网络结构。每一个都有不同的要求,这些网络从安装、维护到配置,费用都很昂贵。而且由于这些网络物理上的不同,集成也很困难,同时限制了它们的很多潜在用途。 IP电话通过一种传输方式可以将语音、视频和数据集成在一起,有效地将三网合一,降低了费用,提高了管理效率和工作效率。 IP电话应用程序的开发,包括电话、实时文档征集、远程教育、员工培训和视频会议,以及视频邮件,都需要一个比较好的开发平台。 二、Windows 2000上的TAPI3.0 微软的TAPI3.0正是一种适应IP技术发展而出现的一种接口函数,它能够支持传统的PSTN电话和IP电话两种电话,为用户提供了一个良好的开发环境。随着电话和呼叫控制在个人计算机中越来越普遍,需要一个通用的电话接口来支持应用程序,使其能够访问任何一台计算机上的电话,通过一个统一的标准,一个呼叫的媒介和数据对应用程序也必须是可用的。 微软的TAPI3.0提供了一个简单和基本的方法,来完成两台或多台计算机连接的建立和传输媒体的访问。它将呼叫控制的功能抽象出来,以屏蔽不同的、不兼容的通讯协议,为应用程序提供一个统一的接口。 IP电话保持稳步增长,许多企业和组织开始从昂贵的、不灵活的、电路交换的公用电话网向智能的、灵活的、廉价的IP网络转变。微软预期到该趋势,因此建立起强大的计算机电话体系结构TAPI。目前它的第三版本,TAPI 3.0适合于快速方便地IP电话应用程序的开发。 微软的TAPI3.0集成了传统电话的媒体流控制功能。另外,将原来的TAPI2.1发展为COM组件模式,允许TAPI应用程序以任何一种语言来写,如C/C++或微软的VB。 除了支持传统电话的功能外,微软的TAPI3.0还支持标准的H.323会议和IP广播会议,微软的TAPI3.0还提供Qos质量保证,从而提高会议质量和网络的管理能力。 TAPI的结构图如下: 微软的TAPI3.0共有四个组件: TAPI3.0 COM API、TAPI Server、Telephony Service Providers、Media Stream Providers 与TAPI 2.1相比,微软的TAPI3.0是按COM对象方式来实现的。从TAPI转向COM组件模式使得组件能够升级TAPI的特性,并允许开发者能够以任何一种语言来编写TAPI应用程序。 TAPI Server从微软的TAPI3.0和TAPI2.1中抽象出来TSPI(Telephony Service Providers Interface),从而使得TAPI2.1 Telephony Service Providers能够与TAPI 3.0一起使用,保持TAPI的内部状态。 Telephony Service Providers(TSPs)负责独立于低层协议的呼叫模型并解释为特定协议的呼叫控制机制。TAPI3.0对TAPI 2.1 TSPs提供可靠的后向兼容性,两个IP TSPs缺省地与微软的TAPI3.0相匹配:一个是H.323 TSPs,另一个是IP广播会议的TSP。 微软的TAPI3.0为访问在一个呼叫中的媒体层提供了一个统一的方式。TAPI Media Stream Providers(MSPs)为指定的TSP提供DirectShow的接口。 微软的TAPI3.0中有五个呼叫控制模型: TAPI、Address、Call、CallHub、Terminal TAPI对象是应用程序访问TAPI3.0接入点。该对象代表了本地计算机访问的所有计算机资源,允许一个应用程序解析所有的本地和远程地址。 Address对象表示一个呼叫的源地址或目标地址。媒体层和中断所支持的地址的容量可以从这个对象中获取。一个应用程序可以在一个地址等待呼叫,同样也可以向一个目标地址呼出。 Call对象代表一个本地地址和一个或多个的其他地址的连接。Call对象可以想象成电话的主控模式。所有的呼叫控制都要通过Call对象。在CallHub中的每一个成员就是一个Call对象。 CallHub对象代表了一系列相关呼叫的集合。CallHub对象不能直接由应用程序创建。它是当有呼叫通过TAPI3.0接入时间接建立的。通过CallHub对象用户可以解析出在一个呼叫或会议中的其他参与者,可以对其他相关的远程Call对象进行呼叫控制。 三、如何使用TAPI对象 用TAPI能够比较方便地执行一个呼叫和作一个呼叫应答,它对电话的操作方便快捷,给编程者带来了很大的方便。下面是执行一个呼叫和呼叫应答的大体过程。 执行一个呼叫 1. 创建和初始化一个TAPI对象 2. 用TAPI对象解析在一个计算机上的可用地址 3. 解析每一个地址对象所支持的地址类型 4. 选择一个地址对象 5. 用Address对象中的CreateCall方法创建一个Call对象 6. 选择Call对象的适当终端 7. 用Call对象的Connect方法执行一次呼叫 呼叫应答 1. 创建和初始化一个TAPI对象 2. 用TAPI对象解析在一个计算机上的可用地址 3. 解析每一个地址对象所支持的地址类型 4. 选择一个地址对象 5. 根据不同的媒体类型用适当的Address对象来登记 6. 用一个Address对象登记呼叫事件句柄 7. TAPI通过ITCallNotification通知一个呼叫,并创建一个Call对象 8. 选择Call对象的适当终端 9. 用Call对象的Connect方法执行呼叫 10. 用Call对象的Answer方法执行应答 将TAPI 3.0应用到呼叫中心的开发中将会为改变传统呼叫中心的结构起到一个非常大的促进作用,不仅给开发人员带来极大的方便,同时降低了成本,也为呼叫中心运营商的管理和维护带来极大的方便。 四、结束语 随着Windows 2000的发布日益临近,整个CTI产业将会为TAPI 3.0的时代到来而作好准备,基于TAPI 3.0所开发的Call Center将以其优异的性能价格比和几乎无限的扩展空间,得到越来越多用户的青睐。