기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
PlayAudioAndGetDigits
오디오를 재생하고 DTMF 숫자를 수집합니다. 사용자가 올바른 DTMF 숫자를 입력하지 않는 등 실패가 발생하면 작업은 “실패” 오디오를 재생한 다음 SIP 미디어 애플리케이션이 Repeat
파라미터에 정의된 시도 횟수를 전부 소진할 때까지 기본 오디오를 재생합니다.
S3 버킷에서 오디오 파일을 재생해야 합니다. S3 버킷은 SIP 미디어 애플리케이션과 동일한 AWS 계정에 속해야 합니다. 또한 Amazon Chime SDK Voice Connector 서비스 보안 주체인 voiceconnector.chime.amazonaws.com
에 s3:GetObject
권한을 부여해야 합니다. S3 콘솔 또는 CLI를 사용하여 이를 수행할 수 있습니다.
다음 예제 코드는 일반적인 S3 버킷 정책을 보여줍니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "SMARead", "Effect": "Allow", "Principal": { "Service": "voiceconnector.chime.amazonaws.com" }, "Action": [ "s3:GetObject" ], "Resource": "arn:aws:s3:::
bucket-name
/*", "Condition": { "StringEquals": { "aws:SourceAccount": "aws-account-id
" } } } ] }
오디오 서비스는 SIP 미디어 애플리케이션을 대신하여 S3 버킷을 읽고 씁니다. 혼동된 대리자 문제를 피하기 위해 S3 버킷 액세스를 단일 SIP 미디어 애플리케이션으로 제한할 수 있습니다.
{ "Version": "2012-10-17", "Statement": [ { "Sid": "SMARead", "Effect": "Allow", "Principal": { "Service": "voiceconnector.chime.amazonaws.com" }, "Action": [ "s3:GetObject" ], "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
" } } } ] }
다음은 예제는 일반적인 PlayAudioAndGetDigits
작업을 보여줍니다.
{ "Type" : "PlayAudioAndGetDigits", "Parameters" : { "CallId": "
call-id-1
", "ParticipantTag": "LEG-A" "InputDigitsRegex": "^\d{2}#$
", "AudioSource": { "Type": "S3", "BucketName": "bucket-name
", "Key": "audio-file-1.wav
" }, "FailureAudioSource": { "Type": "S3", "BucketName": "bucket-name
", "Key": "audio-file-failure.wav
" }, "MinNumberOfDigits":3
, "MaxNumberOfDigits":5
, "TerminatorDigits": ["#
"], "InBetweenDigitsDurationInMilliseconds":5000
, "Repeat": 3, "RepeatDurationInMilliseconds":10000
} }
- CallId
-
설명 — AWS Lambda 함수 호출
CallId
참여자의 설명CallDetails
허용된 값 - 유효한 통화 ID
필수 - 아니요
기본값 – 없음
- ParticipantTag
-
설명 -
CallDetails
의 연결된 참가자 중 한 명의ParticipantTag
입니다.허용된 값 –
LEG-A
또는LEG-B
필수 - 아니요
기본값 - 간접 호출된
callLeg
의ParticipantTag
(CallId
를 지정한 경우 무시됨) - InputDigitsRegex
-
설명 - 정규 표현식 패턴입니다.
허용된 값 - 유효한 정규 표현식 패턴
필수 - 아니요
기본값 – 없음
- AudioSource.Type
-
설명 - 오디오 파일 유형에 대한 소스 유형입니다.
허용된 값 - S3 버킷
필수 - 예
기본값 –
"S3"
- AudioSource.BucketName
-
설명 — S3
AudioSource.Type
값의 경우 S3 버킷은 SIP 미디어 애플리케이션과 동일한 AWS 계정에 속해야 합니다. 버킷 S3에는 Amazon Chime SDK Voice Connector 서비스 보안 주체인voiceconnector.chime.amazonaws.com
에 대한 액세스 권한이 있어야 합니다.허용된 값 - Amazon Chime SDK가
s3:GetObject
작업 액세스 권한을 가진 유효한 S3 버킷필수 - 예
기본값 – 없음
- AudioSource.Key
-
설명 -
AudioSource.BucketName
S3 버킷에 있는 오디오 객체의 키 이름입니다.허용된 값 - 유효한 오디오 파일
필수 - 예
기본값 – 없음
- FailureAudioSource.Type
-
설명 -
FailureAudioSource.BucketName
S3 버킷에 있는 오디오 객체의 키 이름입니다.허용된 값 - S3
필수 - 예
기본값 – 없음
- FailureAudioSource.BucketName
-
설명 — S3 소스 유형의 경우 S3 버킷은 SIP 미디어 애플리케이션과 동일한 AWS 계정에 속해야 합니다. Amazon Chime SDK Voice Connector 서비스 보안 주체인
voiceconnector.chime.amazonaws.com
에는 S3 버킷에 대한 액세스 권한이 있어야 합니다.허용된 값 - Amazon Chime SDK가
s3:GetObject
작업 액세스 권한을 가진 유효한 S3 버킷필수 - 예
기본값 – 없음
- FailureAudioSource.Key
-
설명 -
FailureAudioSource.BucketName
S3 버킷에 있는 오디오 객체의 키 이름입니다.허용된 값 - 유효한 오디오 파일
필수 - 예
기본값 – 없음
- MinNumberOfDigits
-
설명 - 시간 초과나 ‘통화 실패’ 오디오 재생 전에 캡처하는 숫자의 최소 개수입니다.
허용된 값 – 0 이상
필수 - 아니요
기본값 - 0
- MaxNumberOfDigits
-
설명 - 종료 숫자 없이 중지 전 캡처하는 숫자의 최대 개수입니다.
허용된 값 -
MinNumberOfDigits
초과필수 - 아니요
기본값 - 128
- TerminatorDigits
-
설명 - 사용자가
MaxNumberOfDigits
보다 적은 숫자를 입력하면 입력을 종료하는 데 사용되는 숫자허용되는 값 - 다음 숫자 중 하나: 0123456789#*
필수 - 아니요
기본값 - #
- InBetweenDigitsDurationInMilliseconds
-
설명 -
FailureAudio
재생 전 숫자 입력 사이의 대기 시간(밀리초)입니다.허용된 값 – 0 초과
필수 - 아니요
기본값 -
RepeatDurationInMilliseconds
값(지정하지 않은 경우) - Repeat
-
설명 - 숫자를 얻기 위한 총 시도 횟수입니다.
허용된 값 – 0 초과
필수 - 아니요
기본값 – 1
- RepeatDurationInMilliseconds
-
설명 -
Repeat
시도 사이의 대기 시간(밀리초)입니다.허용된 값 – 0 초과
필수 - 예
기본값 – 없음
SIP 미디어 애플리케이션은 PlayAudioAndGetDigits
작업 실행 후 항상 ACTION_SUCCESSFUL
또는 호출 이벤트 유형을 사용하여 해당 AWS Lambda 함수를 ACTION_FAILED
호출합니다. 애플리케이션이 성공적으로 숫자를 수집한 경우 ActionData
객체에 ReceivedDigits
값을 설정합니다. 다음 예제는 해당 함수의 호출 이벤트 구조를 보여줍니다. AWS Lambda
{ "SchemaVersion": "1.0", "Sequence": 3, "InvocationEventType": "ACTION_SUCCESSFUL", "ActionData": { "Type": "PlayAudioAndGetDigits", "Parameters" : { "CallId": "
call-id-1
", "ParticipantTag": "LEG-A", "InputDigitsRegex": "^\d{2}#$
", "AudioSource": { "Type": "S3", "BucketName": "bucket-name
", "Key": "audio-file-1.wav
" }, "FailureAudioSource": { "Type": "S3", "BucketName": "bucket-name
", "Key": "audio-file-failure.wav
" }, "MinNumberOfDigits":3
, "MaxNumberOfDigits":5
, "TerminatorDigits": ["#
"], "InBetweenDigitsDurationInMilliseconds":5000
, "Repeat":3
, "RepeatDurationInMilliseconds":10000
}, "ErrorType": "InvalidAudioSource", "ErrorMessage": "Audio Source parameter value is invalid." }, "ReceivedDigits": "1234
" }, "CallDetails": { ... } }
오류 처리
유효성 검사 오류가 발생한 경우 SIP 미디어 애플리케이션이 해당 오류 메시지와 함께 AWS Lambda 함수를 직접 호출합니다. 다음 표에는 가능한 오류 메시지가 나열되어 있습니다.
Error | 메시지 | 이유 |
---|---|---|
|
Audio source parameter value is invalid. |
여러 가지 이유로 이 오류가 발생할 수 있습니다. 예를 들어 권한 문제 또는 S3 버킷 관련 문제로 인해 SIP 미디어 애플리케이션이 파일에 액세스할 수 없습니다. 또한 길이, 크기 또는 지원되지 않는 형식으로 인해 오디오 파일이 검증에 실패할 수 있습니다. |
|
|
|
|
System error while running the action. |
작업을 실행하는 동안 시스템 오류가 발생했습니다. |
제한 시간 초과 또는 너무 많은 재시도 횟수로 인해 작업이 지정된 자릿수를 수집하지 못하면 SIP 미디어 응용 프로그램은 호출 이벤트 유형을 사용하여 AWS Lambda 함수를 호출합니다. ACTION_FAILED
{ "SchemaVersion": "1.0", "Sequence":
4
, "InvocationEventType": "ACTION_FAILED", "ActionData": { "Type": "PlayAudioAndGetDigits", "Parameters" : { "CallId": "call-id-1
", "ParticipantTag": "LEG-A", "InputDigitsRegex": "^\d{2}#$
", "AudioSource": { "Type": "S3", "BucketName": "bucket-name
", "Key": "audio-file-1.wav
" }, "FailureAudioSource": { "Type": "S3", "BucketName": "bucket-name
", "Key": "audio-file-failure.wav
" }, "MinNumberOfDigits":3
, "MaxNumberOfDigits":5
, "TerminatorDigits": ["#
"], "InBetweenDigitsDurationInMilliseconds":5000
, "Repeat":3
, "RepeatDurationInMilliseconds":10000
}, "ErrorType": "InvalidAudioSource", "ErrorMessage": "Audio Source parameter value is invalid." } "CallDetails": { ... } }
다음 GitHub 작업 예를 참조하십시오.