電話應用程式設計介面 (TAPIs) |
|
cmf
尊榮會員 發表:84 回覆:918 積分:1032 註冊:2002-06-26 發送簡訊給我 |
電話應用程式設計介面 (TAPIs)MicrosoftÃ?® telephony application programming interfaces 支援通訊應用程式的發展 下列表格中描述電話介面:
Microsoft Telephony 概觀Telephony整合電腦與通訊裝置和網路。 在classic telephony之下﹐裝置是一個電話,而且網路是Public Switched電話網路(PSTN)。 現代的telephony不斷地擴大裝置和網路的範圍,而且現在含蓋了攝影機及網路。 Possible telephony applications include:
請注意 TAPI 沒有限制 PSTN ,ISDN或TCP/IP 傳送。 未完待續......
------
︿︿ | ||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cmf
尊榮會員 發表:84 回覆:918 積分:1032 註冊:2002-06-26 發送簡訊給我 |
TAPI 迅速的開始電話學應用程式設計介面是一個廣泛的和有能力的 API 。下列的題材是一系列的聯結和提議可以幫助你啟動寫 TAPI 應用程式或把功能加入已存在的程式碼。 Code SamplesPlatform SDK 的範例章節裡完整的包含C,C , 和 Visual Basic compilable TAPI 程式。這些範例可以幫助你開始了解多方面的函數的使用。 雖然這些範例不是用 delphi 寫成的,但是對於學習 TAPI 還是有幫助的,建議多多看範例 Code Snippets下列各項 SDK 主題舉例說明使用程式碼片斷 的基本 TAPI 操作。
Reference Page Summaries下列各項主題包含參照頁摘要:Hyperlinked Graphics下列各項主題包含的超連結可以找出你自己適用的 TAPI :Microsoft Telephony Overview About Call And Media Controls TAPI Service Provider Overview TAPI 新聞群組Usenet新聞群組在除錯程式碼方面可能是資料的交換的好論壇和協助。如果你不熟悉 USENET ,這一個網頁提供一些基本的描述: 進入你的喜愛的搜尋引擎之內輸入 "Usenet Newsgroups"或 http:// extra.newsguy.com/intro.htm 。 微軟主辦許多新聞群組,包括二個專攻 TAPI:
------
︿︿ |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cmf
尊榮會員 發表:84 回覆:918 積分:1032 註冊:2002-06-26 發送簡訊給我 |
Microsoft Telephony Programming Model下列各項圖表舉例說明這抽象化如何是完成的。 電話應用程式設計介面 (TAPI)應用程式知道使用者的需要, TAPI DLL 和 TAPISRV 了解普遍的電話原理﹐而且服務供給者 (TSP 和MSP)知道詳細的裝置控制。 製造業者及應用程式作家只需要彼此要求的一般知識。
潛在的市場佔有率為應用程式作家和裝置製造業者擴大。 下列各項主題更詳細地描述微軟Telephony元件:
------
︿︿ |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cmf
尊榮會員 發表:84 回覆:918 積分:1032 註冊:2002-06-26 發送簡訊給我 |
TAPI 應用程式下列的題材提供使用 TAPI 編寫末端使用者或伺服器通訊應用程式指導方針。這一個資訊也對服務供給者程式設計者有高度的關係。 首先決定程式設計者需要作出在使用 TAPI 方面的服務層次。 舉例來說﹐如果應用程式需要有一個選單可以選擇撥電話號碼,這可能不需要完整的 TAPI 應用。 Telephony協助可以很快地而且簡單使這選項能夠完成。 關於更多完整的 TAPI 應用及電話協助之間資訊請見 TAPI 服務的層次。 第二的重要的決定是使用以C 為基礎的 TAPI 2. x 或 以 COM 為基礎的 TAPI 3. x。 在決定使用哪一個方面的考慮的討論請見 TAPI 3. x 和 TAPI 2. x 比較。 下列圖表舉例說明完整的 TAPI 應用程式的基本的模塊: 未完待續......
------
︿︿ |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cmf
尊榮會員 發表:84 回覆:918 積分:1032 註冊:2002-06-26 發送簡訊給我 |
在上一篇 我們已知道 製作 TAPI 應用程式可以使用 TAPI 2.X 或 TAPI 3.X 來完成 那麼 DELPHI 要如何使用TAPI 2.X 或 TAPI 3.X 呢?
其實很簡單 只要將 TAPI.H 及 TAPI3.H 改編成 delphi 格式 即可使用
所以我們可以上網找找看 是否有 善心人士以幫我們改編好了 TAPI 2.0
DELPHI 使用TAPI 3.0 就更方便了 ,匯入TAPI 3.0 LIB 方法如下 Project | Import Type Library Selected "Microsoft TAPI3 Type Library (Version 1.0); It shows 3 class names: 1. TTAPI 2. TDispatchMapper 3. TRequestMakeCall 未完待續......
------
︿︿ |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cmf
尊榮會員 發表:84 回覆:918 積分:1032 註冊:2002-06-26 發送簡訊給我 |
TAPI 初始設定TAPI 元件運用首先需要設定電腦上的通訊環境如下列各項:
Installation 安裝The primary sources for installation procedures are the Resource Kit for the target operating system, application documentation, and service provider instructions. For Microsoft?® service providers, the appropriate resource kit contains instructions.The installation process must include listing "Telephony Service" as dependency. If an application or service provider uses the registry for storage of persistent private data, the information must not be placed in TAPI's section of the registry. The format of this section is not guaranteed to be maintained in future versions. Primary InitializationTAPI 應用程式一定要呼叫 initialization操作,提示 TAPI 和服務供給者為應用程式建立通訊環境的的一系列的作用。
TAPI 3.x: 應用程式藉由呼叫ITTAPI.Initialize執行設定初值. Version Negotiation 版本交涉隨著時間的過去﹐TAPI 應用程式, TAPI, 和服務供給者存在不同的版本。TAPI 應用程式的最佳的互通性需要知道不只是應用程式的 TAPI 版本,也要知道 TAPI DLL , TAPISVR 和服務供給者版本。 版本交涉失敗會造成嚴重問題。 舉例來說,不同的版本可能在資料結構上會有所從不同。 如果結構大小應用程式或 TAPI 所預定的大小不匹配,則將發生嚴重的錯誤。 對於資料結構的附加資料,請見 TAPI Versioning. TAPI 2.x:應用程式在 lineInitializeEx 期間以 TAPI 和 TAPISVR 交涉。 因為每個line應用程式也許會使用 , 應用程式藉由呼叫 lineNegotiateAPIVersion 和服務供給者執行裝置交涉。 TAPI 3.x:不需要執行版本交涉;然而如果一個介面在他們的版本上是否可得﹐你可以使用 QueryInterface 決定。 Resource Inventory 詳細可用資源目錄應用程式必須列入詳細可用的通訊資源目錄,然後通知 TAPI 它將使用那一個資源和它將如何使用他們。應用程式也許存取的資源和功能的類型上附加的資料請見裝置控制。 TAPI 2.x: 當 lineInitializeEx 執行完後傳回可用的LINE數目。 然後可以在每個line上執行 lineGetDevCaps,為每個位址呼叫 lineGetAddressCaps , 和 為將被使用的每個線呼叫 lineOpen 。 TAPI 3.x:? ? 應用程式使用 ITTAPI.EnumerateAddresses 或 ITTAPI.get_Addresses 找出有用的 addresses . ITMediaSupport 及 ITAddressCapabilities 提供每個addresses的通訊形態資訊. 如果服務供給者實行, ITTerminalSupport 提供應用程式存取及控制附加資料。 Event Notification 事件通知事件通知是應用程式從 TAPI 和服務供給者取得資料的主要方法。這一個資訊可以是應用程式非同步操作的狀態或是在應用程式外部的啟動程序像是新的來電通知,。 TAPI 2.x: 應用程式處理通知分為三部份:隱藏視窗,事件處理,或埠完成。關於通知機制的附加的資訊, 請見 lineInitializeEx Remarks章節。應用程式在呼叫 lineInitializeEx 之前設定 LINEINITIALIZEEXPARAMS 結構的 dwOptions 成員指定機制。 lineSetStatusMessages 函數使應用程式能夠指定接收那一個事件通知。 TAPI 3.x: 應用程式處理一般的通知使用 COM 標準可連接物件。 ITTAPIEventNotification 是必須與 TAPI's 的容器物件一起登記的outgoing interface, ITTAPIEventNotification::Event 是決定應用程式的回應那一個 TAPI 程序呼叫。 ITTAPI::put_EventFilter 程序告訴 TAPI 那一個事件是與應用程式有關連的. 如果事件過濾器不法進入,應用程式將不法接收任何事件通知。 ITTAPI::RegisterCallNotifications 程序告訴 TAPI 那一個媒體類型和位址將被應用程式處理收入會議。 關於 TAPI 3 事件操作的附加的資訊,請見e Events 概觀 或Register Events 程式碼片斷. 資訊電話服務供給者實行 TSPI_lineSetDefaultMediaDetection 和 TSPI_lineSetStatusMessages 。 TAPI 呼叫這些函數指示被應用程式請求的所有的 line,位址﹐媒體型態事件。 Summary of Related Reference Pages
未完待續......
------
︿︿ |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cmf
尊榮會員 發表:84 回覆:918 積分:1032 註冊:2002-06-26 發送簡訊給我 |
裝置控制裝置控制在end-user 或伺服器應用層次需要一個相對小的一組基本資訊。服務供給者抽象層執行詳細的裝置控制。 服務供給者式透過 TAPI 報告裝置資料給應用程式。 主要的裝置種類包括:
如果服務供給者支援補充特性,則補充特性可以與某個裝置關聯。 TAPI 2. x 應用程式使用 lineGetDevCaps 和 lineGetAddressCaps 函數找出capabilities。 TAPI 3. x 應用程式使用 ITAddressCapabilities 介面作為這個目的。 TAPI 2. x 提供一組特別的補充操作讓服務供給者可以使用phone裝置。請見話筒裝置。 擴充功能是provider-specific及無法直接含蓋Microsoft Telephony API 。請見 Extended Line Functions, Extended Telephony Phone Functions, or Provider-Specific Interfaces. 在下面為service providers查詢裝置特性及提供目前的狀態資料的 TAPI 操作摘要:
------
︿︿ |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cmf
尊榮會員 發表:84 回覆:918 積分:1032 註冊:2002-06-26 發送簡訊給我 |
裝置 種類下面將介紹, 建立 TAPI 應用程式時常使用的主要裝置種類。因為service provider 抽象化分層處理控制 , 所以典型地﹐一個應用程式不需要了解這些裝置實際運作方式及細節。 Terminal 終端terminal 是一個獨有的位址和媒體型態的來源或 renderer.的概念主要地用於 TAPI 3 ,對於 TAPI 2 應用程式使用終端要非常謹慎是很重要。 附加的資料請看見 TAPI 3 概觀 終端物件主題。 Network 網路網路被視為從一點到另一點的傳達資料的傳送機制。TAPI 服務供給者處理必需的特定的協定來執行操作 , 像是制定在網路上的通訊會議。 end-user或伺服器應用程式通常只需要一般的網路資訊,像是位址型態。 一些常用的網路類型:
Line 線路line概念已經進展到部分被位址和終端機概念取代。TAPI 3 不直接使用line的概念﹐但是 TAPI 2 持續使用line的概念。 line device is 是一個實體裝置 , 像是傳真基板,數據機 , 或連接到網路的ISDN卡。 允許應用程式發送資料給網路或接收網路的資料LINE裝置支援通訊效能。 一個line裝置包含了一組或更多的同性質的channels可以用來制定CALLS。 在 TAPI 2. x 應用程式裡﹐line裝置是實際電話裝置的邏輯表示法。 雖然”line”常常用來表示二個端點﹐但是因為 TAPI 只視為一個引線項目的一個點切換 , 摘錄單一點的line裝置是可能的。 ? ? ? ? 在上圖中即使三條線由不同的硬體組成而且使用為不同的函數﹐他們被摘錄到相同的裝置型態而且被相同的規則支配。 電話表示法除了一個作為聲音呼叫的線裝置之外還有一個聽筒裝置。 當使用這線裝置收入或送出CALLS時,應用程式也將需要開啟且控制聽筒裝置類別的instance,在往後的章節中會詳細描述。 線裝置類別是一個實體LINE裝置的device-independent 表示法,像是一台數據機。 它可以包含一個或在應用程式和切換器或網路之間更多的完全相同的通訊channels。 因為channels 附屬於單一線 有完全相同的效能,他們是可互相交換。 在許多情況 (as with POTS)﹐一個服務供給者將模型化一個線只有一個 channel。 其他的技術 , 像是 ISDN,提供更多的 channel。 TAPI 2.x:? ? 應用程式使用 lineGetDevCaps 函數取得 line capabilities. TAPI 3.x:? ? 應用程式主要使用位址概念。 Channel每個line有一個或更多個的channels。服務供給者通常將channels以addresses呈現給應用程式﹐所以末端使用者或伺服器不需要channels的特定的知識。 Channels是完全相同的因此可互相交換。 在POTS (Plain Old Telephone Service)﹐正好是一個線上存在一個channel﹐而且channel被獨佔使用聲音。 ISDN﹐至少三 (多達 30 或更多)個channel同時可以在一個線上存在。 每個波道可以有它自己的位址,這意謂一個線可以有多數的位址。 波道和位址之間嚴謹的關係,應用程式須依賴服務供給者實行。 一些服務供給者支援一個以上的address分配到單一波道。 在POTS線上﹐藉著各種不同的系統,多重位址變成可能,像是語音直撥(DID)或是有特色的鈴聲,那是電信公司提供的額外費用服務。 許多大公司來電使用語音直撥。 一通電話連接之前﹐分機號碼訊號被發送 PBX ,分機鈴聲代替操作者的聽筒。 在私人住處中特色鈴聲的實例,如果父母親使用第一個位址,孩子使用另外的位址,傳真機使用第三個位址。 因為只有一條線連接到房內的電話網路,當有電話打進來時所有的聽筒都會響﹐但是鈴聲不同的這是靠發話方撥的號碼所產生的。 藉由有特色的鈴聲﹐讓人知道是誰打電話進來,而且傳真機藉由認出它自己的鈴聲回應來電。 在ISDN中﹐各種不同的 B channels也許沒有個別的位址。 因為這些 B channels也許在相同的位址上,它是分配呼叫到這些 channels的服務供給者 (不是應用程式或個人分機號碼)。 Address位址的概念是大多數的通訊操作的核心。在網路上的一個位置以一個位址表示。 一個address的本地分配到一個 line或channel,典型地在服務供給者的安裝期間發生但是可以在隨後修改。 關於牽涉的程序的細節可以在作業系統的Resource Kit Microsoft-supplied service providers及在服務供給者說明文件中找到。 單一位址可以被一個以上的 line裝置共享。 這一概念,不同的 switch vendors有不同的名稱像是位址橋接 , multiple appearance directory number(MADN), 或bridged appearance。 在一個共享的位址上的來電呼叫是提供所有line與位址關聯。 為 TAPI 識別的配置描述請見 LINEADDRESSSHARING_ Constants。 位址本身是一個字串,識別在網路上的位置。 在電話網路的情況下﹐位址是有國家或國際電碼的一個電話號碼。 如果網路是以 IP 為基礎的,位址可以是一個 IP 位址。 TAPI-defined 位址類型。服務供給者可以定義附加的位址類型。See LINEADDRESSTYPE_ Constants 位址-相關效能和訊息不同的位址有不同的功能,效能和狀態。服務供給這樣的資料來源。 TAPI's 的裝置查詢效能和狀態和事件報告的機制給一個應用程式資料處理位址。 應用程式處理TAPI 事件或使用查詢操作獲得這一個資訊。 TAPI 2.x:? ? 應用程式呼叫 lineGetAddressCaps 函數來決定每個address的 telephony capabilities 及 接收 LINEADDRESSCAPS 資料結構. 類似的方式是應用程式可以呼叫 lineGetDevCaps . TAPI 3.x:? ? 應用程式使用 Address Object Interfaces 來穫得 address capabilities 及 events 資訊. 儲存電話號碼到電子通訊錄許多使用者選取聯絡人,傳真機,電子佈告欄和其他都是從通訊錄選擇它們的名稱。實際撥的號碼仰賴使用者的地理位置及line裝置被連接的方式。 舉例來說﹐一個桌上型電腦可以存取二條line,一條連接到 PBX,另一條連接到電信公司的中央處理機。 當製作相同團體的一個呼叫的時候﹐可以使用不同的號碼。 (舉例來說﹐電腦需要撥"9" 透過PBX取得外線﹐或不同的字透過電信公司的中央處理。) 或,使用者可以利用一部手提電腦打電話,即使從不同的位置或電話環境打電話。 TAPI's 位址傳輸效能讓電腦告知使用者目前的位置和需要的線裝置。 TAPI 然後處理任何的不同的撥號方式,不需要對使用者的通訊欄的改變。 一個應用程式使用位址傳輸將一個制式位址格式的位址轉換成可撥的位址格式。 一個相關的主題是國際call-progress 監聽的處理正常人耳能夠覺察的聲音程序像是撥號音,特別的資料音調,忙碌的訊號和 ringback 音調決定呼叫的狀態 (它的進行透過網路)。 因為call-progress音調的抑揚和頻率每個國家/區域都不過,服務供給者一定要知道國際通話遵循什麼call progress。 因此,當打電話出去時 , 應用程式須指定目的地國家碼。 Canonical Addresses制式位址格式預計是一個萬用固定的目錄號碼。因為這一個理由,在通訊錄中的號碼最好使用制式格式儲存。 canonical phone address是一個文字字串加下列結構: CountryCode Space [(AreaCode) Space] SubscriberNumber |Subaddress ^ Name CRLF ... 下列各項表格描述這結構的組件:
未完待續......
------
︿︿ |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cmf
尊榮會員 發表:84 回覆:918 積分:1032 註冊:2002-06-26 發送簡訊給我 |
Device Data下列的題材含蓋了服務供給者可以提供的裝置相關的資訊和 TAPI 應用程式可以操作使用的 , 像是資源詳細目錄和會議控制中心。
Address Identifiers在位址分配之後, TAPI 指派位址識別符號給位址。一個位址識別符號是 0 和在線上的-1位址的號碼之間的一個號碼。 一個位址識別符是指定給一個裝置,而且保持永久固定的號碼。 裝置識別符和位址識別符的結合成一個獨特地識別給予位址。 TAPI 2.x:? ? 應用程式 呼叫 lineMakeCall 或 lineGetCallInfo, 或 lineGetAddressID 取得address identifier 及 device identifier. TAPI 3.x:? ? 呼叫 ITAddressCapabilities.get_AddressCapability 並且 AddressCap 參數設為 ADDRESS_CAPABILITY的AC_ADDRESSID 成員 則傳回 plCapability 參數為目前的位址ID. Address Type裝置位址型態描述一個位址容許定址的形式,像是一個電話號碼或一個 IP 位址。TAPI 支援位址類型列表。請參閱 LINEADDRESSTYPE_ Constants. Address translation 可以用來將一個位址從一個型態轉換成另外的型態。 關於位址的一般資訊,請參閱 Device Categories下的Address . address type for a session 將是裝置位址類型的一個子集。 TAPI 2.x:請參閱 lineGetDevCaps 及 LINEDEVCAPS的dwAddressType成員. TAPI 3.x:請參閱 ITAddressCapabilities.get_AddressCapability, 與 AddressCap 參數設為 ADDRESS_CAPABILITY的AC_ADDRESSTYPES 成員. Device Class讓程式設計者以相似的種類有相似的屬性處理裝置,簡化裝置類別開發。舉例來說﹐在一個辦公室中的數位聽筒比家中的標準電話聽筒更多的效能﹐但是兩者有許多相同的基本函數回應,所以兩者的都屬於一個聽筒裝置類別。 裝置類別提供一個架構幫助TAPI 可延伸來使新的設備分類及支援。 請參閱 TAPI Device Classes TAPI 預先定義的類別。 一個服務供給者可以為它支援的設備實行並且定義附加的裝置類別。 應用程式可以不需要知道服務供給者控制那一個裝置,但是需要關於新的裝置類別的控制資訊。 一個服務供給者實行裝置類別是對應到請求的實際裝置指令。 舉例來說﹐當服務供給者透過TAPISVR傳送指令給一台Hayes-compatible的數據機接收﹐它是傳送標準的AT指令給數據機。 service provider interface可以被映射到大範圍的環境,包括非傳統電話。 一個實例是以 IP 為基礎的網路 , 像是網際網路之上多媒體會議。 Device Events藉由發射裝置事件讓TAPI 回應裝置變更例如聽筒鈴響啟動或一台數據機移除TAPI 2.x:應用程式使用 LINE_LINEDEVSTATE 訊息取得裝置事件通知. 呼叫 lineGetAddressStatus,傳回 LINEADDRESSSTATUS 結構決定位址的目前的狀態 The status of a specified open line device is obtained by 呼叫 lineGetLineDevStatus, 傳回 LINEDEVSTATUS 結構獲得一個指定開啟的line裝置的狀態. TAPI 3.x:應用程式使用 ITAddressEvent 介面 接收 ADDRESS_EVENT 通知.然後可以用 ITAddressCapabilities 來獲得更多的詳細資料 Device IdentifierA device ID 是一個特定的通訊裝置的application-independent識別符號。TAPI 2.x:請參閱 lineGetID. TAPI 3.x:請參閱 ITAddressCapabilities.get_AddressCapability (AddressCap 參數設為 ADDRESS_CAPABILITY結構的AC_PERMANENTDEVICEID成員). Media Type裝置的media type (or mode) 描述的資訊型態是可以交換的,像是交談式語音。裝置也許只能夠處理一個媒體型態,也許能夠處理多種類型。 服務供給者提供媒體型態或它們控制的裝置支援的類型。 應用程式在會議開始時查詢媒體型態然後使用這個資訊選擇一個適合的位址。 通訊會議 或傳呼,可以包括一些媒體類型,對於進一步的資料,請參閱 Media type for a session. TAPI 2.x:請參閱 lineGetAddressCaps, LINEADDRESSCAPS 結構的dwAvailableMediaModes成員, lpAddressCaps指標, LINEMEDIAMODE_ Constants. TAPI 3.x:請參閱 ITTerminal.get_MediaType, TAPIMEDIATYPE_ Constants. Terminal Type 終端型態terminal type 識別一個終端機是否是靜態的或是動態的。舉例來說﹐ 一台數據機是一個靜態的終端機必須在電腦螢幕上創建一個視訊視窗 當它結束時必須關閉視訊視窗。 這一項概念主要 使用在TAPI 3 應用程式。 TAPI 3.x: 請參閱 ITTerminal.get_TerminalType及 TERMINAL_TYPE. 未完待續......
------
︿︿ |
||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
cmf
尊榮會員 發表:84 回覆:918 積分:1032 註冊:2002-06-26 發送簡訊給我 |
Session Control 會議控制會議或傳呼表示二個或更多之間的連結位址。這一個連接是動態的﹐而且關聯的程式物件必須建立,操縱,而且釋放。 在最單純的情況下﹐這意謂製造及分離一個電話傳呼。 對於進階應用程式﹐會議控制可以包括管理IP 網路上的多媒體會議到個別參加者的層次。 會議控制包括二個基本的區域: Session Operations 會議操作是控制通訊會議的開始﹐維持﹐結束。 Session Information 會議資訊可以獲得關於通訊會議的描述資料。 在這節中不包含兩個特殊化的會議控制類型。 關於自動呼叫分配中心的資訊,請見 呼叫中心控制 (TAPI 2.x) 或 關於呼叫中心控制 (TAPI 3.x). 關於 IP 會議的資訊,請見 About Rendezvous IP Telephony Conferencing. Session Operations會議操作是大多數的 TAPI 應用程式的核心。下列題材提供各種不同的類型會議控制的概觀。 下列表格概述 TAPI 會議操作:
系統時間:2024-05-04 13:29:39
聯絡我們 | Delphi K.Top討論版
|