StartCallRecording
StartCallRecording
작업은 통화 레그의 녹음을 시작합니다. 온디맨드 또는 SIP 이벤트에 대한 응답으로 SIP 미디어 애플리케이션에서 통화 녹음을 시작합니다.
통화의 온디맨드 녹음을 시작하려면
UpdateSipMediaApplication
API를 사용하여 애플리케이션을 간접 호출하고StartCallRecording
작업을 반환합니다.SIP 이벤트에 대한 응답으로 통화 녹음을 시작하려면 애플리케이션에서
StartCallRecording
작업을 반환합니다.
수신 레그, 발신 레그 또는 모두에 대해 오디오 트랙을 녹음할지 여부를 지정합니다. 다음 섹션에서는 StartCallRecording
작업을 사용하는 방법을 설명합니다.
참고
이 기능을 사용하여 녹음한 경우 전자 통신 녹음에 관한 법률 또는 규정이 적용될 수 있습니다. 녹음에 관한 모든 관련 법률을 준수하는 것은 귀하와 최종 사용자의 책임입니다. 여기에는 세션 또는 통신이 녹음되고 있다는 사실을 녹음된 세션의 모든 참가자에게 적절하게 알리고 동의를 구하는 것도 포함됩니다.
StartCallRecording 작업 요청
다음 예제는 BOTH
트랙의 StartCallRecording
작업을 요청하는 방법을 보여줍니다.
{ "Version": "2012-10-17", "Statement": [ { "Type": "StartCallRecording", "Parameters": { "CallId": "
call-id-1
", "Track": "BOTH
", "Destination": { "Type": "S3", "Location": "valid-bucket-name-and-optional-prefix
" } } } ] }
- CallId
-
설명 - AWS Lambda 함수 간접 호출의
CallDetails
에서 참가자의CallId
입니다.허용된 값 - 유효한 통화 ID
필수 - 예
기본값 – 없음
- Track
-
설명 - 통화 녹음의 오디오
Track
입니다.허용된 값 -
BOTH
,INCOMING
또는OUTGOING
필수 - 예
기본값 – 없음
- Destination.Type
-
설명 - 대상 유형입니다. Amazon S3만 허용됩니다.
허용된 값 - Amazon S3
필수 - 예
기본값 – 없음
- Destination.Location
-
설명 - 유효한 Amazon S3 버킷과 선택 사항인 Amazon S3 키 접두사입니다. 버킷에는 Amazon Chime SDK Voice Connector 서비스 보안 주체인 voiceconnector.chime.amazonaws.com에 대한 권한이 있어야 합니다.
허용된 값 - Amazon Chime SDK가
s3:PutObject
및s3:PutObjectAcl
작업에 대한 권한을 가진 유효한 Amazon S3 경로필수 - 예
기본값 – 없음
녹음 대상 지정
Amazon Chime SDK는 Amazon S3 버킷으로 통화 녹음을 전송합니다. 버킷은 AWS 계정에 속해야 합니다. StartCallRecording
작업의 Destination
파라미터에 버킷의 위치를 지정합니다. Destination
파라미터의 Type
필드는 S3
이어야 합니다. Location
필드는 Amazon S3 버킷과 선택 사항인 통화 녹음이 전달되는 객체 키 접두사로 구성됩니다.
SIP 미디어 애플리케이션은 지정된 Location
, 통화 레그의 날짜 및 시간, 트랜잭션 ID, 통화 ID를 사용하여 Amazon S3 객체 키의 형식을 지정합니다. StartCallRecording
작업 응답은 전체 Amazon S3 객체 키를 반환합니다.
Location
필드에 Amazon S3 버킷만 제공하는 경우 SIP 미디어 애플리케이션은 Amazon S3 경로에 기본 접두사인 Amazon-Chime-SMA-Call-Recordings
를 추가합니다. 또한 SIP 미디어 애플리케이션은 통화 시작 시간의 연, 월, 일을 추가하여 녹음을 정리하는 데 도움이 됩니다. 다음 예제는 기본 접두사를 포함한 Amazon S3 경로의 일반 형식을 보여줍니다. 이 예제에서는 myRecordingBucket
을 Location
값으로 사용합니다.
myRecordingBucket
/Amazon-Chime-SMA-Call-Recordings/2019/03/01/2019–03–01–17–10–00–010_c4640e3b–1478–40fb-8e38–6f6213adf70b_7ab7748e–b47d–4620-ae2c–152617d3333c.wav
다음 예제는 통화 녹음 Amazon S3 경로에 표시된 데이터를 보여줍니다.
s3Bucket
/Amazon-Chime-SMA-Call-Recordings/year
/month
/date
/year-month-date-hour-minute-second-millisecond_transactionId_callId
.wav
Amazon S3 버킷과 객체 키 접두사를 Location
필드에 입력하면 SIP 미디어 애플리케이션은 기본 접두사 대신 대상 Amazon S3 경로의 객체-키 접두사를 사용합니다. 다음 예제는 접두사를 포함한 통화 녹음 Amazon S3 경로의 일반 형식을 보여줍니다. 예를 들어, myRecordingBucket/technicalSupport/english를 Location
으로 지정할 수 있습니다.
myRecordingBucket
/technicalSupport
/english/2019/03/01/2019–03–01–17–10–00–010_c4640e3b1478–40fb–8e38-6f6213adf70b_7ab7748e–b47d–4620–ae2c–152617d3333c.wav
다음 예제는 Amazon S3 경로의 데이터를 보여줍니다.
s3Bucket
/yourObjectKeyPrefix
/year
/month
/date
/year-month-date-hour-minute-second-millisecond
_transactionId
_callId
.wav
Amazon S3 버킷으로 전송된 녹음에는 통화 레그에 대한 추가 Amazon S3 객체 메타데이터가 포함되어 있습니다. 다음 표에는 지원되는 Amazon S3 객체 메타데이터가 나와 있습니다.
명칭 | 설명 |
---|---|
transaction-id |
전화 통화의 트랜잭션 ID |
call-id |
AWS Lambda 함수 간접 호출의 CallDetails에 있는 참가자의 CallId |
recording-duration |
통화 녹음 기간(초) |
recording-audio-file-format |
인터넷 미디어 유형으로 표시된 통화 녹음 오디오 파일 형식 |
Amazon S3 버킷 권한 부여
대상 Amazon S3 버킷은 애플리케이션과 동일한 AWS 계정에 속해야 합니다. 또한 작업은 Amazon Chime SDK Voice Connector 서비스 보안 주체인 voiceconnector.chime.amazonaws.com
에 s3:PutObject
및 s3:PutObjectAcl
권한을 부여해야 합니다. 다음 예제는 적절한 권한을 부여합니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "SIP media applicationRead", "Effect": "Allow", "Principal": { "Service": "voiceconnector.chime.amazonaws.com" }, "Action": [ "s3:PutObject", "s3:PutObjectAcl" ], "Resource": "arn:aws:s3:::
bucket-name
/*", "Condition": { "StringEquals": { "aws:SourceAccount": "aws-account-id
" } } } ] }
PSTN 오디오 서비스는 SIP 미디어 애플리케이션을 대신하여 S3 버킷을 읽고 씁니다. 혼동된 대리자 문제를 피하기 위해 S3 버킷 권한을 단일 SIP 미디어 애플리케이션으로 제한할 수 있습니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "SIP media applicationRead", "Effect": "Allow", "Principal": { "Service": "voiceconnector.chime.amazonaws.com" }, "Action": [ "s3:PutObject", "s3:PutObjectAcl" ], "Resource": "arn:aws:s3:::
bucket-name
/*", "Condition": { "StringEquals": { "aws:SourceAccount": "aws-account-id
", "aws:SourceArn": "arn:aws:chime:region
:aws-account-id
:sma/sip-media-application-id
" } } } ] }
작업 성공 응답
통화 레그에서 통화 녹음이 성공적으로 시작되면 SIP 미디어 애플리케이션은 ACTION_SUCCESSFUL
이벤트 유형의 AWS Lambda 함수를 간접 호출합니다. 통화 녹음 위치가 응답으로 반환됩니다.
{ "SchemaVersion": "1.0", "Sequence": INTEGER, "InvocationEventType": "ACTION_SUCCESSFUL", "ActionData": { "Type" : "StartCallRecording", "Parameters": { "CallId": "
call-id-1
", "Track": "BOTH", "Destination": { "Type": "S3", "Location": "valid-bucket-name
" } } "CallRecordingDestination": { "Type": "S3", "Location": "call-recording-bucket-and-key
" } } "CallDetails": { ... } }
작업 오류 응답
유효성 검사 오류의 경우 SIP 미디어 애플리케이션은 적절한 오류 메시지와 함께 AWS Lambda 함수를 직접 호출합니다. 다음 표에는 오류 메시지가 나열되어 있습니다.
Error | 메시지 | 이유 |
---|---|---|
|
|
파라미터가 유효하지 않습니다. |
|
System error while running an action. |
작업을 실행하는 동안 다른 유형의 시스템 오류가 발생했습니다. |
작업이 통화 레그에서 미디어 녹음을 실패하면 SIP 미디어 애플리케이션은 ActionFailed
이벤트 유형의 AWS Lambda 함수를 간접 호출합니다.
다음 예제는 일반적인 오류 응답을 보여줍니다.
{ "SchemaVersion": "1.0", "Sequence": 5, "InvocationEventType": "ACTION_FAILED", "ActionData": { "Type" : "StartCallRecording", "Parameters": { "CallId": "
call-id-1
", "Track": "BOTH", "Destination": { "Type": "S3", "Location": "valid-bucket-name
" } } "Error": "NoAccessToDestination: Error while accessing destination" } "CallDetails": { ... } }
GitHub에서 작업 예제 참조: https://github.com/aws-samples/amazon-chime-sma-on-demand-recording