Only Use In TAPI Version 1.4
Basic Telephony Services Reference
1.TAPI初始化与关闭
LineInitializeEx 初始化一个TAPI应用, 同步返回.
LineShutdown 关闭一个TAPI应用, 同步返回.
2.线路版本协商
LineNegotiateAPIVersion 应用和TAPI协商一个可以使用的TAPI版本, 同步返回.
3.线路设备状态与能力
LineGetDevCaps 得到指定线路设备的实际参数能力, 同步返回.
LineGetDevConfig 得到媒体流设备的配置, 同步返回.
LineGetLineDevStatus 得到指定的已打开线路的当前状态, 同步返回.
LineSetDevConfig 设置指定媒体流设备的配置, 同步返回.
LineSetStatusMessages 设置那些状态改变消息可以通知应用, 同步返回.
LineGetStatusMessages 得到当前使用的状态改变消息设置, 同步返回.
LineGetID 返回与指定的线路,地址或呼叫相关联的设备ID号, 同步返回.
LineGetIcon 得到显示的ICON, 同步返回.
LineConfigDialogEdit 显示一个对话框,用户可以改变线路设备的设置, 同步返回.
4.地址
lineGetAddressCaps 得到一个地址的电话参数, 同步返回.
LineGetAddressStatus 得到指定地址的当前状态, 同步返回.
LineGetAddressID ?, 同步返回.
5.打开/关闭线路设备
lineOpen 以指定的打开方式打开一条指定的线路设备, 同步返回.
LineClose 关闭一个已经打开了的线路设备, 同步返回.
6.地址格式
LineTranslateAddress 在规范格式与拨号格式间转化地址, 同步返回.
LineSetCurrentLocation 设置当地电话区号??, 同步返回.
LineSetTollList 操作响铃列表, 同步返回.
LineGetTranslateCaps 返回地址的转化能力, 同步返回.
7.呼叫状态与设置
LineGetCallInfo 返回确定的呼叫信息, 同步返回.
LineGetCallStatus 返回指定呼叫的完整状态信息, 同步返回.
LineSetAppSpecific 设置一个呼叫信息结构的特定域, 同步返回.
8.建立呼叫
LineMakeCall 建立一个拨出呼叫话并返回句柄, 异步返回.
LineDial 拨打(可拨号)地址, 异步返回.
9.来话应答
LineAnswer 来话应答, 异步返回.
LineSetNumRings 设定来话被默认应答前的响铃次数, 同步返回.
LineGetNumRings 返回来话被默认应答前的响铃次数最小值, 同步返回.
10.呼叫特殊控制
LineSetCallPrivilege 设置应用程序的特权??, 同步返回.
11.挂断呼叫
LineDrop 挂断或是取消呼叫, 异步返回.
LineDeallocateCall 释放指定呼叫句柄, 同步返回.
12.呼叫句柄处理
LineHandoff , 同步返回.
LineGetNewCalls 返回应用没有线路设备或地址句柄的呼叫句柄列表, 同步返回.
LineGetConfRelatedCalls 返回同一电话会议的呼叫句柄列表, 同步返回.
13.位置与国家的信息
LineTranslateDialog 显示一个对话框,用户可以修改位置与国家信息, 同步返回.
LineGetCountry 返回指定国家,拨号规则和其他信息, 同步返回.
LineGetRequest 得到DLL的下次请求, 同步返回.
1. LONG lineGetID(HLINE hLine, DWORD dwAddressID, HCALL hCall, DWORD dwSelect, LPVARSTRING lpDeviceID, LPCTSTR lpszDeviceClass):
获取或指定开放线路,地址或呼叫相关联的设备标识符。它返回一个MODEM句柄。。在进行呼叫之前,程序常需要MODEM句柄来检索MODEM的配置和性能,程序可以通过调用GetCommProperties()以读取COMMPROP和COMMCONFIG结构来了解MODEM的信息,而GetCommProperties()就需要lineGetID()返回的MODEM句柄。
2. LONG lineInitialize(LPHLINEAPP lphLineApp, HINSTANCE hInstance, LINECALLBACK lpfnCallback, LPCTSTR lpszAppName, LPDWORD lpdwNumDevs):
初始化TAPI线路。在用TAPI通过MODEM进行远程通讯程序设计时,必不可少的是调用lineInitialize()函数以初始化TAPI。lineInitialize()分配为支持逻辑线路设备的使用而必须的内部资源。它还登记了一个回调函数,使操作系统通过该函数将有关线路状态的消息返回给程序。3.lineShutDown(hTAPI):关闭TAPI。
它是与lineInitialize()相对应的函数,当程序使用完线路设备后,应调用lineShutDown(hTAPI)以释放为线路设备分配的资源。4.lineNegotiateAPIVersion(hAPI,dwDeviceID,dwLowVersion,dwHighVersion,&dwVersionToUse,&extensions):
协商TAPI版本号。TAPI是需要版本协商的一种Win32 API。版本协商确保当安装了新版本的TAPI驱动程序时,程序仍能安全正常运行。5.lineGetDevCaps(hAPI,dwLine,dwVersionToUse,dwExtVersion,&linedevcaps):
返回指定逻辑线路设备的能力。6.LONG lineGetDevConfig (DWORD dwDeviceID, LPVARSTRING lpDeviceConfig, LPCTSTR lpszDeviceClass):
返回指定逻辑线路设备的缺省配置。7.LONG lineSetDevConfig (DWORD dwDeviceID, LPVOID const lpDeviceConfig, DWORD dwSize, LPCTSTR lpszDeviceClass):
设置指定媒体流设备。8.LONG lineConfigDialogEdit (DWORD dwDeviceID, HWND hwndOwner, LPCTSTR lpszDeviceClass, LPVOID const lpDeviceConfigIn, DWORD dwSize, LPVARSTRING lpDeviceConfigOut):
显示一个允许用户改变逻辑线路设备的配置数据的对话框。9.LONG lineOpen(HLINEAPP hLineApp, DWORD dwDeviceID, LPHLINE lphLine, DWORD dwAPIVersion, DWORD dwExtVersion, DWORD dwCallbackInstance, DWORD dwPrivileges, DWORD dwMediaModes, LPLINECALLPARAMS const lpCallParams):
打开指定逻辑线路设备,并提供后续监视和控制线路的功能。调用lineInitialize()函数初始化TAPI后,就可以调用lineOpen()函数以打开线路。10.LONG lineClose(HLINE hLine):
关闭指定逻辑线路设备。
11.LONG lineMakeCall(HLINE hLine, LPHCALL lphCall, LPCTSTR lpszDestAddress, DWORD dwCountryCode, LPLINECALLPARAMS const lpCallParams):
初始化输出拨号,进行呼叫,并返回线路句柄以进行数据传输。12.LONG lineDrop(HCALL hCall, LPCTSTR lpsUserUserInfo, DWORD dwSize):
收线或断开呼叫。当程序结束呼叫时,需要调用lineDrop()函数以断开或中止呼叫。13.LONG lineDeallocateCall(HCALL hCall):
释放系统为呼叫分配的内存。当程序结束呼叫时,除了需要调用lineDrop()函数以断开或中止呼叫外,还调用lineDeallocateCall()函数以释放系统为呼叫分配的内存,调用lineClose()函数以关闭线路,调用lineShutdown()函数以将程序与TAPI断开。
总之,在通过MODEM进行远程通讯程序设计时,必不可少的是要调用lineInitialize()函数以初始化TAPI,以及调用lineOpen()函数以打开线路,调用lineMakeCall()函数以进行拨号。当程序拨号成功后,就可以使用由lineMakeCall()函数返回的线路句柄进行数据传输了!除此之外,为了编写可靠的远程通讯程序,还应调用有关检测线路设备能力的函数,检测TAPI版本兼容性的函数,检测线路当前使用状态的函数等以适应各种情况。当程序结束呼叫时,需要调用lineDrop()函数以断开和中止呼叫,调用lineDeallocateCall()函数以释放系统为呼叫分配的内存,调用lineClose()函数以关闭线路,调用lineShutdown()函数以将程序与TAPI断开