扩展行函数
扩展线路服务 (或特定于设备的线路服务) 包括 API 的所有服务提供商定义的扩展。 API 定义了一种机制,使服务提供商供应商能够使用特定于设备的扩展来扩展 TAPI。 API 仅定义扩展机制,并通过这样做提供对特定于设备的扩展的访问权限,但 API 不定义其行为。 行为完全由服务提供商定义。
TAPI 由标量和位标志常量定义、数据结构、函数和消息组成。 定义了使供应商能够扩展其中大部分过程的过程,如下所示。
对于可扩展的标量数据常量,服务提供商供应商可以在指定范围内定义新值。 由于大多数数据常量都是 DWORD,因此通常0x00000000到 0x7FFFFFFF 的范围是为将来的常见扩展保留的,而0x80000000到 0xFFFFFFFF 则可用于特定于供应商的扩展。 假设供应商定义的值是 API 定义的数据类型的自然扩展。
对于可扩展的位标志数据常量,服务提供商供应商可以为指定位定义新值。 由于大多数位标志常量都是 DWORD,因此通常为通用扩展保留特定数量的低位,而剩余的高位可用于供应商特定的扩展。 公共位标志是从零位向上分配的;应从位 31 开始分配特定于供应商的扩展。 这为将位位置分配给通用扩展与供应商特定的扩展提供了最大的灵活性。 供应商应定义新值,这些值是 API 定义的位标志的自然扩展。
可扩展数据结构具有一个大小可变的字段,该字段保留供设备特定使用。 在大小可变的情况下,服务提供商决定信息量和解释。 定义特定于设备的字段的供应商应对 API 定义的原始数据结构进行这些自然扩展。
两个函数 lineDevSpecific 和 lineDevSpecificFeature 以及两个相关消息 (LINE_DEVSPECIFIC 和 LINE_DEVSPECIFICFEATURE)提供特定于供应商的扩展机制。 lineDevSpecific 函数和关联的LINE_DEVSPECIFIC消息使应用程序能够访问基本或补充电话服务不可用的特定于设备的线路、地址或呼叫功能。 lineDevSpecific 函数的参数配置文件是泛型的,API 对参数的解释很少。 参数的解释由服务提供商定义,并且必须由使用参数的应用程序理解。 参数只是通过 TAPI 从应用程序传递到服务提供商。 依赖于设备特定扩展的应用程序通常不能与其他服务提供商一起使用;但是,写入基本和补充电话服务的应用程序将与扩展服务提供商一起使用。
为方便起见,还提供了更专用的转义函数。 它类似于 lineDevSpecific,但对某些参数进行了解释。 此更专用的函数是 lineDevSpecificFeature,这是一个特定于设备的转义函数,允许将开关功能发送到交换机。 消息 LINE_DEVSPECIFICFEATURE 是发送到应用程序的特定于设备的消息,指示发送到交换机的功能。 此函数及其关联的消息允许应用程序模拟线路功能电话上的按钮按下操作。 由于功能电话及其按钮的含义是特定于供应商的,因此使用 lineDevSpecificFeature 的功能调用也是特定于供应商的。
如前所述,没有制造商标识符的中央注册表。 相反,可以使用 EXTIDGEN) (唯一标识符生成器。