扩展行函数

扩展线路服务(或特定于设备的线路服务)包括 API 的所有服务提供商定义的扩展。 API 定义了一种机制,使服务提供商供应商能够使用特定于设备的扩展扩展 TAPI。 API 仅定义扩展机制,因此提供对特定于设备的扩展的访问权限,但 API 不定义其行为。 行为完全由服务提供商定义。

TAPI 由标量和位标志常量定义、数据结构、函数和消息组成。 定义了使供应商能够扩展其中大部分的过程,如下所示。

对于可扩展的标量数据常量,服务提供商供应商可以在指定范围内定义新值。 由于大多数数据常量都 DWORDs,因此通常通过 0x7FFFFFFF 保留0x00000000的范围,而通过0xFFFFFFFF 0x80000000可用于特定于供应商的扩展。 假设供应商将定义值,这些值是 API 定义的数据类型的自然扩展。

对于可扩展的位标志数据常量,服务提供商供应商可以为指定位定义新值。 由于大多数位标志常量 DWORDs,因此通常为公共扩展保留特定数量的较低位,而剩余的上限位可用于特定于供应商的扩展。 公共位标志是从位零开始分配的;供应商特定的扩展应从位 31 向下分配。 这为将位位置分配给常见扩展与特定于供应商的扩展提供了最大的灵活性。 供应商应定义新值,这些值是 API 定义的位标志的自然扩展。

可扩展数据结构具有固定大小的字段,该字段保留用于特定于设备的用途。 服务提供商会确定信息量和解释量。 定义特定于设备的字段的供应商应使 API 定义的原始数据结构的这些自然扩展。

两个函数(lineDevSpecificlineDevSpecificFeature)和两条相关消息(LINE_DEVSPECIFICLINE_DEVSPECIFICFEATURE)提供特定于供应商的扩展机制。 lineDevSpecific 函数和关联的LINE_DEVSPECIFIC消息使应用程序能够访问基本或补充电话服务不可用的设备特定线路、地址或呼叫功能。 lineDevSpecific 函数的参数配置文件是泛型的,因此 API 对参数的解释很少。 参数的解释由服务提供商定义,必须由使用参数的应用程序理解。 参数只是通过 TAPI 从应用程序传递到服务提供商。 依赖于特定于设备的扩展的应用程序通常不适用于其他服务提供商;但是,写入基本和补充电话服务的应用程序将与扩展服务提供商合作。

为方便起见,还提供了更专门的转义函数。 它类似于 lineDevSpecific,但对某些参数进行解释。 此更专用的函数 lineDevSpecificFeature,这是一个特定于设备的转义函数,用于允许将交换机功能发送到交换机。 消息 LINE_DEVSPECIFICFEATURE 是发送到应用程序的特定于设备的消息,指示发送到交换机的功能。 此函数及其关联的消息允许应用程序模拟线路功能电话上的按钮按下。 由于功能电话及其按钮的含义特定于供应商,因此使用 lineDevSpecificFeature 的功能调用也是特定于供应商的。

如前所述,制造商标识符没有中央注册表。 而是提供唯一标识符生成器(EXTIDGEN)。