次の方法で共有


TSPI_lineSetTerminal関数 (tspi.h)

TSPI_lineSetTerminal関数を使用すると、TAPI は、指定された回線、アドレス、または呼び出しに関連する端末情報をルーティング先として指定できます。 この操作は、呼び出しが行で進行中の間に使用して、必要に応じて異なるデバイスにイベントをルーティングできるようにします。

構文

LONG TSPIAPI TSPI_lineSetTerminal(
  DRV_REQUESTID dwRequestID,
  HDRVLINE      hdLine,
  DWORD         dwAddressID,
  HDRVCALL      hdCall,
  DWORD         dwSelect,
  DWORD         dwTerminalModes,
  DWORD         dwTerminalID,
  DWORD         bEnable
);

パラメーター

dwRequestID

非同期要求の識別子。

hdLine

行へのハンドル。

dwAddressID

指定されたオープンライン デバイス上のアドレス。 アドレス識別子は、アドレスに完全に関連付けられます。識別子は、オペレーティング システムのアップグレード間で一定のままです。 TAPI は、この関数が呼び出されたときにこのパラメーターを検証しません。

hdCall

呼び出しのハンドル。 呼び出し状態は任意の状態にすることができます ( dwSelect がLINECALLSELECT_CALLの場合)。

dwSelect

回線、アドレス、または指定された呼び出しに対してターミナル設定を要求するかどうかを指定します。 行またはアドレスを指定した場合、イベントは行またはアドレス自体に適用されるか、行またはアドレスのすべての新しい呼び出しの既定の初期設定として機能します。 このパラメーターでは、 LINECALLSELECT_定数のいずれかを使用します。

dwTerminalModes

指定されたターミナルにルーティングされる低レベルのイベントのクラス。 このパラメーターには 、LINETERMMODE_定数 のいずれかを使用します。

dwTerminalID

指定されたイベントがルーティングされるターミナル デバイスのデバイス識別子。 ターミナル識別子は、0 から dwNumTerminals から 1 を引いた範囲の小さな整数です。 ここで、dwNumTerminals とターミナル モードは、各ターミナルが処理できる LINEDEVCAPS のサービス プロバイダーによって示されます。

メモ これらのターミナル識別子は、他のデバイス識別子とは関係がなく、デバイス機能を通じてサービス プロバイダーによって定義されます。 TAPI は、この関数が呼び出されたときにこのパラメーターを検証しません。
 

bEnable

TRUE の場合、dwTerminalID が有効であり、指定されたイベント クラスがそのターミナルとの間でルーティングされます。 FALSE の場合、これらのイベントは dwTerminalID の間でルーティングされません。 TAPI は、この関数が呼び出されたときにこのパラメーターを検証しません。

戻り値

dwRequestID を返します。エラーが発生した場合はエラー番号を返します。 関数が成功した場合は対応するASYNC_COMPLETIONの実際のパラメーター lResult は 0、エラーが発生した場合はエラー番号です。 可能な戻り値は次のとおりです。

LINEERR_INVALLINEHANDLE、LINEERR_INVALTERMINALID、LINEERR_INVALADDRESSID、LINEERR_RESOURCEUNAVAIL、LINEERR_INVALCALLHANDLE、LINEERR_NOMEM、LINEERR_INVALCALLSELECT、LINEERR_OPERATIONUNAVAIL、LINEERR_INVALTERMINALMODE、LINEERR_OPERATIONFAILED。

注釈

リソースのオーバーコミットが原因で操作を完了できない場合、またはハードウェアの制限またはサービス プロバイダー/デバイス ドライバーの制限により、ターミナルが多すぎる場合、サービス プロバイダーはLINEERR_RESOURCEUNAVAILを返します。

TAPI は、この操作を使用して、低レベルの回線イベントの特定のクラスを指定されたターミナル デバイスにルーティングしたり、これらのイベントのルーティングを完全に抑制したりできます。 たとえば、音声を別のオーディオ I/O デバイス (ヘッドセット) にルーティングしたり、ランプやディスプレイ イベントをローカルの電話デバイスにルーティングしたり、ボタン イベントや呼び出し音イベントを完全に抑制したりできます。

通話の進行状況トーンやメッセージは、メディアと同じ場所にルーティングされます。 たとえば、オーディオ信号が電話に向かう場合、ビジー (アナログ) または Q.931 メッセージがビジー (デジタル) であることを示します。

サービス プロバイダーは、 dwSelectdwTerminalModes の組み合わせが有効かどうかを判断する必要があります。

この操作は、特定の回線デバイスで呼び出しがアクティブな場合でも、いつでも呼び出すことができます。 たとえば、ユーザーはローカル電話セットを使用して別のオーディオ I/O デバイスに切り替えることができます。

この関数を複数回呼び出して、同じイベントを複数のターミナルに同時にルーティングできます。 イベントを別のターミナルに再ルーティングするには、TAPI では、アプリケーションで最初に既存のターミナルへのルーティングを無効にし、次にイベントを新しいターミナルにルーティングすることをお勧めします。 ただし、サービス プロバイダーは、任意の順序でアプリケーションの要求に対応するために最善の努力をする必要があります。

ターミナル識別子の割り当てはサービス プロバイダーによって行われ、 LINEDEVCAPS はサービス プロバイダーが使用できるターミナル識別子を示します。 この種のイベント ルーティングをサポートしていないサービス プロバイダーは、ターミナル デバイスがないことを示します (LINEDEVCAPSdwNumTerminals は 0 に設定されています)。

行またはアドレスの LineSetTerminal は、その行またはアドレスの既存のすべての呼び出しに影響しますが、他のアドレスの呼び出しには影響しません。 また、その行またはアドレスでの今後の呼び出しの既定値も設定します。 一度に複数の接続された呼び出しがアクティブになっている回線またはアドレスは、呼び出しごとに異なるルーティングを有効にすることができます。

これらのイベントがそのターミナルとの間で現在ルーティングされていない場合に、ターミナルへの低レベルイベントのルーティングを無効にすることは、関数が成功した後、指定されたイベントがそのターミナルとの間でルーティングされない限り、エラーを生成する必要はありません。

要件

要件
対象プラットフォーム Windows
ヘッダー tspi.h

こちらもご覧ください

ASYNC_COMPLETION

LINECALLSELECT_定数

LINETERMMODE_定数