TAPI简介

1、 概述:TAPI是微软公司提供的开发声音和数据相关方面应用的统一接口,主要的函数和结构封装在TAPI32.DLL中,该动态连接库位于Windows操作系统的安装目录的System或System32目录下。 1、 TAPI结构 Windows电话API是用Windows Open Service Architecture(WOSA)模型建立的。设计这个模型是用来使用户方程序设计接口不受服务器硬件的影响。换句话说,WOSA模块设计了两个清晰而又相互依赖的API集合,客户(或桌面)应用程序中使用的API集合叫Client API,服务器(或硬件)程序设计中使用的API集合叫Service Provider Interface或简称SPI。请求SPI的电话服务是Client API的工作。接收服务请求并付诸行动是SPI的任务。SPI和API通过一个DLL例程进行数据交换,以下以TAPI32.DLL为例,解释三个电话模块元素在一个完整系统中是如何相互连接的。如下图所示:

此主题相关图片如下:

图1 Client API和SPI与TAPIDLL对话 2、电话Client API Client API是预定义函数和子例程的集合,桌面应用程序利用这些函数和子例程访问和控制电话设备,调用这些函数。软件开发人员可以编写一些例程,这些例程可以定位和激活一条电话线路、拨号、发出线路连通(线路正忙)的信号,还可以使软件的使用者能够讲话,或把记录下来的讲话传到线路的另一端,或是用线路传递二进制文件(程序或数据)。高级TAPI服务使软件设计者可以编写能够回答incoming调用的应用程序,和基于软件功能调用适当的本地switching网络的电话例程。事实上,TAPI系统最令人兴奋的一个方面是:只需要使用一台标准PC和一些电话硬件就可以建立多交换系统。最后,还有一个函数集合有助于软件开发人员编制直接访问与PC相连接的电话设备的硬件特殊例程。这一附加的函数集合有助于硬件厂商继续提供特殊的硬件服务 ,同时也有利于发挥TAPI模型的优点。 3、Telephony Service Provider Interface

Telephony Service Provider Interface(TSPI)用于接受和响应Client API请求的函数和过程集合。这一函数集合和Client API集合很相似,但是所做的工作却是大不一样。Client API集合用于桌面程序请求TAPI的服务;而TSPI用于接受这些请求并且进行处理。这意味着设计TAPI不必知道是用何种硬件满足服务请求,而TSPI就必须知道PC上相关硬件设备的功能与需求。TSPITAPI32.dll得到所需信息,直接与硬件对话,而后将结果送回TAPI32.dll,再转送给桌面应用程序。

 

一、 TAPI服务

 

 

TAPI服务模型分为四个不同的组,每一个组都提供一个更高层次的电话服务。四个组是:

 

 

Assisted TAPI 一个简单API函数的小集合可以使软件开发者用任何一种程序设计语言访问电话服务集。

 

 

Basic TAPI:一个API函数集合可以使软件开发者访问所有的“简单旧式电话服务(plain old telephone services)”,略作POIS

 

 

附加TAPI:一个添加的API函数集合,提供诸如占用线路、线路整理、转接以及其它的通常在PBX电话系统上实现的操作。

 

 

Extended TAPI:厂商提供的少量API函数,这些函数提供的特殊服务并没有在TAPI中定义。

 

 

下面将对 TAPI结构的四个API集合进行简单的阐述。

 

 

1Assisted TAPI服务集

 

 

Assisted TAPI服务集是一个小的API集,可用于实现最基本的电话功能—拨号。可以在PowerBuilder程序中使用Assisted TAPI集合的两个API集。

 

 

TapiRequestMakeCall:用于拨电话号码。

 

 

TapiGetLocation:确定PC使用哪个国家和城市区号集合。

 

 

调用这两个API的主要特点在于它们不需要回叫(CallBack)。可以用这两个API编制一个简单的拨号例程,这个例程可以让PowerBuilder应用程序的使用者叫通一个电话。任何访问API函数集的程序包都会提供这些API集。

 

 

2Basic TAPI服务集

 

 

Basic TAPI服务集是组成TAPI功能的代码集合。所有宣称适合TAPI的功能集合都要象TAPI服务集那样承认并且实现下面的功能。

 

 

就像Assisted TAPI服务集合不是一个完全的功能集合一样。Basic TAPI服务集不包括所有的TAPI机能。Basic TAPI并不包括任何对话机设备的访问,它仅是涉及了线路设备。

 

 

Basic TAPI服务集提供管理单线电话的所需的所有功能,通常是指POTS。附加TAPI服务集合提供操作多线路话机或实现高级的电话功能(如转接一个电话)所需的功能。

 

 

Basic TAPI服务集合可被再分为三个组。

 

 

线路设备管理函数组:用于管理初始化、配置和断开线路连接。

 

 

输出线路函数:用于处理拨号和完成对外的呼叫。

 

 

输入线路函数:用于处理应答和完成对内的呼叫。

 

 

整个Basic TAPI提供的服务都需要使用已注册的回叫(callback)函数整理接收到的TAPIDLL创建的Windows的消息。几个用户定义的相关数据类型再加上TAPI产生的消息的软中断,用于转发和存储TAPI相关数据的数据结构。表1列出了Basic TAPI服务集合的函数清单,并附有简短的说明。

 

 

1 Basic TAPI函数集

