TSPI_lineSetupTransfer 関数 (tspi.h)

TSPI_lineSetupTransfer関数は、hdCall で指定された呼び出しの転送を開始します。 これは、転送の宛先になる可能性のあるパーティーをダイヤルすることができるコンサルテーションコール lphdConsultCallを確立します。

構文

LONG TSPIAPI TSPI_lineSetupTransfer(
  DRV_REQUESTID          dwRequestID,
  HDRVCALL               hdCall,
  HTAPICALL              htConsultCall,
  LPHDRVCALL             lphdConsultCall,
  LPLINECALLPARAMS const lpCallParams
);

パラメーター

dwRequestID

非同期要求の識別子。

hdCall

転送する呼び出しのハンドル。 hdCall の呼び出し状態は接続できます。

htConsultCall

TAPI は、新しい一時的な相談呼び出しを処理します。 サービス プロバイダーはこれを保存し、新しいコンサルテーション コールのイベントを報告する LINEEVENT プロシージャへの後続のすべての呼び出しで使用する必要があります。

lphdConsultCall

新しいコンサルテーション呼び出しのサービス プロバイダーの識別子を表す HDRVCALL へのポインター。 サービス プロバイダーは、この手順が戻る前に、新しい相談呼び出しのハンドルをこの場所に入力する必要があります。 関数でエラーが発生した場合、このハンドルは TAPI によって無視されます。 hdConsultCall の呼び出し状態は適用されません。

転送の呼び出しを設定すると、別の通話 (相談呼び出し) が自動的に割り当てられ、アプリケーション (TAPI 経由) で通話の転送先のパーティのアドレス ( TSPI_lineDialを使用) にダイヤルできるようになります。 発信元の当事者は、譲渡を完了する前に、この相談呼び出しで会話を続けることができます。

この転送手順は、一部の回線デバイスでは有効でない場合があります。 TAPI では、このプロシージャを呼び出す代わりに、転送先を識別するために、( TSPI_lineUnholdを使用して) 既存の保留呼び出しを保留にすることが必要になる場合があります。 クロスアドレス通話転送をサポートするスイッチでは、転送する通話とは異なるアドレスに相談呼び出しを存在させることができます。 また、TSPI_lineMakeCall を使用した全く新しい通話として、転送先への相談呼び出しを設定することが必要な場合もあります。

LINEADDRESSCAPS データ構造の transferHeld フラグと transferMake フラグは、サービス プロバイダーが使用するモデルを報告します。

lpCallParams

コンサルテーション呼び出しを確立するときに使用する呼び出しパラメーターを含む LINECALLPARAMS 構造体へのポインター。 特別な呼び出しセットアップ パラメーターが必要ない場合は、このパラメーターを NULL に設定できます (サービス プロバイダーでは既定値が使用されます)。

戻り値

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

LINEERR_INVALCALLHANDLE、LINEERR_INVALBEARERMODE、LINEERR_INVALCALLSTATE、LINEERR_INVALRATE、LINEERR_CALLUNAVAIL、LINEERR_INVALCALLPARAMS、LINEERR_NOMEM、LINEERR_INVALLINESTATE、LINEERR_OPERATIONUNAVAIL、LINEERR_INVALMEDIAMODE、LINEERR_OPERATIONFAILED、LINEERR_INUSE、LINEERR_RESOURCEUNAVAIL、LINEERR_NOMEM、LINEERR_BEARERMODEUNAVAIL、LINEERR_RATEUNAVAIL、LINEERR_INVALADDRESSMODE、LINEERR_USERUSERINFOTOOBIG。

注釈

転送する呼び出しが有効な状態でない場合、サービス プロバイダーはLINEERR_INVALCALLSTATEを返します。

この操作により、 hdCall で指定された呼び出しの転送が設定されます。 転送のセットアップ フェーズでは、転送先のアドレス (転送先のパーティ) をスイッチに送信するための相談呼び出しが確立され、転送される通話は保留されます。 この新しい呼び出しは 、相談呼び出 し (hdConsultCall) と呼ばれ、元の呼び出しとは無関係に操作 (ドロップなど) できます。

コンサルテーション コールが ダイヤルトーン コール状態に達したら、TAPI は宛先アドレスをダイヤルして進行状況を追跡するか、または既存のコールを保留にすることによってコールを転送し続けることができます。 選択した宛先への元の呼び出しの転送は、 TSPI_lineCompleteTransferを使用して完了します。

コンサルテーション呼び出しが存在する間、通常、元の呼び出しは onholdPendingTransfer 状態に遷移します。

TSPI_lineUnhold関数は、呼び出し状態が onHoldPendingTransfer である呼び出しを回復できます。 これが行われると、通常、コンサルテーション呼び出しは アイドル 状態になります。

transferHeld または transferMake 転送モデルに従うテレフォニー環境では、この手順はLINEERR_OPERATIONFAILEDを返し、コンサルテーション呼び出しハンドルを割り当てません。

TSPI_lineDropを呼び出すことで、相談の呼び 出しを 取り消すことができます。 コンサルテーション呼び出しを削除すると、通常、元の呼び出しは 接続 状態に戻ります。

この関数は、呼び出しの有効期間を開始するために TSPI モデルに従うという点で、対応する TAPI 関数とは異なります。 TAPI とサービス プロバイダーは、呼び出しを表す不透明なハンドルを相互に交換します。 さらに、サービス プロバイダーは、このプロシージャから戻る前に、新しい呼び出しのコールバックを実行できます。 いずれの場合も、サービス プロバイダーは、一致する ASYNC_COMPLETION メッセージが成功を報告するまで、返されたハンドルを "まだ有効ではありません" として扱う必要があります。 つまり、新しい呼び出しに 対して LINEEVENT メッセージを発行したり、その行のメッセージまたは状態データ構造の呼び出し数に含めたりすることはできません。

要件

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

こちらもご覧ください

LINEADDRESSCAPS

LINECALLPARAMS

LINE_CALLSTATE

TSPI_lineBlindTransfer

TSPI_lineCompleteTransfer

TSPI_lineDial

TSPI_lineDrop

TSPI_lineSwapHold

TSPI_lineUnhold