TAPI软电话通信系统的模块化设计
图4 TAPI状态机。
3. 4 TAPI的消息处理
line 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在软电话应用系统中的二次开发奠定了基础。
- 中兴通讯:基于NGN融合通讯与应用(01-05)
- Windows Vista中IE漏洞击穿系统防线(06-04)
- CTIA展会本周开幕:无线业预热WiMax(02-27)
- 宋俊德:3G与WIMAX竞争中融合 终端内容趋同(08-23)
- 德州仪器 IP 语音解决方案被合勤科技用于新一代接入设备与 IP 电话(09-17)
- 进军VoIP的法宝(09-30)