状态

会话或呼叫状态指示会话的当前状态,例如“产品/服务”或“已连接”。正确处理状态信息对于大多数 TAPI 应用程序的正常运行至关重要。 例如,只能对提供的会话执行应答操作,但如果会话处于该状态,则传输将失败。

会话的状态会因事件而更改。 事件可以请求或未经请求。 请求事件 是由控制会话的应用程序引起的,例如,当它调用 TAPI 会话操作时。 未经请求的事件 是由交换机、电话网络、用户按下本地电话上的按钮或远程方的操作引起的。

每当服务提供商检测到会话状态更改时,它都会报告对 TAPI 的更改,TAPI 会向所有所有者和监视应用程序发出事件通知。 应用程序必须对这些通知做出适当的反应。 有关控制向应用程序报告哪些事件的信息,请参阅 TAPI 初始化 下的事件通知。

应用程序应始终处理状态事件通知。 对一个物理配置有效的状态转换对于另一个物理配置可能无效。 例如,假设有一条线路在计算机和单独的电话集中物理终止,从而在计算机和电话集之间创建群线配置。 计算机上运行的应用程序可能不知道手机集活动。 也就是说,该行可能正在使用中,而服务提供商没有意识到它。 尝试发出传出呼叫的应用程序将成功分配 TAPI 的呼叫外观,但这会导致在线路上共享活动呼叫。 在没有先检查拨号音的情况下盲目发送 DTMF 拨号字符串可能不会导致预期 (或礼貌) 行为。

应用程序不应假定从一个状态到另一个状态的严格进展。 状态事件到达并异步转发,并且可能不会按可预测的顺序接收通知。 因此,应将呼叫状态通知视为告知应用程序调用的新状态,而不是报告两种状态之间的转换。

所有电话服务提供商都必须提供此信息。

**TAPI 2.x:**lineGetCallStatuslineGetCallInfoLINE_CALLSTATE message 、LINECALLSTATE_ 常量

**TAPI 3.x:**ITCallInfo::get_CallInfoLong (CALLINFO_LONG) ITCallStateEvent notification CALL_STATE 枚举器CIL_CALLID成员