lineDial 函数在指定的呼叫中拨号指定的可拨号号码。
语法
LONG lineDialA(
HCALL hCall,
LPCSTR lpszDestAddress,
DWORD dwCountryCode
);
参数
hCall
要拨打号码的呼叫句柄。 应用程序必须是调用的所有者。 hCall 的调用状态可以是除 空闲 和 断开连接之外的任何状态。
lpszDestAddress
使用标准可拨号号码格式拨打的目标。
dwCountryCode
目标的国家或地区代码。 实现使用此协议来选择目标地址的调用进度协议。 如果指定了值 0,则使用服务提供程序定义的默认调用进度协议。
返回值
如果函数异步完成,则返回正请求标识符;如果发生错误,则返回负错误号。 如果函数成功,则
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 更复杂的拨号。
如果在 lineMakeCall 中输入以分号(“;”)结尾的空字符串, 应用程序转换为LINE_CALLSTATE_DIALTONE。 可以在此状态下调用 lineDial 函数以输入单个拨号字符串或多个部分拨号字符串,每个字符串用分号分隔。 输入第一个数字后,应用程序将转换为LINECALLSTATE_DIALING状态。
注意
tapi.h 标头将 lineDial 定义为一个别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将中性编码别名与不中性编码的代码混合使用可能会导致编译或运行时错误不匹配。 有关详细信息,请参阅函数原型的
要求
| 要求 | 价值 |
|---|---|
| 目标平台 | 窗户 |
| 标头 | tapi.h |
| 库 | Tapi32.lib |
| DLL | Tapi32.dll |