当前位置:首页 > 物联网 > 《物联网技术》杂志
[导读]摘 要:讲述使用微软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 通信架构确实有效,给应用开发带来了方便。

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

上个月,爱立信刚刚传出“对中国区业务进行战略调整,研发岗大面积裁员”的消息。这几天,就有员工确认,爱立信“核心网”成为了此次裁员的“重灾区”。

关键字: 爱立信 通信

设计工程师为了解决ISI问题,常常需要在链路损耗和均衡技术之间做出综合考虑。泰克的SDLA软件不仅可以模拟发送端的Tx EQ和接收端的Rx EQ,还能模拟传输链路的不同损耗。

关键字: 通信 示波器 测试测量

5G网络相较于4G网络,具有更高的数据传输速率,能够支持更高的峰值速率,理论上峰值传输速率可以达到10Gbit/s,这比4G网络快了大约10到100倍。

关键字: 5G 通信 4G网络

调制解调器,英文名称为“Modem”,是调制器和解调器的缩写,是一种计算机硬件。它的主要功能是模拟信号与数字信号的转换,实现信息的远程传输。具体来说,调制器的作用是将计算机的数字信号转换成可以在电话线上传输的模拟信号;而...

关键字: 调制解调器 电信设备

调制解调器(Modem)是现代通信系统中不可或缺的关键组件,它承载着模拟信号与数字信号相互转换的重任,实现了信息传输过程中的“语言翻译”。本文将详述调制解调器的工作原理、基本功能以及其在不同通信环境下的重要作用。

关键字: 调制解调器 信号转换

泰克实时示波器支持TekExpressLVDS自动测量软件,涵盖LVDS时钟和数据的30多个测量项目,一键完成一致性测量。

关键字: 通信 示波器 测试测量

在最近举行的第77号一致性协议组(CAG)会议上,罗德与施瓦茨使用其R&S CMW500无线电通信测试仪成功验证了工作项目333中的NTN NB-IoT测试案例。这意味着全球认证论坛(GCF)能够在其设备认证计划...

关键字: 物联网 调制解调器 NTN

R&S TS8980 是经全球认证论坛(GCF)和PTCRB批准的官方 5G 一致性测试平台。 芯片组、调制解调器和终端设备制造商以及测试机构可以使用该测试系统执行符合 3GPP 规范的 RF (TP298) 和...

关键字: 5G 芯片组 调制解调器

在5G网络不断发展的过程中,利用FR1(0.41至7.125 GHz)和FR2(24.25至71 GHz)频段一直是至关重要的。随着5G-Advanced和6G时代的到来,全球各地的监管机构和行业联盟正在讨论第三个频段,...

关键字: 5G 6G 调制解调器

2024年2月26日,国际通信行业盛会MWC 24于西班牙巴塞罗那召开,全球通信及其相关供应链的顶尖企业荟聚一堂,展示移动通信领域的前沿研究成果,与国际行业同仁展开深入技术交流。三安集成作为射频前端整合解决方案服务提供商...

关键字: 三安集成 射频 通信
关闭
关闭