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