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

从结构开头到服务提供程序信息的偏移量(以字节为单位)。

dwProviderInfoSizedwProviderInfoOffset 成员旨在提供有关提供程序硬件和/或软件的信息,例如硬件和软件的供应商名称和版本号。 当用户需要呼叫客户服务时,此信息非常有用,但存在与提供商相关的问题。

dwSwitchInfoSize

包含交换机信息的可变大小设备字段的大小(以字节为单位)。

dwSwitchInfoOffset

从结构开头到开关信息的偏移量(以字节为单位)。

dwSwitchInfoSizedwSwitchInfoOffset 成员旨在提供有关线路设备连接到的交换机的信息,例如交换机制造商、型号名称、软件版本等。 当用户需要呼叫客户服务时,此信息非常有用,但存在与交换机相关的问题。

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 使用的第一个数字和数字间超时值指定的最小值(以毫秒为单位)。 如果 dwGatherDigitsMinTimeoutdwGatherDigitsMaxTimeout 均为零,则不支持超时。

dwGatherDigitsMaxTimeout

可为 lineGatherDigits 使用的第一个数字和数字间超时值指定的最大值(以毫秒为单位)。 如果 dwGatherDigitsMinTimeoutdwGatherDigitsMaxTimeout 均为零,则不支持超时。

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

可为此线路上的呼叫设置的拨号参数的最小值(以毫秒为单位)。 拨号参数可以设置为 MinDialParamsMaxDialParams 范围内的值。 实际设置的粒度特定于服务提供程序。

MaxDialParams

可为此线路上的呼叫设置的拨号参数的最大值(以毫秒为单位)。 拨号参数可以设置为 MinDialParamsMaxDialParams 范围内的值。 实际设置的粒度特定于服务提供程序。

DefaultDialParams

用于此线路上呼叫的默认拨号参数。 可以基于每个调用重写这些参数值。

dwNumTerminals

可为此线路设备、其地址或呼叫设置的终端数。 各个终端由终端 ID 引用,范围从 0 到比 dwNumTerminals 指示的值少 1。

dwTerminalCapsSize

大小可变的设备字段的大小,其中包含具有 LINETERMCAPS 类型的条目的数组(以字节为单位)。

dwTerminalCapsOffset

从此结构的开头到包含具有 LINETERMCAPS 类型条目的数组的可变大小的设备字段的偏移量。 此数组按终端 ID 编制索引,范围为从零到 dwNumTerminals 减 1。 数组中的每个条目指定相应终端的终端设备功能。 字段的大小由 dwTerminalCapsSize 指定。

dwTerminalTextEntrySize

dwTerminalTextSizedwTerminalTextOffset 指向的每个终端文本说明(包括 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 (dwDevSpecificSizedwDevSpecificOffset) 此数据结构的可变大小区域。

较旧的应用程序在 LINEDEVCAPS 结构中没有新成员的情况下进行编译,并且使用小于新大小的 SIZEOF LINEDEVCAPS。 应用程序通过 lineGetDevCaps 函数传入 dwAPIVersion 参数,该函数可用于 TAPI 在处理这种情况时的指导。 如果应用程序传入的 dwTotalSize 成员小于指定的 dwAPIVersion 中定义的结构的固定部分的大小,则返回LINEERR_STRUCTURETOOSMALL。 如果应用程序已分配足够的内存,则在调用 TSPI_lineGetDevCaps之前,TAPI 会将 dwNeededSizedwUsedSize 成员设置为在指定 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 或更高。

还应注意的是,如果调制解调器尚未明确标识 (例如,它是一个“通用”调制解调器) ,则指示的数字是基于调制解调器检查的“最佳猜测”。

dwSettableDevStatusdwDeviceClassesOffset 的成员仅适用于打开 TAPI 版本为 2.0 或更高版本的线路设备的应用程序。

要求

要求
Header tapi.h

另请参阅

LINECALLINFO

LINEGENERATETONE

LINEMONITORTONE

LINETERMCAPS

LINETRANSLATECAPS

LINE_LINEDEVSTATE

TSPI_lineGetDevCaps

lineClose

lineDial

lineGatherDigits

lineGenerateTone

lineGetDevCaps

lineGetID

lineGetTranslateCaps

lineMakeCall

lineMonitorTones

lineSendUserUserInfo

lineSetMediaControl

lineTranslateAddress

lineUncompleteCall