楊宗長(zhǎng)
(武漢大學(xué)電信學(xué)院,湖北,武漢,430072)
摘要: TAPI 3.0(The Microsoft® Windows® Telephony Application Programming Interface)是一個(gè)改進(jìn)的TAPI,是傳統(tǒng)的公眾交換電話網(wǎng)(PSTN)和IP網(wǎng)絡(luò)技術(shù)的融合。基于TAPI 3.0的IP電話技術(shù)使得聲音、數(shù)據(jù)和視頻在現(xiàn)有的基于IP的局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)和Internet上統(tǒng)一起來;TAPI3.0為建立Office CTI(數(shù)字辦公平臺(tái))提供了一個(gè)便捷而強(qiáng)大的方法。
關(guān)鍵詞:TAPI3.0 ; Microsoft;公眾交換電話網(wǎng); IP;數(shù)字辦公平臺(tái)
中圖分類號(hào):TN915.9 文獻(xiàn)標(biāo)識(shí): A
The Development of Office CTI with TAPI 3.0
YANG Zong-chang
(College of Electronic Information , Wuhan University, Wuhan 430072, China)
Abstract: Telephony Application Program Interface (TAPI) 3.0 is an evolutionary API providing convergence of both traditional PSTN telephony and IP telephony. IP telephony is an emerging set of technologies that enables voice, data, and video collaboration over existing LANs, WANs, and the Internet. TAPI 3.0 enables IP telephony on Microsoft® Windows® operating systems by providing simple and generic methods for building an Office CTI.
Key words: TAPI3.0; Microsoft; PSTN ; IP;Office CTI
在以IP技術(shù)為基礎(chǔ)的局域網(wǎng)、廣域網(wǎng)以及互聯(lián)網(wǎng)上的IP電話能夠?qū)⒄Z音、數(shù)據(jù)和視頻集成在一起,這是一項(xiàng)正在逐步發(fā)展并走向成熟的技術(shù)。IP電話使用開放的IETF(Internet Engineering Task Force)和ITU(International Telecommunications Union)的標(biāo)準(zhǔn),使得多媒體能夠在任何使用IP的鏈路上傳輸,在物理介質(zhì)和物理位置上都給用戶提供了很大的靈活性。例如,用戶可以選擇使用ADSL、ISDN、衛(wèi)星或雙絞線就可以作為傳輸媒體,同時(shí)用戶的位置也可以隨意地選取,通過Web、E-mail和數(shù)據(jù)網(wǎng)將全世界的個(gè)人、商業(yè)、學(xué)校和政府聯(lián)在了一起。
一、CTI(Computer Telephony Integration)簡(jiǎn)介
CTI (Computer Telephony Integration,計(jì)算機(jī)電話集成),俗稱呼叫中心,是傳統(tǒng)的公眾交換電話網(wǎng)(PSTN)和計(jì)算機(jī)通信技術(shù)的融合。CTI應(yīng)用中涉及到計(jì)算機(jī)應(yīng)用中的各個(gè)方面,而電話語音技術(shù)是其中的核心。因此就必須利用各種應(yīng)用程序接口(API)來構(gòu)建自己的應(yīng)用系統(tǒng)。雖然各個(gè)設(shè)備供應(yīng)商都提供自己的API,但對(duì)用戶來說,更希望使用一種標(biāo)準(zhǔn)的API,從硬件層中抽象出來,可以不再為每種不同的硬件專門寫代碼,而利用系統(tǒng)設(shè)備無關(guān)特性無須重復(fù)編寫代碼,給開發(fā)帶來極大的方便。另一方面,從決策者來說,運(yùn)用設(shè)備無關(guān)的標(biāo)準(zhǔn)API,使系統(tǒng)升級(jí)和更新時(shí)能避免重復(fù)投資,降低費(fèi)用,保留現(xiàn)有資源。因此API的選擇就顯得非常重要。目前各種應(yīng)用程序接口也正在發(fā)展之中,也尚未形成CTI業(yè)界的認(rèn)同標(biāo)準(zhǔn)。
當(dāng)前得到認(rèn)可的API有三種:微軟公司TAPI、Novell和AT&T的TSAPI以及Sun公司的JTAP。TSAPI由Novell和AT&T共同開發(fā),實(shí)現(xiàn)把電話系統(tǒng)與Netware網(wǎng)絡(luò)集成在一起。TSAPI是出現(xiàn)最早的語音應(yīng)用程序接口,在市場(chǎng)方面也取得過一些成績(jī)。但由于公司的經(jīng)營(yíng)策略和昂貴的客戶許可費(fèi)用的羈絆,加之,Netware在網(wǎng)絡(luò)操作系統(tǒng)的競(jìng)爭(zhēng)中已經(jīng)失去領(lǐng)先地位,因此它已經(jīng)失去了發(fā)展的動(dòng)力。JTAPI是由Sun公司提出的基于Java語言的應(yīng)用程序接口。由于JTAPI是基于Java的應(yīng)用接口,使得JTAPI的對(duì)象獨(dú)立于操作系統(tǒng)和硬件平臺(tái),支持跨平臺(tái)的應(yīng)用。JTAPI定義了一套類庫,包含電話功能和擴(kuò)充功能。JTAPI結(jié)合了傳統(tǒng)的電話服務(wù)和Web處理能力,具有較強(qiáng)的功能。但是,基于Java的特性,使得JTAPI在擁有強(qiáng)大功能的同時(shí),也失去了普及和推廣的基礎(chǔ)。
TAPI由微軟提供,并且已內(nèi)建于微軟操作系統(tǒng)之中。在TAPI中定義了設(shè)備(LINE和PHONE)和媒體流。通過LINE可操縱交換機(jī)、語音卡、MODEM等,通過PHONE可操縱電話機(jī)、麥克風(fēng)等設(shè)備。而通過媒體流則可以區(qū)分不同的媒體,如數(shù)據(jù)、語音、傳真等,從而觸發(fā)不同的處理進(jìn)程。TAPI是Windows開放服務(wù)結(jié)構(gòu)(WOSA)的一部分?梢耘c其他Windows API有機(jī)的結(jié)合起來,建造靈活、強(qiáng)大的應(yīng)用。但是,雖然倚著強(qiáng)大的微軟,借著Windows廣泛用戶基礎(chǔ),TAPI 2.x以前的版本并沒有表現(xiàn)出超出其他電話編程接口的、更突出的特性。正是隨著Windows 2000的發(fā)布,隨著CTI產(chǎn)業(yè)的蓬勃發(fā)展,擁有了更出色特性的TAPI 3.0終于引起了廣泛注目。

