TSPI_lineSetupConference関数 (tspi.h)
TSPI_lineSetupConference関数は、サード パーティを追加するための電話会議を設定します。
構文
LONG TSPIAPI TSPI_lineSetupConference(
DRV_REQUESTID dwRequestID,
HDRVCALL hdCall,
HDRVLINE hdLine,
HTAPICALL htConfCall,
LPHDRVCALL lphdConfCall,
HTAPICALL htConsultCall,
LPHDRVCALL lphdConsultCall,
DWORD dwNumParties,
LPLINECALLPARAMS const lpCallParams
);
パラメーター
dwRequestID
非同期要求の識別子。
hdCall
電話会議の最初のパーティを識別する最初の呼び出しへのハンドル。 一部の環境では、電話会議を開始するために通話が存在する必要があります。 他のテレフォニー環境では、最初は呼び出しが存在せず、 hdCall は NULL のままです。 hdCall の呼び出し状態は接続できます。
hdLine
hdCall が NULL の場合に電話会議を発信する回線デバイスへのハンドル。 hdCall が NULL 以外の場合、hdLine パラメーターは無視されます。 サービス プロバイダーは、LINEADDRESSCAPS データ構造の setupConfNull フラグを使用して、それがサポートするモデルを報告します。
htConfCall
新しい電話会議への TAPI ハンドル。 サービス プロバイダーはこれを保存し、新しい呼び出しのイベントを報告する LINEEVENT プロシージャの後続のすべての呼び出しで使用する必要があります。
lphdConfCall
新しく作成された電話会議のサービス プロバイダーの識別子を表す HDRVCALL へのポインター。 サービス プロバイダーは、このプロシージャが返される前に、この場所に新しい呼び出しのハンドルを入力する必要があります。 関数でエラーが発生した場合、このハンドルは TAPI によって無視されます。 hdConfCall の呼び出し状態は適用されません。
htConsultCall
TAPI は、相談呼び出しを処理します。 新しいパーティの追加の呼び出しを設定すると、新しい一時通話 (コンサルテーション コール) が自動的に割り当てられます。 サービス プロバイダーは htConsultCall を保存し、新しいコンサルテーション呼び出しのイベントを報告する LINEEVENT プロシージャへの後続のすべての呼び出しで使用する必要があります。
lphdConsultCall
呼び出しのサービス プロバイダーの識別子を表す HDRVCALL へのポインター。 新しいパーティの追加の呼び出しを設定すると、新しい一時通話 (コンサルテーション コール) が自動的に割り当てられます。 サービス プロバイダーは、このプロシージャが返される前に、新しいコンサルテーション呼び出しのハンドルをこの場所に入力する必要があります。 関数でエラーが発生した場合、このハンドルは TAPI によって無視されます。 hdConsultCall の呼び出し状態は適用されません。
dwNumParties
電話会議の予想される関係者数。 サービス プロバイダーは、この番号を自由に使用できます。 たとえば、サービス プロバイダーは、それを無視したり、スイッチ内に適切なサイズの会議ブリッジを割り当てるヒントとして使用したりできます。 TAPI は、この関数が呼び出されたときにこのパラメーターを検証しません。
lpCallParams
コンサルテーション呼び出しを確立するときに使用する呼び出しパラメーターを含む LINECALLPARAMS 構造体へのポインター。 特別な呼び出しセットアップ パラメーターが必要なく、サービス プロバイダーが既定のパラメーターを使用する場合、このパラメーターは NULL に設定されます。
戻り値
dwRequestID を返します。エラーが発生した場合はエラー番号を返します。 対応するASYNC_COMPLETIONの lResult 実際のパラメーターは、関数が成功した場合は 0、エラーが発生した場合はエラー番号です。 可能な戻り値は次のとおりです。
LINEERR_INVALCALLHANDLE、LINEERR_INVALADDRESSMODE、LINEERR_INVALLINEHANDLE、LINEERR_INVALBEARERMODE、LINEERR_INVALCALLSTATE、LINEERR_INVALCALLPARAMS、LINEERR_CALLUNAVAIL、LINEERR_INVALLINESTATE、LINEERR_CONFERENCEFULL、LINEERR_INVALMEDIAMODE、LINEERR_NOMEM、LINEERR_INVALRATE、LINEERR_OPERATIONUNAVAIL、LINEERR_INUSE、LINEERR_OPERATIONFAILED、LINEERR_RATEUNAVAIL、LINEERR_RESOURCEUNAVAIL、LINEERR_USERUSERINFOTOOBIG、LINEERR_BEARERMODEUNAVAIL。
注釈
電話会議を含む回線の指定された回線ハンドルが無効な場合、サービス プロバイダーはLINEERR_INVALLINEHANDLEを返します。 このエラーは、テレフォニー環境で電話会議を設定するために最初の行が必要だが、代わりに NULL 以外の呼び出しハンドルが指定されたことを示している場合もあります。
テレフォニー環境で会議を設定するために初期呼び出しが必要だが、代わりに NULL 呼び出しハンドルが指定された場合、サービス プロバイダーはLINEERR_INVALCALLHANDLEを返します。
TSPI_lineSetupConference では、通常の 2 者通話が事前に存在する必要があるかどうかに応じて、新しい電話会議を確立する 2 つの方法が提供されます。 既存の 2 者通話からの電話会議を設定する場合、 hdCall パラメーターは有効なコール ハンドルであり、最初は TSPI_lineSetupConference 要求によって電話会議に追加され、 hdLine は無視されます。 電話会議のセットアップが既存の通話で開始されないスイッチでは、 hdCall を NULL にし、 hdLine を指定して電話会議を開始する回線デバイスを識別する必要があります。 いずれの場合も、通話に追加されるパーティに接続するために、コンサルテーションコールが割り当てられます。 TAPI は 、TSPI_lineDial を使用して、相手のアドレスをダイヤルできます。
通常、電話会議は onHoldPendingConference 状態、コンサルテーション 通話 ダイヤルトーン 状態、および最初の通話 (ある場合) に 電話会議 状態に移行します。
電話会議は、3 方向会議に解決される TSPI_lineCompleteTransfer 関数を使用して設定することもできます。
TAPI は、 TSPI_lineSwapHoldを使用して、コンサルテーション通話と電話会議を切り替えることができます。
TSPI_lineUnhold関数は、onHoldPendingConference の呼び出し状態の呼び出しを回復できます。 これが行われると、通常、コンサルテーション呼び出しは アイドル 状態になります。
相談呼び出しは、 そのTSPI_lineDrop を呼び出すことによって取り消すことができます。 コンサルテーション コールを削除すると、通常、既存の電話会議は 接続 状態に戻ります。 TAPI とそのクライアント アプリケーションは、 LINE_CALLSTATE メッセージを監視して、呼び出しに対して何が起こるかを正確に判断する必要があります。 たとえば、電話会議が通常の 2 者通話に戻ると、電話会議は アイドル 状態になり、元の参加者の通話は 接続に戻る可能性があります。
この関数は、呼び出しの有効期間を開始するために TSPI モデルに従うという点で、対応する TAPI 関数とは異なります。 TAPI とサービス プロバイダーは、呼び出しを表す不透明なハンドルを相互に交換します。 さらに、サービス プロバイダーは、このプロシージャから戻る前に、新しい呼び出しのコールバックを実行できます。 いずれの場合も、サービス プロバイダーは、一致する ASYNC_COMPLETION メッセージが成功を報告するまで、返されたハンドルを "まだ有効ではありません" として扱う必要があります。 つまり、新しい呼び出しに LINEEVENT メッセージを発行したり、その行のメッセージまたは状態データ構造の呼び出し数に含めたりすることはできません。
要件
要件 | 値 |
---|---|
対象プラットフォーム | Windows |
ヘッダー | tspi.h |