楊宗長
(武漢大學電信學院,湖北,武漢,430072)
摘要: TAPI 3.0(The Microsoft® Windows® Telephony Application Programming Interface)是一個改進的TAPI,是傳統(tǒng)的公眾交換電話網(wǎng)(PSTN)和IP網(wǎng)絡(luò)技術(shù)的融合;赥API 3.0的IP電話技術(shù)使得聲音、數(shù)據(jù)和視頻在現(xiàn)有的基于IP的局域網(wǎng)(LAN)、廣域網(wǎng)(WAN)和Internet上統(tǒng)一起來;TAPI3.0為建立Office CTI(數(shù)字辦公平臺)提供了一個便捷而強大的方法。
關(guān)鍵詞:TAPI3.0 ; Microsoft;公眾交換電話網(wǎng); IP;數(shù)字辦公平臺
中圖分類號:TN915.9 文獻標識: 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ù)和視頻集成在一起,這是一項正在逐步發(fā)展并走向成熟的技術(shù)。IP電話使用開放的IETF(Internet Engineering Task Force)和ITU(International Telecommunications Union)的標準,使得多媒體能夠在任何使用IP的鏈路上傳輸,在物理介質(zhì)和物理位置上都給用戶提供了很大的靈活性。例如,用戶可以選擇使用ADSL、ISDN、衛(wèi)星或雙絞線就可以作為傳輸媒體,同時用戶的位置也可以隨意地選取,通過Web、E-mail和數(shù)據(jù)網(wǎng)將全世界的個人、商業(yè)、學校和政府聯(lián)在了一起。
一、CTI(Computer Telephony Integration)簡介
CTI (Computer Telephony Integration,計算機電話集成),俗稱呼叫中心,是傳統(tǒng)的公眾交換電話網(wǎng)(PSTN)和計算機通信技術(shù)的融合。CTI應(yīng)用中涉及到計算機應(yīng)用中的各個方面,而電話語音技術(shù)是其中的核心。因此就必須利用各種應(yīng)用程序接口(API)來構(gòu)建自己的應(yīng)用系統(tǒng)。雖然各個設(shè)備供應(yīng)商都提供自己的API,但對用戶來說,更希望使用一種標準的API,從硬件層中抽象出來,可以不再為每種不同的硬件專門寫代碼,而利用系統(tǒng)設(shè)備無關(guān)特性無須重復(fù)編寫代碼,給開發(fā)帶來極大的方便。另一方面,從決策者來說,運用設(shè)備無關(guān)的標準API,使系統(tǒng)升級和更新時能避免重復(fù)投資,降低費用,保留現(xiàn)有資源。因此API的選擇就顯得非常重要。目前各種應(yīng)用程序接口也正在發(fā)展之中,也尚未形成CTI業(yè)界的認同標準。
當前得到認可的API有三種:微軟公司TAPI、Novell和AT&T的TSAPI以及Sun公司的JTAP。TSAPI由Novell和AT&T共同開發(fā),實現(xiàn)把電話系統(tǒng)與Netware網(wǎng)絡(luò)集成在一起。TSAPI是出現(xiàn)最早的語音應(yīng)用程序接口,在市場方面也取得過一些成績。但由于公司的經(jīng)營策略和昂貴的客戶許可費用的羈絆,加之,Netware在網(wǎng)絡(luò)操作系統(tǒng)的競爭中已經(jīng)失去領(lǐng)先地位,因此它已經(jīng)失去了發(fā)展的動力。JTAPI是由Sun公司提出的基于Java語言的應(yīng)用程序接口。由于JTAPI是基于Java的應(yīng)用接口,使得JTAPI的對象獨立于操作系統(tǒng)和硬件平臺,支持跨平臺的應(yīng)用。JTAPI定義了一套類庫,包含電話功能和擴充功能。JTAPI結(jié)合了傳統(tǒng)的電話服務(wù)和Web處理能力,具有較強的功能。但是,基于Java的特性,使得JTAPI在擁有強大功能的同時,也失去了普及和推廣的基礎(chǔ)。
TAPI由微軟提供,并且已內(nèi)建于微軟操作系統(tǒng)之中。在TAPI中定義了設(shè)備(LINE和PHONE)和媒體流。通過LINE可操縱交換機、語音卡、MODEM等,通過PHONE可操縱電話機、麥克風等設(shè)備。而通過媒體流則可以區(qū)分不同的媒體,如數(shù)據(jù)、語音、傳真等,從而觸發(fā)不同的處理進程。TAPI是Windows開放服務(wù)結(jié)構(gòu)(WOSA)的一部分。可以與其他Windows API有機的結(jié)合起來,建造靈活、強大的應(yī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電話兩種電話,為用戶提供了一個良好的開發(fā)環(huán)境。TAPI 將傳統(tǒng)電話與 IP 電話合并于單一的公用接口中。TAPI 不僅提供傳統(tǒng)的電話服務(wù)提供程序,而且還提供 H.323 會議和 IP 多播會議。這可以在網(wǎng)絡(luò)上提供多媒體交流(例如語音、視頻和數(shù)據(jù))并允許各組之間進行高效率地交流。
微軟的TAPI3.0提供了一個簡單和基本的方法,來完成兩臺或多臺計算機連接的建立和傳輸媒體的訪問。它將呼叫控制的功能抽象出來,以屏蔽不同的、不兼容的通訊協(xié)議,為應(yīng)用程序提供一個統(tǒng)一的接口TAPI,目前它的第三版本:TAPI3.0。
IP電話保持穩(wěn)步增長,許多企業(yè)和組織開始從昂貴的、不靈活的、電路交換的公用電話網(wǎng)向智能的、靈活的、廉價的IP網(wǎng)絡(luò)轉(zhuǎn)變。微軟預(yù)期到該趨勢,因此建立起強大的計算機電話體系結(jié)構(gòu) 3.0適合于快速方便地IP電話應(yīng)用程序的開發(fā)。

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

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

圖-4 Office CTI (企業(yè)數(shù)字辦公平臺)示例
五、 結(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ù)平臺將以其優(yōu)異的性能價格比和極大的擴展空間,得到越來越多用戶的青睞。
參考文獻:
[1]Microsoft.MSDN 2004. Microsoft Corporation,2004.
[2] [美]Anthony Jones, Jim Ohlund 編著.楊合慶 譯.Microsoft Windows 網(wǎng)絡(luò)編程(第二版).北京:清華大學出版社,2002.
[3] [美] Nabajgoti Barkakati.Visual C++ 開發(fā)指南. 北京:電子工業(yè)出版社,2002.