기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
SIP 헤더 사용
이제 SIP 인프라와 통화 컨텍스트 정보를 교환하려는 경우 AWS Lambda 함수에서 User-to-User 헤더, Diversion 헤더 및 사용자 지정 SIP 헤더를 보내고 받을 수 있습니다.
-
User-to-User(UUI) 헤더를 사용하여 통화 제어 데이터를 전송할 수 있습니다. 이 데이터는 세션을 시작하는 애플리케이션에서 삽입되며 세션을 수락하는 애플리케이션에서 사용됩니다. 기본 SIP 기능에는 사용되지 않습니다. 예를 들어 콜 센터에서 UUI 헤더를 사용하여 상담원 간에 통화에 대한 정보를 전달할 수 있습니다.
-
Diversion 헤더는 통화가 어디에서 전환되었고 그 이유를 표시하는 데 사용됩니다. 이 헤더를 사용하여 다른 SIP 에이전트의 전환 정보를 확인하거나 전달할 수 있습니다.
-
사용자 지정 SIP 헤더를 사용하면 원하는 다른 정보를 전달할 수 있습니다. 예를 들어 계정 ID를 전달하려는 경우 ‘X-Account-Id’라는 X 헤더를 만들고 이 정보를 추가할 수 있습니다.
사용자 지정 SIP 헤더에 접두사 x-
를 붙여야 합니다. 헤더는 AWS Lambda 함수에 표시되며 인바운드 호출 중에 이벤트의 일부로 수신됩니다. NEW_INBOUND_CALL
작업 또는 API를 트리거할 때 아웃바운드 콜 레그에 이러한 헤더를 포함할 수도 있습니다CallAndBridge. CreateSipMediaApplicationCall
Lambda 함수의 Participants
부분에는 SipHeaders
필드가 포함됩니다. 이 필드는 사용자 지정 헤더를 수신할 때나 User-to-User
또는 Diversion
헤더를 채울 때 사용할 수 있습니다.
이 예제는 AWS Lambda 호출에 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" } ] } }
다음 예제는 파라미터에 대한 잘못된 입력으로 인한 성공적인 CallAndBridge 작업을 보여줍니다. SipHeaders
{ "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 직접 호출에서 이 헤더를 사용하면 실패합니다. 헤더의 최대 길이는 2,048자입니다.
다음 예제는 선택적 파라미터가 있는 명령줄 인터페이스의 일반적인 CreateSipMediaApplicationCallAPI를 보여줍니다. SipHeaders
create-sip-media-application-call --from-phone-number value // (string) --to-phone-number value // (string) --sip-media-application-id value // (string) --sip-headers // (map)
자세한 내용은 A Mechanism for Transporting User-to-User Call Control Information in SIP