Jump to: navigation, search

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.

Important

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>

Important
If the useFullPathInMediaFileBackup option in the application.yaml file is set to true on the node performing the backup task, unzipped backup tasks cannot point to a remotely mounted Windows directory. By default, the useFullPathInMediaFileBackup option is set to false.

[+] 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.

Important
Genesys recommends that you do not use WinRAR to extract from a zipped archive because it strictly adheres to the Windows 260 character path limit, even if the extract to path is preceded by \\?\. Use 7-Zip instead.

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:
  • sipsAppName
  • ani
  • dnis
  • dateTime
  • calluuid
  • connid
  • agentId
  • id
  • recordDn
  • record
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:
  • Joined
  • Left
  • data
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:
  • agentID
  • callUuid
  • contact
  • monitors
  • muxed_mediaIds
  • region
  • virtualHeight
  • virtualWidth
  • originalVirtualHeight
  • originalVirtualWidth
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"
}

This page was last edited on November 12, 2019, at 20:44.
Comments or questions about this documentation? Contact us for support!