PlayAudio - Amazon Chime SDK

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

PlayAudio

通話の任意のレッグでオーディオファイルを再生します。オーディオは何回でも繰り返すことができます。進行中のオーディオは、PlaybackTerminators で設定された DTMF ディジットを使用して終了できます。

現在、Amazon Chime SDK は Amazon Simple Storage Service (Amazon S3) バケットからのオーディオファイルの再生のみをサポートしています。S3 バケットは、SIP メディアアプリケーションと同じ AWS アカウントに属している必要があります。さらに、Amazon Chime SDK Voice Connector サービスプリンシパルに s3:GetObject 許可を付与する必要があります。この操作は、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" } } } ] }

Audio Service は、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

説明CallDetails の参加者の CallId

使用できる値 – 有効な通話 ID。

必須ParticipantTag が存在する場合は、いいえ。

デフォルト値 – なし。

ParticipantTag

説明CallDetails で接続されている参加者のうちの 1 人の ParticipantTag

使用できる値LEG-A または LEG-B

必須CallId が存在する場合は、いいえ。

デフォルト値 – 呼び出した callLegParticipantTagCallId を指定すると無視されます。

PlaybackTerminator

説明 – ユーザーからの DTMF 入力を使用して、進行中のオーディオを終了します。

使用できる値 –「0」、「1」、「2」、「3」、「4」、「5」、「6」、「7」、「8」、「9」、「#」、「*」の値の配列

必須 – いいえ

デフォルト値 – なし

Repeat

説明 – 指定した回数だけオーディオを繰り返します。

使用できる値 – 0 より大きい整数

必須 – いいえ

デフォルト値 – 1

AudioSource.Type

説明 – オーディオファイルのソースタイプ。

使用できる値 – S3。

必須 – はい。

デフォルト値 – なし。

AudioSource.BucketName

説明 – S3 ソースタイプの場合、S3 バケットは SIP アプリケーションと同じ AWS アカウントに属している必要があります。バケットは、Amazon Chime SDK Voice Connector サービスプリンシパル (voiceconnector.chime.amazonaws.com) にアクセスできる必要があります。

使用できる値 – Amazon Chime SDK が s3:GetObject アクションにアクセスできる有効な S3 バケット。

必須 – はい。

デフォルト値 – なし。

AudioSource.key

説明 – S3 ソースタイプの場合は、AudioSource.BucketName 属性で指定された S3 バケットのファイル名。

使用できる値 – 有効なオーディオファイル。

必須 – はい。

デフォルト値 – なし。

SIP メディアアプリケーションは、ソース URL からオーディオの再生を試みます。50 MB 以下の未圧縮の PCM .wav ファイルを使用できます。Amazon Chime SDK では、モノラル 8 kHz が推奨されます。

ダイヤルプランの最後の指示が 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

オーディオソースパラメータが無効です。

このエラーは、さまざまな理由で発生します。例えば、許可や URL の問題により、SIP メディアアプリケーションがファイルにアクセスできなくなります。または、形式、継続時間、サイズなどにより、オーディオファイルの検証に失敗することがあります。

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。