Voice Gateway 中的呼叫失败处理

通常,当对 Voice Gateway 的呼叫遇到导致其失败的问题时,Voice Gateway 有两种行为,具体取决于是否定义了转接目标。对于转接,建议配置缺省转接目标,以便在未能连接到 Watson Assistant 或服务编排引擎的情况下,仍将转接呼叫。当正在设置呼叫时,以及呼叫处于活动状态时,下面描述的呼叫失败处理均适用。

如果定义了转接目标

在这种情况下,IBM Voice Gateway 将发送 SIP REFER,以针对任何失败状况启动转接到定义的转接目标的操作。失败时,将执行以下步骤并转出呼叫:

  1. 尝试合成 CONVERSATION_FAILED_REPLY_MESSAGE 环境变量配置(对于高级 JSON 配置,则是 conversationFailedReplyMessage)中指定的文本,并向呼叫者播放。
  2. 如果由于 Text-To-Speech 服务不可用而无法合成音频,那么它将改为向呼叫者传送一个 WAV 文件,这个 WAV 文件来自 CONVERSATION_FAILED_REPLY_AUDO_URL 环境变量配置(对于高级 JSON 配置,则是 conversationFailedReplyAudioURL)中指定的 URL。
  3. 将呼叫者置于挂起状态,并使用 SIP REFER 启动转接。

在转接失败的情况下,IBM Voice Gateway 将尝试合成 TRANSFER_FAILED_REPLY_MESSAGE 环境变量配置(对于高级 JSON 配置,则是 transferFailedReplyMessage)中指定的文本,并向呼叫者播放。

重要信息:未发送 SIP REFER 的唯一场景如下:IBM Voice Gateway 无法为媒体分配 UDP 端口,此时它将以 302 Moved Temporarily 响应来回应 SIP INVITE 请求,并包含联系人头中的转接目标,用于将呼叫路由至定义的端点。

如果未定义转接目标

在没有定义转接目标的情况下,对于任何错误状况,Voice Gateway 都将执行以下操作:

  1. 尝试合成 CONVERSATION_FAILED_REPLY_MESSAGE 环境变量配置(对于高级 JSON 配置,则是 conversationFailedReplyMessage)中指定的文本,并向呼叫者播放。
  2. 如果由于 Text-To-Speech 服务不可用而无法合成音频,那么它将改为向呼叫者传送一个 WAV 文件,这个 WAV 文件来自 CONVERSATION_FAILED_REPLY_AUDO_URL(对于高级 JSON 配置,则是 conversationFailedReplyAudioURL)中指定的 URL。
  3. 向呼叫者发出 SIP BYE 请求来结束呼叫。

配置缺省转接目标

配置缺省转接目标,这样,在呼叫失败并且无法从 Watson Assistant 工作空间获取转接目标的情况下,便可以转接呼叫。

`DEFAULT_TRANSFER_TARGET=<sip-address-of-target-to-transfer-to>`

或者通过高级 JSON 配置

{
    "tenants": [{
        "tenantURI": "2345556789",
            "description": "Voice Gateway Demo US",
            "whitelistFromUri": "8765554321",
            "putCallerOnHoldOnTransfer": "false",
      "transferDefaultTarget": "<sip-address-of-target-to-transfer-to>"
            "conversation": {
        ...
            },
            "stt": {
                ...
            },
            "tts": {
        ...
            }
  }]
}