lineSetupConference 関数 (tapi.h)
lineSetupConference 関数は、サードパーティを追加するための電話会議を設定します。
構文
LONG lineSetupConference(
HCALL hCall,
HLINE hLine,
LPHCALL lphConfCall,
LPHCALL lphConsultCall,
DWORD dwNumParties,
LPLINECALLPARAMS const lpCallParams
);
パラメーター
hCall
電話会議の最初のパーティを識別する初期通話を処理します。 一部の環境 (デバイス機能で説明) では、電話会議を開始するために通話が存在する必要があり、アプリケーションはこの呼び出しの所有者である必要があります。 他のテレフォニー環境では、通話が最初に存在せず、 hCallを NULL のままにし、電話会議を開始する回線を識別するために hLine を指定する必要があります。 hCall の呼び出し状態は接続されている必要があります。
hLine
行へのハンドル。 このハンドルは、 hCall が NULL の場合に電話会議を発信する回線デバイスを識別するために使用されます。 hCall が NULL 以外の場合、hLine パラメーターは無視されます。
lphConfCall
HCALL ハンドルへのポインター。 この場所には、新しく作成された電話会議を識別するハンドルが読み込まれます。 アプリケーションは、この呼び出しの最初の唯一の所有者です。 hConfCall の呼び出し状態は適用されません。
lphConsultCall
HCALL ハンドルへのポインター。 新しいパーティの追加の呼び出しを設定すると、新しい一時通話 (相談呼び出し) が自動的に割り当てられます。 最初は、アプリケーションがこの呼び出しの唯一の所有者です。
dwNumParties
電話会議の予想される関係者数。 この番号は、サービス プロバイダーに渡されます。 サービス プロバイダーは、この番号で自由に行うことができます。無視し、スイッチ内に適切なサイズの会議ブリッジを割り当てるヒントとして使用します。
lpCallParams
コンサルテーション呼び出しを確立するときに使用する呼び出しパラメーターを含む LINECALLPARAMS 構造体へのポインター。 特別な呼び出しセットアップ パラメーターが必要ない場合は、このパラメーターを NULL に設定できます。
戻り値
関数が非同期的に完了した場合は正の要求識別子を返し、エラーが発生した場合は負のエラー番号を返します。 関数が成功した場合は、対応するLINE_REPLY メッセージの dwParam2 パラメーターは 0、エラーが発生した場合は負のエラー番号です。 可能な戻り値は次のとおりです。
LINEERR_BEARERMODEUNAVAIL、LINEERR_UNINITIALIZED、LINEERR_CALLUNAVAIL、LINEERR_INVALMEDIAMODE、LINEERR_CONFERENCEFULL、LINEERR_INVALPOINTER、LINEERR_INUSE、LINEERR_INVALRATE、LINEERR_INVALADDRESSMODE、LINEERR_NOMEM LINEERR_INVALBEARERMODE、LINEERR_NOTOWNER、LINEERR_INVALCALLHANDLE、LINEERR_OPERATIONUNAVAIL、LINEERR_INVALCALLSTATE、LINEERR_OPERATIONFAILED、LINEERR_INVALCALLPARAMS、LINEERR_RATEUNAVAIL、LINEERR_INVALLINEHANDLE、LINEERR_RESOURCEUNAVAIL、LINEERR_INVALLINESTATE、LINEERR_STRUCTURETOOSMALL、LINEERR_USERUSERINFOTOOBIG。
解説
LINEERR_INVALLINESTATEが返された場合、行は現在、この操作を実行できる状態ではありません。 現在有効な操作の一覧は、LINEDEVSTATUS 構造体の dwLineFeatures メンバー (LINEFEATURE 型) にあります。 (lineGetLineDevStatus を呼び出すと、LINEDEVSTATUS の情報が更新されます)。LINEERR_INVALMEDIAMODEが返された場合は、LINEDEVCAPS 構造体の dwMediaModes メンバー内の行でサポートされているメディアの種類をチェックします。
lineSetupConference 関数は、通常の 2 者通話が事前に存在する必要があるかどうかに応じて、新しい電話会議を確立する 2 つの方法を提供します。 既存の 2 者通話から電話会議を設定する場合、 hCall パラメーターは、 lineSetupConference 要求によって最初に電話会議に追加される有効な呼び出しハンドルです。 hLine は無視されます。 電話会議のセットアップが既存の通話で開始されないスイッチでは、 hCall を NULL にし、電話会議を開始する回線デバイスを識別するために hLine を指定する必要があります。 いずれの場合も、通話に追加されるパーティに接続するために、コンサルテーションコールが割り当てられます。 その後、アプリケーションは lineDial を使用して相手のアドレスをダイヤルできます。
通常、電話会議は onHoldPendingConference 状態に移行し、コンサルテーション コールを ダイヤルトーン 状態に切り替え、最初の通話 (存在する場合) は 会議 状態に移行します。
電話会議は、3 方向の会議に解決される lineCompleteTransfer によって設定することもできます。 アプリケーションは、 lineSwapHold を使用して、コンサルテーション通話と電話会議を切り替えることができます。
相談呼び出しは、 lineDrop を呼び出すことによって取り消すことができます。 コンサルテーション通話を削除すると、通常、既存の電話会議は 接続 状態に戻ります。 アプリケーションは、LINE_CALLSTATEメッセージを監視して、呼び出しがどうなるかを正確に判断する必要があります。 たとえば、電話会議が通常の 2 者通話に戻った場合、電話会議はアイドル状態になり、元の参加者の通話は 接続に戻すことができます。
アプリケーションが lineUnhold 関数の呼び出しで元の呼び出し (hCall) のハンドルを指定した場合、通常、電話会議と相談呼び出しの両方がアイドル状態になります。
要件
対象プラットフォーム | Windows |
ヘッダー | tapi.h |
Library | Tapi32.lib |
[DLL] | Tapi32.dll |