次の方法で共有


TSPI_lineSetMediaControl関数 (tspi.h)

TSPI_lineSetMediaControl関数は、指定した行、アドレス、または呼び出しに関連付けられているメディア ストリームに対する制御アクションを有効または無効にします。 メディア 制御アクションは、指定した数字、メディアの種類、カスタム トーン、および呼び出し状態の検出によってトリガーできます。 指定された新しいメディア コントロールは、この要求の前にこの行、アドレス、または呼び出しに対して有効であったすべてのメディア コントロールを置き換えます。

構文

LONG TSPIAPI TSPI_lineSetMediaControl(
  HDRVLINE                          hdLine,
  DWORD                             dwAddressID,
  HDRVCALL                          hdCall,
  DWORD                             dwSelect,
  LPLINEMEDIACONTROLDIGIT const     lpDigitList,
  DWORD                             dwDigitNumEntries,
  LPLINEMEDIACONTROLMEDIA const     lpMediaList,
  DWORD                             dwMediaNumEntries,
  LPLINEMEDIACONTROLTONE const      lpToneList,
  DWORD                             dwToneNumEntries,
  LPLINEMEDIACONTROLCALLSTATE const lpCallStateList,
  DWORD                             dwCallStateNumEntries
);

パラメーター

hdLine

行へのハンドル。

dwAddressID

指定されたオープンライン デバイス上のアドレス。 アドレス識別子は、アドレスに完全に関連付けられます。識別子は、オペレーティング システムのアップグレード間で一定のままです。 TAPI は、この関数が呼び出されたときにこのパラメーターを検証しません。

hdCall

呼び出しのハンドル。 hdCall の呼び出し状態は任意の状態にすることができます。

dwSelect

メディア コントロールが要求されるのが 1 つの呼び出しに関連付けられているか、アドレス上のすべての呼び出しの既定値か、回線上のすべての呼び出しの既定値かを指定します。 このパラメーターでは、次の LINECALLSELECT_定数を使用します

lpDigitList

LINEMEDIACONTROLDIGIT 型のメディア制御アクションをトリガーする桁数を含む配列へのポインター。 数字リストにリストされている数字が検出されるたびに、指定されたメディア制御アクションが呼び出しのメディア・ストリームで実行されます。

パルス モードの有効な数字は、'0' から '9' です。 DTMF モードの有効な数字は、'0' から '9'、'A'、'B'、'C'、'D'、'*'、'#' です。

dwDigitNumEntries

lpDigitList 内のエントリの数。 TAPI は、この関数が呼び出されたときにこのパラメーターを検証しません。

lpMediaList

LINEMEDIACONTROLMEDIA 型のエントリを含む配列へのポインター。 配列には dwMediaNumEntries エントリがあります。 各エントリには、監視対象のメディアタイプ、メディアタイプ固有の情報(期間など)、およびメディア制御フィールドが含まれます。 リスト内のメディアの種類が検出されると、対応するメディア制御アクションが呼び出しのメディア ストリームに対して実行されます。

dwMediaNumEntries

lpMediaList 内のエントリの数。 TAPI は、この関数が呼び出されたときにこのパラメーターを検証しません。

lpToneList

LINEMEDIACONTROLTONE 型のエントリを含む配列へのポインター。 配列には dwToneNumEntries エントリがあります。 各エントリには、監視するトーン、トーンの継続時間、メディア コントロール フィールドの説明が含まれています。 リスト内のトーンが検出されると、対応するメディア制御アクションが呼び出しのメディア ストリームに対して実行されます。

dwToneNumEntries

lpToneList 内のエントリの数。 TAPI は、この関数が呼び出されたときにこのパラメーターを検証しません。

lpCallStateList

LINEMEDIACONTROLCALLSTATE 型のエントリを持つ配列へのポインター。 配列には dwCallStateNumEntries エントリがあります。 各エントリには、通話状態とメディア コントロール アクションが含まれます。

dwCallStateNumEntries

lpCallStateList 内のエントリの数。 TAPI は、この関数が呼び出されたときにこのパラメーターを検証しません。

戻り値

関数が成功した場合は 0 を返し、エラーが発生した場合はエラー番号を返します。 可能な戻り値は次のとおりです。

LINEERR_INVALADDRESSID、LINEERR_INVALPOINTER、LINEERR_INVALCALLHANDLE、LINEERR_INVALTONELIST、LINEERR_INVALCALLSELECT、LINEERR_NOMEM、LINEERR_INVALCALLSTATELIST、LINEERR_OPERATIONUNAVAIL、LINEERR_INVALDIGITLIST、LINEERR_OPERATIONFAILED、LINEERR_INVALLINEHANDLE、LINEERR_RESOURCEUNAVAIL、LINEERR_INVALMEDIALIST。

注釈

この関数は、メディア コントロールが正しく開始されると、メディア コントロールが有効になったときではなく、0 (成功) を返します。 実行中のメディア コントロールが変更されるか、この関数が異なるパラメーターまたは NULLで再度呼び出されると取り消されます。

呼び出しで一度に未処理にできるのは、1 つのメディア制御要求のみです。 要求は、未処理の可能性があるすべての 要求を置き換えます。

このようなリソースを競合するサービス プロバイダーやその他のアクティビティによっては、同時に検出できる量は時間の経過と同時に異なる場合があります。 サービス プロバイダー リソースがオーバーコミットされた場合は、LINEERR_RESOURCEUNAVAILを返します。

メディア制御がサービス プロバイダーによってサポートされているかどうかは、 LINEDEVCAPS に示されているデバイス機能です。

TSPI_lineSetMediaControlが呼び出されるたびに、新しい要求は現在有効になっているメディア コントロールをオーバーライドします。 1 つ以上のパラメーター lpDigitListlpMediaListlpToneList、および lpCallStateListNULL の場合、対応する数字、メディアの種類、トーン、または呼び出し状態によってトリガーされるメディア コントロールは無効になります。 残りの設定を有効のままにしたままメディア コントロール パラメーターの一部だけを変更するには、アプリケーションでを呼び出す必要があります TSPI_lineSetMediaControl 、有効にしておく必要がある部分の前のパラメーターと、変更する部分の新しいパラメーターを指定します。

要件

要件
対象プラットフォーム Windows
ヘッダー tspi.h

こちらもご覧ください

LINEDEVCAPS

LINEDIGITMODE_定数

LINEMEDIACONTROLCALLSTATE

LINEMEDIACONTROLDIGIT

LINEMEDIACONTROLMEDIA

LINEMEDIACONTROLTONE

LINEMEDIAMODE_定数

TSPI_lineGetDevCaps