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