微波EDA网,见证研发工程师的成长!
首页 > 通信和网络 > 通信网络技术文库 > TAPI软电话通信系统的模块化设计

TAPI软电话通信系统的模块化设计

时间:03-13 来源:3721RD 点击:



图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在软电话应用系统中的二次开发奠定了基础。

Copyright © 2017-2020 微波EDA网 版权所有

网站地图

Top