当前位置:首页 > 物联网 > 《物联网技术》杂志
[导读]摘 要:讲述使用微软TAPI类库实现双机互连通信的方法。通信底层硬件Modem型号多,不同厂家对硬件又有不同定义,开发一种应用程序适用于多种厂家的硬件是一个巨大挑战。在TAPI类库的基础上,开发出了一种通过城际交换机互连通信的软件系统,该软件系统对不同厂家的硬件都具有兼容性。

引 言

计算机电话集成是计算机技术和电信技术相结合的产物。电信行业配备了各种各样的硬件系统,要设计一个考虑兼容所有种类的硬件系统的软件程序非常困难[1]。为了减轻开发者的负担,微软与Intel 联合创建了 Windows Telephony API(TAPI),给应用程序编程者提供一个接口,允许应用程序无需改变就可以适用多种多样的硬件系统。

1 TAPI通信原理

由于计算机与Modem 之间的通信方式均通过串口进行, 外置Modem 是通过串口线与计算机连接,内置Modem 通过虚拟串口实现通信 [2]。计算机与Modem 之间的通信由程序控制串口发送AT 命令数据到Modem。TAPI 扮演了应用程序与串口之间桥梁的角色,保证了软件开发的一致性。用户只需关注基于TAPI 的应用开发,而无需关注不同Modem 所对应的不同AT 命令集。

TAPI 是电话集成的编程工具, 已经被集成到 Win32 SDK 中[3],相关的模块是Tapi32.dll 和Tapisrv.exe。图 1 示意了 Windows TAPI 的结构。Tapi32.dll 运行于用户程序进程空间,TAPI 应用程序调用其中的功能函数 ;Tapi32.dll 与运行于TAPI 服务进程空间的 Tapisrv.exe 通信 [4] ;Tapisrv.exe 与通信硬件TAPI 服务提供者(TAPI Service Provider,TSP)DLL 通信;服务提供者DLL 直接与服务提供者驱动程序通信,并通过驱动程序操作硬件。

在 Windows NT 网络中, 第一次建立电话环境时, 应在进程中执行 1 个初始化调用来设置 TAPI 环境,包括加载Tapi32.dll、执行TAPI 服务Tapisrv.exe、加载注册库中有关的电话设备驱动程序[5]。

为了开发 TAPI 应用程序,必须调用Tapi32.dll 所提供的一系列函数。微软在 Win32 SDK 中提供了 Tapi32.dll 的头文件 Tapi.h 和输入库文件 Tapi.lib。任何调用Tapi32.dll 中函数的工程都必须包含此头文件和连接该输入库[6]。

基于TAPI和PBX实现双机互连互通

2 TAPI通信实现

城际交换机连接两个计算机实现双机互连通信,如图 2 所示,因其线路简单、较容易实现,在现实中有许多应用场景。比如通过PC拨打电话,或者通过稳定可靠的电话线路收发送文件等。

在PC上开发应用程序实现采用电话线路通信,采用基于TAPI 类库构建用户类库的方法实现应用程序开发。在用户类库里实现编制电话数据应用程序,流程如图 3 所示。编制电话数据应用程序大致经过如下过程:

(1) 初始化 TAPI。通过调用函数lineInitializeEx在应用程序中完成 TAPI的初始化。

(2) 协调 TAPI版本。应用程序使用lineNegotiateAPI Version函数把 API使用版本通知给TAPI,返回与TAPI通信所能使用的版本。

基于TAPI和PBX实现双机互连互通

(3)检查设备。调用lineGetDevCaps函数询问设备的能力,返回LINEDEVCAPS类型的数据结构。设备能力包括TAPI服务提供者、交换机信息、字符串格式、载波方式、数据传输等。

(4)打开线路。调用函数 lineOpen打开 1条线路设备,lineOpen返回线路设备的句柄,用以完成以后对此设备的各种操作。可以在 1个应用程序中打开多条线路。

(5)初始化线路状态。 通过调用函数 lineSetStatus Messages,初始化线路状态设置。

(6)创建侦听线路信息的线程,同时创建线程事件句柄和线程状态句柄。之所以需要线程状态句柄,是因为这里所实现的 TAPI通信软件系统中创建了反馈连接状态的线程,需要建立状态变化事件句柄通知该线程。

