기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
Amazon Chime SDK PTSN 오디오 서비스에서 SIP 헤더 사용
이제 SIP 인프라와 통화 컨텍스트 정보를 교환하려는 경우 AWS Lambda 함수의 User-To-User 헤더, 전환 헤더 및 사용자 지정 SIP 헤더를 보내고 받을 수 있습니다.
-
User-to-User(UUI) 헤더를 사용하여 통화 제어 데이터를 전송할 수 있습니다. 이 데이터는 세션을 시작하는 애플리케이션에서 삽입되며 세션을 수락하는 애플리케이션에서 사용됩니다. 기본 SIP 기능에는 사용되지 않습니다. 예를 들어 콜 센터에서 UUI 헤더를 사용하여 상담원 간에 통화에 대한 정보를 전달할 수 있습니다.
-
Diversion 헤더는 통화가 어디에서 전환되었고 그 이유를 표시하는 데 사용됩니다. 이 헤더를 사용하여 다른 SIP 에이전트의 전환 정보를 확인하거나 전달할 수 있습니다.
-
사용자 지정 SIP 헤더를 사용하면 원하는 다른 정보를 전달할 수 있습니다. 예를 들어 계정 ID를 전달하려는 경우 ‘X-Account-Id’라는 X 헤더를 만들고 이 정보를 추가할 수 있습니다.
사용자 지정 SIP 헤더에 접두사 x-
를 붙여야 합니다. 헤더는 AWS Lambda 함수에 노출되고 인바운드 통화 중에 NEW_INBOUND_CALL
이벤트의 일부로 수신됩니다. CallAndBridge 작업 또는 CreateSipMediaApplicationCall API를 트리거할 때 아웃바운드 통화 레그에 이러한 헤더를 포함할 수도 있습니다.
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" } ] } }
다음 예제는 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 필드 사용
CreateSipMediaApplicationCall API를 트리거하는 경우 선택적 SipHeaders
필드를 사용하여 사용자 지정 SIP 헤더를 아웃바운드 통화 레그에 전달할 수 있습니다. 유효한 헤더 키는 다음 중 하나를 포함해야 합니다.
-
접두사
x-
-
User-to-User
헤더 -
Diversion
헤더
X-AMZN
은 예약된 헤더입니다. API 직접 호출에서 이 헤더를 사용하면 실패합니다. 헤더의 최대 길이는 2,048자입니다.
다음 예제는 명령줄 인터페이스의 일반적인 CreateSipMediaApplicationCall API를 선택적 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