SIP 헤더 사용 - Amazon Chime SDK

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

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 이벤트의 일부로 수신됩니다. 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" } ] } }

sip-header 필드 사용

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 SIPDiversion Indication in SIP를 참조하세요.