

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

# StartCallRecording
<a name="start-call-recording"></a>

`StartCallRecording` アクションは通話レッグの録音を開始します。SIP メディアアプリケーションで、オンデマンドまたは SIP イベントへのレスポンスで通話録音を開始します。
+ 通話のオンデマンド録音を開始するには、`UpdateSipMediaApplication` API を使用してアプリケーションを呼び出し、`StartCallRecording` アクションを返します。
+ SIP イベントに応答して通話録音を開始するには、そのアプリケーションで `StartCallRecording` アクションを返します。

着信レッグ、発信レッグ、またはその両方のオーディオトラックを録音するかどうかを指定します。このセクションでは、`StartCallRecording` アクションの使用方法について説明します。

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

**Topics**
+ [StartCallRecording アクションのリクエスト](#request-start)
+ [録音先の指定](#recording-destination)
+ [Amazon S3 バケットのアクセス許可の付与](#grant-s3-perms)
+ [アクション成功レスポンス](#action-successful)
+ [アクションエラーレスポンス](#action-error)

## StartCallRecording アクションのリクエスト
<a name="request-start"></a>

次の例は、`BOTH` トラックの `StartCallRecording` アクションをリクエストする方法を示しています。

```
{
    "SchemaVersion": "1.0",
    "Actions": [
        {
            "Type": "StartCallRecording",
            "Parameters":
            {
                "CallId": "call-id-1",
                "Track": "BOTH",
                "Destination":
                {
                    "Type": "S3",
                    "Location": "valid-bucket-name-and-optional-prefix"
                }
            }
        }
    ]
}
```

**CallId**  
*説明* – `CallId` AWS Lambda 関数呼び出し`CallDetails`の の参加者の説明  
*使用できる値* – 有効な通話 ID  
*必須* – はい  
*デフォルト値* - なし

**Track**  
説明 - 通話録音の音声の `Track`。  
使用できる値 – `BOTH`、`INCOMING`、または `OUTGOING`  
*必須* – はい  
*デフォルト値* – なし

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

**Destination.Location**  
説明 - 有効な Amazon S3 バケットとオプションの Amazon S3 キープレフィックス。バケットは、Amazon Chime SDK Voice Connector サービスプリンシパル (voiceconnector.chime.amazonaws.com) へのアクセス許可を持つ必要があります。  
使用できる値 – Amazon Chime SDK が `s3:PutObject` および `s3:PutObjectAcl` アクションへのアクセスk許可を持つ有効な Amazon S3 バケット。  
*必須* – はい  
*デフォルト値* – なし

## 録音先の指定
<a name="recording-destination"></a>

Amazon Chime SDK は、Amazon S3 バケットに通話録音を配信します。バケットは AWS アカウントに属している必要があります。`StartCallRecording` アクションの `Destination` パラメータでバケットの場所を指定します。`Destination` パラメータの `Type` フィールドは `S3` でなければなりません。`Location` フィールドは、Amazon S3 バケットと、通話録音が配信されるオプションのオブジェクトキープレフィックスで構成されます。

SIP メディアアプリケーションは、指定された `Location`、通話レッグの日時、トランザクション ID、通話 ID を使用して Amazon S3 オブジェクトキーをフォーマットします。`StartCallRecording` アクションのレスポンスでは、完全な Amazon S3 オブジェクトキーが返されます。

`Location` フィールドに Amazon S3 バケットのみを指定すると、SIP メディアアプリケーションは Amazon S3 パスにデフォルトプレフィックス `Amazon-Chime-SMA-Call-Recordings` を追加します。SIP メディアアプリケーションでは、録音の整理に役立つように、通話の開始時刻の年、月、日も追加されます。次の例は、デフォルトプレフィックスが付いた Amazon S3 パスの一般的な形式を示しています。この例では、`myRecordingBucket` を `Location` 値として使用します。

```
myRecordingBucket/Amazon-Chime-SMA-Call-Recordings/2019/03/01/2019–03–01–17–10–00–010_c4640e3b–1478–40fb-8e38–6f6213adf70b_7ab7748e–b47d–4620-ae2c–152617d3333c.wav
```

次の例は、通話録音の Amazon S3 パスで表されるデータを示しています。

```
s3Bucket/Amazon-Chime-SMA-Call-Recordings/year/month/date/year-month-date-hour-minute-second-millisecond_transactionId_callId.wav
```

`Location` フィールドに Amazon S3 バケットとオブジェクトキープレフィックスを指定すると、SIP メディアアプリケーションはデフォルトプレフィックスの代わりに宛先 Amazon S3 パスのオブジェクトキープレフィックスを使用します。次の例は、プレフィックスが付いた通話録音 Amazon S3 パスの一般的な形式を示しています。例えば、myRecordingBucket/technicalSupport/english を `Location` として指定できます。

```
myRecordingBucket/technicalSupport/english/2019/03/01/2019–03–01–17–10–00–010_c4640e3b1478–40fb–8e38-6f6213adf70b_7ab7748e–b47d–4620–ae2c–152617d3333c.wav
```

次の例は、Amazon S3 パス内のデータを示しています。

```
s3Bucket/yourObjectKeyPrefix/year/month/date/year-month-date-hour-minute-second-millisecond_transactionId_callId.wav
```

Amazon S3 バケットに送信される録音には、通話レッグに関する追加の [Amazon S3 オブジェクトメタデータ](https://docs.aws.amazon.com/AmazonS3/latest/userguide/UsingMetadata.html)が含まれます。次の表に、サポートされている Amazon S3 オブジェクトメタデータを示します。


| 名前 | 説明 | 
| --- | --- | 
| transaction-id | 通話のトランザクション ID | 
| call-id |  AWS Lambda 関数呼び出しの CallDetails の参加者の CallIdCallId | 
| recording-duration | 通話録音時間 (秒) | 
| recording-audio-file-format | インターネットメディアタイプとして表される通話録音音声オーディオファイル形式 | 

## Amazon S3 バケットのアクセス許可の付与
<a name="grant-s3-perms"></a>

送信先の Amazon S3 バケットは、アプリケーションと同じ AWS アカウントに属している必要があります。さらに、Amazon Chime SDK Voice Connector サービスプリンシパル `voiceconnector.chime.amazonaws.com` に `s3:PutObject` および `s3:PutObjectAcl` 許可を付与する必要があります。次の例では、適切なアクセス許可を付与しています。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "SIP media applicationRead",
            "Effect": "Allow",
            "Principal": {
                "Service": "voiceconnector.chime.amazonaws.com"
            },
            "Action": [                
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Resource": "arn:aws:s3:::bucket-name/*",
	    "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "123456789012"
                }
            }
        }
    ]
}
```

------

PSTN オーディオサービスは、SIP メディアアプリケーションの代わりに S3 バケットに対して読み書きします。[「混乱した代理」の問題](https://docs.aws.amazon.com/IAM/latest/UserGuide/confused-deputy.html)を回避するには、S3 バケットのアクセス許可を単一の SIP メディアアプリケーションに制限できます。

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

****  

```
{
    "Version":"2012-10-17",		 	 	 
    "Statement": [
        {
            "Sid": "SIP media applicationRead",
            "Effect": "Allow",
            "Principal": {
                "Service": "voiceconnector.chime.amazonaws.com"
            },
            "Action": [                
                "s3:PutObject",
                "s3:PutObjectAcl"
            ],
            "Resource": "arn:aws:s3:::bucket-name/*",
	    "Condition": {
                "StringEquals": {
                    "aws:SourceAccount": "111122223333",
                    "aws:SourceArn": "arn:aws:chime:us-east-1:111122223333:sma/sip-media-application-id"
                }
            }
        }
    ]
}
```

------

## アクション成功レスポンス
<a name="action-successful"></a>

通話レッグで通話録音が正常に開始されると、SIP メディアアプリケーションは `ACTION_SUCCESSFUL` イベントタイプで AWS Lambda 関数を呼び出します。通話録音の場所がレスポンスで返されます。

```
{
    "SchemaVersion": "1.0",
    "Sequence": INTEGER,
    "InvocationEventType": "ACTION_SUCCESSFUL",
    "ActionData": {
        "Type" : "StartCallRecording",
        "Parameters": {
            "CallId": "call-id-1",
            "Track": "BOTH",
            "Destination": {
                "Type": "S3",
                "Location": "valid-bucket-name"
            }
        }
        "CallRecordingDestination": {
            "Type": "S3",
            "Location": "call-recording-bucket-and-key"
        }
    }
    "CallDetails": {
        ...
    }
}
```

## アクションエラーレスポンス
<a name="action-error"></a>

検証エラーの場合、SIP メディアアプリケーションは適切なエラーメッセージを使用して AWS Lambda 関数を呼び出します。次の表に、エラーメッセージを示します。




| エラー | メッセージ | Reason | 
| --- | --- | --- | 
| `InvalidActionParameter` | アクションの `CallId` パラメータが無効です。 | パラメータが無効です。 | 
| `SystemException` | アクションの実行中にシステムエラーが発生しました。 | アクションの実行中に、別のタイプのシステムエラーが発生しました。 | 

アクションが通話レッグでメディアを録音できない場合、SIP メディアアプリケーションは、`ActionFailed` イベントタイプで AWS Lambda 関数を呼び出します。

次の例は一般的なエラーレスポンスを示しています。

```
{
    "SchemaVersion": "1.0",
    "Sequence": 5,
    "InvocationEventType": "ACTION_FAILED",
    "ActionData": {
        "Type" : "StartCallRecording",
        "Parameters": {
            "CallId": "call-id-1",
            "Track": "BOTH",
            "Destination": {
                "Type": "S3",
                "Location": "valid-bucket-name"
            }
        }
        "Error": "NoAccessToDestination: Error while accessing destination"
    }
    "CallDetails": {
        ...
    }
}
```

GitHub の実例を参照してください: [https://github.com/aws-samples/amazon-chime-sma-on-demand-recording](https://github.com/aws-samples/amazon-chime-sma-on-demand-recording)