CallAndBridge - Amazon Chime 聲 SDK

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

CallAndBridge

建立對 PSTN 電話號碼的輸出呼叫,或是設定為 Amazon Chime SDK 語音連接器或 Amazon Chime SDK 語音連接器群組的 SIP 幹線,然後將其與現有的通話分段進行橋接。撥打電話號碼PSTN時以及撥打 SIP 幹線AWS時使用。

現有的呼叫支線可以是使用 CreateSIPMediaApplicationCallAPI 建立的輸出呼叫支段,或是由 SIP 規則建立的輸入分段,該規則會呼叫具有NewInboundCall事件的 AWS Lambda 函式。對語音連接器或語音連接器群組端點實CallAndBridge作動作時,必須指定語音連接器或語音連接器群組的 Amazon 資源號碼 (ARN)。

您還可以將自定義 SIP 標頭添加到出站呼叫腿和 AWS Lambda 功能。自定義標題允許您傳遞諸如樓層號碼和郵政編碼之類的值。如需有關自訂標頭的詳細資訊,請參閱使用 SIP 標頭

下列範例程式碼會顯示橋接到 PSTN 端點的典型動作。

{ "SchemaVersion": "1.0", "Actions": [{ "Type": "CallAndBridge", "Parameters": { "CallTimeoutSeconds": 30, "CallerIdNumber": "e164PhoneNumber", // required "Endpoints": [{ "BridgeEndpointType": "PSTN", // required "Uri": "e164PhoneNumber", // required }], } } ] }

下列範例顯示使用語音連接器或語音連接器群組以及自訂 SIP 標頭的典型動作。

{ "SchemaVersion":"1.0", "Actions":[ { "Type":"CallAndBridge", "Parameters":{ "CallTimeoutSeconds":30, "CallerIdNumber": "e164PhoneNumber", // required "RingbackTone": { // optional "Type": "S3", "BucketName": "s3_bucket_name", "Key": "audio_file_name" }, "Endpoints":[ { "BridgeEndpointType":"AWS", // enum type, required "Arn":"arn:aws:chime:us-east-1:0123456789101:vc/abcdefg1hijklm2nopq3rs" //VC or VCG ARN, required for AWS endpoints "Uri":"ValidString", // required, see description below } ], "SipHeaders": { "x-String":"String" } } } ] }
CallTimeoutSeconds

說明 — 通話逾時之前的間隔。計時器會從通話設定開始。

允許的值 — 介於 1 到 120 之間 (含)

必要 — 否

預設值:30

CallerIdNumber

描述」— 屬於客戶的號碼,或「A 字段」的「起始」號碼

允許的值 — E.164 格式的有效電話號碼

必要 — 是

預設值 — 無

Endpoints

說明 — 通話的端點

允許的值

  • BridgeEndpointTypeAWS 用於語音連接器和語音連接器組,否則PSTN

  • Arn— 語音連接器或語音連接器群組的 ARN。只有當您使用AWS作為BridgeEndpointType.

  • Uri— URI 值取決於端點的類型。

    對於PSTN端點,URI 必須是有效的 E.164 電話號碼。

    對於AWS端點,URI 值會設定的一user部分Request-URI。您必須使用增強巴庫斯諾爾格式。所需長度:1 到 30 之間,包括在內。使用下列值:a-z, A-Z, 0-9, &, =, +, $, /, %, -, _, !, ~, *, (,)、(.)

    的主機值衍生自Request-URI目標語音連接器的輸入路由。下列範例顯示具有AWS端點的CallAndBridge動作。

    { "SchemaVersion":"1.0", "Actions":[ { "Type":"CallAndBridge", "Parameters":{ "CallTimeoutSeconds":30, "CallerIdNumber": "+18005550122", "Endpoints":[ { "BridgeEndpointType":"AWS", "Arn":"arn:aws:chime:us-east-1:0123456789101:vc/abcdefg1hijklm2nopq3rs", "Uri":"5550" } ], "SipHeaders": { "x-String":"String" } } } ] }

    如需輸入路由和語音連接器的詳細資訊,請參閱編輯 Amazon Chime SDK 語音連接器設定

必要 — 是

預設值 — 無

SipHeaders

描述 — 可讓您傳遞其他值。僅與AWS端點類型搭配使用。

允許的值-有效的 SIP 標頭

必要 — 否

預設值 — 無

下列範例顯示使用 PSTN 端點的成功CallAndBridge處理行動:

{ "SchemaVersion": "1.0", "Sequence": 3, "InvocationEventType": "ACTION_SUCCESSFUL", "ActionData": { "Type": "CallAndBridge", "Parameters": { "CallTimeoutSeconds": 30, "CallerIdNumber": "e164PhoneNumber", "Endpoints":[ { "BridgeEndpointType": "PSTN", "Uri": "e164PhoneNumber" } ], "CallId": "call-id-1" } }, "CallDetails":{ ..... ..... "Participants":[ { "CallId": "call-id-1", "ParticipantTag": "LEG-A", ..... "Status": "Connected" }, { "CallId": "call-id-2", "ParticipantTag": "LEG-B", ..... "Status": "Connected" } ] } }

下列範例顯示失敗的CallAndBridge動作。

{ "SchemaVersion": "1.0", "Sequence":2, "InvocationEventType": "ACTION_FAILED", "ActionData":{ "Type": "CallAndBridge", "Parameters":{ "CallTimeoutSeconds": 30, "CallerIdNumber": "e164PhoneNumber", "Endpoints": [ { "BridgeEndpointType": "PSTN", "Uri": "e164PhoneNumber" } ], "CallId": "call-id-1" }, "ErrorType": "CallNotAnswered", "ErrorMessage": "Call not answered" }, "CallDetails":{ ..... ..... "Participants":[ { "CallId": "call-id-1", "ParticipantTag": "LEG-A", ..... } ] } }

呼叫流程

CallAndBridge動作會根據參數以及引腳是否連接,為現有的呼叫引腳提供不同的呼叫信號和音訊體驗。

下圖顯示了當輸入呼叫支架 A 已連接時,具有不同參數的呼叫流程。

通過CallAndBridge動作的已接聽電話的流程。

下圖顯示未接聽呼叫的呼叫流程。

未接聽的呼叫通過CallAndBridge動作的流程。
其他詳細資訊

請記住有關CallAndBridge行動的這些事實。

  • CallTimeoutSeconds— 此計時器在 B 腳上發送 SIP 邀請時啟動。您可以設置所需的目標值,但是上游運營商可以忽略此值。

  • CallerIdNumber— 此電話號碼必須屬於客戶,或者是 A 腳的發件人號碼。

  • 掛斷行為和邊緣情況 — 如果一個呼叫腿掛斷,另一個呼叫腿不會自動掛斷通話。當一個Hangup事件被發送到 AWS Lambda 功能,剩餘的腿必須獨立斷開。如果通話支線處於懸置狀態,則該通話會計費直到掛斷為止。例如,下列情況可能會導致非預期的費用:

    • 您嘗試橋接到目的地電話號碼。目的地繁忙,並將呼叫直接發送到語音信箱。從音訊服務的角度來看,轉到語音信箱是一個應答的電話。A 腿掛斷了,但 B 腿繼續監聽語音郵件消息。當 B 腿聽時,您會收到費用。

    • 作為最佳實踐,使用 AWS Lambda 函數,或者在通話的另一端的一方,獨立掛斷每個呼叫腿。

  • 帳單 — 使用時會向您收取下列費用CallAndBridge

    • 對 PSTN 建立的每個呼叫引腳(A 腿、B 腿等)的作用中通話分鐘數。

    • 音訊服務使用分鐘數。

請參閱以下工作示例 GitHub: