Voice Gateway 中的呼叫失败处理
通常,当对 Voice Gateway 的呼叫遇到导致其失败的问题时,Voice Gateway 有两种行为,具体取决于是否定义了转接目标。对于转接,建议配置缺省转接目标,以便在未能连接到 Watson Assistant 或服务编排引擎的情况下,仍将转接呼叫。当正在设置呼叫时,以及呼叫处于活动状态时,下面描述的呼叫失败处理均适用。
如果定义了转接目标
在这种情况下,IBM Voice Gateway 将发送 SIP REFER,以针对任何失败状况启动转接到定义的转接目标的操作。失败时,将执行以下步骤并转出呼叫:
- 尝试合成
CONVERSATION_FAILED_REPLY_MESSAGE环境变量配置(对于高级 JSON 配置,则是conversationFailedReplyMessage)中指定的文本,并向呼叫者播放。 - 如果由于 Text-To-Speech 服务不可用而无法合成音频,那么它将改为向呼叫者传送一个 WAV 文件,这个 WAV 文件来自
CONVERSATION_FAILED_REPLY_AUDO_URL环境变量配置(对于高级 JSON 配置,则是conversationFailedReplyAudioURL)中指定的 URL。 - 将呼叫者置于挂起状态,并使用 SIP REFER 启动转接。
在转接失败的情况下,IBM Voice Gateway 将尝试合成 TRANSFER_FAILED_REPLY_MESSAGE 环境变量配置(对于高级 JSON 配置,则是 transferFailedReplyMessage)中指定的文本,并向呼叫者播放。
重要信息:未发送 SIP REFER 的唯一场景如下:IBM Voice Gateway 无法为媒体分配 UDP 端口,此时它将以 302 Moved Temporarily 响应来回应 SIP INVITE 请求,并包含联系人头中的转接目标,用于将呼叫路由至定义的端点。
如果未定义转接目标
在没有定义转接目标的情况下,对于任何错误状况,Voice Gateway 都将执行以下操作:
- 尝试合成
CONVERSATION_FAILED_REPLY_MESSAGE环境变量配置(对于高级 JSON 配置,则是conversationFailedReplyMessage)中指定的文本,并向呼叫者播放。 - 如果由于 Text-To-Speech 服务不可用而无法合成音频,那么它将改为向呼叫者传送一个 WAV 文件,这个 WAV 文件来自
CONVERSATION_FAILED_REPLY_AUDO_URL(对于高级 JSON 配置,则是conversationFailedReplyAudioURL)中指定的 URL。 - 向呼叫者发出 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": {
...
}
}]
}