圖-1微軟TAPI
二、微軟TAPI3.0 特性
微軟的TAPI3.0(The Microsoft® Windows® Telephony Application Programming Interface)正是一種適應(yīng)IP技術(shù)發(fā)展而出現(xiàn)的一種接口函數(shù),它能夠支持傳統(tǒng)的PSTN電話和IP電話兩種電話,為用戶提供了一個(gè)良好的開發(fā)環(huán)境。TAPI 將傳統(tǒng)電話與 IP 電話合并于單一的公用接口中。TAPI 不僅提供傳統(tǒng)的電話服務(wù)提供程序,而且還提供 H.323 會(huì)議和 IP 多播會(huì)議。這可以在網(wǎng)絡(luò)上提供多媒體交流(例如語音、視頻和數(shù)據(jù))并允許各組之間進(jìn)行高效率地交流。
微軟的TAPI3.0提供了一個(gè)簡(jiǎn)單和基本的方法,來完成兩臺(tái)或多臺(tái)計(jì)算機(jī)連接的建立和傳輸媒體的訪問。它將呼叫控制的功能抽象出來,以屏蔽不同的、不兼容的通訊協(xié)議,為應(yīng)用程序提供一個(gè)統(tǒng)一的接口TAPI,目前它的第三版本:TAPI3.0。
IP電話保持穩(wěn)步增長(zhǎng),許多企業(yè)和組織開始從昂貴的、不靈活的、電路交換的公用電話網(wǎng)向智能的、靈活的、廉價(jià)的IP網(wǎng)絡(luò)轉(zhuǎn)變。微軟預(yù)期到該趨勢(shì),因此建立起強(qiáng)大的計(jì)算機(jī)電話體系結(jié)構(gòu) 3.0適合于快速方便地IP電話應(yīng)用程序的開發(fā)。

