Contents
Archiving and Metadata
The Genesys Interaction Recording solution uses the Recording Crypto Server and Media Lifecycle Management system to back up store recording files.
Recording Crypto Server Archive Structure
The Recording Crypto Server, by default, is scheduled to generate an archive file every day based on the retention period. Each time the archival process is run, the output file is saved to a compressed file. The compressed file contains the recording files and the metadata. The following directory structure is the result of the expanded compressed file:
/{contact-center-id} /{tenant-name} /{year-month-day} /{recording-id} /recording.json /{mediaFiles}
- contact-center-id—The unique identifier of the contact center that is generated by Interaction Recording Web Services (or Web Services if you're using version 8.5.210.02 or earlier).
- tenant-name—The name of the tenant.
- year-month-day—The directory where the recording files are stored. There is a separate directory generated for each calendar day.
- recording-id—The unique recording identifier for each recording.
- recording.json—The recording metadata.
- mediaFiles—One or more recording files for the recording. The file name is referenced in the metadata. If encryption is enabled for this tenant, the recording is also encrypted in PKCS7 format. For an example of how to decrypt an encrypted recording file, see Decrypting Call Recordings.
Media Lifecycle Management Archive Structure
This section explains the archive structure that results when you use the Recording Lifecycle Scheduler component of Genesys Administrator Extension to create zipped and unzipped backup tasks.
Multiple rules that create backups should not be created with all of the following information configured identically:
- minAge and maxAge filter specs
- SS MM HH schedule time
- Filter type (for example, Voice)
- Location (for example, file://myArchives or blank)
Because these rules will all attempt to write to an archive file with the same file name. You can provide schedule times or location diversity to avoid this limitation.
Each zipped backup task exports the recording files to one compressed file, with the full path:
<archive export directory>/<Tenant Name>-<Filter Type>-<Max Age Filter>-<Min Age Filter>-<yyyyMMddHHmmss>.zip
Each unzipped backup task exports the recording files to one folder, with the full path:
<archive export directory>/<Tenant Name>-<Filter Type>-<Max Age Filter>-<Min Age Filter>-<yyyyMMddHHmmss>
[+] Show descriptions of the parameters.
If the useFullPathInMediaFileBackup option in the application.yaml file is set to false on the node performing the backup task (the default), the structure of the compressed file and the directory structure of the folder when using an unzipped backup is as follows:
<contact center id> +---<Tenant Name> +---<yyyy> +---<MM> +---<dd> +---<recording id> +---meta-data.json +---<MediaFiles> +---screen +---<screen recording id> +---meta-data.json +---<MediaFiles>[+] Show descriptions of the parameters.
If the useFullPathInMediaFileBackup option in the application.yaml file is set to true on the node performing the backup task, the structure of the compressed file and the directory structure of the folder when using an unzipped backup is as follows:
<contact center id> +---<Tenant Name> +---<yyyy> +---<MM> +---<dd> +---<recording id> +---meta-data.json +---<path from the originalMediaDescriptor> +---screen +---<screen recording id> +---meta-data.json +---<path from the originalMediaDescriptor>[+] Show descriptions of the parameters.
For more information about Media Lifecycle Management, click here.
Call Recording Metadata
Depending on which component you are using between Voice Processor and Recording Processor Script, recording metadata is built differently. The Voice Processor builds the recording metadata from GIM, and from the metadata from MCP for each recording file. The Recording Processor builds the recording metadata from ICON, and from the metadata from MCP for each recording file. The overall structure is in JSON format with the following mandatory core properties:
- id—The recording identifier.
- callerPhoneNumber—The caller DN (ANI).
- dialedPhoneNumber—The dialed number (DNIS).
- startTime—The start time of the voice call
- stopTime—The end time of the voice call.
- screenRecording—Indicates whether or not the call recording has one or more associated screen recordings.
- region—The physical location of the recording.
- mediaFile—A list of recording files associated with this recording.
- eventHistory—A list of call events associated with this recording.
The overall structure can also have the following optional core properties:
- callType—Identifies the call as either Unknown, Inbound, Outbound, Internal, or Consult.
mediaFile Properties
The following table describes the mediaFile properties.
Property | Data Type | Description | Required |
---|---|---|---|
mediaUri | string | Specifies the Interaction Recording Web Services (Web Services) URI for the media file. | Yes |
mediaPath | string | Specifies the Interaction Recording Web Services (Web Services) relative path for the media file. | Yes |
startTime | datetime | Specifies the start time of the media file. | Yes |
stopTime | datetime | Specifies the stop time of the media file. If MCP fails, this value will be the same as the startTime. | Yes |
mediaID | string | Specifies the media file name for the media file that is used by clients to refer to the same media file. MCP ensures that this value is globally unique. | Yes |
type | string | Specifies the MIME type of the media file. | Yes |
duration | string | Specifies the time duration of the media file. | No |
size | string | Specifies the size, in bytes, of the media file. | Yes |
tenant | string | Specifies the tenant that the recording belongs to. | Yes |
ivrprofile | string | Specifies the IVR Profile name that serviced the recording. | Yes |
parameters | object—The properties are parameters. | Specifies the list of additional metadata information provided by SIP Server and the client applications. The properties are:
|
Yes |
masks | array of objects—Each object contains the time and type property. | Specifies the time stamps of the pause/resume periods if the recording is masked by a client application. |
No |
pkcs7 | string | Specifies the PKCS7 envelope (in PEM, base 64 string format) if the media file is encrypted. | No |
certAlias | array of strings | Specifies a list of aliases to the encryption certificates if the media file is encrypted. | No (Yes if the pkcs7 property is present) |
partitions | array of strings | Specifies a list of partition names for the media file. | Yes |
accessgroups | array of strings | Specifies the access groups identified agent associated with the recording. | Yes |
channels | number | Specifies whether the recording audio is capture in mono (1) or stereo (2). | Yes |
eventHistory Properties
The following table describes the eventHistory properties.
Property | Data Type | Description | Required |
---|---|---|---|
occurredAt | datetime | Specifies the start time of the event. | Yes |
calluuid | string | Specifies the call UUID that the event belongs to. | Yes |
event | string | Specifies the event type:
|
Yes |
contact | object | Specifies the the contact information of the caller who joined or left the recording if the event is Joined or Left. | No |
data | object | The attached data included in the recording if the event is data. | No |
Metadata Format
The following code snippet illustrates the metadata format:
{ "mediaFiles": [ { "duration": "32662", "ivrprofile": "DefaultIVRProfile", "mediaDescriptor": { "data": { "bucket": "bucket2" }, "path": "prefixA/029UDMMJ90AOL8151CGQHG5AES000003_2015-06-24_20-19-03-00710158-100043FF-00000001.mp3", "storage": "storagelocation" }, "mediaId": "029UDMMJ90AOL8151CGQHG5AES000003_2015-06-24_20-19-03-00710158-100043FF-00000001.mp3", "parameters": { "agentId": "1001", "ani": "1000", "callUuid": "029UDMMJ90AOL8151CGQHG5AES000003", "connId": "007002684ae93003", "dateTime": "2015-06-24T20:19:03Z", "dnis": "1002", "id": "029UDMMJ90AOL8151CGQHG5AES000003_2015-06-24_20-19-03", "partitions": "salesasdfsaf", "recordDN": "1001", "rp.speechminer_auth": "user:password", "rp.speechminer_uri": "http://sm/interactionreceiver", "sipsAppName": "SIPS_vagrant.genesys.com" }, "size": "129888", "startTime": "2015-06-24T20:19:03Z", "stopTime": "2015-06-24T20:19:36Z", "tenant": "Environment", "type": "audio/mp3" } ] }[+] See another example.
Screen Recording Metadata
The overall structure of the screen recording metadata is in JSON format with the following core properties:
- id—The recording identifier and the start time of the recording.
- callRecordingId—The associated call recording identifier, if the screen recording is associated with a call recording.
- startTime—The start time of the screen recording.
- stopTime—The end time of the screen recording.
- mediaFile—A list of recording files associated with this recording.
- eventHistory—A list of call events associated with this recording.
- nonDelete—Indicates whether or not the screen recording is protected from deletion.
- region—The physical location of the recording.
mediaFile Properties
The following table describes the mediaFile properties.
Property | Data Type | Description | Required |
---|---|---|---|
mediaUri | string | Specifies the Interaction Recording Web Services (Web Services) URI for the media file. | Yes |
mediaPath | string | Specifies the Interaction Recording Web Services (Web Services) relative path for the media file. | Yes |
playPath | string | Specifies the relative path to play back a recording file. | Yes |
startTime | datetime | Specifies the start time of the media file. | Yes |
stopTime | datetime | Specifies the stop time of the media file. | Yes |
mediaId | string | Specifies the media file name for the media file that is used by clients to refer to the same media file. | Yes |
type | string | Specifies the MIME type of the media file. | Yes |
duration | string | Specifies the time duration of the media file. | No |
size | string | Specifies the size, in bytes, of the media file. | Yes |
parameters | object—The properties are parameters. | Specifies the list of additional metadata information provided by SIP Server and the client applications. The properties are:
|
Yes |
Metadata Format
The following code snippet illustrates the metadata format:
{ "id": "02A1MCKSD0CDNBRP1CGQHG5AES000003_2017-03-30_17-00-18", "callRecordingId": "02A1MCKSD0CDNBRP1CGQHG5AES000003" "startTime": "2017-03-30T17:00:18.000+0000", "stopTime": "2017-03-30T17:02:09.000+0000", "mediaFiles": [ { "mediaUri": http://vagrant.genesys.com:8081/api/v2/recordings/029UDMMJ90AOL8151CGQHG5AES000003/play/47693aa9-b098-46fb-b8cf-bbc494f59d68.mp4", "mediaPath": "/screen-recordings/02A1MCKSD0CDNBRP1CGQHG5AES000003_2017-03-30_17-00-18/content/47693aa9-b098-46fb-b8cf-bbc494f59d68.mp4", "playPath": "/screen-recordings/02A1MCKSD0CDNBRP1CGQHG5AES000003_2017-03-30_17-00-18/content/6a3082c4-6ff9-4133-84de-b6333d36505d.mp4", "startTime": "2017-03-30T17:00:18.000+0000", "stopTime": "2017-03-30T17:02:09.000+0000", "mediaId": "JzOVt5zQS5mcnS8ibDzFsA_02A1MCKSD0CDNBRP1CGQHG5AES000003_5d1c6dc1d96e4a178d672ddd019ac753_2017_03_30_17_00_19", "type": "video/mp4", "duration": "0:01:51", "size": "2594464", "parameters": { "muxed_mediaIds": [ "02A1MCKSD0CDNBRP1CGQHG5AES000003_5d1c6dc1d96e4a178d672ddd019ac753_2017_03_30_17_00_19", "02A1MCKSD0CDNBRP1CGQHG5AES000003_2017-03-30_17-00-18-0071018D-1014A2D5-00000001.mp3" ], "agentID": "1000", "virtualHeight": "749", "contact": { "userName": "agent1000", "lastName": "lastname", "firstName": "Firstname1000" }, "virtualWidth": "1920", "region": "us", "originalVirtualHeight": "1920", "originalVirtualWidth": "4920", "callUuid": "02A1MCKSD0CDNBRP1CGQHG5AES000003", "monitors": [ { "name": "monitor_0", "primary": true, "originalPositions": "[0, 0, 1024, 768]", "actualPositions": "[0, 0, 399, 299]" } ] } } ], "eventHistory": [], "nonDelete": true, "region": "us" }