次の方法で共有


拡張行関数

拡張回線サービス (またはデバイス固有の回線サービス) には、API に対するすべてのサービス プロバイダー定義拡張機能が含まれます。 API は、サービス プロバイダー ベンダーがデバイス固有の拡張機能を使用して TAPI を拡張できるようにするメカニズムを定義します。 API は拡張メカニズムのみを定義し、それによってデバイス固有の拡張機能へのアクセスを提供しますが、API は動作を定義しません。 動作は、サービス プロバイダーによって完全に定義されます。

TAPI は、スカラーおよびビット フラグ定数定義、データ構造、関数、およびメッセージで構成されます。 ベンダーがこれらの大部分を次のように拡張できるようにする手順が定義されています。

拡張可能なスカラー データ定数の場合、サービス プロバイダー ベンダーは、指定した範囲内で新しい値を定義できます。 ほとんどのデータ定数は DWORDであるため、通常、0x7FFFFFFFから0x00000000の範囲は一般的な将来の拡張機能用に予約されますが、0x80000000から 0xFFFFFFFF はベンダー固有の拡張機能で使用できます。 ベンダーは、API によって定義されたデータ型の自然な拡張である値を定義することを前提とします。

拡張ビット フラグ データ定数の場合、サービス プロバイダー ベンダーは、指定されたビットの新しい値を定義できます。 ほとんどのビット フラグ定数は DWORDです。通常、下位ビットの特定の数は一般的な拡張用に予約されますが、残りの上位ビットはベンダー固有の拡張機能で使用できます。 共通ビット フラグは、ビット 0 から上に割り当てられます。ベンダー固有の拡張機能は、ビット 31 から下に割り当てる必要があります。 これにより、一般的な拡張機能とベンダー固有の拡張機能にビット位置を割り当てる柔軟性が最大限に高まります。 ベンダーは、API によって定義されるビット フラグの自然な拡張である新しい値を定義することが期待されます。

拡張可能なデータ構造には、デバイス固有の使用のために予約されている可変サイズのフィールドがあります。 サービス プロバイダーは、さまざまなサイズで情報の量と解釈を決定します。 デバイス固有のフィールドを定義するベンダーは、API によって定義された元のデータ構造のこれらの自然な拡張を行う必要があります。

lineDevSpecific と lineDevSpecificFeature の 2 つの関数と、LINE_DEVSPECIFICLINE_DEVSPECIFICFEATURE の 2 つの関連メッセージは、ベンダー固有の拡張メカニズムを提供します。 lineDevSpecific 関数と関連付けられたLINE_DEVSPECIFIC メッセージを使用すると、アプリケーションは、Basic または補助テレフォニー サービスで使用できないデバイス固有の回線、アドレス、または呼び出し機能にアクセスできます。 lineDevSpecific 関数のパラメーター プロファイルは、パラメーターの解釈が API によってほとんど行われないという点でジェネリックです。 パラメーターの解釈はサービス プロバイダーによって定義され、それらを使用するアプリケーションで理解する必要があります。 パラメーターは、アプリケーションからサービス プロバイダーに TAPI を介して単純に渡されます。 デバイス固有の拡張機能に依存するアプリケーションは、通常、他のサービス プロバイダーと連携しません。ただし、Basic および補助テレフォニー サービスに書き込まれたアプリケーションは、拡張サービス プロバイダーと連携します。

便宜上、より特殊なエスケープ関数も提供されます。 lineDevSpecific に似ていますが、一部のパラメーターに解釈を配置します。 このより特殊な関数は、スイッチ機能をスイッチに送信できるようにするためのデバイス固有のエスケープ関数である lineDevSpecificFeature です。 メッセージ LINE_DEVSPECIFICFEATUREは、スイッチに送信される機能を示す、アプリケーションに送信されるデバイス固有のメッセージです。 この関数とそれに関連付けられたメッセージを使用すると、アプリケーションは回線のフィーチャー フォンでボタンの押下をエミュレートできます。 フィーチャー フォンとそのボタンの意味はベンダー固有であるため、 lineDevSpecificFeature を使用した機能呼び出しもベンダー固有です。

前述のように、製造元識別子の中央レジストリはありません。 代わりに、一意識別子ジェネレーター (EXTIDGEN) が使用可能になります。