圖-2 TAPI 應(yīng)用體系結(jié)構(gòu)
三、TAPI 3.0開發(fā)設(shè)計(jì)
微軟的TAPI3.0集成了傳統(tǒng)電話的媒體流控制功能。另外,將原來的TAPI2.1發(fā)展為COM組件模式,允許TAPI應(yīng)用程序以任何一種語言來寫,如C/C++或微軟的VB。
除了支持傳統(tǒng)電話的功能外,微軟的TAPI3.0還支持標(biāo)準(zhǔn)的H.323會(huì)議和IP廣播會(huì)議,微軟的TAPI3.0還提供Qos質(zhì)量保證,從而提高會(huì)議質(zhì)量和網(wǎng)絡(luò)的管理能力。
1.基于COM組件模型的TAPI3 的開發(fā)設(shè)計(jì)結(jié)構(gòu)
TAPI3.0 設(shè)計(jì)開發(fā)示意結(jié)構(gòu)如下:從上面可以看到,TAPI 3.0由四個(gè)主要構(gòu)件組成:

圖-3 TAPI3 設(shè)計(jì)開發(fā)示意結(jié)構(gòu)
■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構(gòu)成Service Providers。它們當(dāng)然要一起出現(xiàn),TSP為呼叫控制(Call Control)服務(wù),而MSP為媒體控制(Media Control)服務(wù)。
Telephony Service Providers(TSP)接受來自TAPI的與協(xié)議無關(guān)的呼叫,并把它們轉(zhuǎn)換為相關(guān)協(xié)議的呼叫。在TAPI 3.0中綁定了兩個(gè)IP相關(guān)的TSP:H.323 TSP,和IP Multicast Conferencing TSP(IP多點(diǎn)傳送會(huì)議TSP)。
Media Service Providers(MSP)提供了一個(gè)一致的接口來處理呼叫中的各種媒體流。
TAPI 3.0包含三個(gè)控制接口,提供給開發(fā)者使用:
■Call and Media Controls(呼叫和媒體)
■Call Center Controls(呼叫中心)
■Multicast Conferencing(多點(diǎn)會(huì)議)
Call and Media Controls由一系列COM對(duì)象、接口和方法構(gòu)成,用以建立兩臺(tái)或多臺(tái)計(jì)算機(jī)之間的呼叫。其中包括五個(gè)主要的對(duì)象TAPI、Address、Terminal、Call、和CallHub。
TAPI對(duì)象代表了所有Telephony資源。TAPI 3.0應(yīng)用必須首先創(chuàng)建一個(gè)TAPI對(duì)象的實(shí)例,然后對(duì)它初始化。
Address對(duì)象定義了一個(gè)能建立和接受呼叫的實(shí)體。通過這個(gè)實(shí)體,應(yīng)用程序可以查詢指定的地址是否支持某種特定的媒體類型;可以列舉當(dāng)前與某地址關(guān)聯(lián)的呼叫;可以創(chuàng)建一個(gè)轉(zhuǎn)移呼叫等等。
Terminal對(duì)象定義了一個(gè)媒體流的發(fā)起者或接受者,比如麥克風(fēng)或揚(yáng)聲器。應(yīng)用程序選擇適當(dāng)?shù)腡erminal來開始媒體流的傳送。
Call對(duì)象定義了兩個(gè)或多個(gè)地址之間的連接。Call對(duì)象可以想象成電話的主控模式。所有的呼叫控制都要通過Call對(duì)象。在CallHub中的每一個(gè)成員就是一個(gè)Call對(duì)象。
CallHub對(duì)象定義了一個(gè)在多方呼叫中的集合體。如果擁有必須的權(quán)限,通過CallHub對(duì)象可以控制呼叫中的其他參與者。CallHub對(duì)象不能直接由應(yīng)用程序創(chuàng)建。它是當(dāng)有呼叫通過TAPI3.0接入時(shí)間接建立的。通過CallHub對(duì)象用戶可以解析出在一個(gè)呼叫或會(huì)議中的其他參與者,可以對(duì)其他相關(guān)的遠(yuǎn)程Call對(duì)象進(jìn)行呼叫控制。
Call Center Controls提供一組對(duì)象,幫助開發(fā)者建立呼叫中心。利用Call Center Controls可以實(shí)現(xiàn)預(yù)撥號(hào)、呼叫隊(duì)列和路有管理、排隊(duì)機(jī)、座席控制等呼叫中心的核心功能。
IP Multicast Conferencing Controls允許開發(fā)者創(chuàng)建多媒體多點(diǎn)IP會(huì)議系統(tǒng),它由三個(gè)主要部分來實(shí)現(xiàn):Directory Controls操縱服務(wù)器會(huì)議列表;Conference Blob Controls控制指定會(huì)議;Multicast COM Interfaces允許應(yīng)用程序從服務(wù)器上獲得多點(diǎn)傳送地址。
2、如何使用TAPI對(duì)象
用TAPI能夠比較方便地執(zhí)行一個(gè)呼叫和作一個(gè)呼叫應(yīng)答,它給編程者帶來了很大的方便。下面是執(zhí)行一個(gè)呼叫和呼叫應(yīng)答的大體過程。
2.1執(zhí)行一個(gè)呼叫
(1) 創(chuàng)建和初始化一個(gè)TAPI對(duì)象
(2) 用TAPI對(duì)象解析在一個(gè)計(jì)算機(jī)上的可用地址
(3) 解析每一個(gè)地址對(duì)象所支持的地址類型
(4) 選擇一個(gè)地址對(duì)象
(5) 用Address對(duì)象中的CreateCall方法創(chuàng)建一個(gè)Call對(duì)象
(6) 選擇Call對(duì)象的適當(dāng)終端
(7) 用Call對(duì)象的Connect方法執(zhí)行一次呼叫
2.2呼叫應(yīng)答
(1) 創(chuàng)建和初始化一個(gè)TAPI對(duì)象
(2) 用TAPI對(duì)象解析在一個(gè)計(jì)算機(jī)上的可用地址
(3) 解析每一個(gè)地址對(duì)象所支持的地址類型
(4) 選擇一個(gè)地址對(duì)象
(5) 根據(jù)不同的媒體類型用適當(dāng)?shù)腁ddress對(duì)象來登記
(6) 用一個(gè)Address對(duì)象登記呼叫事件句柄
(7) TAPI通過ITCallNotification通知一個(gè)呼叫,并創(chuàng)建一個(gè)Call對(duì)象
(8) 選擇Call對(duì)象的適當(dāng)終端
(9) 用Call對(duì)象的Connect方法執(zhí)行呼叫
(10)用Call對(duì)象的Answer方法執(zhí)行應(yīng)答
四、 Office CTI 設(shè)計(jì)
不少的企業(yè)或組織常常需要配置不同的網(wǎng)絡(luò)來滿足不同的需要,例如語音、數(shù)據(jù)和視頻傳輸都采用不同的網(wǎng)絡(luò)結(jié)構(gòu)。每一個(gè)都有不同的要求,這些網(wǎng)絡(luò)從安裝、維護(hù)到配置,費(fèi)用都很昂貴。而且由于這些網(wǎng)絡(luò)物理上的不同,集成也很困難,同時(shí)限制了它們的很多潛在用途。因此很有必要建立“Office CTI”,即數(shù)字辦公平臺(tái)。
微軟的TAPI3.0將呼叫控制的功能抽象出來,以屏蔽不同的、不兼容的通訊協(xié)議,為應(yīng)用程序提供一個(gè)統(tǒng)一的接口,因此構(gòu)建基于TAPI3.0的Office CTI,它通過IP 傳輸方式將語音、視頻和數(shù)據(jù)集成在一起,有效地將三網(wǎng)合一,降低了費(fèi)用,提高了管理效率和工作效率?梢奜ffice CTI將是一個(gè)能提供包括電話、實(shí)時(shí)文檔征集、遠(yuǎn)程教育、員工培訓(xùn)和視頻會(huì)議,以及視頻郵件等綜合服務(wù)的數(shù)字辦公平臺(tái)。

圖-4 Office CTI (企業(yè)數(shù)字辦公平臺(tái))示例
五、 結(jié)束語
TAPI 3.0自從開始露面就引起人們的廣泛關(guān)注,而設(shè)備供應(yīng)商也表現(xiàn)出極大的興趣;隨著Win2K、XP系列的廣泛應(yīng)用,CTI產(chǎn)業(yè)為擁有了更出色特性的TAPI 3.0終于引起了廣泛注目,基于TAPI 3.0所開發(fā)的數(shù)字服務(wù)平臺(tái)將以其優(yōu)異的性能價(jià)格比和極大的擴(kuò)展空間,得到越來越多用戶的青睞。
參考文獻(xiàn):
[1]Microsoft.MSDN 2004. Microsoft Corporation,2004.
[2] [美]Anthony Jones, Jim Ohlund 編著.楊合慶 譯.Microsoft Windows 網(wǎng)絡(luò)編程(第二版).北京:清華大學(xué)出版社,2002.
[3] [美] Nabajgoti Barkakati.Visual C++ 開發(fā)指南. 北京:電子工業(yè)出版社,2002.