Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
PlayAudioAndGetDigits
Memutar audio dan mengumpulkan digit DTMF. Jika terjadi kegagalan, seperti pengguna yang tidak memasukkan jumlah digit DTMF yang benar, tindakan memutar audio “kegagalan” dan kemudian memutar ulang audio utama hingga aplikasi media SIP menghabiskan jumlah upaya yang ditentukan dalam parameter. Repeat
Anda harus memutar file audio dari bucket S3. Bucket S3 harus memiliki AWS akun yang sama dengan aplikasi media SIP. Selain itu, Anda harus memberikan s3:GetObject
izin kepada kepala layanan Amazon Chime SDK Voice Connector,. voiceconnector.chime.amazonaws.com
Anda dapat menggunakan konsol S3 atau CLI untuk melakukan itu.
Contoh kode berikut menunjukkan kebijakan bucket S3 yang khas.
{ "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
" } } } ] }
Layanan Audio membaca dan menulis ke bucket S3 Anda atas nama Aplikasi Sip Media Anda. Untuk menghindari masalah deputi yang membingungkan, Anda dapat membatasi akses bucket S3 ke satu aplikasi media 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
" } } } ] }
Contoh berikut menunjukkan PlayAudioAndGetDigits
tindakan yang khas.
{ "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
-
Deskripsi —
CallId
peserta dalamCallDetails
pemanggilan AWS Lambda fungsiNilai yang diizinkan - ID panggilan yang valid
Diperlukan - Tidak
Nilai default - Tidak ada
- ParticipantTag
-
Deskripsi —
ParticipantTag
salah satu peserta yang terhubung diCallDetails
Nilai yang diizinkan -
LEG-A
atauLEG-B
Diperlukan - Tidak
Nilai default -
ParticipantTag
dari yang dipanggilcallLeg
Diabaikan jika Anda menentukanCallId
- InputDigitsRegex
-
Deskripsi - Pola ekspresi reguler
Nilai yang diizinkan - Pola ekspresi reguler yang valid
Diperlukan - Tidak
Nilai default - Tidak ada
- AudioSource.Type
-
Deskripsi - Jenis sumber untuk jenis file audio
Nilai yang diizinkan - Bucket S3
Diperlukan - Ya
Nilai default -
"S3"
- AudioSource.BucketName
-
Deskripsi — Untuk
AudioSource.Type
nilai S3, bucket S3 harus memiliki AWS akun yang sama dengan aplikasi media SIP. Bucket S3 harus memiliki akses ke kepala layanan Amazon Chime SDK Voice Connector,.voiceconnector.chime.amazonaws.com
Nilai yang diizinkan — Bucket S3 yang valid yang Amazon Chime SDK
s3:GetObject
memiliki akses tindakan.Diperlukan - Ya
Nilai default - Tidak ada
- AudioSource.Key
-
Deskripsi — Nama kunci objek audio di bucket
AudioSource.BucketName
S3.Nilai yang diizinkan - File audio yang valid
Diperlukan - Ya
Nilai default - Tidak ada
- FailureAudioSource.Type
-
Deskripsi — Nama kunci objek audio di bucket
FailureAudioSource.BucketName
S3.Nilai yang diizinkan - S3
Diperlukan - Ya
Nilai default - Tidak ada
- FailureAudioSource.BucketName
-
Deskripsi — Untuk tipe sumber S3, bucket S3 harus memiliki AWS akun yang sama dengan aplikasi media SIP. Kepala layanan Amazon Chime SDK Voice Connector,
voiceconnector.chime.amazonaws.com
, harus memiliki akses ke bucket S3.Nilai yang diizinkan — Bucket S3 yang valid yang Amazon Chime SDK
s3:GetObject
memiliki akses tindakan.Diperlukan - Ya
Nilai default - Tidak ada
- FailureAudioSource.Key
-
Deskripsi — Nama kunci objek audio di bucket
FailureAudioSource.BucketName
S3.Nilai yang diizinkan - File audio yang valid
Diperlukan - Ya
Nilai default - Tidak ada
- MinNumberOfDigits
-
Deskripsi — Jumlah minimum digit yang harus diambil sebelum waktu habis atau memutar audio “panggilan gagal”.
Nilai yang diizinkan -> = 0
Diperlukan - Tidak
Nilai default - 0
- MaxNumberOfDigits
-
Deskripsi — Jumlah maksimum digit yang akan diambil sebelum berhenti tanpa digit penghentian.
Nilai yang diizinkan ->
MinNumberOfDigits
Diperlukan - Tidak
Nilai default - 128
- TerminatorDigits
-
Deskripsi — Digit yang digunakan untuk mengakhiri input jika pengguna memasukkan kurang dari
MaxNumberOfDigits
Nilai yang diizinkan - Salah satu dari digit ini: 0123456789#*
Diperlukan - Tidak
Nilai default - #
- InBetweenDigitsDurationInMilliseconds
-
Deskripsi — Waktu tunggu dalam milidetik antara input digit sebelum bermain.
FailureAudio
Nilai yang diizinkan -> 0
Diperlukan - Tidak
Nilai default - Jika tidak ditentukan, default ke nilai.
RepeatDurationInMilliseconds
- Repeat
-
Deskripsi - Jumlah total upaya untuk mendapatkan digit
Nilai yang diizinkan -> 0
Diperlukan - Tidak
Nilai default - 1
- RepeatDurationInMilliseconds
-
Deskripsi - Waktu dalam milidetik untuk menunggu di antara upaya
Repeat
Nilai yang diizinkan -> 0
Diperlukan - Ya
Nilai default - Tidak ada
Aplikasi media SIP selalu memanggil AWS Lambda fungsinya setelah menjalankan PlayAudioAndGetDigits
tindakan, dengan jenis acara ACTION_SUCCESSFUL
atau ACTION_FAILED
pemanggilan. Ketika aplikasi berhasil mengumpulkan digit, ia menetapkan ReceivedDigits
nilai dalam objek. ActionData
Contoh berikut menunjukkan struktur acara pemanggilan fungsi itu 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": { ... } }
Penanganan kesalahan
Ketika kesalahan validasi terjadi, aplikasi media SIP memanggil AWS Lambda fungsi dengan pesan kesalahan yang sesuai. Tabel berikut mencantumkan kemungkinan pesan kesalahan.
Kesalahan | Pesan | Alasan |
---|---|---|
|
Nilai parameter sumber audio tidak valid. |
Kesalahan ini dapat terjadi karena berbagai alasan. Misalnya, aplikasi media SIP tidak dapat mengakses file karena masalah izin, atau masalah dengan bucket S3. Atau, file audio mungkin gagal validasi karena durasi, ukuran, atau format yang tidak didukung. |
|
|
A |
|
Kesalahan sistem saat menjalankan tindakan. |
Terjadi kesalahan sistem saat menjalankan tindakan. |
Ketika tindakan gagal mengumpulkan jumlah digit yang ditentukan karena batas waktu atau terlalu banyak percobaan ulang, aplikasi media SIP memanggil AWS Lambda fungsi dengan jenis acara pemanggilan. 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": { ... } }
Lihat contoh kerja di GitHub: