Jump to: navigation, search

Search, Playback, and Delete API

When you use these APIs, you'll typically search and play back recordings as follows:

  1. Request a list of call recordings based on your query parameters.
  2. Receive a list of recordings in the response from Interaction Recording Web Services.
    Note: If your query generates many results, they are paginated and the response contains navigation links for the previous and next pages.
  3. Play back one or more of these recordings using the URI provided by the response, or inspect the attributes associated with each recording.

You can use the Delete Recording API to remove a recording from the Genesys Interaction Recording system.

Recording resource

The recording resource includes details about the recording, such as start and stop times, along with the event history and media files that make up the recording.

Sample data

   {
  "id":"011AP643CSAPR4FKQGQE31TAES00029V",
  "callerPhoneNumber":"8522001",
  "dialedPhoneNumber":"+14160000001",
  "startTime":"2015-09-10T16:58:22.000+0000",
  "stopTime":"2015-09-10T16:58:34.000+0000",
  "mediaFiles":[
    {
       "mediaUri":"http://htcc1.genesyslab.com/api/v2/recordings/011AP643CSAPR4FKQGQE31TAES00029V/play/4f82ee48-4fe4-40e1-961d-309ba6e38698.mp3",
       "mediaPath":"/recordings/011AP643CSAPR4FKQGQE31TAES00029V/play/4f82ee48-4fe4-40e1-961d-309ba6e38698.mp3",
       "playPath":"/recordings/011AP643CSAPR4FKQGQE31TAES00029V/play/4f82ee48-4fe4-40e1-961d-309ba6e38698.mp3",
       "startTime":"2015-09-10T16:58:22.000+0000",
       "stopTime":"2015-09-10T16:58:34.000+0000",
       "callUUID":"011AP643CSAPR4FKQGQE31TAES00029V",
       "mediaId":"011AP643CSAPR4FKQGQE31TAES00029V_2015-09-10_16-58-22-006B015F-1000427D-00000001.mp3",
       "type":"audio/mp3",
       "duration":"12523",
       "tenant":"Environment",
       "ivrprofile":"CallRecProfile",
       "size":"199296",
       "parameters":{
          "dnis":"+14160000001",
          "connId":"006a0269722cd93f",
          "ani":"8522001",
          "dateTime":"2015-09-10T16:58:22Z",
          "rp.speechminer_uri":"http://135.225.52.210/interactionreceiver",
          "recordDN":"+14160000001",
          "agentId":"+14160000001",
          "rp.speechminer_auth":"rpSys:111111",
          "sipsAppName":"SIP_Server",
          "id":"011AP643CSAPR4FKQGQE31TAES00029V_2015-09-10_16-58-22",
          "username":"screen1@genesys.com",
          "callUuid":"011AP643CSAPR4FKQGQE31TAES00029V"
       },
       "partitions":[
       ],
       "accessgroups":[
          "/"
       ]
    }
  ],
  "eventHistory":[
    {
       "occurredAt":"2015-09-10T16:58:22.000+0000",
       "calluuid":"011AP643CSAPR4FKQGQE31TAES00029V",
       "eventId":"2015-09-10 16:58:22.440_011AP643CSAPR4FKQGQE31TAES00029V",
       "event":"Data",
       "data":{
          "added":{
             "GSIP_RECORD":"ON",
             "GSIP_REC_FN":"011AP643CSAPR4FKQGQE31TAES00029V_2015-09-10_16-58-22"
          }
       }
    },
    {
       "occurredAt":"2015-09-10T16:58:34.000+0000",
       "calluuid":"011AP643CSAPR4FKQGQE31TAES00029V",
       "eventId":"2015-09-10 16:58:34.820_011AP643CSAPR4FKQGQE31TAES00029V",
       "event":"Data",
       "data":{
          "deleted":{
             "GSIP_RECORD":"ON"
          }
       }
    },
    {
       "occurredAt":"2015-09-10T16:58:22.000+0000",
       "calluuid":"011AP643CSAPR4FKQGQE31TAES00029V",
       "contact":{
          "type":"User",
          "phoneNumber":"+14160000001",
          "userName":"screen1@genesys.com",
          "firstName":"Screen",
          "lastName":"GIR"
       },
       "event":"Joined"
    },
    {
       "occurredAt":"2015-09-10T16:58:21.000+0000",
       "calluuid":"011AP643CSAPR4FKQGQE31TAES00029V",
       "contact":{
          "type":"External",
          "phoneNumber":"8522001"
       },
       "event":"Joined"
    },
    {
       "occurredAt":"2015-09-10T16:58:34.000+0000",
       "calluuid":"011AP643CSAPR4FKQGQE31TAES00029V",
       "contact":{
          "type":"User",
          "phoneNumber":"+14160000001",
          "userName":"screen1@genesys.com",
          "firstName":"Screen",
          "lastName":"GIR"
       },
       "event":"Left"
    },
    {
       "occurredAt":"2015-09-10T16:58:34.000+0000",
       "calluuid":"011AP643CSAPR4FKQGQE31TAES00029V",
       "contact":{
          "type":"External",
          "phoneNumber":"8522001"
       },
       "event":"Left"
    }
  ],
  "labels": [
    {
      "id": "646943bc-b9d2-48e7-9304-d9b4c92be2d2",
      "name": "Important",
      "type": "custom",
      "createTime": "2017-01-01T00:00:00.000+0000",
      "createUser": "Agent1"
    }
  ],
  "callType":"Inbound",
  "screenRecording": true,
  "region":"region1"
}

Resource details

Field Description Type
recording.id The ID of the call recording. string
recording.callerPhoneNumber The phone number of the caller in the recorded call. string
recording.dialedPhoneNumber The phone number dialed to initiate the recorded call. string
recording.startTime The time when the call recording starts. string
recording.stopTime The time when the call recording stops. string
recording.screenRecording Indicates whether or not the call recording has one or more associated screen recordings. boolean
recording.callType The type of call that was recorded ('Unknown', 'Internal', 'Inbound', 'Outbound', 'Consult'). string
recording.nonDelete Indicates whether or not the recording is protected from deletion. boolean
recording.region The region in which the call was recorded. string
recording.mediaFiles The collection of information for all the media files associated with the recording. array
recording.labels The collection of information for all the labels that have been added to the call recording.

Note: Labels are returned only when the value of the subresources parameter is * or labels.

array
recording.eventHistory The collection of information for all the events that occurred during the recorded call. array
recording.mediaFiles[].mediaUri This attribute is for internal Genesys use only. string
recording.mediaFiles[].mediaPath This attribute is for internal Genesys use only. string
recording.mediaFiles[].playPath The relative path to play back a recording file. If the recording is encrypted, it is decrypted before being played back to the user of the API.

Note: The user who uses playPath to playback an encrypted recording must be granted permission to decrypt.
The playPath path is /recordings/{recordingId}/decrypt/<mediaUUID>.mp3 where <recordingId> is the ID of the recording requested, and <mediaUUID> is a type 4 UUID internally assigned by Interaction Recording Web Services. Using playPath to decrypt a recording segment is described in Get Recording Media by ID API.

string
recording.mediaFiles[].startTime The start time for this media file. string
recording.mediaFiles[].stopTime The stop time for this media file. string
recording.mediaFiles[].callUUID The call UUID generated by the SIP Server for this media file. It may be different than the call UUID of other media files, in the case of multi-site transfer. string
recording.mediaFiles[].mediaId The unique ID for this media file generated by Genesys software. string
recording.mediaFiles[].type The MIME type of the media file. string
recording.mediaFiles[].duration The duration of the media file in milliseconds. string
recording.mediaFiles[].size The size of the media file in bytes. string
recording.mediaFiles[].tenant The tenant this media file belongs to. string
recording.mediaFiles[].ivrprofile The IVR Profile name that serviced this recording. string
recording.mediaFiles[].parameters This attribute is for internal Genesys use only. object
recording.mediaFiles[].masks A JSON array specifying the time stamps of the pause/resume periods if the recording is masked by a client application. Each object contains the time and type property. array
recording.mediaFiles[].partitions A JSON array of strings specifying the partition to which this media file belongs. For more information about partitions, see Access Control for Genesys Interaction Recording Users in the Genesys Interaction Recording Solution Guide. array
recording.mediaFiles[].accessgroups A JSON array of strings specifying the Agent Hierarchy group(s) to which this recording belongs. For more information about agent hierarchy and access groups, see Access Control for Genesys Interaction Recording Users in the Genesys Interaction Recording Solution Guide. array
recording.mediaFiles[].pkcs7 This attribute is for internal Genesys use only. string
recording.mediaFiles[].certAlias This attribute is for internal Genesys use only. array
recording.mediaFiles[].masks[].time The time of the masking event. string
recording.mediaFiles[].masks[].type The type of the masking event (paused, resume). string
recording.eventHistory[].occurredAt Specifies the time the event occurred. string
recording.eventHistory[].calluuid Specifies the Call UUID for the event. string
recording.eventHistory[].event The type of Event. It can be one of the following three values:
  • Joined
  • Left
  • Data
