本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
RecordAudio
允許 SIP 媒體應用程式從指定的通話 ID 記錄媒體。例如,語音郵件應用程式和會議參與者公告。應用程式會記錄,直到達到您設定的持續時間,或使用者按下其中一個 RecordingTerminators,或應用程式偵測到靜音為止。在這些情況下, 動作會指示應用程式將產生的媒體檔案放入指定的 S3 儲存貯體。S3 儲存貯體必須屬於與 SIP 媒體應用程式相同的 AWS 帳戶。此外, 動作必須向 Amazon Chime SDK Voice Connector 服務主體 Amazon Chime SDK Voice Connector 服務主體 授予 s3:PutObject和 s3:PutObjectAcl許可voiceconnector.chime.amazonaws.com。
注意
使用此功能進行的錄製可能受到有關記錄電子通訊的法律和法規的約束。您和您的最終使用者有責任遵守有關記錄的所有適用法律,包括正確通知記錄工作階段或通訊中的所有參與者正在記錄工作階段或通訊,並取得他們的同意。
下列範例將 s3:PutObject和 s3:PutObjectAcl許可授予 Amazon Chime SDK Voice Connector 服務主體。
以下範例會在呼叫者按下井字號 (#) 或經過 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
-
描述 –
CallIdAWS Lambda 函數調用CallDetails中的參與者描述允許的值 – 有效的呼叫 ID
必要 – 否
預設值 — 無
- ParticipantTag
-
描述 –
ParticipantTag中其中一個已連線參與者的描述CallDetails允許的值 –
LEG-A或LEG-B必要 – 否
預設值 – 如果您指定 ,則
ParticipantTag叫用callLeg忽略的預設值CallId - RecordingDestination.Type
-
描述 – 目的地的類型。只有 S3。
允許的值 – S3
必要 – 是
預設值 — 無
- RecordingDestination.BucketName
-
描述 – 有效的 S3 儲存貯體名稱。儲存貯體必須能夠存取 Amazon Chime SDK Voice Connector 服務主體
voiceconnector.chime.amazonaws.com。允許的值 – Amazon Chime SDK 可存取
s3:PutObject和s3:PutObjectAcl動作的有效 S3 儲存貯體。必要 – 是
預設值 — 無
- RecordingDestination.Prefix
-
描述 – 錄製檔案的 S3 字首
允許的值 – 包含最多 979 個安全字元的有效字首名稱。如需安全字元的詳細資訊,請參閱《Amazon Simple Storage Service 使用者指南》中的安全字元。
必要 – 否
預設 – 無。如果未指定,則記錄會儲存到 S3 儲存貯體的根目錄。
- DurationInSeconds
-
描述 – 記錄的持續時間,以秒為單位
允許的值 – >0
必要 – 否
預設值 — 無
- SilenceDurationInSeconds
-
描述 – 靜音的持續時間,以秒為單位,之後錄音會停止。如果未指定,則會停用靜音偵測。
允許的值 – 【1;1000】
必要 – 否
預設值 – 200
- SilenceThreshold
-
描述 – 被視為「靜音」的雜訊等級。如果您未指定
SilenceDurationInSeconds,則會忽略此參數。參考值 (將雜訊等級和閾值視為靜音):
1-30dB 或以下,例如安靜的房間
100-40-50 dB,例如低語或安靜的辦公室
200-60dB,例如擁擠的辦公室
1000 – 75 dB,例如大聲人物或音樂
允許的值 – 【1;1000】
必要 – 否
預設值 – 200
- RecordingTerminators
-
描述 – 列出所有可用的錄製終止程式。
允許的值 – 來自 [123456789*0# 的單一數字和符號陣列】
必要 – 是
預設值 — 無
處理 ACTION_SUCCESSFUL 事件
當錄製結束時,Amazon Chime SDK SIP 媒體應用程式會呼叫 AWS Lambda 函數,並將 ACTION_SUCCESSFUL 事件連同調用結果傳遞給該函數。
{ "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://https://github.com/aws-samples/amazon-chime-sma-bridging