TSPI_linePrepareAddToConference函数 (tspi.h)

TSPI_linePrepareAddToConference 函数为添加另一方准备现有的电话会议。 它创建了一个新的临时咨询电话。 随后可将新的咨询呼叫添加到电话会议中。

语法

LONG TSPIAPI TSPI_linePrepareAddToConference(
  DRV_REQUESTID          dwRequestID,
  HDRVCALL               hdConfCall,
  HTAPICALL              htConsultCall,
  LPHDRVCALL             lphdConsultCall,
  LPLINECALLPARAMS const lpCallParams
);

参数

dwRequestID

异步请求的标识符。

hdConfCall

电话会议句柄。 hdConfCall 的调用状态可以连接

htConsultCall

新的临时咨询呼叫的 TAPI 句柄。 服务提供商必须保存此内容,并在针对新调用报告事件的 LINEEVENT 过程的所有后续调用中使用它。 hdAddCall 的调用状态不适用。

lphdConsultCall

指向 HDRVCALL 的指针,该指针表示服务提供商的新临时咨询呼叫的标识符。 在此过程返回之前,服务提供商必须使用新调用的句柄填充此位置。 如果函数导致错误,则此句柄无效。

lpCallParams

指向 LINECALLPARAMS 的指针,其中包含在建立咨询调用时要使用的调用参数。 如果没有所需的特殊调用设置参数,此参数将设置为 NULL

返回值

如果发生错误,则返回 dwRequestID 或错误号。 如果函数成功,则相应ASYNC_COMPLETIONlResult 实际参数为零;如果发生错误,则为错误号。 可能的返回值如下所示:

LINEERR_BEARERMODEUNAVAIL、LINEERR_INVALLINESTATE、LINEERR_CALLUNAVAIL、LINEERR_INVALMEDIAMODE、LINEERR_CONFERENCEFULL、LINEERR_INVALRATE、LINEERR_INUSE、LINEERR_NOMEM、LINEERR_INVALADDRESSMODE、LINEERR_OPERATIONUNAVAIL、LINEERR_INVALBEARERMODE、LINEERR_OPERATIONFAILED、LINEERR_INVALCALLPARAMS、LINEERR_RATEUNAVAIL、LINEERR_INVALCALLSTATE、LINEERR_RESOURCEUNAVAIL、LINEERR_INVALCONFCALLHANDLE、LINEERR_USERUSERINFOTOOBIG。

注解

如果行当前不处于可执行此操作的状态,则服务提供商将返回LINEERR_INVALLINESTATE。 服务提供程序必须指示 LINEDEVSTATUS 结构中 LINEFEATURE) 类型的 dwLineFeatures 成员 (当前有效操作的列表。

如果会议呼叫对请求的操作不处于有效状态,则服务提供商将返回LINEERR_INVALCALLSTATE。

此函数将现有电话会议置于 onHoldPendingConference 状态,并创建一个咨询呼叫,稍后可使用 TSPI_lineAddToConference添加到现有电话会议。

可以使用 TSPI_lineDrop取消咨询呼叫。 TAPI 也可能可以在咨询电话和与 TSPI_lineSwapHold举行的电话会议之间交换。 服务提供商最初对新调用执行媒体监视,至少针对线路上监视的一组媒体类型。

此函数与相应的 TAPI 函数的不同之处在于,它遵循 TSPI 模型开始调用的生存期。 TAPI 和服务提供商交换表示相互调用的不透明句柄。 此外,允许服务提供商在从此过程返回之前对新调用执行回调。 在任何情况下,服务提供商还必须将其返回的句柄视为“尚无效”,直到匹配 ASYNC_COMPLETION 消息报告成功。 换句话说,它不得为新调用发出任何 LINEEVENT 消息,也不得将其包含在消息的调用计数或线路的状态数据结构中。

要求

要求
目标平台 Windows
标头 tspi.h

另请参阅

ASYNC_COMPLETION

LINECALLPARAMS

LINEDEVSTATUS

LINEEVENT

LINE_CALLSTATE

TSPI_lineAddToConference

TSPI_lineDial

TSPI_lineDrop

TSPI_lineRemoveFromConference

TSPI_lineSetupConference

TSPI_lineSwapHold