

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

# RecordAudio
<a name="record-audio"></a>

SIP メディアアプリケーションが、特定の通話 ID からメディアを録音できるよう許可します。例えば、音声メールアプリケーションや、会議参加者のお知らせなどです。アプリケーションは、設定した時間に達するまで、またはユーザーがいずれかの `RecordingTerminators` を押すか、アプリケーションが無音を検出するまで録音を実行します。このような場合、アクションは、結果のメディアファイルを指定された S3 バケットに配置するようアプリケーションに指示します。S3 バケットは、SIP メディアアプリケーションと同じ AWS アカウントに属している必要があります。さらに、アクションは、Amazon Chime SDK Voice Connector サービスプリンシパル ([Amazon Chime SDK Voice Connector サービスプリンシパル](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html)) である `voiceconnector.chime.amazonaws.com` に、`s3:PutObject` および `s3:PutObjectAcl` の許可を付与する必要があります。

**注記**  
この機能を使用して作成された録音は、電子通信記録に関する法律または規制の対象となる場合があります。録音に関するすべての適用法を遵守することは、お客様とそのエンドユーザーの責任です。これには、録音セッションまたは通信のすべての参加者にセッションまたは通信が録音されていることを適切に通知し、同意を得ることを含みます。

次の例では、Amazon Chime SDK Voice Connector サービスプリンシパルに `s3:PutObject` および `s3:PutObjectAcl` 許可を付与します。

------
#### [ JSON ]

****  

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

------

次の例では、発信者がシャープキー (\$1) を押したとき、アクティビティなしで 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**  
*説明* – `CallDetails` に接続されている参加者のうちの 1 人の `ParticipantTag`。  
*使用できる値* – `LEG-A` または `LEG-B`  
*必須* – いいえ  
*デフォルト値* – 呼び出された `callLeg` の `ParticipantTag` (`CallId` を指定すると無視されます)

**RecordingDestination.Type**  
*説明* – 送信先のタイプ。S3 のみ。  
*使用できる値* – S3  
*必須* – はい  
*デフォルト値* – なし

**RecordingDestination.BucketName**  
*説明* – 有効な S3 バケット名。バケットは、[Amazon Chime SDK Voice Connector サービスプリンシパル](https://docs.aws.amazon.com/IAM/latest/UserGuide/reference_policies_elements_principal.html)である `voiceconnector.chime.amazonaws.com` にアクセスできる必要があります。  
*使用できる値* – Amazon Chime SDK が `s3:PutObject` および `s3:PutObjectAcl` アクションにアクセスできる有効な S3 バケット。  
*必須* – はい  
*デフォルト値* – なし

****RecordingDestination.Prefix****  
*説明* – 録音ファイルの S3 プレフィックス  
*使用できる値* – 979 文字までのセーフ文字を含む有効なプレフィックス名。セーフ文字の詳細については、Amazon Simple Storage Service ユーザーガイドの「[セーフ文字](https://docs.aws.amazon.com/AmazonS3/latest/userguide/object-keys.html#object-key-guidelines-safe-characters)」を参照してください。  
*必須* – いいえ  
*デフォルト* – なし。指定しない場合、録音は S3 バケットのルートに保存されます。

**DurationInSeconds**  
*説明* – 録音の長さ (秒単位)。  
*使用できる値* – 0 より大きい値  
*必須* – いいえ  
*デフォルト値* – なし

****SilenceDurationInSeconds****  
*説明* – 録音が停止するまでの無音の継続時間 (秒単位)。指定しない場合、無音検出は無効になります。  
*使用できる値* – [1;1000]  
*必須* – いいえ  
*デフォルト値* – 200

****SilenceThreshold****  
*説明* – 「無音」と見なされるノイズのレベル。`SilenceDurationInSeconds` を指定しない場合、このパラメータは無視されます。  

**基準値 (ノイズを無音として扱うためのノイズレベルとしきい値):**
+ 1 – 30 dB 以下 (静かな部屋など)
+ 100 – 40～50 dB (ささやきや静かなオフィスなど)
+ 200 – 60 dB (混雑したオフィスなど)
+ 1000 – 75 dB (大声や音楽など)
*使用できる値* – [1;1000]  
*必須* – いいえ  
*デフォルト値* – 200

**RecordingTerminators**  
*説明* – 使用可能なすべての録音ターミネータを一覧表示します。  
*使用できる値* – [123456789\$10\$1] の 1 桁の数字と記号の配列  
*必須* – はい  
*デフォルト値* – なし

## ACTION\$1SUCCESS イベントの処理
<a name="handle-action-successful"></a>

録音が終了すると、Amazon Chime SDK SIP メディアアプリケーションは AWS Lambda 関数を呼び出し、呼び出し結果とともに ACTION\$1SUCCESSFUL イベントを渡します。

```
{
    "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 関数を呼び出します。次の表に、発生する可能性のあるエラーメッセージを示します。


|  エラー  |  メッセージ  |  Reason  | 
| --- | --- | --- | 
|  `InvalidActionParameter`  |  アクションの `CallId` または`ParticipantTag` パラメータが無効です。 `DurationInSeconds` パラメータの値が無効です。 `SilenceDurationInSeconds` パラメータの値が無効です。 `SilenceThreshold` パラメータの値が無効です。 `RecordingDestination` パラメータの値が無効です。 S3 バケットへの録音のアップロード中にエラーが発生しました。  |  パラメータが無効です。  | 
|  `SystemException`  |  アクションの実行中にシステムエラーが発生しました。  |  アクションの実行中に、別のタイプのシステムエラーが発生しました。  | 

## ACTION\$1FAILED イベントの処理
<a name="handle-action-failed"></a>

アクションが通話レッグにメディアを記録できない場合、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](https://github.com/aws-samples/amazon-chime-sma-bridging)) を参照してください。