LINEDEVCAPS 结构 (tapi.h)
LINEDEVCAPS 结构描述线路设备的功能。 lineGetDevCaps 函数和 TSPI_lineGetDevCaps 函数返回 LINEDEVCAPS 结构。
语法
typedef struct linedevcaps_tag {
DWORD dwTotalSize;
DWORD dwNeededSize;
DWORD dwUsedSize;
DWORD dwProviderInfoSize;
DWORD dwProviderInfoOffset;
DWORD dwSwitchInfoSize;
DWORD dwSwitchInfoOffset;
DWORD dwPermanentLineID;
DWORD dwLineNameSize;
DWORD dwLineNameOffset;
DWORD dwStringFormat;
DWORD dwAddressModes;
DWORD dwNumAddresses;
DWORD dwBearerModes;
DWORD dwMaxRate;
DWORD dwMediaModes;
DWORD dwGenerateToneModes;
DWORD dwGenerateToneMaxNumFreq;
DWORD dwGenerateDigitModes;
DWORD dwMonitorToneMaxNumFreq;
DWORD dwMonitorToneMaxNumEntries;
DWORD dwMonitorDigitModes;
DWORD dwGatherDigitsMinTimeout;
DWORD dwGatherDigitsMaxTimeout;
DWORD dwMedCtlDigitMaxListSize;
DWORD dwMedCtlMediaMaxListSize;
DWORD dwMedCtlToneMaxListSize;
DWORD dwMedCtlCallStateMaxListSize;
DWORD dwDevCapFlags;
DWORD dwMaxNumActiveCalls;
DWORD dwAnswerMode;
DWORD dwRingModes;
DWORD dwLineStates;
DWORD dwUUIAcceptSize;
DWORD dwUUIAnswerSize;
DWORD dwUUIMakeCallSize;
DWORD dwUUIDropSize;
DWORD dwUUISendUserUserInfoSize;
DWORD dwUUICallInfoSize;
LINEDIALPARAMS MinDialParams;
LINEDIALPARAMS MaxDialParams;
LINEDIALPARAMS DefaultDialParams;
DWORD dwNumTerminals;
DWORD dwTerminalCapsSize;
DWORD dwTerminalCapsOffset;
DWORD dwTerminalTextEntrySize;
DWORD dwTerminalTextSize;
DWORD dwTerminalTextOffset;
DWORD dwDevSpecificSize;
DWORD dwDevSpecificOffset;
DWORD dwLineFeatures;
DWORD dwSettableDevStatus;
DWORD dwDeviceClassesSize;
DWORD dwDeviceClassesOffset;
GUID PermanentLineGuid;
DWORD dwAddressTypes;
GUID ProtocolGuid;
DWORD dwAvailableTracking;
} LINEDEVCAPS, *LPLINEDEVCAPS;
成员
dwTotalSize
分配给此数据结构的总大小(以字节为单位)。
dwNeededSize
此数据结构保存所有返回的信息所需的大小(以字节为单位)。
dwUsedSize
包含有用信息的此数据结构部分的大小(以字节为单位)。
dwProviderInfoSize
包含服务提供商信息的可变大小字段的大小(以字节为单位)。
dwProviderInfoOffset
从结构开头到服务提供程序信息的偏移量(以字节为单位)。
dwProviderInfoSize 和 dwProviderInfoOffset 成员旨在提供有关提供程序硬件和/或软件的信息,例如硬件和软件的供应商名称和版本号。 当用户需要呼叫客户服务时,此信息非常有用,但存在与提供商相关的问题。
dwSwitchInfoSize
包含交换机信息的可变大小设备字段的大小(以字节为单位)。
dwSwitchInfoOffset
从结构开头到开关信息的偏移量(以字节为单位)。
dwSwitchInfoSize 和 dwSwitchInfoOffset 成员旨在提供有关线路设备连接到的交换机的信息,例如交换机制造商、型号名称、软件版本等。 当用户需要呼叫客户服务时,此信息非常有用,但存在与交换机相关的问题。
dwPermanentLineID
系统配置中线路设备已知的永久标识符。 它是线路设备的永久名称。 此永久名称 (而不是 dwDeviceID) 不会更改,因为系统添加或删除行,并且通过操作系统升级保留。 因此,它可用于链接 .ini 文件中特定于行的信息, (或其他文件) ,而不受添加或删除其他行或更改操作系统的影响。
dwLineNameSize
包含此行设备的用户可配置名称的可变大小设备字段的大小(以字节为单位)。
dwLineNameOffset
从此数据结构的开头到此行设备的名称的偏移量。 在配置线路设备的服务提供商时,用户可以配置此名称,并且为方便用户提供此名称。 字段的大小由 dwLineNameSize 指定。
dwStringFormat
用于此行设备的字符串格式。 此成员使用 STRINGFORMAT_常量之一。
dwAddressModes
指定源地址的模式。 此成员使用 LINEADDRESSMODE_ 常量。
dwNumAddresses
与此线路设备关联的地址数。 单个地址由地址标识符引用。 地址标识符的范围从 0 到 1 小于 dwNumAddresses 指示的值。
dwBearerModes
指示地址能够支持的不同持有者模式的标志数组。 此成员使用一个或多个 LINEBEARERMODE_常量。
dwMaxRate
通过调用的信息交换的最大数据速率(以位/秒为单位)。
dwMediaModes
指示地址能够支持的不同媒体类型的标志数组。 此成员使用一个或多个 LINEMEDIAMODE_常量。
dwGenerateToneModes
可在此行上生成的音调。 此成员使用一个或多个 LINETONEMODE_常量。
dwGenerateToneMaxNumFreq
使用 lineGenerateTone 生成音调时,在描述一般音调时,可以使用 LINEGENERATETONE 数据结构指定的最大频率数。 值为 0 表示音调生成不可用。
dwGenerateDigitModes
数字模式比 可以在此行上生成。 此成员使用一个或多个 LINEDIGITMODE_常量。
dwMonitorToneMaxNumFreq
在使用 lineMonitorTones 监视常规音调时,可以使用 LINEMONITORTONE 数据结构描述一般音调时指定的最大频率数。 值为 0 表示音调监视器不可用。
dwMonitorToneMaxNumEntries
可以在音调列表中指定到 lineMonitorTones 的最大条目数。
dwMonitorDigitModes
在此行中可以检测到的数字模式。 此成员使用一个或多个 LINEDIGITMODE_常量。
dwGatherDigitsMinTimeout
可为 lineGatherDigits 使用的第一个数字和数字间超时值指定的最小值(以毫秒为单位)。 如果 dwGatherDigitsMinTimeout 和 dwGatherDigitsMaxTimeout 均为零,则不支持超时。
dwGatherDigitsMaxTimeout
可为 lineGatherDigits 使用的第一个数字和数字间超时值指定的最大值(以毫秒为单位)。 如果 dwGatherDigitsMinTimeout 和 dwGatherDigitsMaxTimeout 均为零,则不支持超时。
dwMedCtlDigitMaxListSize
可在 lineSetMediaControl 的数字列表参数中指定的最大条目数。
dwMedCtlMediaMaxListSize
可以在 lineSetMediaControl 的媒体列表参数中指定的最大条目数。
dwMedCtlToneMaxListSize
可在 lineSetMediaControl 的音调列表参数中指定的最大条目数。
dwMedCtlCallStateMaxListSize
可在 lineSetMediaControl 的调用状态列表参数中指定的最大条目数。
dwDevCapFlags
布尔设备功能。 此成员使用一个或多个 LINEDEVCAPFLAGS_常量。
dwMaxNumActiveCalls
(最小带宽) 呼叫的最大数目,这些呼叫 (可同时在线路上) 连接。 如果在线路上建立了更高的带宽呼叫,实际活动呼叫数可能会更低。
dwAnswerMode
在线路设备上接听另一个产品/服务呼叫时,对活动呼叫的影响。 此成员使用 LINEANSWERMODE_常量之一。
dwRingModes
可以在带有响铃指示的 LINE_LINEDEVSTATE 消息中报告的不同 响铃 模式的数量。 不同的环形模式范围从一个到 dwRingModes。 零表示无环。
dwLineStates
可能在此行上的LINE_LINEDEVSTATE消息中通知应用程序的不同行状态组件。 此成员使用一个或多个 LINEDEVSTATE_常量。
dwUUIAcceptSize
在呼叫接受期间可以发送的用户-用户信息(包括 null 终止符)的最大大小。
dwUUIAnswerSize
在呼叫应答期间可以发送的用户-用户信息(包括 null 终止符)的最大大小。
dwUUIMakeCallSize
在发起调用期间可以发送的用户-用户信息(包括 null 终止符)的最大大小。
dwUUIDropSize
在呼叫删除期间可以发送的用户-用户信息(包括 null 终止符)的最大大小。
dwUUISendUserUserInfoSize
使用 lineSendUserUserInfo 调用期间随时可以单独发送的用户-用户信息(包括 null 终止符)的最大大小。
dwUUICallInfoSize
可在 LINECALLINFO 结构中接收的用户信息(包括 null 终止符)的最大大小。
MinDialParams
可为此线路上的呼叫设置的拨号参数的最小值(以毫秒为单位)。 拨号参数可以设置为 MinDialParams 到 MaxDialParams 范围内的值。 实际设置的粒度特定于服务提供程序。
MaxDialParams
可为此线路上的呼叫设置的拨号参数的最大值(以毫秒为单位)。 拨号参数可以设置为 MinDialParams 到 MaxDialParams 范围内的值。 实际设置的粒度特定于服务提供程序。
DefaultDialParams
用于此线路上呼叫的默认拨号参数。 可以基于每个调用重写这些参数值。
dwNumTerminals
可为此线路设备、其地址或呼叫设置的终端数。 各个终端由终端 ID 引用,范围从 0 到比 dwNumTerminals 指示的值少 1。
dwTerminalCapsSize
大小可变的设备字段的大小,其中包含具有 LINETERMCAPS 类型的条目的数组(以字节为单位)。
dwTerminalCapsOffset
从此结构的开头到包含具有 LINETERMCAPS 类型条目的数组的可变大小的设备字段的偏移量。 此数组按终端 ID 编制索引,范围为从零到 dwNumTerminals 减 1。 数组中的每个条目指定相应终端的终端设备功能。 字段的大小由 dwTerminalCapsSize 指定。
dwTerminalTextEntrySize
由 dwTerminalTextSize 和 dwTerminalTextOffset 指向的每个终端文本说明(包括 null 终止符)的大小(以字节为单位)。
dwTerminalTextSize
大小可变的字段的大小,其中包含有关行的每个可用终端的描述性文本(包括 null 终止符)(以字节为单位)
dwTerminalTextOffset
从此结构的开头到有关每个行可用终端的描述性文本的偏移量(以字节为单位)。 每条消息的长度为 dwTerminalTextEntrySize 字节。 这些文本说明的字符串格式由行的设备功能中的 dwStringFormat 指示。 字段的大小由 dwTerminalTextSize 指定。
dwDevSpecificSize
大小可变的设备特定字段的大小(以字节为单位)。 如果特定于设备的信息是指向字符串的指针,则大小必须包含 null 终止符。
dwDevSpecificOffset
从此结构的开头到特定于设备的字段的偏移量(以字节为单位)。 字段的大小由 dwDevSpecificSize 指定。
dwLineFeatures
使用 LINEFEATURE_ 常量可用于此行的功能。 调用受支持的功能需要线路处于正确的状态,基础线路设备需要在兼容模式下打开。 位位置的零表示相应的功能永远不可用。 一个指示,如果行处于适当的状态,则相应的功能可能可用,以便使操作有意义。 此成员允许应用程序发现哪些行特征可以 (,哪些行特征永远不会) 设备支持。
dwSettableDevStatus
可以使用 lineSetLineDevStatus 修改的 LINEDEVSTATUSFLAGS 值。
dwDeviceClassesSize
包含此行上一个或多个地址支持的设备类标识符(包括 null 终止符)的字符串的大小(以字节为单位)。
dwDeviceClassesOffset
从此结构的开头偏移到包含此行上一个或多个地址上支持的设备类标识符的字符串(以字节为单位)。 这些字符串与 lineGetID 一起使用;它们用 NULL分隔,列表中的最后一个标识符后跟两个 NULLs。 字段的大小由 dwDeviceClassesSize 指定。
PermanentLineGuid
与线路设备永久关联的 GUID。
dwAddressTypes
用于呼叫的地址类型。 仅当协商的 TAPI 版本为 3.0 或更高版本时,结构中的此成员才可用。
ProtocolGuid
当前 TAPI 协议。 仅当协商的 TAPI 版本为 3.0 或更高版本时,结构中的此成员才可用。 协议在 tapi3.h 中声明。
dwAvailableTracking
可用跟踪,由 LINECALLHUBTRACKING.constant 表示。 仅当协商的 TAPI 版本为 3.0 或更高版本时,结构中的此成员才可用。
注解
特定于设备的扩展应使用 DevSpecific (dwDevSpecificSize 和 dwDevSpecificOffset) 此数据结构的可变大小区域。
较旧的应用程序在 LINEDEVCAPS 结构中没有新成员的情况下进行编译,并且使用小于新大小的 SIZEOF LINEDEVCAPS。 应用程序通过 lineGetDevCaps 函数传入 dwAPIVersion 参数,该函数可用于 TAPI 在处理这种情况时的指导。 如果应用程序传入的 dwTotalSize 成员小于指定的 dwAPIVersion 中定义的结构的固定部分的大小,则返回LINEERR_STRUCTURETOOSMALL。 如果应用程序已分配足够的内存,则在调用 TSPI_lineGetDevCaps之前,TAPI 会将 dwNeededSize 和 dwUsedSize 成员设置为在指定 API 版本中存在的结构的固定大小。
新应用程序必须识别协商的 API 版本,并且不检查已协商 API 版本结构固定部分的原始末尾之外的固定部分中的成员的内容。
如果在 dwBearerModes 成员中设置了LINEBEARERMODE_DATA位, 则 dwMaxRate 成员指示持有者通道上数字传输的最大速率。 即使 LINEDEVCAPS 结构的 dwBearerModes 成员未设置为 LINEBEARERMODE_DATA,LINEDEVCAPS 结构的 dwMaxRate 成员也可以包含有效值。
如果未在 dwBearerModes 中设置LINEBEARERMODE_DATA,但设置LINEBEARERMODE_VOICE值并在 dwMediaModes 成员中设置LINEMEDIAMODE_DATAMODEM值, 则 dwMaxRate 成员指示附加调制解调器或功能等效项的电话线路上最大同步 (DCE) 比特率。 例如,如果调制解调器的最快调制速度为 V.32bis(14,400bps), 则 dwMaxRate 等于 14400。 这不是最快的 DTE 端口速率 (最有可能为 38400、57600 或 115200) ,而是调制解调器在电话线上支持的最快速比特率。
应用程序必须小心检查,以查看未设置LINEBEARERMODE_DATA,以避免错误解释 dwMaxRate 成员。 如果设置了LINEBEARERMODE_DATA,则它可能为 64000 或更高。
还应注意的是,如果调制解调器尚未明确标识 (例如,它是一个“通用”调制解调器) ,则指示的数字是基于调制解调器检查的“最佳猜测”。
dwSettableDevStatus 到 dwDeviceClassesOffset 的成员仅适用于打开 TAPI 版本为 2.0 或更高版本的线路设备的应用程序。
要求
要求 | 值 |
---|---|
Header | tapi.h |