TSPI_lineDial函数 (tspi.h)
TSPI_lineDial函数在指定的呼叫中拨打指定的可拨号号码。
语法
LONG TSPIAPI TSPI_lineDial(
DRV_REQUESTID dwRequestID,
HDRVCALL hdCall,
LPCWSTR lpszDestAddress,
DWORD dwCountryCode
);
参数
dwRequestID
异步请求的标识符。
hdCall
服务提供商对要拨号的呼叫的句柄。 hdCall 的调用状态可以是除空闲和断开连接之外的任何状态。
lpszDestAddress
指向以 null 结尾的 Unicode 字符串的指针,该字符串指定要使用标准可拨号号码格式拨打的目标。
dwCountryCode
目的地的国家或地区代码。 实现使用此来选择目标地址的呼叫进度协议。 如果指定值 0,则使用服务提供商定义的默认调用进度协议。 调用此函数时,TAPI 不会验证此参数。
返回值
如果发生错误,则返回 dwRequestID 或错误号。 如果函数成功,则相应ASYNC_COMPLETION的 lResult 实际参数为零;如果发生错误,则为错误号。 可能的返回值如下所示:
LINEERR_INVALCALLHANDLE、LINEERR_OPERATIONFAILED、LINEERR_INVALADDRESS、LINEERR_RESOURCEUNAVAIL、LINEERR_INVALCOUNTRYCODE、LINEERR_DIALBILLING、LINEERR_INVALCALLSTATE、LINEERR_DIALQUIET、LINEERR_ADDRESSBLOCKED、LINEERR_DIALDIALTONE、LINEERR_NOMEM、LINEERR_DIALPROMPT、LINEERR_OPERATIONUNAVAIL。
注解
如果呼叫的当前状态不允许拨号,则服务提供商将返回LINEERR_INVALCALLSTATE。
如果服务提供商返回LINEERR_INVALADDRESS,则不执行拨号。
如果服务提供商返回LINEERR_DIALBILLING、LINEERR_DIALQUIET、LINEERR_DIALDIALTONE或LINEERR_DIALPROMPT,则它不应执行 TSPI_lineDial (执行的任何操作,例如,不进行部分拨号和) 。 这是因为服务提供商应先预先扫描编号,查找不受支持的字符。
TSPI_lineDial 用于对现有呼叫外观进行拨号;例如,从 TSPI_lineMakeCall 返回的调用句柄,其中 NULL 为 lpszDestAddress 或以“;”结尾,从 TSPI_lineSetupTransfer 或 TSPI_lineSetupConference 返回的调用句柄。 如果线路的设备功能允许,则可以在多阶段拨号过程中多次调用TSPI_lineDial。
如果在上一次调用 TSPI_lineMakeCall 或 TSPI_lineDial 函数时由 lpszDestAddress 参数指向的字符串以分号终止,则当前调用 TSPI_lineDial 中的空字符串指示拨号已完成。
可以在由 CRLF 分隔的单个拨号字符串中提供多个地址。 提供反多路复用的服务提供商可以使用每个地址建立单独的物理调用,并将单个调用句柄返回到对应用程序的所有调用的聚合。 所有地址将使用相同的国家或地区代码。
在服务提供商接受地址后,而不是在呼叫最终连接后,拨号被视为已完成。 提供反向多路复用的服务提供商可能允许一次提供多个地址。 服务提供商必须向 TAPI 发送 LINE_CALLSTATE 消息,以通知呼叫进度。
要求
要求 | 值 |
---|---|
目标平台 | Windows |
标头 | tspi.h |