Voice Gateway 中通話失敗的處理

一般而言,與 Voice Gateway 通話時,如果遇到問題導致失敗,視是否有定義轉接目標而定,Voice Gateway 會有兩種行為。在轉接方面,建議配置預設轉接目標,如此一來,當連接至 Watson Assistant 或「服務編排引擎」失敗時,仍會轉接該通話。這兩者不論何者,在設置通話時,以及當通話處於作用中時,都會進行以下說明的通話失敗處理。

若有定義轉接目標

在此情況下,當發生任何失敗情況時,IBM Voice Gateway 會傳送 SIP REFER,以便起始轉接至所定義的轉接目標。當發生失敗時,它會執行下列步驟,並將通話轉接出去:

  1. 嘗試將 CONVERSATION_FAILED_REPLY_MESSAGE 環境變數配置(JSON 進階配置conversationFailedReplyMessage)中指定的文字,加以合成並播放給發話端
  2. 如果因 Text to Speech 服務無法使用,而無法合成音訊時,則會改為從 CONVERSATION_FAILED_REPLY_AUDIO_URL 環境變數配置(JSON 進階配置conversationFailedReplyAudioURL)中指定的 URL,將 WAV 檔以串流方式傳送給發話端
  3. 讓發話端維持通話,並使用 SIP REFER 起始轉接。

萬一轉接失敗,IBM Voice Gateway 會嘗試將 TRANSFER_FAILED_REPLY_MESSAGE 環境變數配置(JSON 進階配置transferFailedReplyMessage)中指定的文字,加以合成並播放給發話端。

重要事項:唯一不會傳送 SIP REFER 的情況是,當 IBM Voice Gateway 無法配置 UDP 埠給媒體時,它會以 302 暫時移動回應,來回應 SIP INVITE 要求,並在 contact 標頭中包含轉接目標,該標頭就會將通話遞送至所定義的端點。

如果沒有定義轉接目標

如果沒有定義轉接目標,當發生任何錯誤情況時,Voice Gateway 將:

  1. 嘗試將 CONVERSATION_FAILED_REPLY_MESSAGE 環境變數配置(JSON 進階配置conversationFailedReplyMessage)中指定的文字,加以合成並播放給發話端。
  2. 如果因 Text to Speech 服務無法使用,而無法合成音訊時,則會改為從 CONVERSATION_FAILED_REPLY_AUDIO_URLJSON 進階配置conversationFailedReplyAudioURL)中指定的 URL,將 WAV 檔以串流方式傳送給發話端。
  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": {
        ...
            }
  }]
}