成功的含义

TAPI 2.x

当操作在同步操作的函数返回时以同步方式返回成功指示 (,或通过异步操作) LINE_REPLY或PHONE_REPLY消息异步返回,则假定以下情况为 true:

  • 函数已成功推进到 API 逐个函数定义的点。 到达该点后,操作要么完全完成,要么处于独立状态消息通知应用程序后续进度的状态。

    例如,服务提供商的 lineMakeCall 实现应不晚于调用进入继续调用状态时返回 SUCCESS。 理想情况下,提供商应尽快指示 SUCCESS,例如当呼叫进入拨号音呼叫状态时 (如果适用) 。 将 SUCCESS 返回到应用程序后,LINE_CALLSTATE消息将通知应用程序调用进度。 延迟返回 lineMakeCall SUCCESS 指示(例如,直到拨号完成后)的服务提供商必须知道,这让该提供程序处于不利地位,因为应用程序级别的可用性可能受到严重限制。 例如,用户不可能取消正在进行的呼叫设置请求,直到拨号完成并且所有数字都已发送到交换机。

  • 返回信息 (的函数(如 lineGetCallInfo )仅当请求的信息可供应用程序使用时,) 返回 SUCCESS。 返回句柄 (行或调用) 的函数只能在句柄有效后返回 SUCCESS。 在导致函数创建的函数成功指示之前,不应发送有关该行或调用的消息。 服务提供商负责禁止显示此类消息。

  • 启用某些永久条件 ((如 lineMonitorDigits )的函数) 仅在启用条件后返回 SUCCESS,而不是 (再次删除条件时返回 SUCCESS,而不是在) 所有数字监视完成时返回。

  • 调用控制函数 (如 lineHoldlineSetupTransfer,但不是 lineMakeCall) 操作完成后返回 SUCCESS。 某些电话网络不提供确认 (对服务提供商提出的某些请求的完成的正面或负面) 。 在这种情况下,服务提供商必须决定请求是成功还是失败。 因此,SUCCESS 可能指示服务提供商已启动操作来满足请求,但不一定是任何其他操作。 例如,提供程序可能不会从交换机收到对其请求的肯定确认,尽管它已经向应用程序发送了成功消息。

TAPI 3.x

当某个操作返回成功指示 (函数返回同步操作时,或者异步调用异步操作 ) 的ASYNC_COMPLETION 回调过程,则假定以下情况为 true:

  • 函数已成功推进到服务提供程序定义的点。 服务提供程序根据函数逐个定义点。 到达该点后,操作要么完全完成,要么处于这样一种状态,以便后续的独立状态消息将通知应用程序进度。
  • 返回信息 ((如 TSPI_lineParkTSPI_lineDevSpecific )的函数) 仅当请求的信息可供调用方使用时才返回 SUCCESS。 返回句柄的函数 (打开的行、打开的电话或呼叫) 函数返回时立即返回句柄。 在最终成功指示之前,服务提供商和调用方都必须将句柄视为“尚无效”。 服务提供商负责防止在成功指示之前向 LINEEVENTPHONEEVENT 过程发送有关该打开线路、打开的电话或呼叫的任何回调消息。 如果最终结果为错误,则返回的任何句柄将立即变为无效,无需执行任何进一步操作。
  • 启用某些永久条件 ((如 TSPI_lineMonitorDigits) )的函数仅在启用条件后返回 SUCCESS,而不是在再次删除条件 (返回 SUCCESS,而不是在数字监视) 完成时返回。
  • 调用控制函数 (如 TSPI_lineHoldTSPI_lineSetupTransfer,但不 TSPI_lineMakeCall) 操作完成后返回 SUCCESS。 在未提供对这些函数的积极确认的电话环境中,服务提供商被迫对函数的成功与否做出最大努力的决定。
  • 服务提供商的 TSPI_lineMakeCall 实现必须不晚于调用进入 继续 调用状态时返回 SUCCESS。 理想情况下,提供商会尽快指示 SUCCESS,例如当呼叫进入 拨号 呼叫状态时 (如果适用) 。 将 SUCCESS 返回到应用程序时, LINE_CALLSTATE 消息通知调用方调用进度。 例如,如果服务提供商延迟返回 TSPI_lineMakeCall SUCCESS 指示,直到拨号完成后,则会严重限制应用程序级别的灵活性。 延迟 在 TSPI_lineMakeCall 中返回 SUCCESS 会阻止用户取消正在进行的呼叫设置请求,直到拨号完成后,所有数字都发送到交换机。