AWS S3バケットにエクスポートされた録画の操作

AWS S3録画一括アクション統合 を設定すると、Genesys Cloudにある録画をAWS S3バケットに一括でエクスポートすることができます。 このエクスポートは、QMポリシーによって自動的に、または録画バルクアクションAPIを呼び出すことによって明示的に実行することができます。 

この記事では、AWS S3バケットにエクスポートされるコンテンツについて詳しく説明します。

AWS S3バケットの内容

録画ファイルは、AWS S3バケットに以下のような構造のフォルダにエクスポートされます。

s3://{bucket}/{organizationId}/year={year}/{month={month}/day={day}/hour={hourOfDay}/conversation_id={conversationId}/ (以下略 

プレースフォルダー 説明
{バケツ} S3バケット名。
{organizationId}。 組織IDです。
{年}です。 会話が始まった年。
{月}です。 会話が始まった月(数字で)。
{day} 会話が始まった日。
{時間/日}
会話が始まった時間帯。
{conversationId}を指定します。
会話のIDです。
注意: 会話を開始した日時がUTCタイムで表示されます。

このフォルダーには、会話中に保持されるすべての録音ファイルが含まれています。 各録画ファイルには1つの録画があり、ファイル名が録画IDになります。

各録音ファイルには、対応するJSONメタデータファイルがあります。 JSONメタデータのファイル名の末尾には"_metadata.json "が付きます。

メタデータは、エクスポートされた録画の検索に使用できます。 詳しくは、Athena+Glueの例 (録画検索サービスの例)をご覧ください。

メタデータファイルは、以下のスキーマを持つJSON形式である。

{
"$schema": "http://json-schema.org/draft-04/schema#"。
"タイプ "です。 "オブジェクト "です。
"プロパティ": {
"mediaType"。 {
"説明"。 "メディアタイプ(コール、チャット、メール、メッセージ、コールバック、スクリーンのうちの1つ)"。
"タイプ": "文字列"
},
"provider "を指定します。 {
"説明"。 "録画の提供者のタイプ(例:エッジ)"。
"タイプ": "文字列"
},
"userIds"。 {
"説明"。 "ユーザー一覧 "を表示します。
"タイプ": "配列",
"アイテム": [
{
"type "を指定します。 "文字列"
}
]
},
"startTime "を指定します。 {
"説明"。 "録画開始時刻"。
"タイプ": "文字列"
},
"endTime": {
"説明"。 "録画の終了時刻"。
"タイプ": "文字列"
},
"durationMs"。 {
"説明"。 "収録時間"。
"タイプ": "整数"
},
"initialDirection "を指定します。 {
"説明"。 "会話の初期方向(インバウンド/アウトバウンド)"。
"タイプ": "文字列"
},
"aniNormalized"。 {
"説明"。 "ANI "です。
"type "を指定します。 "文字列"
},
"aniDisplayable"。 {
"説明"。 "表示可能な形式のANI"。
"タイプ "です。 "文字列"
},
"dnisNormalized"。 {
"説明"。 "DNIS "です。
"タイプ "です。 "文字列"
},
"dnisDisplayable"。 {
"説明"。 "表示可能な形のDNIS"。
"タイプ "です。 "文字列"
},
"queueIds": {
"説明"。 "録画のキューIDのリスト"。
"タイプ": "配列",
"アイテム": [
{
"type "を指定します。 "文字列"
}
]
},
"wrapupCodes"。 {
"説明"。 "会話のためのラップアップコード"
"タイプ "です。 "配列",
"アイテム": [
{
"type "を指定します。 "文字列"
}
]
},
"organizationId "を指定します。 {
"説明"。 "会話のためのユニークなID"。
"タイプ"。 "文字列"
},
"conversationId "を指定します。 {
"説明"。 "会話に関連する一意のID"。
"タイプ"。 "文字列"
},
"conversationStartTime "を指定します。 {
"説明"。 "会話の開始時間"。
"タイプ": "文字列"
},
"conversationEndTime "を指定します。 {
"説明"。 "会話の終了時間"。
"タイプ": "文字列"
},
"recordingId "を指定します。 {
"説明"。 "録画のためのユニークなID"。
"タイプ": "文字列"
},
"filePath "を指定します。 {
"説明"。 "録画のオリジナルパス"。
"タイプ": "文字列"
},
"fileSize "を指定します。 {
"説明"。 "録画ファイルサイズ"。
"タイプ "です。 "整数"
},
"messageType "を指定します。 {
"説明"。 "メッセージの発信元のメッセージプラットフォームの種類。例:sms、twitter、line、facebook、whatsapp、webmessaging、open、instagram",
"タイプ"。 "文字列"
},
"languageIds"。 {
"説明"。 "言語に関する識別子"。
"タイプ "です。 "文字列"
},
"screenInformation"。 {
"説明"。 "画面固有の情報。画面 ID、X および Y 位置、解像度情報を含む"。
"タイプ"。 "オブジェクト"
}
},
"必須 "です。 [
"mediaType",
"プロバイダ",
"startTime",
"endTime",
"durationMs",
"organizationId",
"conversationId "を指定します。
"conversationStartTime"(会話開始時間)。
"conversationEndTime"。
"recordingId "を指定する。
"filePath "を指定する。
"ファイルサイズ"
]
}

例えば、画面録画を有効にした通話会話には、以下のようなフォルダの内容が含まれる場合があります。 

下の画像では、.opusファイルが音声録音ファイル、.zipファイルが画面録音ファイル、.jsonファイルがそれぞれのメディアファイルに関連するJSONメタデータです。

画像をクリックして拡大します。

デジタル会話は、以下のようなフォルダの内容を持つことがあります。

下の画像では、.zipファイルにデジタル録音ファイル、.jsonファイルに対応するJSONファイルが格納されています。

画像をクリックして拡大します。

暗号化

S3バケットには、すでにAWS S3 Server-Side Encryption (SSE) が設定されています。 Amazon S3が管理する暗号鍵(SSE-S3)で有効化されているか、AWSが管理する鍵で有効化されているか、AWS Key Management Service(SSE-KMS)からお客様提供の鍵 で有効化されている可能性があります。

AWS S3 Server-Side Encryption (SSE) は、S3バケットに静止している録画ファイルを保護します。 バケットからファイルを取得する際、AWSは自動的にファイルの内容を復号化する。

システムに追加で有効化されたRecording Export Encryption が含まれている場合、S3バケットからファイルを取得した後、自分でファイル内容を復号化する必要があります。

 メモ:   Genesys は、FedRAMP リージョンで PGP 経由でエクスポートされた録音のオブジェクト レベルの暗号化をサポートしていません。 サーバー側の暗号化がサポートされています。