PlayAudioAndGetDigits - Amazon Chime SDK

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

DeskripsiCallId peserta dalam CallDetails pemanggilan AWS Lambda fungsi

Nilai yang diizinkan - ID panggilan yang valid

Diperlukan - Tidak

Nilai default - Tidak ada

ParticipantTag

DeskripsiParticipantTag salah satu peserta yang terhubung di CallDetails

Nilai yang diizinkan - LEG-A atau LEG-B

Diperlukan - Tidak

Nilai default - ParticipantTag dari yang dipanggil callLeg Diabaikan jika Anda menentukan CallId

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

InvalidAudioSource

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.

InvalidActionParameter

CallIdatau ParticipantTag parameter untuk tindakan tidak valid.

ACallId,ParticipantTag, atau parameter lainnya tidak valid.

SystemException

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: