本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
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-A
或LEG-B
必要 — 否
默認值-
callLeg
被調用ParticipantTag
的忽略,如果您指定CallId
- RecordingDestination.Type
-
「描述」— 目的地的類型。只有 S3。
允許的值 — S3
必要 — 是
預設值 — 無
- RecordingDestination.BucketName
-
說明 — 有效的 S3 儲存貯體名稱。值區必須具有 Amazon Chime SDK 語音連接器服務主體的存取權。
voiceconnector.chime.amazonaws.com
允許的值 — Amazon Chime 開發套件可以存取
s3:PutObject
和s3: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 函式。下表列出可能的錯誤訊息。
錯誤 | 訊息 | 原因 |
---|---|---|
|
將記錄檔上傳到 S3 儲存貯體時發生錯誤。 |
任何參數都無效。 |
|
執行動作時發生系統錯誤。 |
執行動作時發生另一種類型的系統錯誤。 |
處理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