lineForwardA 関数 (tapi.h)

lineForward 関数は、指定した転送命令に従って、指定した行の指定したアドレス宛ての呼び出しを転送します。 送信元アドレス (dwAddressID) が転送されると、そのアドレスに対して指定された着信呼び出しは、スイッチによって他の番号に偏向されます。 この関数は、転送機能と応答不可機能の組み合わせを提供します。 この関数は、現在有効になっている転送を取り消すこともできます。

構文

LONG lineForwardA(
  HLINE                   hLine,
  DWORD                   bAllAddresses,
  DWORD                   dwAddressID,
  LPLINEFORWARDLIST const lpForwardList,
  DWORD                   dwNumRingsNoAnswer,
  LPHCALL                 lphConsultCall,
  LPLINECALLPARAMS const  lpCallParams
);

パラメーター

hLine

ライン デバイスへのハンドル。

bAllAddresses

行のすべての発信元アドレスを転送するか、指定されたアドレスだけを転送するかを指定します。 TRUE場合、行のすべてのアドレスが転送され、dwAddressID は無視されます。FALSE場合、dwAddressID 指定されたアドレスのみが転送されます。

dwAddressID

着信呼び出しを転送する指定した行のアドレス。 このパラメーターは、bAllAddresses が TRUE場合は無視されます。

アドレス識別子は、アドレスに永続的に関連付けられます。識別子はオペレーティング システムのアップグレード間で一定のままです。

lpForwardList

LINEFORWARDLIST型の特定の転送命令 記述する可変サイズのデータ構造へのポインター。

dwNumRingsNoAnswer

通話が "応答なし" と見なされる前のリングの数。dwNumRingsNoAnswer 範囲外の場合、実際の値は許容範囲内で最も近い値に設定されます。

lphConsultCall

HCALL の場所へのポインター。 一部のテレフォニー環境では、転送先のパーティに問い合わせて使用されるコンサルテーション呼び出しへのハンドルがこの場所に読み込まれ、アプリケーションがこの呼び出しの最初の唯一の所有者になります。 このポインターは、着信転送にコンサルテーション呼び出しが必要ない環境でも有効である必要があります。 コンサルテーション呼び出しが作成されない場合、このハンドルは NULL を に設定されます。

lpCallParams

LINECALLPARAMS型の構造体へのポインター。 このポインターは、lineForward が転送先への呼び出しを確立する必要がない限り無視されます (lphConsultCall 返されます。この場合、lpCallParams は省略可能です)。 NULL場合は、既定の呼び出しパラメーターが使用されます。 それ以外の場合、指定された呼び出しパラメーターは hConsultCall確立するために使用されます。

戻り値

関数が非同期的に完了した場合は正の要求識別子を返し、エラーが発生した場合は負のエラー番号を返します。 対応する LINE_REPLY メッセージの dwParam2 パラメーターは、関数が成功した場合は 0、エラーが発生した場合は負のエラー番号です。 可能な戻り値は次のとおりです。

LINEERR_INVALLINEHANDLE、LINEERR_NOMEM、LINEERR_INVALADDRESSID、LINEERR_OPERATIONUNAVAIL、LINEERR_INVALADDRESS、LINEERR_OPERATIONFAILED、LINEERR_INVALCOUNTRYCODE、LINEERR_RESOURCEUNAVAIL、LINEERR_INVALPOINTER、LINEERR_STRUCTURETOOSMALL、LINEERR_INVALPARAM、LINEERR_UNINITIALIZED。

備考

転送が成功した場合は、要求がサービス プロバイダーによって受け入れられただけで、転送はスイッチで設定されていないことを示します。 LINE_ADDRESSSTATE (転送) メッセージは、スイッチで設定された転送の確認を提供します。

アドレスの転送は、この関数が再度呼び出されるまで有効です。 最新の転送リストが古い転送リストに置き換えられます。 転送は、lpForwardListとして NULL ポインター 指定することで取り消すことができます。 転送リスト内のエントリに NULL 宛先アドレスが指定されている場合、操作は応答不可として機能します。

アドレスの転送状態も外部から影響を受ける可能性があります。たとえば、スイッチでの管理アクションや、別のステーションからのユーザーによる操作などです。 サービス プロバイダーがこの状態の変化を認識できない可能性があり、スイッチに認識されている転送状態との同期を維持できない場合があります。

サービス プロバイダーはアドレスの転送状態を "確実に" 知らない可能性があるため (つまり、不明な方法で転送または転送されていない可能性があります)、lineForward は、新しい転送手順の設定に失敗しない限り成功します。 つまり、転送が有効でないことを一度にすべての転送を取り消す要求は成功します。 これは、"不転送" がないためです。前の転送手順のセットのみを変更できます。

この操作の成功または失敗は、前の転送命令のセットに依存せず、異なる転送命令を設定する場合も同じことが当てはまります。 プロバイダーは、新しい転送手順を設定する前に、"すべてを転送しない" 必要があります。 アナログ テレフォニー環境では時間がかかる可能性があるため、プロバイダーは現在の転送と新しい転送を比較し、最終的な状態に到達するための命令のみをスイッチに発行する必要があります (変更されていない転送は影響を受けません)。

LINEFORWARDLIST dwNumEntries が 0 に設定されている場合 lineForward を呼び出すと、NULLlpForwardList パラメーターを指定する場合と同じ効果があります。 現在有効になっているすべての転送が取り消されます。

手記

tapi.h ヘッダーは、UNICODE プリプロセッサ定数の定義に基づいて、この関数の ANSI または Unicode バージョンを自動的に選択するエイリアスとして lineForward を定義します。 エンコードに依存しないエイリアスをエンコードに依存しないコードと組み合わせて使用すると、コンパイルエラーやランタイム エラーが発生する不一致が発生する可能性があります。 詳細については、「関数プロトタイプの 規則」を参照してください。

必要条件

要件 価値
ターゲット プラットフォーム の ウィンドウズ
ヘッダー tapi.h
ライブラリ Tapi32.lib
DLL Tapi32.dll

関連項目

転送の概要

LINECALLPARAMS

LINEFORWARDLIST

LINE_ADDRESSSTATE

LINE_REPLY

補助回線サービス関数

TAPI 2.2 リファレンスの概要