表1 Basic TAPI函数集

服务类型 函数 描述 线路管理 LineInitialize 开始所有的TAPI处理过程 lineShutdown 结束所有的TAPI处理过程 lineNegotiateAPIVersion 获得当前所用的TAPI版本 lineGetDevCaps 获得线路设备的功能 lineGetDevConfig 读线路设备配置的设置 lineSetDevConfig 写线路设备配置的设置 lineGetLineDevStatus 得到当前线路设备的状态 LineGetStatusMessage 读线路设备的响应的状态消息 LineSetStatusMessage 写线路设备的响应的状态消息 LineGetAddressID 返回线路设备的地址(电话号码) LineGetAddressCaps 读出某个电话号码的线路设备的机能 LineGetAddressStatus 读出某个电话号码的线路设备的状态 LineGetID 读出一条线路设备的国内ID号 LineGetIcon 返回一条线路设备的图标 LineConfigDialog 调用一个对话框(服务提供者支持),

显示线路设备的配置

 

输出调用

 

 

lineOpen

 

 

开始设置一个对话的进程

 

 

LineClose

 

 

结束一个对话的进程

 

 

LineMakerCall

 

 

真正设置一个对话(用所提供的电话号码)

 

 

LineDial

 

 

设置对话工作的一个部分:拨号(允许拨分号;在继续拨号之前等待铃声等等)

 

 

LineGetCallStatus

 

 

读出在进行中的对话的状态

 

 

LineGetCallInfo

 

 

管理在进行中的对话的状态

 

 

LineGetTranslateCaps

 

 

用于决定线路转接的地址(能够读一个电话号码,并把它转换为可发出的字符串)

 

 

LineTranslatAddress

 

 

把一个可打印电话号码转换为一个可拨出的字符串,比如把(999)555-1212转换为5551212(从999号区拨出)

 

 

LineSetCurrentLocation

 

 

为工作台设置一个区号(如999)

 

 

LineSetTollList

 

 

添加或删除存储表中的拨号指令,收费长话的拨号数据存储在TELEPHON.INI文件中

 

 

LineSetAppSpecfic

 

 

填写电话记录的特殊应用域(记录电话会议、时间等等)

 

 

输入调用

 

 

LineGetNumRings

 

 

在应答呼叫前,先读出允许的电话号码

 

 

LineSetNumRings

 

 

在应答呼叫前,先写下允许的电话号码

 

两个特殊的API函数是Basic TAPI服务的一个部分。这两个函数用于处理Assisted TAPI应用程序发出的请求。

lineRegisterRecipient:告知windows一个应用程序已经准备好连接接收和处理来自另一个应用程序的Assisted TAPI请求。

lineGetRequest:读出下一个有效的Assisted TAPI请求。

如果一个应用程序是Assisted TAPI服务过程,那么它应该使用这些函数。装载TAPI SDK的DALER.EXE程序就是这样的一个程序。它将自己注册为就绪程序(并有执行能力),可以处理拨号请求然后响应工作台上的任何Assisted TAPI调用。

2、附加TAPI服务集

3、附加TAPI服务集

附加TAPI服务集用于实现电话的高级功能。线路占用、线路整理、会议和转接等都在附加TAPI服务集中实现。附加TAPI函数集也包括所有的话机设置函数。这就可以在工作台上建立虚拟话机。

附加TAPI服务集是设计用于创建通话管理器和路由选择应用程序的。这些典型的应用程序实现了转换板系统的功能。

附加TAPI服务集可以被分为两个组。

线路设备功能。

话机设备功能。

像Basic TAPI一样,访问TAPI服务集需要使用回调函数接受或响应TAPI.dll发出的Windows消息。

表2是Supplementary TAPI服务集线路设备函数的列表,并有用法说明。

表2 Supplementary TAPI线路设备函数

服务类型 函数 说明

线路管理 lineSetMediaControl 设置通话的信息媒体的类型(真正的声音、记录的音响、数据等等)

lineSetMediaControl 改变正在进行的通话媒体类型(例如,从声音变成数据)

lineMonitorMedia 在通话过程中打开或关闭媒体模型

lineSetCallParams 在通话过程中改变传输速率(高速数据传输等等)

lineMonitorTones 打开或关闭线路上听控制铃的功能(忙、极忙等等)

lineMonitorDigits 在通话过程中打开或关闭听拨号数字功能

LineGenerateTone 产生线路上的控制铃(忙、记录音等等)

lineGenerateDigits 产生线路上的拨号数字

lineGatherDights 在把用户按下的拨号数字送下线路之前,先收集它们

lineRedirect 在铃之前,改向另一个号码发送通话

lineSecureCall 禁止打断当前通话过程(用于数据传输模式)

通话保持 lineHold 占用线路

LineUnHold 开始一个占用线路的通话

Call Parking linePark 让一个通话占用另一条线路

lineUnPark 开始占用另一条线路的通话

Call forwarding lineForward 向另一个地点转送一个通话

linePickup 在另一个地址继续一个通话

  • 0
    点赞
  • 3
    评论
  • 0
    收藏
  • 一键三连
    一键三连
  • 扫一扫,分享海报

©️2021 CSDN 皮肤主题: 大白 设计师:CSDN官方博客 返回首页
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、C币套餐、付费专栏及课程。

余额充值