lineDial 函数 (tapi.h)
lineDial 函数在指定的呼叫中拨打指定的可拨号号码。
语法
LONG lineDial(
HCALL hCall,
LPCSTR lpszDestAddress,
DWORD dwCountryCode
);
参数
hCall
要拨打号码的呼叫的句柄。 应用程序必须是调用的所有者。 hCall 的调用状态可以是除空闲和断开连接之外的任何状态。
lpszDestAddress
使用标准可拨号号码格式拨打的目标。
dwCountryCode
目的地的国家或地区代码。 实现使用它来选择目标地址的调用进度协议。 如果指定值 0,则使用服务提供商定义的默认调用进度协议。
返回值
如果异步完成函数,则返回正请求标识符;如果发生错误,则返回负错误号。 如果函数成功,则相应LINE_REPLY消息的 dwParam2 参数为零;如果发生错误,则为负错误数。 可能的返回值为:
LINEERR_ADDRESSBLOCKED、LINEERR_INVALPOINTER、LINEERR_DIALBILLING、LINEERR_NOMEM、LINEERR_DIALDIALTONE、LINEERR_NOTOWNER、LINEERR_DIALPROMPT、LINEERR_OPERATIONFAILED、LINEERR_DIALQUIET、LINEERR_OPERATIONUNAVAIL、LINEERR_INVALCALLHANDLE、LINEERR_RESOURCEUNAVAIL、LINEERR_INVALCALLSTATE、LINEERR_UNINITIALIZED、LINEERR_INVALCOUNTRYCODE。
注解
如果返回LINEERR_INVALADDRESS,则表示未执行任何拨号。 如果返回LINEERR_DIALBILLING、LINEERR_DIALQUIET、LINEERR_DIALDIALTONE或LINEERR_DIALPROMPT,则 lineDial 未执行任何其他操作。 例如,在有问题的字符之前,任何可拨号地址都没有被拨号,没有挂钩开关状态发生更改,等等。
lineDial 函数用于对现有呼叫外观进行拨号。 例如,在为转接或会议设置呼叫后,将自动分配咨询呼叫,并且 lineDial 函数将用于执行此咨询呼叫的拨号。 如果线路的设备功能允许,可以在多阶段拨号过程中多次调用 lineDial 函数。 此外,可以在由 CRLF 分隔的单个拨号字符串中提供多个地址。 提供反向多路复用的服务提供商可以使用每个地址建立单独的物理调用,并且可以将单个调用句柄返回到对应用程序的所有调用的聚合。 所有地址将使用相同的国家或地区代码。
将地址传递给服务提供商后,拨号被视为已完成;而不是在呼叫最终连接后。 提供反向多路复用的服务提供商可以允许一次提供多个地址。 服务提供商向应用程序发送LINE_CALLSTATE消息,以通知其调用进度。 若要在建立呼叫时中止调用尝试,调用应用程序应使用 lineDrop。
应用程序可以将 lineDial 函数的 lpszDestAddress 参数设置为空字符串的地址,以指示拨号已完成,但前提是之前对 lineMakeCall 和 lineDial 函数的调用已使用分号终止 lpszDestAddress 指定的字符串。
lineDial 函数也可用于部分拨号。 若要使用部分拨号发起呼叫,应用程序会调用 lineMakeCall 并指定部分拨号字符串。 部分拨号字符串是由分号终止的任何拨号字符串。 调用通常会转换为LINECALLSTATE_DIALING之后,可以调用 lineDial 以指定更多拨号字符串,每个字符串以分号结尾。 拨号是通过调用 lineDial 来完成的,其拨号字符串不是以分号 (结尾的,例如空字符串) 。 此技术允许应用程序与用户执行交互式部分拨号,或启用比 TSP 可能能够的更复杂的拨号。
如果为 null 目标字符串,或空字符串以分号 (“;”在 lineMakeCall 中输入 ) ,应用程序将转换为LINE_CALLSTATE_DIALTONE。 在此状态下,可以调用 lineDial 函数以输入单个拨号字符串或多个部分拨号字符串,每个字符串用分号分隔。 输入第一个数字后,应用程序将转换为LINECALLSTATE_DIALING状态。
要求
目标平台 | Windows |
标头 | tapi.h |
Library | Tapi32.lib |
DLL | Tapi32.dll |