StartCallRecording - Amazon Chime SDK

StartCallRecording

StartCallRecording アクションは通話レッグの録音を開始します。SIP メディアアプリケーションで、オンデマンドまたは SIP イベントへのレスポンスで通話録音を開始します。

  • 通話のオンデマンド録音を開始するには、UpdateSipMediaApplication API を使用してアプリケーションを呼び出し、StartCallRecording アクションを返します。

  • SIP イベントに応答して通話録音を開始するには、そのアプリケーションで StartCallRecording アクションを返します。

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

注記

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

StartCallRecording アクションのリクエスト

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

{ "Version": "2012-10-17", "Statement": [ { "Type": "StartCallRecording", "Parameters": { "CallId": "call-id-1", "Track": "BOTH", "Destination": { "Type": "S3", "Location": "valid-bucket-name-and-optional-prefix" } } } ] }
CallId

説明 – AWS Lambda 関数呼び出しの CallDetails における、参加者の CallId

使用できる値 – 有効な通話 ID

必須 – はい

デフォルト値 – なし

Track

説明 - 通話録音の音声の Track

使用できる値 – BOTHINCOMING、または 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 バケット。

必須 – はい

デフォルト値 – なし

録音先の指定

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 パスの一般的な形式を示しています。この例では、myRecordingBucketLocation 値として使用します。

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 オブジェクトメタデータが含まれます。次の表に、サポートされている Amazon S3 オブジェクトメタデータを示します。

名前 説明

transaction-id

通話のトランザクション ID

call-id

AWS Lambda 関数呼び出しの CallDetails における参加者の CallId

recording-duration

通話録音時間 (秒)

recording-audio-file-format

インターネットメディアタイプとして表される通話録音音声オーディオファイル形式

Amazon S3 バケットのアクセス許可の付与

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

{ "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": "aws-account-id" } } } ] }

PSTN オーディオサービスは、SIP メディアアプリケーションの代わりに S3 バケットに対して読み書きします。「混乱した代理」の問題を回避するには、S3 バケットのアクセス許可を単一の SIP メディアアプリケーションに制限できます。

{ "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": "aws-account-id", "aws:SourceArn": "arn:aws:chime:region:aws-account-id:sma/sip-media-application-id" } } } ] }

アクション成功レスポンス

通話レッグで通話録音の開始が成功した場合、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": { ... } }

アクションエラーレスポンス

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

エラー メッセージ 理由

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) を参照してください。