Work with exported recordings in AWS S3 bucket

Una vez configurada la integración de acciones masivas de grabación de AWS S3 , puede exportar las grabaciones que se encuentran en Genesys Cloud de forma masiva a su bucket de AWS S3. Esta exportación puede realizarse automáticamente a través de una política de QM, o explícitamente invocando la API de acción masiva de grabación. 

En este artículo se detalla el contenido que se exporta a su bucket de AWS S3.

Contenido del bucket AWS S3

Los archivos de grabación se exportan al bucket de AWS S3 en carpetas con la siguiente estructura:

s3://{bucket}/{organizationId}/year={year}/{month={mes}/day={día}/hour={hourOfDay}/conversation_id={conversationId}/ 

Marcador de posición Descripción
{cubo} El nombre del bucket S3.
{idOrganización} La identificación de la organización.
{year} El año en que comenzó la conversación.
{mes} El mes en el que comenzó la conversación (en dígitos).
{día} El día en que comenzó la conversación.
{hourOfDay}
La hora en la que comenzó la conversación.
{conversationId}
La identificación de la conversación.
Nota: La fecha y la hora de inicio de la conversación aparecen en hora UTC.

La carpeta contiene todos los archivos de grabación que se conservan durante la conversación. Cada archivo de grabación tiene una grabación, y el nombre del archivo es el ID de grabación.

Cada archivo de grabación tiene su correspondiente archivo de metadatos JSON. El nombre del archivo de metadatos JSON lleva el sufijo "_metadata.json".

Los metadatos pueden utilizarse para buscar la grabación exportada. Para más información, consulte el ejemplo Athena+Glue (un ejemplo de servicio de búsqueda de grabaciones).

El archivo de metadatos está en formato JSON con el siguiente esquema.

{
“$schema”: “http://json-schema.org/draft-04/schema#”,
“type”: “object”,
“properties”: {
“mediaType”: {
“description”: “Media Type (one of Call, Chat, Email, Message, Screen)”,
“type”: “string”
},
“mediaSubtype”: {
“description”: “The subtype of the recording (one of Trunk, Station, Consult, Screen)”,
“type”: “string”
},
“mediaSubject”: {
“description”: “The subject of the recording”,
“type”: “string”
},
“provider”: {
“description”: “Type of provider for the recording, for example edge”,
“type”: “string”
},
“userIds”: {
“description”: “List of users”,
“type”: “array”,
“items”: [
{
“type”: “string”
}
]
},
“startTime”: {
“description”: “Start time of the recordings”,
“type”: “string”
},
“endTime”: {
“description”: “End time of the recordings”,
“type”: “string”
},
“durationMs”: {
“description”: “Duration of the recording”,
“type”: “integer”
},
“initialDirection”: {
“description”: “Initial direction of the conversation (inbound/outbound)”,
“type”: “string”
},
“aniNormalized”: {
“description”: “ANI”,
“type”: “string”
},
“aniDisplayable”: {
“description”: “ANI in displayable form”,
“type”: “string”
},
“dnisNormalized”: {
“description”: “DNIS”,
“type”: “string”
},
“dnisDisplayable”: {
“description”: “DNIS in displayable form”,
“type”: “string”
},
“queueIds”: {
“description”: “List of queue IDs for the recording”,
“type”: “array”,
“items”: [
{
“type”: “string”
}
]
},
“wrapupCodes”: {
“description”: “Wrap-up codes for the conversation”,
“type”: “array”,
“items”: [
{
“type”: “string”
}
]
},
“organizationId”: {
“description”: “Unique ID for the conversation”,
“type”: “string”
},
“conversationId”: {
“description”: “Unique ID associated with the conversation”,
“type”: “string”
},
“conversationStartTime”: {
“description”: “Conversation’s start time”,
“type”: “string”
},
“conversationEndTime”: {
“description”: “Conversation’s end time”,
“type”: “string”
},
“recordingId”: {
“description”: “Unique ID for the recording”,
“type”: “string”
},
“filePath”: {
“description”: “Original path of the recording”,
“type”: “string”
},
“fileSize”: {
“description”: “Recording file size”,
“type”: “integer”
},
“messageType”: {
“description”: “Type of message platform from which the message originated, e.g., sms, twitter, line, facebook, whatsapp, webmessaging, open, instagram”,
“type”: “string”
},
“languageIds”: {
“description”: “Identifier on the language”,
“type”: “array”,
“items”: [
{
“type”: “string”
}
]
},
“screenInformation”: {
“description”: “Screen specific information, includes the screen ID, X and Y position, resolution information”,
“type”: “object”
}
},
“required”: [
“mediaType”,
“provider”,
“startTime”,
“endTime”,
“durationMs”,
“organizationId”,
“conversationId”,
“conversationStartTime”,
“conversationEndTime”,
“recordingId”,
“filePath”,
“fileSize”
]
}

Por ejemplo, una conversación telefónica con la grabación de pantalla activada puede tener el siguiente contenido de carpeta. 

En la imagen siguiente, el archivo .opus es el archivo de grabación de audio, el archivo .zip contiene el archivo de grabación de pantalla y los archivos .json son los metadatos JSON asociados a los respectivos archivos multimedia.

Haga clic en la imagen para ampliarla.

Una conversación digital puede tener el siguiente contenido de carpeta.

En la imagen siguiente, el archivo .zip contiene el archivo de grabación digital, y el archivo .json es el archivo JSON correspondiente.

Haga clic en la imagen para ampliarla.

Cifrado

Su bucket de S3 ya está configurado con AWS S3 Server-Side Encryption (SSE). Puede haber sido habilitado con claves de cifrado administradas por Amazon S3 (SSE-S3), o habilitado con las claves administradas por AWS, o claves proporcionadas por el cliente desde el servicio de administración de claves de AWS (SSE-KMS).

AWS S3 Server-Side Encryption (SSE) protege los archivos de grabación en reposo en el bucket de S3. Cuando los archivos se recuperan del bucket, AWS descifra automáticamente el contenido del archivo.

Si su sistema incluye una opción adicional Recording Export Encryption, deberá descifrar el contenido del archivo usted mismo después de recuperar los archivos del bucket de S3.

Nota: Genesys no admite el cifrado a nivel de objeto en grabaciones exportadas a través de PGP en la región FedRAMP. Se admite el cifrado del lado del servidor.