PlayAudio - Amazon Chime 聲 SDK

本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。

PlayAudio

在通話的任何一段播放音頻文件。音頻可以重複任意次數。進行中的音訊可以使用中設定的 DTMF 數字終止。PlaybackTerminators

目前,Amazon Chime SDK 僅支援播放來自亞馬遜簡單儲存服務 (Amazon S3) 儲存貯體的音訊檔案。S3 儲存貯體必須屬於與 SIP 媒體應用程式相同的 AWS 帳戶。此外,您必須s3:GetObject授予 Amazon Chime SDK 語音連接器服務主體的權限。您可以使用 S3 主控台或命令列介面 (CLI) 來執行此操作。

下列程式碼範例顯示典型的值區政策。

{ "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" } } } ] }

下列程式碼範例顯示典型的動作。

{ "Type": "PlayAudio", "Parameters": { "CallId": "call-id-1", "ParticipantTag": "LEG-A", "PlaybackTerminators": ["1", "8", "#"], "Repeat": "5", "AudioSource": { "Type": "S3", "BucketName": "valid-S3-bucket-name", "Key": "wave-file.wav" } } }
CallID

描述」— 中CallId的參與者CallDetails

允許的值 — 有效的呼叫 ID。

必要 — 否,如果ParticipantTag存在。

預設值 — 無。

ParticipantTag

描述」— ParticipantTag 中其中一個已連線參與者的「描述」CallDetails

允許的值LEG-ALEG-B

必要 — 否,如果CallId存在。

默認值-被調用ParticipantTagcallLeg。如果指定,則忽略此項CallId

PlaybackTerminator

說明 — 使用使用者的 DTMF 輸入來終止進行中的音訊

允許的值 — 下列值的陣列;「0」、「1」、」2」、「3」、「4」、「5」、「6」、「7」、「8」、」9」、」#」、」*」

必要 — 否

預設值 — 無

Repeat

說明 — 以指定的次數重複音訊

允許的值 — 大於零的整數

必要 — 否

默認值-1

AudioSource.Type

說明 — 音訊檔案的來源類型。

允許的值 — S3。

必要 — 是。

預設值 — 無。

AudioSource.BucketName

說明 — 對於 S3 來源類型,S3 儲存貯體必須屬於與 SIP 應用程式相同的 AWS 帳戶。值區必須能夠存取 Amazon Chime 語音連接器 SDK 語音連接器服務主體,也就是語音連接器 .amazonaws.com。

允許的值 — Amazon Chime 開發套件可以存取s3:GetObject動作的有效 S3 儲存貯體。

必要 — 是。

預設值 — 無。

AudioSource.key

說明 — 對於 S3 來源類型,則為AudioSource.BucketName屬性中指定之 S3 儲存貯體的檔案名稱。

允許的值 — 有效的音訊檔案。

必要 — 是。

預設值 — 無。

SIP 媒體應用程式會嘗試從來源 URL 播放音訊。您可以使用大小不超過 50 MB 的原始、未壓縮的 PCM .wav 檔案。Amazon Chime 聲 SDK 建議使用 8 千赫 mono。

當撥號計畫中的最後一個指令為PlayAudio且檔案完成播放時,或者如果使用者按下按鍵停止播放,則應用程式會叫用 AWS Lambda 函數,並顯示下列範例中的事件。

{ "SchemaVersion": "1.0", "Sequence": INTEGER, "InvocationEventType": "ACTION_SUCCESSFUL", "ActionData": { "Type": "PlayAudio", "Parameters" : { "CallId": "call-id-1", "AudioSource": { "Type": "S3", "BucketName": "valid-S3-bucket-name", "Key": "wave-file.wav", } } }

終止數字停止音頻後,它不會重複。

錯誤處理

當驗證檔案包含錯誤,或執行動作時發生錯誤,SIP 媒體應用程式會呼叫具有適當錯誤碼的 AWS Lambda 函數。

錯誤 訊息 原因

InvalidAudioSource

音訊來源參數無效。

發生此錯誤的原因有多種。例如,SIP 媒體應用程式因權限問題或 URL 問題而無法存取檔案。或者,由於格式,持續時間,大小等原因,音頻文件可能無法驗證。

SystemException

執行動作時發生系統錯誤。

執行動作時發生另一個系統錯誤。

InvalidActionParameter

CallId 或動作的 ParticipantTag 參數無效。

動作包含無效的參數。

下列程式碼範例顯示典型的叫用失敗。

{ "SchemaVersion": "1.0", "Sequence": 2, "InvocationEventType": "ACTION_FAILED", "ActionData": { "Type": "PlayAudio", "Parameters" : { "CallId": "call-id-1", "AudioSource": { "Type": "S3", "BucketName": "bucket-name", "Key": "audio-file.wav" }, }, "ErrorType": "InvalidAudioSource", "ErrorMessage": "Audio Source parameter value is invalid." } "CallDetails": { ... } }

請參閱以下工作示例 GitHub: