CTI领域标准API的第一选择――TAPI 3.0
CTI领域标准API的第一选择――TAPI 3.0美国Music Telecom公司技术支持部 王宏 TAPI出现已经有很长时间,从1993年公布的TAPI 1.0版,经过1.3、1.4、2.0、2.1直到Windows 2000推出,TAPI也更新到3.0版。事实上,2.x以前的TAPI,虽然也有其独到之处,如开放结构(WOSA),设备无关等,但并没有引起更大关注。随着CTI产业的发展和Internet狂潮席卷,内建于Windows 2000中的TAPI 3.0终于调起了人们的胃口。 CTI应用程序接口 在CTI应用中涉及到计算机应用中的各个方面,而电话语音技术是其中的核心。因此就必须利用各种应用程序接口(API)来构建自己的应用系统。虽然各个设备供应商都提供自己的API,但对用户来说,更希望使用一种标准的API,从硬件层中抽象出来,可以不再为每种不同的硬件专门写代码,而利用系统设备无关特性无须重复编写代码,给开发带来极大的方便。另一方面,从决策者来说,运用设备无关的标准API,使系统升级和更新时能避免重复投资,降低费用,保留现有资源。 因此API的选择就显得非常重要。目前各种应用程序接口也正在发展之中,也尚未形成CTI业界的认同标准。当前得到认可的API有三种:微软公司TAPI、Novell和AT&T的TSAPI以及Sun公司的JTAPI TSAPI由Novell和AT&T共同开发,实现把电话系统与Netware网络集成在一起。TSAPI是出现最早的语音应用程序接口,在市场方面也取得过一些成绩。但由于公司的经营策略和昂贵的客户许可费用的羁绊,加之,Netware在网络操作系统的竞争中已经失去领先地位,因此它已经失去了发展的动力。 JTAPI是由Sun公司提出的基于Java语言的应用程序接口。由于JTAPI是基于Java的应用接口,使得JTAPI的对象独立于操作系统和硬件平台,支持跨平台的应用。JTAPI定义了一套类库,包含电话功能和扩充功能。JTAPI结合了传统的电话服务和Web处理能力,具有较强的功能。但是,基于Java的特性,使得JTAPI在拥有强大功能的同时,也失去了普及和推广的基础。 TAPI 3.0特性 TAPI由微软提供,并且已内建于微软操作系统之中。在TAPI中定义了设备(LINE和PHONE)和媒体流。通过LINE可操纵交换机、语音卡、MODEM等,通过PHONE可操纵电话机、麦克风等设备。而通过媒体流则可以区分不同的媒体,如数据、语音、传真等,从而触发不同的处理进程。TAPI是Windows开放服务结构(WOSA)的一部分。可以与其他Windows API有机的结合起来,建造灵活、强大的应用。 但是,虽然倚着强大的微软,借着Windows广泛用户基础,TAPI 2.x以前的版本并没有表现出超出其他电话编程接口的、更突出的特性。正是随着Windows 2000的发布,随着CTI产业的蓬勃发展,拥有了更出色特性的TAPI 3.0终于引起了广泛注目。 TAPI 3.0(The Microsoft® Windows® Telephony Application Programming Interface)是一个改进的TAPI,同时支持传统的公众交换电话网(PSTN)和IP 网络。IP电话技术使得声音、数据和视频在现有的基于IP的局域网(LAN)、广域网(WAN)和Internet上统一起来。因为使用开放的IETF(Internet Engineering Task Force)和ITU(International Telecommunications Union)标准,使多媒体传输能够在任何支持IP的网络上进行,提供一种适应多种媒介(POTS、ADSL、ISDN、同轴电缆、双绞线、卫星线路等)的、不受位置限制的应用。因此,无所不在的网络能提供给人们Web、e-mail、data等多种应用,把遍布世界的个体、商务、学校、政府等连接起来。 跟以前的版本相比,TAPI 3.0带来新的震撼,提供了新特性。 1、基于COM体系的TAPI 3.0把传统的电话技术和IP电话技术结合起来,把应用从简单的电话语音呼叫一直扩充到了包含有质量保证(QOS)的多媒体多点IP会议系统。TAPI 3.0提供了增强的开发工具,帮助开发者创建现代全球通信系统。TAPI 3.0 API采用了流行的COM实现方式,使开发者能够用多种语言来生成应用系统,如Java、Visual Basic、C/C++都能很好地发挥其特长。基于COM的体系也使得应用系统的开发和升级变得简单。TAPI 3.0提供对ActiveX控件的支持。可以利用上千种可重复利用的ActiveX控件,避免编写大量代码,只专注于自己的系统逻辑设计,快速和高效地创建大型的应用。 2、在TAPI 3.0中,扩充了对IP电话技术的支持。在这里,“打电话”可能并没有实际的电话机参与,而只是视频信息在IP网络上传输。IP电话技术使CTI的领地从传统的电信网络迅速扩张到Internet。当构建TAPI 3.0的应用时,已经不必考虑到底是连接到公用电话网或是IP网络上了。 3、TAPI 3.0增强了对创建呼叫中心的支持。TAPI 3.0的呼叫中心控制(Call Center Control)增加了自动呼叫分配(ACD)对象,通过五个主要的ACD对象来实现对呼叫的自动管理。这五个对象是:代理处理(Agent Handler),队列(Queue),ACD组(ACD Group),代理(Agent),和代理事务(Agent Session)。利用这些对象,可以完成预拨号、呼叫队列的维护、呼叫路由的管理等事务,再加上对座席的控制和座席状态的全面监测,使建造呼叫中心变得非常简单。 4、TAPI 3.0增加了多点IP会议的支持,可以协助开发者创建多媒体多点IP会议系统。与呼叫中心控制结合起来,能够方便地建设网上呼叫中心。 TAPI 3.0结构 TAPI 3.0结构如下: 从上面可以看到,TAPI 3.0由四个主要构件组成: TAPI 3.0 COM API TAPI Server Telephony Service Providers (TSP) Media Stream Providers (MSP) TAPI Server是从TAPI 3.0和TAPI 2.1中把TSPI(Telephony Service Providers Interface)抽取出来,是为了使TAPI 3.0能够使用TAPI 2.1 的TSP。 TSP和MSP构成Service Providers。它们当然要一起出现,TSP为呼叫控制(Call Control)服务,而MSP为媒体控制(Media Control)服务。 Telephony Service Providers(TSP)接受来自TAPI的与协议无关的呼叫,并把它们转换为相关协议的呼叫。在TAPI 3.0中绑定了两个IP相关的TSP:H.323 TSP,和IP Multicast Conferencing TSP(IP多点传送会议TSP)。 Media Service Providers(MSP)提供了一个一致的接口来处理呼叫中的各种媒体流。 TAPI 3.0编程 TAPI 3.0包含三个控制接口,提供给开发者使用: Call and Media Controls(呼叫和媒体) Call Center Controls(呼叫中心) IP Multicast Conferencing(多点会议) Call and Media Controls由一系列COM对象、接口和方法构成,用以建立两台或多台计算机之间的呼叫。其中包括五个主要的对象TAPI、Address、Terminal、Call、和CallHub。 TAPI对象代表了所有Telephony资源。TAPI 3.0应用必须首先创建一个TAPI对象的实例,然后对它初始化。 Address对象定义了一个能建立和接受呼叫的实体。通过这个实体,应用程序可以查询指定的地址是否支持某种特定的媒体类型;可以列举当前与某地址关联的呼叫;可以创建一个转移呼叫等等。 Terminal对象定义了一个媒体流的发起者或接受者,比如麦克风或扬声器。应用程序选择适当的Terminal来开始媒体流的传送。 Call对象定义了两个或多个地址之间的连接。 CallHub对象定义了一个在多方呼叫中的集合体。如果拥有必须的权限,通过CallHub对象可以控制呼叫中的其他参与者。 Call Center Controls提供一组对象,帮助开发者建立呼叫中心。利用Call Center Controls可以实现预拨号、呼叫队列和路有管理、排队机、座席控制等呼叫中心的核心功能。 IP Multicast Conferencing Controls允许开发者创建多媒体多点IP会议系统,它由三个主要部分来实现:Directory Controls操纵服务器会议列表;Conference Blob Controls控制指定会议;Multicast COM Interfaces允许应用程序从服务器上获得多点传送地址。 结束 TAPI 3.0自从开始露面就引起人们的广泛关注,而设备供应商也表现出极大的兴趣。美国Music Telecom公司所生产语音板卡支持从TAPI 1.0到TAPI 2.2,并首先宣布全面支持Windows 2000和TAPI 3.0。在CTI应用中,基于微软的操作系统的架构依然占有主导地位。同时,TAPI 3.0对CTI领域的热点--IP网络和呼叫中心给予了强劲的支持,因此,随着CTI产业的进一步发展和Internet的深入人心,随着Windows 2000的流行,会有越来越多的人追随TAPI 3.0,而TAPI 3.0将会成为CTI领域标准API的第一选择。 | |