侦听线程工作时,获取线程事件,对 TAPI 事件根据消息 ID 种类分别应对处理。主要包括三种应对方法 :应答、呼叫信息处理、呼叫状态处理。呼叫状态再根据消息参数分别应对处理,处理方法包括:来电响应、空闲、连接、取消连接。线程事件触发处理流程如图 4 所示。

这里基于TAPI 和 PBX 实现的双机互联互通软件系统运行界面如图 5 所示。如果安装了数据模式的Modem,打开TAPI 通信后会获得TAPI 句柄,并据此可以进行串口通信;如果没有安装或安装了有问题的Modem 会报出无可使用设备的警示。在TAPI 通信没有打开的情况下,串行通信是不能使用的, 因为没有获得通信句柄。

基于TAPI和PBX实现双机互连互通

基于TAPI和PBX实现双机互连互通

为了测试互连互通功能,将一个 PC 作为被连接对象, 点击“等候”;将另一个 PC 作为主动连接对象,输入对端电话号码,并点击“拨号”。连接成功后即可互发数据。发送端输入一串字符点击发送,接收端读取到的数据显示在接受对话框里,收发数据相同,且反向拨号连接和反向数据收发都是可以的,至此实现了基于TAPI 和PBX 双机互连互通功能。

结 语

使用微软 TAPI 类库,实现了基于PBX 双机互连互通, 一方面说明基于TAPI 的电话线路通信无需关注底层Modem 板卡,只需关注应用开发 ;另一方面说明了采用微软这种电话API 通信架构确实有效,给应用开发带来了方便。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

9月2日消息,不造车的华为或将催生出更大的独角兽公司,随着阿维塔和赛力斯的入局,华为引望愈发显得引人瞩目。

关键字: 阿维塔 塞力斯 华为

加利福尼亚州圣克拉拉县2024年8月30日 /美通社/ -- 数字化转型技术解决方案公司Trianz今天宣布,该公司与Amazon Web Services (AWS)签订了...

关键字: AWS AN BSP 数字化

伦敦2024年8月29日 /美通社/ -- 英国汽车技术公司SODA.Auto推出其旗舰产品SODA V,这是全球首款涵盖汽车工程师从创意到认证的所有需求的工具,可用于创建软件定义汽车。 SODA V工具的开发耗时1.5...

关键字: 汽车 人工智能 智能驱动 BSP

北京2024年8月28日 /美通社/ -- 越来越多用户希望企业业务能7×24不间断运行,同时企业却面临越来越多业务中断的风险,如企业系统复杂性的增加,频繁的功能更新和发布等。如何确保业务连续性,提升韧性,成...

关键字: 亚马逊 解密 控制平面 BSP

8月30日消息,据媒体报道,腾讯和网易近期正在缩减他们对日本游戏市场的投资。

关键字: 腾讯 编码器 CPU

8月28日消息,今天上午,2024中国国际大数据产业博览会开幕式在贵阳举行,华为董事、质量流程IT总裁陶景文发表了演讲。

关键字: 华为 12nm EDA 半导体

8月28日消息,在2024中国国际大数据产业博览会上,华为常务董事、华为云CEO张平安发表演讲称,数字世界的话语权最终是由生态的繁荣决定的。

关键字: 华为 12nm 手机 卫星通信

要点: 有效应对环境变化,经营业绩稳中有升 落实提质增效举措,毛利润率延续升势 战略布局成效显著,战新业务引领增长 以科技创新为引领,提升企业核心竞争力 坚持高质量发展策略,塑强核心竞争优势...

关键字: 通信 BSP 电信运营商 数字经济

北京2024年8月27日 /美通社/ -- 8月21日,由中央广播电视总台与中国电影电视技术学会联合牵头组建的NVI技术创新联盟在BIRTV2024超高清全产业链发展研讨会上宣布正式成立。 活动现场 NVI技术创新联...

关键字: VI 传输协议 音频 BSP

北京2024年8月27日 /美通社/ -- 在8月23日举办的2024年长三角生态绿色一体化发展示范区联合招商会上,软通动力信息技术(集团)股份有限公司(以下简称"软通动力")与长三角投资(上海)有限...

关键字: BSP 信息技术
关闭
关闭