string
recording.eventHistory[].eventId An eventId used to identify the data event. string
recording.eventHistory[].contact A JSON object representing the contact information of the caller who joined or left the recording; if the event type is "Joined" or "Left". contact
recording.eventHistory[].contact.type A JSON object representing the contact information of the caller who joined or left the recording, if the event type is Joined or Left it can have one of the following values:
  • User
  • External
string
recording.eventHistory[].contact.phoneNumber The phone number for the caller. string
recording.eventHistory[].contact.userName The user name of the caller. string
recording.eventHistory[].contact.firstName The first name of the caller. string
recording.eventHistory[].contact.lastName The last name of the caller. string
recording.eventHistory[].data The key-value pairs to store additional information about the event if event type is "Data". string
recording.eventHistory[].eventHistoryData[].added A JSON object representing the key-value pairs associated to the added data event. object
recording.eventHistory[].eventHistoryData[].updated A JSON object representing the key-value pairs associated to the updated data event. object
recording.eventHistory[].eventHistoryData[].deleted A JSON object representing the key-value pairs associated to the deleted data event. object
recording.labels[].name The name of the label. string
recording.labels[].id The id of the label. string
recording.labels[].type The type of the label (Reserved or Custom). string
recording.labels[].createTime The time at which the label is created. string
recording.labels[].createUser The creator of the label. string
recording.labels[].content The key-value pairs to store additional information about the label. object

Search Recordings API

This request retrieves a list of recordings that are stored in the Genesys Interaction Recording (GIR) system.

Request URL /api/v2/recordings
HTTP Method GET
Required Features api-supervisor-recording

Prerequisites

To access the API, the user must be assigned a role of either "Administrator" or "Supervisor" in the Genesys Configuration system. For details, see Configuring Roles for Recording Users. The Genesys Interaction Recording API uses Basic HTTP Authentication. See RFC 2617 Section 2 for reference.

In addition, if the media files are encrypted, the user must be assigned the proper privileges to decrypt the media file in order to use the playPath URI to decrypt and play back the recording. For details, see Access Control in the Genesys Interaction Recording Solution Guide.

Recording privacy settings

For privacy reasons, Interaction Recording Web Services can mask individual fields in the recording metadata returned by the Search Recordings operation. This masking prevents the fields from being exposed to users with the Supervisor role. Masking does not apply to users with the Administrator role.

You can specify which fields to mask by using two settings in the recording contact-center settings group.

Important
You shouldn't mask fields that contain links — for example, mediaFiles[].mediaUri, mediaFiles[].mediaPath, and mediaFiles[].playPath.
Name Value
metadata.privacy.agent_fields A comma-separated list of all the metadata fields to hide if the user does not have permission to view the agent metadata fields. The default value is blank.
metadata.privacy.customer_fields A comma-separated list of all the metadata fields to hide if the user does not have permission to view the customer metadata fields. The default value is blank.

A user can GET, POST, PUT, and DELETE these settings at the contact center level with the /api/v2/settings/recording API using an admin account. For details about working with settings, see the Settings API.

Parameters

Important
You must include at least one of the following parameters; otherwise, Interaction Recording Web Services returns an error.
Parameter Value
callerPhoneNumber Retrieves all recordings for any call containing the specified "ani" attribute (the number from which the call was made). When no wildcard is used, the query result contains the recordings for the calls where there is an exact match of stored value (alphanumeric-only) and request parameter.

The request string can contain the * wildcard, which can substitute any number of any symbols in the request. Search is case sensitive and all non-alphanumeric characters except for * and ? are stripped away before the search is performed.

dialedPhoneNumber Retrieves all recordings for any call containing the specified "dnis" attribute (the number dialed by the caller). When no wildcard is used, the query result contains the recordings for the calls where there is an exact match of stored value (alphanumeric-only) and request parameter.

The request string can contain the * wildcard, which can substitute any number of any symbols in the request. Search is case sensitive an all non-alphanumeric characters except for * and ? are stripped away before the search is performed.

startTime Retrieves all recordings that started at or after the specified time. This is specified as the number of milliseconds since epoch.
stopTime Retrieves all recordings that ended at or before the specified time. This is specified as the number of milliseconds since epoch. Note: The endTime parameter corresponds with the stopTime field in the recording resource that's returned by the request.
userName Retrieves all recordings that involve a user with the first name, last name, or user name matching the specified query parameter. The query parameter is matched against the "contact" attribute for each item in the eventHistory array for each recording.

