首页
会员中心
到顶部
到尾部
VC毕业设计

电话线拨号猫的数据通信程序

时间:2020/10/27 9:05:36  作者:  来源:  查看:0  评论:0
内容摘要:        MODEM 已经成为远距离通信的一种重要工具。而 TAPI 编程接口除了支持简单的 MODEM 拨号和呼叫应答外,还可以支持不同种类的传输线路,例如 PSTN 电话网、 ISDN 和 ATM 线...

        MODEM 已经成为远距离通信的一种重要工具。而 TAPI 编程接口除了支持简单的 MODEM 拨号和呼叫应答外,还可以支持不同种类的传输线路,例如 PSTN 电话网、 ISDN 和 ATM 线路等。另外 TAPI 还支持一些复杂的高级应用,如电话会议和语音邮件等。本文通过对 MODEM 远程数据通信和 TAPI 通信编程的研究,编程实现了一个计算机远程通信程序。

毕业设计思想与流程
使用TAPI开发的基本思路
        使用 TAPI 能够比较方便地发出一个呼叫和应答一个呼叫,它对呼叫的操作简单方便,给开发者带来了很大的方便。总的来说使用 TAPI 开发 MODEM 呼叫控制通信程序流程如下所示:
 (1) 初始化 TAPI :通过调用 linelnitialize ( )函数来完成。TAPI 通过调用这两个函数来加载 Tapi32 .dll 和有关的电话设备驱动程序,并且指定检测线路设备的状态和事件的回调函数。
(2) 协商 TAPI 版本:IineNegotiateAPIVersion ( )函数将找出对应于用户的应用程序及线路设备服务者通用的TAPI 的最高版本。
(3) 获取线路设备的性能:应用程序通过调用lineGetDevCaps ( )函数来确定所使用的 TAPI 版本提供的线路设备能力。
(4) 打开线路设备:应用程序调用 lineOpen( ) 函数打开一条线路设备并返回一个线路设备的句柄,这个句柄用于完成以后对这个设备的各种操作。
(5) 转换电话号码:使用 lineTranslateAddress ( )将要拨打的号码转换成可以直接在计算机上拨打的号码格式。
(6) 开始呼叫或是应答:应用程序调用 lineMakeCall ( )函数进行呼叫,调用完成后它将返回带有拥有者特权的呼叫句柄,此句柄可用在对该次呼叫所进行的进一步操作。应用程序通过调用 lineAnswer( )函数来自动应答呼叫。
(7) 挂断呼叫:在呼叫完成后, lineDrop ( )函数将用来挂断呼叫,但是在上一步中得到的拥有者的呼叫句柄并不会因此释放,因为在呼叫被挂断以后,呼叫的句柄还有可能被用在一些后续的操作中。可以通过 lineDeallocate ( )来释放呼叫句柄。
(8) 关闭线路设备:应用程序调用 lineClose ( ) 函数来关闭被 lineOpen ( )函数打开的线路设备,如果一条线路被应用程序打开后始终没有被关闭,那么其它的应用程序将无法访问该线路。
(9) 结束TAPI 的使用:在一切有关TAPI的操作完成之后,调用lineShutdown()函数来终止TAPI的使用,它会隐含地关闭所以打开的线路设备。

 各功能模块的设计
 TAPI的配置阶段
      TAPI 的置阶段配置阶段包括对线路的配置和对 MODEM 的配置,只有正确地配置并打开线路设备之后,才能对 MODEM 进行配置。以下函数完成对 TAPI 的配置:
       TAPI 类成员函数 telephonylnitialize 分配支持逻辑线路设备的使用所必须的某些内部资源,并返回应用程序一个TAPI句柄,同时传递了一个回调函数的地址作为参数,此函数处理对整个线路状态进行处理。然后使用TAPI的类成员函数lineNegotiateAPIVersion与Windows协商TAPI版本。TAPI 类成员函数 mylineGetDevCaps 获得有关逻辑线路的性能的信息Windows把这些信息填充到一个名为 LINEDEVCAPS 的只读结构中,应用程序检查这个结构就可以了解哪些设置是驱动程序所允许的TAPI 类成员函数lineOpen打开线路。
 TAPI的连接阶段
          TPAI在连接阶段MODEN会产生很多消息,消息的处理 TAPI由回调函数进行消息处理,回调函数在初始化TAPI时创建,消息的处理在TAPI的使用过程中是至关重要的。以下是一些主要的消息
(1)LINECALLSTATE_IDLE 没有呼叫,为空,此时应断接,释放掉占用的资源;
(2)LINECALLSTATE_DIALING 拨号中,正在拨号。
(3)LINECALLSTATE_BUSY 线路忙或设备忙,此时应断接,释放掉占用的资源。
(4)LINECALLSTATE_SPECIALINFO 特别的消息,此时应断接,释放掉占用的资源;
(5)LINECALLSTATE_OFFERING 应答方已收到呼叫方信号,此时应进行应答,调用lineAnswer函数;
(6)LINECALLSTATE_CONNECTED 已连接成功,此时可进行数据的传输,但必须先得到MODEM的句柄
(7)LINECALLSTATE_DISCONNECTED 已断接,此时应释放掉占用的资源。
TAPI类成员函数MakeCall被用于发起呼叫,产生呼叫后依次进入图4状态:
         新生成的呼叫处于IDLE状态,随后依次进入PROCEDING,OFFERING, CONNECTED和DISCONNECTED最后 回到IDLE状态。这些状态都通过在调telephonylnitialize函数初始化TAPIDLL的时候传递的回调函数来处理。
 



相关评论
广告联系QQ:45157718 点击这里给我发消息 电话:13516821613 杭州余杭东港路118号雷恩国际科技创新园  网站技术支持:黄菊华互联网工作室 浙ICP备06056032号