作为 TSPI 定义的电话设备抽象的一部分,TAPI 和服务提供商必须首先进行基本初始化。 此基本初始化是通过同一组步骤为接口的线路和手机完成的。 这些步骤中的第一个是接口版本协商。 TAPI 通过调用 TSPI_lineNegotiateTSPIVersion 函数来执行此作。 此函数通常用于代表单个行设备进行协商;同一服务提供商中的不同线路设备可能会根据不同的接口版本运行。 TAPI 传递特殊的保留设备标识符值,INITIALIZE_NEGOTIATION,以指示它正在协商影响整个服务提供商(无论是线路还是电话)的初始化功能的总体接口版本。
此协商的结果将传递到后续过程,直到电话设备打开。 此时,手机设备将提交到特定的接口版本。 此接口版本在手机关闭之前是隐式的,不需要传递给在打开的手机上运行的后续功能。
在整体接口版本协商之后,TAPI 调用 TSPI_providerInit 函数。 此函数初始化服务提供程序,并为它提供后续作所需的参数。 这些参数包括:
- dwPermanentProviderID:指定正在初始化的服务提供程序的永久标识符,在此系统上的服务提供商中是唯一的。
- dwLineDeviceIDBase:指定此服务提供商支持的线路设备的最低设备标识符。
- dwPhoneDeviceIDBase:指定此服务提供商支持的电话设备的最低设备标识符。 电话电话设备类的设备由从零开始的整数进行标识。 此范围的标识符在整个电话设备中是连续的。 由于可能有多个服务提供商管理单个系统中的电话设备,因此每个服务提供商将获得总范围的连续部分。 此参数告知服务提供商范围中其部分的最小值。 服务提供商(而不是 TAPI)负责将此变量范围映射到其自己的内部设备标识符。 这为服务提供商供应商提供了足够的灵活性,可以根据需要在特定于设备的扩展中使用设备标识符。 由于服务提供商知道 TAPI 定义的参数和数据结构中显示的设备标识符,因此它可以在特定于设备的扩展参数和数据结构中使用一致的设备标识符。
- dwNumLines:指定此服务提供商支持多少行设备。
- dwNumPhones:指定此服务提供商支持的手机设备数。
- lpfnCompletionProc:指定服务提供商调用以报告线路和电话设备上所有异步作过程完成的过程。
TSPI_providerInit后,可以执行正常作,如打开电话。