RecordAudio - Amazon Chime SDK

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

RecordAudio

允許 SIP 媒體應用程式記錄來自指定呼叫 ID 的媒體。例如,語音信箱應用程式和會議參與者公告。應用程式會記錄到達您設定的持續時間,或使用者按下其中一個RecordingTerminators,或應用程式偵測到靜音為止。在這些情況下,動作會告訴您的應用程式將產生的媒體檔案放入指定的 S3 儲存貯體中。S3 儲存貯體必須屬於與 SIP 媒體應用程式相同的 AWS 帳戶。此外,此動作必須s3:PutObjectAcl授予 Amazon Chime SDK 語音連接器服務主體 (Amazon Chime SDK 語音連接器服務主體),s3:PutObject並授予權限。 voiceconnector.chime.amazonaws.com

注意

使用此功能錄製的錄音可能會受到有關電子通訊錄製的法律或法規的約束。您和您的終端使用者有責任遵守與錄製相關的所有適用法律,包括在錄製的工作階段或通訊中適當地通知所有參與者該工作階段或通訊正在記錄中,並取得他們的同意。

下列範例提供 Amazon Chime SDK 語音連接器服務主體的s3:PutObjectAcl權限s3:PutObject和權限。

{ "Version": "2012-10-17", "Statement": [ { "Sid": "SMARead", "Effect": "Allow", "Principal": { "Service": "voiceconnector.chime.amazonaws.com" }, "Action": [ "s3:PutObject", "s3:PutObjectAcl" ], "Resource": "arn:aws:s3:::bucket-name/*" } ] }

下列範例會在來電者按下井字鍵 (#) 或 10 秒內沒有活動時停止錄製,或者呼叫者保持靜音 3 秒,並將產生的媒體檔案寫入RecordingDestination參數定義的位置。

注意

此範例使用CallId參數。您可以改用ParticipantTag參數,但不能同時使用兩者。

{ "Type": "RecordAudio", "Parameters": { "CallId": "call-id-1", "DurationInSeconds": "10", "SilenceDurationInSeconds": 3, "SilenceThreshold": 100, "RecordingTerminators": [ "#" ], "RecordingDestination": { "Type": "S3", "BucketName": "valid-bucket-name", "Prefix": "valid-prefix-name" } } }
CallId

說明CallId AWS Lambda 函數呼叫CallDetails的參與者

允許的值 — 有效的呼叫 ID

必要 — 否

預設值 — 無

ParticipantTag

描述ParticipantTag 中其中一個已連接的參與者 CallDetails

允許的值LEG-ALEG-B

必要 — 否

默認值-callLeg 被調用ParticipantTag的忽略,如果您指定 CallId

RecordingDestination.Type

描述」— 目的地的類型。只有 S3。

允許的值 — S3

必要 — 是

預設值 — 無

RecordingDestination.BucketName

說明 — 有效的 S3 儲存貯體名稱。值區必須具有 Amazon Chime SDK 語音連接器服務主體的存取權。voiceconnector.chime.amazonaws.com

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

必要 — 是

預設值 — 無

RecordingDestination.Prefix

說明 — 記錄檔案的 S3 前置詞

允許的值 — 有效的前置詞名稱,最多包含 979 個安全字元。如需有關安全字元的詳細資訊,請參閱 Amazon 簡單儲存服務使用者指南中的安全字元。

必要 — 否

預設 — 無。如果未指定,記錄會儲存至 S3 儲存貯體的根目錄。

DurationInSeconds

說明 — 錄製的持續時間,以秒為單位

允許的值-> 0

必要 — 否

預設值 — 無

SilenceDurationInSeconds

說明 — 靜音的持續時間 (以秒為單位),在此之後停止錄製。如果未指定,則會停用靜音偵測。

允許的值 — [1; 千]

必要 — 否

預設值:200

SilenceThreshold

說明 — 被認為是「沉默」的噪音水平。如果未指定SilenceDurationInSeconds,則會忽略此參數。

參考值(噪聲電平和閾值將噪聲視為靜音):
  • 1—30 分貝或以下,如安靜的房間

  • 100—40-50 dB,例如耳語或安靜的辦公室

  • 200—60 分貝,如擁擠的辦公室

  • 1000—75 dB,例如大聲的人物或音樂

允許的值 — [1; 千]

必要 — 否

預設值:200

RecordingTerminators

描述 — 列出所有可用的錄製結束字元。

允許的值 — 來自 [123456789*0#] 的單一數字和符號的陣列

必要 — 是

預設值 — 無

處理動作 (_ 成功) 事件

記錄結束時,Amazon Chime SDK SIP 媒體應用程式會呼叫 AWS Lambda 函數,並將 ACTION_FECT 事件與叫用結果一起傳遞給該函數。

{ "SchemaVersion": "1.0", "Sequence": INTEGER, "InvocationEventType": "ACTION_SUCCESSFUL", "ActionData": { "Type" : "RecordAudio", "Parameters": { ... }, "RecordingDestination": { "Type": "S3", "BucketName": "valid-bucket-name", "Key": "valid-S3-key" }, "RecordingTerminatorUsed":"#" }, "CallDetails": { ... } }

ACTION_SUCCESSFUL事件包含ActionData,其中包含下列欄位:

Type

描述」— 操作的類型RecordAudio

Parameters

說明 — 動作的參數。

RecordingDestination.Type

描述」— 目的地的類型。只有 S3。

RecordingDestination.BucketName

說明 — 包含錄製檔案的 S3 儲存貯體。

RecordingDestination.Key

說明 — 錄製檔案的 S3 金鑰。

RecordingTerminatorUsed

說明 — 用來停止記錄的終止元 — 參數中傳遞的其中一個結束字元。RecordingTerminators如果錄製在達到最長持續時間 (DurationInSeconds) 或因為寂靜 (SilenceDurationInSeconds) 而停止錄製,則輸出中不會包含此鍵值配對。

錯誤處理

對於驗證錯誤,SIP 媒體應用程式會使用適當的錯誤訊息呼叫 AWS Lambda 函式。下表列出可能的錯誤訊息。

錯誤 訊息 原因

InvalidActionParameter

CallId或動作的ParticipantTag參數無效。

DurationInSeconds參數值無效。

SilenceDurationInSeconds參數值無效。

SilenceThreshold參數值無效。

RecordingDestination參數值無效。

將記錄檔上傳到 S3 儲存貯體時發生錯誤。

任何參數都無效。

SystemException

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

執行動作時發生另一種類型的系統錯誤。

處理ACTION_FAILED事件

當動作無法在呼叫段上記錄媒體時,SIP 媒體應用程式會叫用具有ACTION_FAILED事件類型的 AWS Lambda 函數。請參閱以下範例。

{ "SchemaVersion": "1.0", "Sequence": 5, "InvocationEventType": "ACTION_FAILED", "ActionData": { "Type" : "RecordAudio", "Parameters": { ... }, "ErrorType": "InvalidActionParameter", "ErrorMessage": "RecordingDestination parameter value is invalid." }, "CallDetails": { ... } }

請參閱以下網站的工作示例 GitHub:https://github.com/aws-samples/ amazon-chime-sma-bridging