本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
使用 SIP 標頭
現在,當您想要與 SIP 基礎結構交換呼叫內容資訊時,您可以在 AWS Lambda 函數中傳送和接收使用者對使用者標頭、轉移標頭和自訂 SIP 標頭。
-
使用者對使用者 (UUI) 標頭可用來傳送呼叫控制資料。此資料會由啟動工作階段的應用程式插入,並由接受工作階段的應用程式使用。它不用於任何基本的 SIP 功能。例如,您可以使用呼叫中心中的 UUI 標頭,在代理程式之間傳遞有關呼叫的資訊。
-
轉移頭用於顯示從調用被轉移的地方以及為什麼。您可以使用此標頭來查看其他 SIP 代理的分流信息,或將其傳遞。
-
自定義 SIP 頭允許您沿著你想要的任何其他信息傳遞。例如,如果您想要傳遞帳戶 ID,您可以建立名為「X-Account-ID」的 X 標頭,然後新增此資訊。
您必須為自訂 SIP 標頭加上前綴x-
。標頭會暴露在 AWS Lambda 函數中,並在輸入呼叫期間作為NEW_INBOUND_CALL
事件的一部分接收。您也可以在觸發CallAndBridge動作或 CreateSipMediaApplicationCallAPI 時,將這些標頭包含在輸出呼叫腿中。
Lambda 函數的Participants
區段包含SipHeaders
欄位。當您收到自訂標頭或填入或標頭時,即可使用User-to-User
此欄位。Diversion
此範例顯示 L AWS ambda 叫用包含 SIP 標頭時的預期回應。
{ "SchemaVersion": "1.0", "Sequence": 3, "InvocationEventType": "ACTION_SUCCESSFUL", "ActionData": { "Type":"actionType", "Parameters":{ // Parameters vary by actionType } }, "CallDetails":{ ..... ..... "Participants":[ { "CallId": "
call-id-1
", "ParticipantTag": "LEG-A", ..... "Status": "Connected" "SipHeaders": { "X-Test-Value": "String", "User-to-User": "616d617a6f6e5f6368696d655f636f6e6e6563745f696e746567726174696f6e
;encoding=hex", "Diversion": "sip:+11234567891@public.test.com
;reason=unconditional" } }, { "CallId": "call-id-2", "ParticipantTag": "LEG-B", ..... "Status": "Connected" } ] } }
下列範例顯示因為SipHeaders
參數項目無效而成功的CallAndBridge動作。
{ "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":[ { "Uri":"e164PhoneNumber", // required "BridgeEndpointType":"PSTN" // required } ], "SipHeaders": { "X-Test-Value": "String
", "User-to-User": "616d617a6f6e5f6368696d655f636f6e6e6563745f696e746567726174696f6e
;encoding=hex", "Diversion": "sip:+11234567891@public.test.com
;reason=unconditional" } } } ] }
下列範例顯示由無效SipHeaders
參數所造成的失敗CallAndBridge動作。
{ "SchemaVersion":"1.0", "Sequence":3, "InvocationEventType":"ACTION_FAILED", "ActionData":{ "Type":"actionType", "Parameters":{ // Parameters vary by Action Type "SipHeaders": { "X-AMZN": "String", "User-to-User": "
616d617a6f6e5f6368696d655f636f6e6e6563745f696e746567726174696f6e
;encoding=hex", "Diversion": "sip:+11234567891@public.test.com
;reason=unconditional" }, }, "ErrorType": "InvalidActionParameter", "ErrorMessage": "Invalid SIP header(s) provided: X-AMZN" }, "CallDetails":{ ..... "Participants":[ { "CallId":"call-id-1
", "ParticipantTag":"LEG-A", ..... "Status":"Connected" }, { "CallId":"call-id-2
", "ParticipantTag":"LEG-B", ..... "Status":"Connected" } ] } }
使用SipHeaders欄位
當您觸發 CreateSipMediaApplicationCallAPI 時,選用SipHeaders
欄位可讓您將自訂 SIP 標頭傳遞至輸出呼叫分段。有效的標頭鍵必須包含下列其中一項:
前
x-
綴標
User-to-User
題標
Diversion
題
X-AMZN
是一個保留的標頭。如果您在 API 呼叫中使用此標頭,則會失敗。標頭的長度上限為 2048 個字元。
下列範例會在命令列介面中顯示具有選用SipHeaders
參數的典型 CreateSipMediaApplicationCallAPI。
create-sip-media-application-call --from-phone-number value // (string) --to-phone-number value // (string) --sip-media-application-id value // (string) --sip-headers // (map)
如需詳細資訊,請參閱在 SIP 中傳輸使用者對使用者呼叫控制資訊的機制和 SIP 中的轉