本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
將呼叫和事件路由到 Amazon Chime SDK PSTN 音訊的 AWS Lambda 函數
PSTN 音訊服務提供下列方式,將來電路由到您的 AWS Lambda 函數以進行處理。
-
您可以根據呼叫的號碼路由呼叫。若要這樣做,Amazon Chime SDK 管理員會建立 SIP 規則,並將觸發類型設定為收件人電話號碼。此電話號碼必須存在於與 SIP 規則相同的 AWS 帳戶中的 Amazon Chime SDK 電話號碼庫存中。
-
您可以根據傳入語音連接器 SIP 呼叫的請求 URI,將呼叫路由到 AWS Lambda 函數。若要這樣做,Amazon Chime SDK 管理員會建立觸發類型設定為請求 URI 主機名稱的 SIP 規則。此欄位必須包含 Voice Connector 的「輸出主機名稱」欄位中指定的完整網域名稱,該語音連接器是在與 SIP 規則相同的 AWS 帳戶中佈建的。
接下來,管理員會佈建至少一個目標 SIP 媒體應用程式。或者,您可以依優先順序佈建多個 SIP 媒體應用程式,以支援備援和容錯移轉。例如,您可以在兩個不同的 AWS 區域中佈建兩個 SIP 媒體應用程式,並指定其優先順序。如果 SIP 規則具有多個目標 SIP 媒體應用程式,則會依優先順序叫用 SIP 媒體應用程式的 Lambda 函數。SIP 媒體應用程式中優先順序最高的 AWS Lambda 函數 (最小數字,例如 1) 會先執行。如果 PSTN 音訊服務無法叫用該 AWS Lambda 函數,則會叫用 SIP 媒體應用程式中優先順序第二高的 AWS Lambda 函數 (下一個最小的數字,例如 2)。如果所有嘗試執行 SIP 規則中指定的 SIP 媒體應用程式都失敗,PSTN 音訊服務會掛斷。
佈建必要的 SIP 規則和 SIP 媒體應用程式後,PSTN 音訊服務會將來電路由到您的 AWS Lambda 函數。下圖顯示使用收件人電話號碼觸發類型的典型序列。

在圖表中:
-
PSTN 音訊服務會收到對相同 AWS 帳戶中 SIP 規則佈建之電話號碼的來電。
-
然後,PSTN 音訊服務會評估 SIP 規則,並擷取優先順序最高的 SIP 媒體應用程式 (在此情況下為優先順序 1)。
-
然後,服務會叫用與 SIP 媒體應用程式相關聯的 AWS Lambda 函數。
-
選用。如果服務無法叫用 AWS Lambda 與最高優先順序相關聯的 ,則會嘗試以下一個最高優先順序 (在此情況下為優先順序 2) 執行 SIP 媒體應用程式,如果有的話。
-
選用。如果所有目標 SIP 媒體應用程式都失敗,PSTN 音訊服務會掛斷通話。
下圖顯示使用請求 URI 主機名稱觸發類型的典型規則。

在圖表中:
-
PSTN 音訊服務會在 Amazon Chime SDK Voice Connector 上接收來電,其中包含符合相同 AWS 帳戶中佈建 SIP 規則的請求 URI 主機名稱。
-
然後,服務會評估 SIP 規則,並擷取優先順序最低的 SIP 媒體應用程式 (在此情況下,是唯一優先順序為 1 的目標 SIP 媒體應用程式)。
-
然後,服務會叫用與 SIP 媒體應用程式相關聯的 AWS Lambda 函數。
-
選用。如果服務無法叫用 AWS Lambda 與最低優先順序相關聯的 ,則會嘗試執行具有下一個最低優先順序的 SIP 媒體應用程式,如果有的話。在此情況下,只有一個目標 SIP 媒體應用程式。
-
選用。如果所有目標 SIP 媒體應用程式都失敗,PSTN 音訊服務會掛斷通話。
此外,您可以使用 CreateSIPMediaApplicationCall API 建立外撥呼叫,然後調用您的 AWS Lambda 函數以進行其他處理。若要使用此 API,您可以將佈建的 SIP 媒體應用程式 ID 指定為參數。
最後,當呼叫處於作用中狀態時,您可以隨時使用 UpdateSIPMediaApplicationCall API 觸發 AWS Lambda 函數。若要使用 API,您可以將佈建的 SIP 媒體應用程式 ID 指定為參數。