lineMonitorMedia 函数 (tapi.h)

lineMonitorMedia 函数启用和禁用对指定调用) (模式的媒体类型检测。 检测到媒体类型时,会向应用程序发送一条消息。 有关详细信息,请参阅 ITLegacyCallMediaControl::MonitorMedia

语法

LONG lineMonitorMedia(
  HCALL hCall,
  DWORD dwMediaModes
);

参数

hCall

调用的句柄。 hCall 的调用状态可以是空闲状态以外的任何状态。

dwMediaModes

要监视的媒体类型。 如果此参数为零,它将取消所有媒体类型检测。 此参数使用一个或多个 LINEMEDIAMODE_常量

返回值

如果请求成功,则返回零;如果发生错误,则返回负错误号。 可能的返回值为:

LINEERR_INVALCALLHANDLE、LINEERR_OPERATIONUNAVAIL、LINEERR_INVALCALLSTATE、LINEERR_OPERATIONFAILED、LINEERR_INVALMEDIAMODE、LINEERR_RESOURCEUNAVAIL、LINEERR_NOMEM、LINEERR_UNINITIALIZED。

注解

使用 lineOpen 指定的媒体类型仅涉及启用服务提供商检测这些媒体类型,以便将新的传入调用移交给适当的应用程序。 它们不会影响由于先前调用 lineMonitorMedia 而预期的任何媒体模式通知消息。

如果媒体类型监视已正确启动,则此函数被视为成功,而不是媒体类型监视已终止。 对给定媒体类型的媒体监视将一直有效,直到通过调用 lineMonitorMedia (将 dwMediaModes 参数设置为零)显式禁用,直到调用转换为 空闲,或者应用程序解除分配调用的调用句柄为止。 lineMonitorMedia 函数主要是事件报告机制。 如 LINECALLINFO 中所示,调用的媒体类型 (模式) 不受服务提供商对媒体类型的检测的影响。 只有控制应用程序可以更改调用的媒体类型。

服务提供商执行的默认媒体监视对应于 lineOpen 上指定的所有媒体类型的并集。

尽管可以在任何调用状态中调用此函数,但通常只能在调用处于特定调用状态时检测到调用的媒体类型。 这些状态可以特定于设备。 例如,在 ISDN 中,消息可以在媒体流存在之前指示媒体流的媒体类型。 同样,独特的响铃或有关呼叫的被调用标识符信息可用于标识呼叫的媒体类型。 否则,可能需要 (处于连接 状态的呼叫) 接听呼叫,以允许服务提供商通过筛选媒体流来确定呼叫的媒体类型。 由于筛选调用的媒体流意味着计算开销,因此应用程序应在不需要时禁用媒体监视。 默认情况下,为新传入的呼叫启用媒体监视,因为呼叫的媒体类型会选择应处理呼叫的应用程序。

处理语音媒体类型的传出应用程序可能想要监视静音呼叫 (音调) 来区分呼叫被调用端的人员或内容。 例如,家里的人只需一个简短的“hello”即可接听电话。办公室中的人员可以提供较长的问候语,指示姓名和公司名称。 应答机通常可以有更长的问候语。

由于 lineMonitorMedia 启用的媒体模式检测是作为调用媒体流的只读操作实现的,因此不会中断。

对电话会议媒体的监视仅适用于 hConfCall 参数,不适用于单个参与呼叫。

要求

要求
目标平台 Windows
标头 tapi.h
Library Tapi32.lib
DLL Tapi32.dll

另请参阅

LINECALLINFO

补充行服务函数

TAPI 2.2 参考概述

lineOpen