本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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
-
說明 — 通話的端點
允許的值:
-
BridgeEndpointType
—AWS
用於語音連接器和語音連接器組,否則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
行動的這些事實。
CallTimeoutSeconds
— 此計時器在 B 腳上發送 SIP 邀請時啟動。您可以設置所需的目標值,但是上游運營商可以忽略此值。CallerIdNumber
— 此電話號碼必須屬於客戶,或者是 A 腳的發件人號碼。-
掛斷行為和邊緣情況 — 如果一個呼叫腿掛斷,另一個呼叫腿不會自動掛斷通話。當一個
Hangup
事件被發送到 AWS Lambda 功能,剩餘的腿必須獨立斷開。如果通話支線處於懸置狀態,則該通話會計費直到掛斷為止。例如,下列情況可能會導致非預期的費用:您嘗試橋接到目的地電話號碼。目的地繁忙,並將呼叫直接發送到語音信箱。從音訊服務的角度來看,轉到語音信箱是一個應答的電話。A 腿掛斷了,但 B 腿繼續監聽語音郵件消息。當 B 腿聽時,您會收到費用。
作為最佳實踐,使用 AWS Lambda 函數,或者在通話的另一端的一方,獨立掛斷每個呼叫腿。
帳單 — 使用時會向您收取下列費用
CallAndBridge
:對 PSTN 建立的每個呼叫引腳(A 腿、B 腿等)的作用中通話分鐘數。
音訊服務使用分鐘數。
請參閱以下工作示例 GitHub: