TAPI軟電話通信系統的模塊化設計
3. 4 TAPI的消息處理
本文引用地址:http://www.104case.com/article/272752.htmline ln itia lizeEx函數中第3個參數傳入的參數是方法的地址,這個方法將處理通訊設備發出來的所有TAPI消息,這個方法必須按固定的格式定義:
vo id CALLBACK Tap iLineCa llback(
DWORD dwDev ice,
DWORD nM sg,
DWORD dw Instance,
DWORD dwParam1,
DWORD dwParam2,
DWORD dwParam3)
方法名TapiL ineC allback,可以自己定義,只要將此函數名作為參數傳入linelnitializeEx,該方法就可以工作,方法參數將由通訊設備的TSP來填寫,并傳給上層應用。關鍵是要了解在某時刻觸發此方法后,各參數值的意義以及此時收到此消息所表示的意義。要注意的是:即使完成一個最簡單的通話,都會得到許多TAPI消息,這些消息以時間順序產生,每產生一個消息,就會進入Tap iL ineCallback方法中,所以要抓住并處理關鍵消息。
以收到來電為例,主要處理2個消息。
( 1)參數dwMsg = LINE _ CALLSTATE并且dwParam:l LINECALLST _OFFER ING.此時可以把表示該來電的hDev ice保存到應用中,以便隨后的處理。
( 2)參數dwMsg= LINE _CALLINFO.此時通過TAPI函數lineG etCa lllnfo可以得到來電信息,例如來電主叫號碼、被叫號碼等。當收到來電消息后,就可以在界面上切換應用狀態以通知用戶,或記錄數據庫等,按需要進行處理。與來電消息類似,當有其他電話事件發生后,就會發生相應的消息。
4結束語
雖然TAPI產品化的應用不多,但其提供的功能卻是強大的。TAPI主要用來控制通訊設備,在這個基礎上再實現更多的功能。曾經也有人用來實現控制家用普通Mode;l如果用于控制交換機,可以實現對來電排隊等高級功能;也可以建立企業呼叫中心。
研究了TAPI的工作流程,及TAPI功能模塊的實現,并對其函數進行了封裝設計處理。介紹了使用TAPI編寫電話控制程序的完整步驟,對TAPI在軟電話應用系統中的二次開發奠定了基礎。
c++相關文章:c++教程
數字通信相關文章:數字通信原理
通信相關文章:通信原理
交換機相關文章:交換機工作原理
評論