状態
セッションまたは呼び出しの状態は、セッションの現在の状態 ("オファリング" や "接続済み" など) を示します。ほとんどの TAPI アプリケーションが適切に機能するためには、状態情報の適切な処理が不可欠です。 たとえば、応答操作は提供されたセッションでのみ実行できますが、セッションがその状態の場合、転送は失敗します。
イベントの結果としてセッションの状態が変化します。 イベントは、要請または未承諾にすることができます。 要請イベント は、TAPI セッション操作を呼び出す場合など、セッションを制御するアプリケーションによって発生します。 一方的なイベント は、スイッチ、電話ネットワーク、ローカル電話のボタンを押すユーザー、またはリモート パーティのアクションによって発生します。
サービス プロバイダーは、セッション状態の変更を検出するたびに TAPI に変更を報告し、TAPI はすべての所有者および監視アプリケーションにイベント通知を発行します。 アプリケーションは、これらの通知に適切に対応する必要があります。 アプリケーションに報告されるイベントの制御については、「 TAPI 初期化 」の「イベント通知」を参照してください。
アプリケーションは常に状態イベント通知を処理する必要があります。 ある物理構成に対して有効な状態遷移は、別の物理構成に対して無効である可能性があります。 たとえば、コンピューターと別の電話セットの両方で物理的に終了する回線を考えて、コンピューターと電話セットの間にパーティ回線の構成を作成します。 コンピューター上で実行されているアプリケーションは、電話セットのアクティビティについて知らない可能性があります。 つまり、サービス プロバイダーが認識せずに回線が使用されている可能性があります。 発信呼び出しを試みるアプリケーションは TAPI からの呼び出し外観の割り当てに成功しますが、その結果、回線上でアクティブな呼び出しが共有されます。 最初にダイヤル トーンを確認せずに DTMF ダイヤル文字列を盲目的に送信しても、意図した (または丁寧な) 動作にならない可能性があります。
アプリケーションでは、ある状態から別の状態への厳密な進行を想定しないでください。 状態イベントが到着し、非同期的に転送され、通知が予測可能な順序で受信されない場合があります。 したがって、呼び出し状態通知は、2 つの状態間の遷移を報告するのではなく、呼び出しの新しい状態をアプリケーションに通知すると見なす必要があります。
すべてのテレフォニー サービス プロバイダーがこの情報を提供する必要があります。
**TAPI 2.x: **lineGetCallStatus, lineGetCallInfo, LINE_CALLSTATE message, LINECALLSTATE_ 定数
**TAPI 3.x: **ITCallInfo::get_CallInfoLong (CALLINFO_LONGのメンバー CIL_CALLID),ITCallStateEvent 通知,列挙子CALL_STATE