The request performs an exact match without any modifiers, but you can also:

  • Use the * character to perform a wildcard match
  • When you place two words in the query parameter, it’s an OR operation which means that the query returns all recordings involving a user with name matching either of the two words
    For example: .../api/v2/recordings?userName=bob alice&startTime=0
  • When you place two words in the query parameters with the word "AND" between them, it’s an AND operation which causes the query to return all recordings involving users with names matching all of the words
    For example: .../api/v2/recordings?userName=bob AND alice&startTime=0
  • You should escape the following reserved characters with a leading backslash: + - = && || > < ! ( ) { } [ ] ^ " ~ * ? : \ /
    For example, (1+1)=2 would be \(1\+1\)\=2.
    Note: A space can also be a reserved character.
userData Retrieves all recordings that have user data matching the specified query parameter. The query parameter is matched against the "data" attribute for each item in the eventHistory array for each recording. The match is against the "value" for each "data" attribute, not the "name".

The request performs an exact match without any modifiers, but you can also:

  • Use the * character to perform a wildcard match
  • When you place two words in the query parameter, it’s an OR operation which means that the query returns all recordings with user data values matching either of the two words
    For example: .../api/v2/recordings?userData=creditcard loan&startTime=0
  • When you place two words in the query parameters with the word "AND" between them, it’s an AND operation which causes the query to return all recordings with user data values matching all of the words
    For example: .../api/v2/recordings?userData=cancel AND creditcard&startTime=0
  • You should escape the following reserved characters with a leading backslash: + - = && || > < ! ( ) { } [ ] ^ " ~ * ? : \ /
    For example, (1+1)=2 would be \(1\+1\)\=2.
    Note: A space can also be a reserved character.
includeLabels Retrieves all recordings for any call that contains all of the labels in the comma-separated string of label names.

The request string is a comma-separated list of label names.
For example: includeLabels=comment_good,rate_good

excludeLabels Retrieves all recordings for any call that does not contain any of the labels in the comma-separated string of label names.

The request string is a comma-separated list of label names.
For example: excludeLabels=comment_bad,bad

Note: You can search for all call recordings that have one or more associated screen recordings by specifying includeLabels=__screenRecording. Similarly, you can find all call recordings that do not have an associated screen recording by specifying excludeLabels=__screenRecording.

Mask settings and query parameters

Interaction Recording Web Services doesn't allow query parameters for the Genesys Interaction Recording API if the metadata.privacy.agent_fields or metadata.privacy.customer_fields are defined in the recording settings group. This prevents the user from using a search query parameter as a way to find records that are directly associated with a private field even if the result is masked. If a search parameter matches a field listed in one of the settings above, then Interaction Recording Web Services returns an HTTP response code of 403. The following query parameters may appear in the metadata.privacy.agent_fields or metadata.privacy.customer_fields settings:

  • callerPhoneNumber
  • dialedPhoneNumber
  • userName
  • userData

Pagination

You can use the following optional request parameters to control the pagination of results from Interaction Recording Web Services.

Parameter Value
offset Specifies the index of the first record to be returned.
  • Default value is 0.
limit Specifies the number of records to be returned.
  • Maximum allowed value is 100.
  • Default value is 10.

Sample 1 - Simple query

Request

GET api/v2/recordings?startTime=1441065600000&offset=0&limit=100

Response

