次の方法で共有


イベント ルーティング

lineSetTerminal 関数を使用すると、アプリケーションは、指定された低レベルイベント (スイッチとステーションの間で交換される) のデバイスへのルーティングを制御または抑制できます。 lineSetTerminal では、アプリケーションは、これらのイベント (行、アドレス、呼び出しメディア ストリーム イベントなど) のルーティング先のターミナル デバイスを指定します。

イベントのさまざまなクラスのルーティングを個別に制御できるため、イベント クラスごとに個別のターミナルを指定できます。 イベント クラスには、ランプ、ボタン、ディスプレイ、呼び出し音、フックスイッチ、メディア ストリームが含まれます。

たとえば、サービス プロバイダーとハードウェアがそうできる場合、通話のメディア ストリーム (音声など) を任意の変換器デバイスに送信できます。 一般に、 変換器 とは TAPI で フックスイッチ デバイスと呼ばれるもの、マイクとスピーカーを持つものと同じ意味です。 スイッチから電話へのリング イベントは、コンピューターの画面で視覚的なアラートにマップすることも、電話デバイスにルーティングすることもできます。 ランプ イベントと表示イベントは無視したり、電話デバイスにルーティングしたりできます (通常の電話セットとして動作するように見えます)。 最後に、電話デバイスでボタンを押すと、回線に渡される場合とそうでない場合があります。 いずれの場合も、回線からの低レベル信号のこのルーティングは TAPI の回線部分の動作に影響を与えません。これは、常に低レベルのイベントを機能に相当するものにマップします。 回線デバイスで使用可能なターミナル (およびその機能) を確認するには、 lineGetDevCaps を使用して回線デバイスの機能を参照してください。

最初に、アプリケーションが ( lineSetTerminal を使用して) すべてのイベントのルーティングを抑制し、ユーザーがヘッドセットを現在の I/O デバイスとして選択したとします。 着信呼び出しは、LINE_CALLSTATE メッセージと、呼び出しを示すLINE_LINEDEVSTATE メッセージを送信します。 すべてのイベントのルーティングが抑制されるため、リング イベントは電話にルーティングされないため、呼び出しは抑制されます。 代わりに、アプリケーションはポップアップ ダイアログ ボックスとヘッドセットのシステム ビープ音をユーザーに通知します。

ユーザーが通話に応答することにしました。 ユーザーの現在の I/O デバイスはヘッドセットであるため、テレフォニー アプリケーションは着信呼び出しで lineSetTerminal を呼び出して、通話のメディアをヘッドセットにルーティングし、通話に応答します。 また、アプリケーションは lineSetTerminal を呼び出してランプをルーティングし、情報イベントを電話セットに表示して、通常どおりに動作するようにすることもできます。

2 つ目の例として、着信がユーザーのコンピューターで警告しているとします。 マウスで応答オプションを選択する代わりに、ユーザーは電話の受話器を受け取って通話に応答することを決定します。 電話の offhook 状態は、アプリケーションにメッセージを送信します。 アプリケーションは、ユーザーが会話を行うために携帯電話の受話器を選択する要求としてこの状態を解釈することができます。 その後、アプリケーションは lineSetTerminal を呼び出して、通話の音声データを電話セットにルーティングします。