{
   "statusCode":0,
   "nextPath":"/recordings/?startTime=1441065600000&offset=100&limit=100",
   "nextUri":"http://cos6-vm01.us.int.genesyslab.com/api/v2/recordings?
    startTime=1441065600000&offset=100&limit=100",
   "recordings":[
      {
         "id":"011AP643CSAPR4FKQGQE31TAES0002A0",
         "callerPhoneNumber":"+19059680001",
         "dialedPhoneNumber":"+19059680002",
         "startTime":"2015-09-10T18:36:58.000+0000",
         "stopTime":"2015-09-10T18:37:30.000+0000",
         "mediaFiles":[
            {
               "mediaUri":"http://htcc1.genesyslab.com/api/v2/recordings/011AP643CSAPR4FKQGQE31TAES0002A0/play/45bb2966-9911-45fd-8167-a6581d04af98.mp3",
               "mediaPath":"/recordings/011AP643CSAPR4FKQGQE31TAES0002A0/play/45bb2966-9911-45fd-8167-a6581d04af98.mp3",
               "playPath":"/recordings/011AP643CSAPR4FKQGQE31TAES0002A0/play/45bb2966-9911-45fd-8167-a6581d04af98.mp3",
               "startTime":"2015-09-10T18:36:58.000+0000",
               "stopTime":"2015-09-10T18:37:30.000+0000",
               "callUUID":"011AP643CSAPR4FKQGQE31TAES0002A0",
               "mediaId":"011AP643CSAPR4FKQGQE31TAES0002A0_2015-09-10_18-36-57-006B015F-1000427F-00000001.mp3",
               "type":"audio/mp3",
               "duration":"33100",
               "tenant":"Environment",
               "ivrprofile":"CallRecProfile",
               "size":"528768",
               "parameters":{
                  "dnis":"+19059680002",
                  "connId":"006a0269722cd940",
                  "ani":"+19059680001",
                  "dateTime":"2015-09-10T18:36:57Z",
                  "rp.speechminer_uri":"http://135.225.52.210/interactionreceiver",
                  "agentId":"+19059680002",
                  "recordDN":"+19059680002",
                  "sipsAppName":"SIP_Server",
                  "rp.speechminer_auth":"rpSys:111111",
                  "id":"011AP643CSAPR4FKQGQE31TAES0002A0_2015-09-10_18-36-57",
                  "username":"agent2@genesys.com",
                  "callUuid":"011AP643CSAPR4FKQGQE31TAES0002A0"
               },
               "masks": [
                  {"time": "2015-09-10T18:37:22.034Z", "type", "paused"},
                  {"time": "2015-09-10T18:37:24.098Z", "type", "resume}
               ],
               "partitions":[
               ],
               "accessgroups":[
                  "/Newx"
               ]
            }
         ],
         "eventHistory":[
            {
               "occurredAt":"2015-09-10T18:36:58.000+0000",
               "calluuid":"011AP643CSAPR4FKQGQE31TAES0002A0",
               "eventId":"2015-09-10 18:36:58.347_011AP643CSAPR4FKQGQE31TAES0002A0",
               "event":"Data",
               "data":{
                  "added":{
                     "GSIP_RECORD":"ON",
                     "GSIP_REC_FN":"011AP643CSAPR4FKQGQE31TAES0002A0_2015-09-10_18-36-57"
                  }
               }
            },
            {
               "occurredAt":"2015-09-10T18:37:30.000+0000",
               "calluuid":"011AP643CSAPR4FKQGQE31TAES0002A0",
               "eventId":"2015-09-10 18:37:30.707_011AP643CSAPR4FKQGQE31TAES0002A0",
               "event":"Data",
               "data":{
                  "deleted":{
                     "GSIP_RECORD":"ON"
                  }
               }
            },
            {
               "occurredAt":"2015-09-10T18:36:57.000+0000",
               "calluuid":"011AP643CSAPR4FKQGQE31TAES0002A0",
               "contact":{
                  "type":"User",
                  "phoneNumber":"+19059680001",
                  "userName":"agent1@genesys.com",
                  "firstName":"Agent1",
                  "lastName":"Genesys"
               },
               "event":"Joined"
            },
            {
               "occurredAt":"2015-09-10T18:36:57.000+0000",
               "calluuid":"011AP643CSAPR4FKQGQE31TAES0002A0",
               "contact":{
                  "type":"User",
                  "phoneNumber":"+19059680002",
                  "userName":"agent2@genesys.com",
                  "firstName":"Agent2",
                  "lastName":"Genesys"
               },
               "event":"Joined"
            },
            {
               "occurredAt":"2015-09-10T18:37:30.000+0000",
               "calluuid":"011AP643CSAPR4FKQGQE31TAES0002A0",
               "contact":{
                  "type":"User",
                  "phoneNumber":"+19059680001",
                  "userName":"agent1@genesys.com",
                  "firstName":"Agent1",
                  "lastName":"Genesys"
               },
               "event":"Left"
            },
            {
               "occurredAt":"2015-09-10T18:37:30.000+0000",
               "calluuid":"011AP643CSAPR4FKQGQE31TAES0002A0",
               "contact":{
                  "type":"User",
                  "phoneNumber":"+19059680002",
                  "userName":"agent2@genesys.com",
                  "firstName":"Agent2",
                  "lastName":"Genesys"
               },
               "event":"Left"
            }
         ],
         "callType":"Internal",
         "screenRecording":true,
         "region":"region1"
      },
      {
         "id":"011AP643CSAPR4FKQGQE31TAES00029V",
         "callerPhoneNumber":"8522001",
         "dialedPhoneNumber":"+14160000001",
         "startTime":"2015-09-10T16:58:22.000+0000",
         "stopTime":"2015-09-10T16:58:34.000+0000",
         "mediaFiles":[
            {
               "mediaUri":"http://htcc1.genesyslab.com/api/v2/recordings/011AP643CSAPR4FKQGQE31TAES00029V/play/4f82ee48-4fe4-40e1-961d-309ba6e38698.mp3",
               "mediaPath":"/recordings/011AP643CSAPR4FKQGQE31TAES00029V/play/4f82ee48-4fe4-40e1-961d-309ba6e38698.mp3",
               "playPath":"/recordings/011AP643CSAPR4FKQGQE31TAES00029V/play/4f82ee48-4fe4-40e1-961d-309ba6e38698.mp3",
               "startTime":"2015-09-10T16:58:22.000+0000",
               "stopTime":"2015-09-10T16:58:34.000+0000",
               "callUUID":"011AP643CSAPR4FKQGQE31TAES00029V",
               "mediaId":"011AP643CSAPR4FKQGQE31TAES00029V_2015-09-10_16-58-22-006B015F-1000427D-00000001.mp3",
               "type":"audio/mp3",
               "duration":"12523",
               "tenant":"Environment",
               "ivrprofile":"CallRecProfile",
               "size":"199296",
               "parameters":{
                  "dnis":"+14160000001",
                  "connId":"006a0269722cd93f",
                  "ani":"8522001",
                  "dateTime":"2015-09-10T16:58:22Z",
                  "rp.speechminer_uri":"http://135.225.52.210/interactionreceiver",
                  "recordDN":"+14160000001",
                  "agentId":"+14160000001",
                  "rp.speechminer_auth":"rpSys:111111",
                  "sipsAppName":"SIP_Server",
                  "id":"011AP643CSAPR4FKQGQE31TAES00029V_2015-09-10_16-58-22",
                  "username":"screen1@genesys.com",
                  "callUuid":"011AP643CSAPR4FKQGQE31TAES00029V"
               },
               "partitions":[
               ],
               "accessgroups":[
                  "/"
               ]
            }
         ],
         "eventHistory":[
            {
               "occurredAt":"2015-09-10T16:58:22.000+0000",
               "calluuid":"011AP643CSAPR4FKQGQE31TAES00029V",
               "eventId":"2015-09-10 16:58:22.440_011AP643CSAPR4FKQGQE31TAES00029V",
               "event":"Data",
               "data":{
                  "added":{
                     "GSIP_RECORD":"ON",
                     "GSIP_REC_FN":"011AP643CSAPR4FKQGQE31TAES00029V_2015-09-10_16-58-22"
                  }
               }
            },
            {
               "occurredAt":"2015-09-10T16:58:34.000+0000",
               "calluuid":"011AP643CSAPR4FKQGQE31TAES00029V",
               "eventId":"2015-09-10 16:58:34.820_011AP643CSAPR4FKQGQE31TAES00029V",
               "event":"Data",
               "data":{
                  "deleted":{
                     "GSIP_RECORD":"ON"
                  }
               }
            },
            {
               "occurredAt":"2015-09-10T16:58:22.000+0000",
               "calluuid":"011AP643CSAPR4FKQGQE31TAES00029V",
               "contact":{
                  "type":"User",
                  "phoneNumber":"+14160000001",
                  "userName":"screen1@genesys.com",
                  "firstName":"Screen",
                  "lastName":"GIR"
               },
               "event":"Joined"
            },
            {
               "occurredAt":"2015-09-10T16:58:21.000+0000",
               "calluuid":"011AP643CSAPR4FKQGQE31TAES00029V",
               "contact":{
                  "type":"External",
                  "phoneNumber":"8522001"
               },
               "event":"Joined"
            },
            {
               "occurredAt":"2015-09-10T16:58:34.000+0000",
               "calluuid":"011AP643CSAPR4FKQGQE31TAES00029V",
               "contact":{
                  "type":"User",
                  "phoneNumber":"+14160000001",
                  "userName":"screen1@genesys.com",
                  "firstName":"Screen",
                  "lastName":"GIR"
               },
               "event":"Left"
            },
            {
               "occurredAt":"2015-09-10T16:58:34.000+0000",
               "calluuid":"011AP643CSAPR4FKQGQE31TAES00029V",
               "contact":{
                  "type":"External",
                  "phoneNumber":"8522001"
               },
               "event":"Left"
            }
         ],
         "callType":"Inbound",
         "screenRecording":true,
         "region":"region1"
      }
   ]
}

Sample 2 - Masked results

The following example shows hows masked results are returned when privacy settings are enabled.

Request

GET api/v2/recordings/recordings/00MT035FS4APRCEK4SL131TAES0000CF

Response

Masked results for the recording resource:

{
 "id": "00MT035FS4APRCEK4SL131TAES0000CH",
 "callerPhoneNumber": "*******",
 "dialedPhoneNumber": "*******",
 "startTime": "2015-09-24T15:25:29.000+0000",
 "stopTime": "2015-09-24T15:27:01.000+0000",
 "mediaFiles": [...],
 "eventHistory":[...],
 "callType": "Inbound",
 "screenRecording":false,
 "region": "region1"
 }

Masked results for mediaFiles:

"parameters": {
            "dnis": "*******",
            "connId": "008902697711d191",
            "ani": "*******",
            "dateTime": "2015-09-24T15:25:44Z",
            "rp.speechminer_uri": "http://135.225.52.210/interactionreceiver",
            "recordDN": "+19059680001",
            "agentId": "********", (agent id)
            "rp.speechminer_auth": "rpSys:111111",
            "sipsAppName": "SIP_Server",
            "id": "011AP643CSAPR4FKQGQE31TAES0002VE_2015-09-24_15-25-44",
            "username": "*************",
            "callUuid": "011AP643CSAPR4FKQGQE31TAES0002VE"
          }

Masked results for eventHistory:

"eventHistory": [
  {
          "occurredAt": "2015-09-24T15:25:44.000+0000",
          "calluuid": "011AP643CSAPR4FKQGQE31TAES0002VE",
          "contact": {
            "type": "User",
            "phoneNumber": "*******",  (extension)
            "userName": "*******",   (username)
            "firstName": "*******",  (name)
            "lastName": "*******"  (name)
},
          "event": "Joined"
        } ...]

Masked results for attachedData:

"eventHistory": [
        {
          "occurredAt": "2014-11-04T22:34:24.000+0000",
          "calluuid": "00PHK76MF0A2LDLR4SL131TAES00007V",
          "eventId": "04-NOV-14 1_00PHK76MF0A2LDLR4SL131TAES00007V",
          "event": "Data",
          "data": {
            "added": {
              "GSIP_RECORD": "*******",
              "GRECORD_PARTITIONS": "genesys_markham",
              "BusinessCall": "1",
              "GSIP_REC_FN": "00JKBG7S2OA57CEKQGQE31TAES000037_2014-11-04_22-34-09",
              "OtherTrunkName": "External01",
              "sip-iscc-cofid": "location=SIP_Switch;cofid=287",
              "RVQDBID": "",
              "WrapUpTime": "0"
            },
            "updated": {
              "GSIP_REC_FN": "00PHK76MF0A2LDLR4SL131TAES00007V_2014-11-04_22-34-25"
            },
            "deleted": {
              "GSIP_RECORD": "*******",
              "sip-iscc-cofid": "location=SIP_Switch;cofid=287",
              "WrapUpTime": "0"
} }

Sample 3 – Label Filter Query

Request

GET /recordings?includeLabels=comment&subresources=*

Response

{
  ...
  "mediaFiles": [...],
  "eventHistory": [...],
  "labels": [
    {
      "path": "/recordings/bf697521-3ffc-46f1-b840-f7230e940df3/labels/8c9a634f-343d-49b3-8322-b571be520b31",
      "name": "comment",
      "id": "8c9a634f-343d-49b3-8322-b571be520b31",
      "createTime": "2017-04-22T12:42:46.000+0000",
      "createUser": "supervisor",
      "content": {
        "time": "2016-04-22T12:42:44.000+0000",
        "text": "This is an awesome comment!"
      }
    }
  ],
  ...
}


Response

Field Description
statusCode Indicates whether the request was correctly handled. It returns 0 if the response was correctly handled by the server, and other values if it was not correctly handled by the server. See Return Values for details.
statusMessage For a status that is not 0, this message provides a human readable reason for reason of failure.
nextPath The relative path for the next page of results, if there are more recordings matching the query criteria beyond this result set. The Interaction Recording Web Services path prefix should be prepended to this to form the full URL to access the next page of results. This is provided as a convenience to quickly navigate between pages; it simply makes use of the offset and limit pagination parameters described above.
prevPath The relative path for the previous page of results, if this was not the first page in the result set. The Interaction Recording Web Services path prefix should be prepended to this to form the full URL to access the previous page of results. This is provided as a convenience to quickly navigate between pages; it simply makes use of the offset and limit pagination parameters described above.
nextUri This field is for internal Genesys use only.
prevUri This field is for internal Genesys use only.
recordings This is a JSON array containing the list of recordings satisfying the query parameters. See recording resource for details about the fields in each recording.

Get Recording by ID API

This request retrieves a specific recording that is stored in the Genesys Interaction Recording (GIR) system.

Request URL /api/v2/recordings/{recordingId}
HTTP Method GET
Required Features api-supervisor-recording

Prerequisites

To access the API, the user must be assigned a role of either Administrator or Supervisor in the Genesys Configuration system. For details, see Configuring Roles for Recording Users. The Genesys Interaction Recording API uses Basic HTTP Authentication. See RFC 2617 section 2 for reference.

In addition, if the media files are encrypted, the user must be assigned the proper privileges to decrypt the media file to use the playPath URI to decrypt and play back the recording. For details, see |Access Control in the Genesys Interaction Recording Solution Guide.

Recording privacy settings

For privacy reasons, Interaction Recording Web Services can mask individual fields in the recording metadata returned by the Get Recording by ID operation. This masking prevents the fields from being exposed to users with the Supervisor role. Masking does not apply to users with the Administrator role.

You can specify which fields to mask by using two settings in the recording contact-center settings group.

Important
You shouldn't mask fields that contain links — for example, mediaFiles[].mediaUri, mediaFiles[].mediaPath, and mediaFiles[].playPath.
Name Value
metadata.privacy.agent_fields A comma-separated list of all the metadata fields to hide if the user does not have permission to view the agent metadata fields. The default value is blank.
metadata.privacy.customer_fields A comma-separated list of all the metadata fields to hide if the user does not have permission to view the customer metadata fields. The default value is blank.

A user can GET, POST, PUT, and DELETE these settings at the contact center level with the /api/v2/settings/recording API using an admin account. For details about working with settings, see the Settings API.

Parameters

Parameter Mandatory Value
recordingId Yes The ID associated with the call recording that should be retrieved.
subresources No The comma-delimited string that contains the names of the sub-resources that should be retrieved along with the call recording. Currently, only labels are supported.

Valid Values:

  • * - Returns all the sub-resources.
  • labels - Returns the labels sub-resource.

Response

If the operation completes successfully, the specified recording is returned.
See recording resource for details about the fields in each recording.

HTTP Status Code Reason Response Model
200 The specified call recording was retrieved successfully. statusCode: Indicates whether the request was correctly handled. It returns 0 if the response was correctly handled by the server, and other values if it was not correctly handled by the server.

See Return Values for details.
statusMessage (string): For a status that is not 0, this message provides a human readable reason for reason of failure.

403 Forbidden to get the requested recording.
404 The specified recording cannot be accessed.
500 An error occurred during the retrieval of the call recording.

Get Recording Media by ID API

This request decrypts and retrieves the call recording media file identified by recordingId and mediaUUID.

Request URL /api/v2/recordings/{recordingId}/decrypt/{mediaUUID}.mp3
HTTP Method GET
Required Features api-supervisor-recording

api-recordings-decryption-proxying

Prerequisites

To access the API, the user must be assigned a role of Administrator, Supervisor, or Agent in the Genesys Configuration system. For details, see Configuring Roles for Recording Users. The Genesys Interaction Recording API uses Basic HTTP Authentication. See RFC 2617 section 2 for reference.

Parameters

The path /recordings/{recordingId}/decrypt/{mediaUUID}.mp3 is sourced from the recording.mediaFiles[].playPath property in a successful response to GET /recordings/{recordingId}, described in the Get Recording by ID API section.

Parameter Mandatory Value
recordingId Yes The ID of the call recording to retrieve.
mediaUUID Yes The UUID of the media file to retrieve.

Response

HTTP Status Code Reason Response Model
200 The requested call recording media file was decrypted and retrieved successfully. statusCode: Indicates whether the request was correctly handled. It returns 0 if the response was correctly handled by the server, and other values if it was not correctly handled by the server.

See Return Values for details.
statusMessage (string): For a status that is not 0, this message provides a human readable reason for reason of failure.

403 Forbidden to get the requested recording.
404 The specified recording or media file cannot be accessed.
500 An error occurred during the decryption and retrieval of the call recording media file.

Delete Recording by ID API

This request deletes a specific call recording along with its associated screen recordings and all the media files.

Request URL /api/v2/recordings/{recordingId}
HTTP Method DELETE
Required Features N/A

Prerequisites

To access the API, the user must be assigned a role of Administrator in the Genesys Configuration system. For details, see Configuring Roles for Recording Users. The Genesys Interaction Recording API uses Basic HTTP Authentication. See RFC 2617 section 2 for reference.

Parameters

Parameter Mandatory Value
recordingId Yes The ID of the call recording to delete.

Response

HTTP Status Code Reason Response Model
200 The call recording along with its associated screen recordings, and all their media files, were deleted successfully. statusCode: Indicates whether the request was correctly handled. It returns 0 if the response was correctly handled by the server, and other values if it was not correctly handled by the server.

See Return Values for details.
statusMessage (string): For a status that is not 0, this message provides a human readable reason for reason of failure.

403 Forbidden to delete the requested recording.
404 The recording to delete cannot be found.
500 An error occurred during the deletion of a call recording, its associated screen recordings, or the media files.
503 The recording database is read-only and therefore a call recording and its associated screen recordings cannot be deleted.

Feedback

Comment on this article:

blog comments powered by Disqus
This page was last modified on 21 September 2018, at 01:27.