|
|
Line 59: |
Line 59: |
| | <tt><Installation Directory>/target</tt> | | | <tt><Installation Directory>/target</tt> |
| |}<br> | | |}<br> |
− | Specify the following parameters only if the machine running RCBS cannot connect directly to Amazon S3 or the Interaction Recording Web Services address.
| |
− | {|
| |
− | ! '''Parameter Name'''
| |
− | ! '''Description'''
| |
− | ! '''Example Value'''
| |
− | |-
| |
− | | awsProxyHost
| |
− | | Indicates the proxy host address to be used for Amazon Web Services. Specify only the host name or IP address.
| |
− | | <tt>10.0.1.31</tt>
| |
− | |-
| |
− | | awsProxyPort
| |
− | | Indicates the proxy port to be used for the corresponding '''awsProxyHost''' parameter to connect to Amazon Web Services.
| |
− | | <tt>8080</tt>
| |
− | |-
| |
− | | gwsProxyHost
| |
− | | Indicates the proxy host address to be used for Interaction Recording Web Services. The format is <tt><nowiki>http://proxyaddress</nowiki></tt>.
| |
− | |<tt> <nowiki>http://10.0.1.31</nowiki></tt>
| |
− | |-
| |
− | | gwsProxyPort
| |
− | | Indicates the proxy port to be used for the corresponding '''gwsProxyHost''' parameter to connect to Interaction Recording Web Services.
| |
− | | <tt>8080</tt>
| |
− | |}
| |
− |
| |
| ==Launch the Recording Cloud Backup Service== | | ==Launch the Recording Cloud Backup Service== |
| | | |
Recording Cloud Backup Service
The Recording Cloud Backup Service (RCBS) allows you to make a backup copy of your Genesys Interaction Recording voice files (some or all) prior to their automated deletion as per the Cloud retention policy. All recordings will be deleted when maximum retention date is reached. Contact your Genesys professional for more details about your configured retention policy. It is strongly recommended that you create backup copies several weeks prior to the expected deletion date.
Important
- RCBS connects to Genesys PureEngage Cloud with the HTTPS protocol. The address is provided by Genesys Customer Care when the software is provided. This connection occurs through the Internet and the recording metadata is sent through this connection.
- RCBS connects to the Amazon S3 Service over HTTPS. This connection occurs through the Internet and encrypted recording files are sent through this connection. The S3 address is provided by Genesys Customer Care when the software is provided.
- RCBS does not support MPLS.
Prerequisites
Before you can install and use the Recording Cloud Backup Service on your desktop, verify that you have the following information. Your IT department or your Genesys professional can help you get this information.
- Windows Server 2008/2012 64-bit or Red Hat Enterprise Linux AS 6 Operating System with admin privileges (4 GB RAM, minimum 20 GB HD).
- The Recording Cloud Backup Service software (minimum version 8.5.2xx.xx).
- The target directory or shared folder in your environment to download the recording files to—for example, C:/target_directory (this is for the targetDir parameter).
- The private key you used to initially configure the tenant for recording file encryption, so that those recording files can be decrypted (this is for decrypting the downloaded files).
- The name of your Platform Administration tenant administrator account – (this is for the GWS_USERNAME environment variable). Usernames should be in the format username@customer_tenant.com.
- The password for your Platform Administration tenant administrator account – (this is for the GWS_PASSWORD environment variable).
- The path to your Java installation directory (for example, /usr/java/jre1.7.0_79) (this is for the JAVA_HOME environment variable). Java 7 is the current supported version.
- Genesys will provide you with the following information:
- The Interaction Recording Web Services URL to access the recording metadata—for example, https://example.com/api/v2 (this is for the gwsUriPrefix parameter).
- The access ID for the S3 storage, used to gain access to the recordings – (this is for the AWS_ACCESS_KEY_ID environment variable).
- The secret access key for the S3 storage, used to gain access to the recordings – (this is for the AWS_SECRET_ACCESS_KEY environment variable).
Request RCBS functionality
To request RCBS functionality, create a Salesforce case to request delivery of the software. Customer Care will provide an FTP download link to the software, and they will be in touch to request:
- The public IP ranges for the network where the RCBS client software will be installed and from where access to recordings will be established.
- A public PGP key so the Genesys Operations team can securely transfer the S3 storage access credentials to you, which are needed by the RCBS to access the recording storage location.
Configure the Recording Cloud Backup Service
After you have installed your software, you can configure the parameters needed to run the service in the config.properties file.
Locate your config.properties file, usually found in the Recording Cloud Backup Service installation directory, edit the file with a text editor, and set the following parameters:
Parameter Name
|
Description
|
Example Value
|
gwsUriPrefix
|
The URL prefix of Interaction Recording Web Services where the metadata for the recording files are retrieved from. This is a mandatory parameter and will be provided by Genesys.
|
https://example.com/api/v2
|
maxAge
|
All recordings newer than the specified maxAge value, in days, are downloaded. You can specify any integer greater than or equal to 0 (0 is any age). Defaults is 2 which means that you retrieve all recordings from the last 2 days. If recordings have already been downloaded, they will not be downloaded again.
Note: RCBS allows a one-time download of past recordings given a specific time range. Refer to the minAge parameter for details on how to use the one-time download.
|
2
|
targetDir
|
The directory where the recordings are downloaded to. This folder can be anywhere on the system as long as the account running the software has permission to write to the folder.
Note:
- You must use the directory separator "/" (forward-slash) instead of "\" (back-slash) on both Windows and Linux.
- RCBS supports the use of the UNC path for the targetDIR. For example, targetDir = //server_name/path.
|
<Installation Directory>/target
|
Launch the Recording Cloud Backup Service
Once configured, before running the Recording Cloud Backup Service from the command line, set the following environment variables that correspond to your username/password and the given AWS keys:
- GWS_USERNAME
- GWS_PASSWORD
- AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY
When the environment variables are set, access the RCBS installation directory CD (<installationfolder>) and use the following command line to start RCBS:
java –jar rp_clouddownload.jar –config config.properties
Important
Do not copy and paste the command from this document. Instead, manually type the command.
The tool exits when the backup is complete. Check your targetDir to ensure that the expected recordings have been downloaded.
For periodic downloads, Genesys recommends creating either a Linux cronjob, or scheduling a Windows task.
How to schedule a Windows task
For information on how to schedule or manage your tasks in Windows, see the
Windows document. Don't forget to set your environment variables.
How to create a Linux cronjob
The following example illustrates how to configure the “crontab –e” for setting up the cronjob on Linux:
AWS_ACCESS_KEY_ID=<access_id>
AWS_SECRET_ACCESS_KEY=<access_key>
GWS_PASSWORD=<gws_password>
GWS_USERNAME=<gws_username>
30 4,10,16,22 * * * (cd <installation_folder>; java -jar rp_clouddownload.jar -config config.properties)
Replace the above <access_id>, <access_key>, <gws_password>, <gws_username>, <installation_folder> with the actual values, and the job would be executed 4 times daily at 4:30, 10:30, 16:30 and 22:30.
Configuring your environment
Add all of the following to the environment variables, for the system from which you will be launching RCBS:
- JAVA_HOME
- AWS_ACCESS_KEY_ID
- AWS_SECRET_ACCESS_KEY
- GWS_USERNAME
- GWS_PASSWORD
Install on Windows
Locate your software in the installation directory, and click setup.exe to start the Genesys Installation Wizard.
Follow through the wizard until finished making sure that you make note of the installation directory.
Check the installation directory and verify that the config.properties files is available.
Install on Linux
In the installation directory, at the prompt, type ./install.sh.
Let the script install your software.
Decrypt the downloaded files
You will use OpenSSL to decrypt your recording files. You can download the software and following the instructions
here.
To decrypt the downloaded files that are in encrypted format, use the following OpenSSL command:
openssl cms –decrypt –inform DER -in <encrypted.file.bin> -binary -inkey <private_key_file> –out <outputfile>
where:
<encrypted.file.bin> is the file to be decrypted
<private_key_file> is the private key file
<outputfile> is the file that would be written after decryption
Important
- When working with Windows, the OpenSSL binaries can be downloaded from:
OpenSSL Binaries Distribution or
Gnuwin32 OpenSSL
- Windows binaries do not have cms enabled by default. For that reason, when working in a Windows environment use smime instead of cms in the command. For example, openssl smime -decrypt –inform DER -in <encrypted.file.der> -inkey <private_key_file> –out <outputfile>.
Advanced configuration
If you are an advanced user, you can change the behavior of the Recording Cloud Backup Service by changing the values of the parameters in the config.properties file.
[+] Show advanced parameters.
Parameter Name
|
Description
|
Example Value
|
downloadMode
|
Determines if RCBS is run in multithreaded mode and indicates whether recordings are downloaded in a serial or parallel manner. The default value is multithread (that is, enabled). This parameter is optional. If this parameter is set to single, RCBS will run in single-threaded mode.
|
multithread
|
encryptionFormat
|
The cipher to use if the encryption is performed by the download tool. The supported values are AES-128 or AES-256. The default value is AES-128. Note: If AES-256 is used, the JCE unlimited Strength Jurisdiction Policy File must be installed. Configure this parameter if the certificate parameter is set.
|
AES-128
|
gwsRecordingsUri
|
The path to the recording API. Do not change the path from the default setting unless instructed to by Genesys This parameter is optional.
|
/recordings
|
gwsSettingsUri
|
The path to the settings API. Do not change the path from the default setting unless instructed to by Genesys. This parameter is optional.
|
/me/settings/rcbs
|
mediaTypePattern
|
Indicates the file types that will be downloaded by RCBS in a regular expression. To only download MP3, set this value to audio\/mp3. This parameter is optional. The default value is audio\/mp3|video\/mp4. This value will download both audio and video files.
|
audio\/mp3|video\/mp4
|
metadataOnly
|
Indicates whether to download the metadata with the recording files. If set to true, the metadata is downloaded without the recordings. You do not need S3 credentials when using this option. Default value is false.
|
false
|
minAge
|
All recordings older than the specified minAge value, in days, are downloaded. You can specify any integer greater than or equal to 0 (0 is any age). Defaults is 0 which means that all of the latest recordings are retrieved.
If the value starts with P, the ISO 8601 format is used—for example, P[n]Y[n]M[n]DT[n]H[n]M[n]S can be used to specify the number of days/hours/minutes/etc. If you specify a minimum age of PT30M, all recordings that are older than a half hour ago are included in processing. If you specify a minimum age of P30D, all recordings older than 30 days are included in processing. The minAge value must be less than the maxAge value.
Note:
- This parameter is not required, and if you set it to 0, you will always get the latest up-to-date recordings. Use this parameter with caution to avoid missing recording files.
- For a one-time download of past recordings, you need to express the combination of minAge and maxAge parameters as a date range relative to now. For example,
minAge = P7DT1H
maxAge = P7DT3H
As a result, you will receive recordings from within a range of 7 days from 1 hour ago up to 7 days 3 hours ago.
The format of this string is an ISO8601 time duration string that can be set to the exact minute. To do a one-time download, we recommend that you create a copy of the config.properties file to make the changes to minAge and maxAge. When you execute RCBS, the copy of the configuration (for example, new_config.properties), will use the following command: java -jar rp_clouddownload.jar -config new_config.properties
|
0
|
minDate
|
The absolute date, in the YYYY-MM-DD format (in GMT), to retrieve the recordings from. When specified, this value would be used as the minAge. Alternatively, the epoch time value can be specified instead of the YYYY-MM-DD format. This parameter is optional.
|
2015-07-31 Or 1438300800000
|
maxDate
|
The absolute date, in the YYYY-MM-DD format (in GMT), to retrieve the recordings from. When specified, this value would be used as the maxAge, and override the local storage's last recording endtime's value (last_recording_endtime.txt). Alternatively, the epoch time value can be specified instead of the YYYY-MM-DD format. This parameter is optional.
|
2015-07-31 Or 1438300800000
|
numThreads
|
Indicates the number of threads in RCBS that handle the post-processing of media files. This parameter is optional.
numThreads is only used when downloadMode is set to multithread.
|
4
|
overlap
|
The amount of time, in hours, before the maxAge value to be re-scanned on subsequent batch downloads. This is used to help catch delayed media files that are added to interaction records after the previous run of the RCBS. The default value is 6.
If the value starts with P, the ISO 8601 format is used—for example, P[n]Y[n]M[n]DT[n]H[n]M[n]S can be used to specify the number of days/hours/minutes/etc. If you specify an overlap of P6D, all recordings from the last six days are re-scanned.
|
6
|
rcbsInstanceId
|
When multiple instances of RCBS are deployed, rcbsInstanceId represents the current RCBS instance ID that shares the overall load. rcbsInstanceId starts at 0, up to totalRcbsInstances - 1. For example, if the download load was distributed across 4 instances of a running RCBS process, then totalRcbsInstances should be set to 4. For each RCBS's configuration, assign rcbsInstanceId 0 for the first RCBS instance, rcbsInstanceId 1 for the second RCBS instance, rcbsInstanceId 2 for the third RCBS instance, and rcbsInstanceId 3 for the fourth RCBS instance. All RCBS instances should have the same minAge and maxAge configuration. This parameter is optional.
|
0
|
totalRcbsInstances
|
The total number of RCBS instances deployed; that is, the number of instances of RCBS that will be deployed to share the downloaded recordings in the same period. This parameter must be used with the rcbsInstanceId configuration parameter. This parameter is optional.
Note: If running multiple instances of RCBS on the same machine, each RCBS must be started from a different installation directory, and targetDir for each instance must point to a different output folder. RBCS has a built-in protection mechanism to prevent multiple instances from writing to the same directory; the second instance will terminate immediately if they share the same path.
|
4
|
recordingFolderFormat
|
The directory structure for storing the recordings. Default value is in the yyyy/MM/dd/HH format which means the top level folder is year, subfolder is month, then date, then hour. Note the directory separator "/" (forward-slash) must be used instead of "\" (back-slash) on both Windows and Linux.
|
yyyy/MM/dd/HH
|
shardBy
|
Controls the length of time (in days), within which the RCBS delivers the query to GWS. The default value is 1 day. For example, if the minAge and maxAge is 10 days and the shardBy value is 1 day, RCBS will download the recording and metadata one day at a time.
If the minAge and maxAge value is smaller than the shardBy value, the shardBy value will be ignored.
Note: shardBy is only relevant to version 8.5.241.13 or later.
|
1
|
skipLastRecordingCheck
|
Indicates whether to check for the last completed download time. If set to true, the last_recording_endtime.txt is not processed, and the maxAge takes effect. Default is false. By default, the last_recording_endtime.txt file is written after each download has completed successfully. The next time when the download tool starts, it checks to see if the last_recording_endtime.txt file is older than the specified maxAge parameter. If it is, the tool uses the value from the last_recording_endtime.txt instead of the configured maxAge value.
For example, the download tool is scheduled to run daily with maxAge set to 2 days. If the server was offline for three days, it is replaced with the last_recording_endtime.txt file check, the tool downloads all the recordings that were missed. This parameter is used to disable this recovery behavior.
|
false
|
usePayloadSigning
|
Configures whether payload signing is used during the file transfer from Amazon S3. Disabling payload signing improves performance. To enable, set to true. Set to false (the default) to disable.
|
false
|
Recording metadata
Metadata is organized by records and can be used for finding specific calls from a larger downloaded group of recordings (for example, by searching for a particular string of text, perhaps the ‘callerPhoneNumber’). A record represents an single call interaction which may contain multiple calls and recording segments. A metadata record is uniquely identified (per switch) by a CallUUID (GUID).
The metadata record is stored in JSON format and contains three main sections within the top level object.
- The interaction level attributes (the top level object's attributes)
- The mediaFiles list—A list of media files connected to the call interaction
- The eventHistory list—A list of call events including attached data events and agent left and join events.
[+] Show the properties and examples
Metadata properties
Property
|
Description
|
Id
|
The CallUUID for the recording interaction.
|
callerPhoneNumber
|
The callers phone number.
|
dialedPhoneNumber
|
The dialed phone number.
|
startTime
|
The start time of the call.
|
stopTime
|
The end time of the call.
|
region
|
The region of the call.
|
mediaFiles
|
A list of media file records. See the mediaFile properties.
|
eventHistory
|
The events attached to the call. See the eventHistory properties.
|
mediaFile properties
The following table describes the mediaFile properties.
Property
|
Data Type
|
Description
|
Required
|
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
|
time
|
Specifies the time duration of the media file.
|
No
|
size
|
number
|
Specifies the size, in bytes, of the media file.
|
No
|
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:
- username
- sipsAppName
- ani
- dnis
- dateTime
- connid
- agentId
- id
- 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
|
certAlias
|
array of strings
|
Specifies a list of aliases to the encryption certificates if the media file is encrypted.
|
No
|
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:
{
"id" : "011AP643CSAPR4FKQGQE31TAES0001TH",
"callerPhoneNumber" : "8522001",
"dialedPhoneNumber" : "+14160000001",
"startTime" : "2015-09-01T16:42:59.000+0000",
"stopTime" : "2015-09-01T16:43:36.000+0000",
"callType" : "Inbound",
"region" : "region1",
"mediaFiles" : [ {
"startTime" : "2015-09-01T16:42:59.000+0000",
"stopTime" : "2015-09-01T16:43:10.000+0000",
"callUUID" : "011AP643CSAPR4FKQGQE31TAES0001TH",
"mediaId" : "011AP643CSAPR4FKQGQE31TAES0001TH_2015-09-01_16-42-58-006B015E-10003E55-00000001.mp3",
"type" : "audio/mp3",
"duration" : "11595",
"tenant" : "Environment",
"ivrprofile" : "CallRecProfile",
"size" : "184896",
"parameters" : {
"id" : "011AP643CSAPR4FKQGQE31TAES0001TH_2015-09-01_16-42-58",
"dnis" : "+14160000001",
"username" : "screen1@genesys.com",
"connId" : "006a0269722cd7b1",
"callUuid" : "011AP643CSAPR4FKQGQE31TAES0001TH",
"ani" : "8522001",
"dateTime" : "2015-09-01T16:42:58Z",
"recordDN" : "+14160000001",
"agentId" : "+14160000001",
"sipsAppName" : "SIP_Server"
},
"certAlias" : [ "rcs_Tenant_21-86_GIR_Team:214:CN=gir_21-86,
E=arun_sundar.n@genesys.com,OU=gir_gcloud,O=Genesys,
L=Chennai,ST=TN,C=IN:2" ],
"partitions" : [ ],
"accessgroups" : [ "/" ],
"channels" : 2
}, {
"startTime" : "2015-09-01T16:43:11.000+0000",
"stopTime" : "2015-09-01T16:43:36.000+0000",
"callUUID" : "011AP643CSAPR4FKQGQE31TAES0001TH",
"mediaId" : "011AP643CSAPR4FKQGQE31TAES0001TH_2015-09-01_16-43-11-006B015E-10003E57-00000001.mp3",
"type" : "audio/mp3",
"duration" : "25426",
"tenant" : "Environment",
"ivrprofile" : "CallRecProfile",
"size" : "406080",
"parameters" : {
"id" : "011AP643CSAPR4FKQGQE31TAES0001TH_2015-09-01_16-43-11",
"dnis" : "+14160000001",
"username" : "screen3@genesys.com",
"connId" : "006a0269722cd7b1",
"callUuid" : "011AP643CSAPR4FKQGQE31TAES0001TH",
"ani" : "8522001",
"dateTime" : "2015-09-01T16:43:11Z",
"agentId" : "+14160000003",
"recordDN" : "+14160000003",
"sipsAppName" : "SIP_Server"
},
"certAlias" : [ "rcs_Tenant_21-86_GIR_Team:214:CN=gir_21-86,
E=arun_sundar.n@genesys.com,OU=gir_gcloud,O=Genesys,
L=Chennai,ST=TN,C=IN:2" ],
"partitions" : [ ],
"accessgroups" : [ "/" ],
"channels" : 2
} ],
"eventHistory" : [ {
"occurredAt" : "2015-09-01T16:42:59.000+0000",
"eventId" : "2015-09-01 16:42:59.167_011AP643CSAPR4FKQGQE31TAES0001TH",
"event" : "Data",
"calluuid" : "011AP643CSAPR4FKQGQE31TAES0001TH",
"data" : {
"added" : {
"GSIP_RECORD" : "ON",
"GSIP_REC_FN" : "011AP643CSAPR4FKQGQE31TAES0001TH_2015-09-01_16-42-58"
}
}
}, {
"occurredAt" : "2015-09-01T16:43:10.000+0000",
"eventId" : "2015-09-01 16:43:10.513_011AP643CSAPR4FKQGQE31TAES0001TH",
"event" : "Data",
"calluuid" : "011AP643CSAPR4FKQGQE31TAES0001TH",
"data" : {
"deleted" : {
"GSIP_RECORD" : "ON"
}
}
}, {
"occurredAt" : "2015-09-01T16:43:11.000+0000",
"eventId" : "2015-09-01 16:43:11.357_011AP643CSAPR4FKQGQE31TAES0001TH",
"event" : "Data",
"calluuid" : "011AP643CSAPR4FKQGQE31TAES0001TH",
"data" : {
"added" : {
"GSIP_RECORD" : "ON"
},
"updated" : {
"GSIP_REC_FN" : "011AP643CSAPR4FKQGQE31TAES0001TH_2015-09-01_16-43-11"
}
}
}, {
"occurredAt" : "2015-09-01T16:43:36.000+0000",
"eventId" : "2015-09-01 16:43:36.653_011AP643CSAPR4FKQGQE31TAES0001TH",
"event" : "Data",
"calluuid" : "011AP643CSAPR4FKQGQE31TAES0001TH",
"data" : {
"deleted" : {
"GSIP_RECORD" : "ON"
}
}
}, {
"occurredAt" : "2015-09-01T16:42:58.000+0000",
"event" : "Joined",
"calluuid" : "011AP643CSAPR4FKQGQE31TAES0001TH",
"contact" : {
"type" : "User",
"phoneNumber" : "+14160000001",
"userName" : "screen1@genesys.com",
"firstName" : "Screen",
"lastName" : "GIR"
}
}, {
"occurredAt" : "2015-09-01T16:43:11.000+0000",
"event" : "Joined",
"calluuid" : "011AP643CSAPR4FKQGQE31TAES0001TH",
"contact" : {
"type" : "User",
"phoneNumber" : "+14160000003",
"userName" : "screen3@genesys.com",
"firstName" : "Screen3",
"lastName" : "GIR"
}
}, {
"occurredAt" : "2015-09-01T16:42:58.000+0000",
"event" : "Joined",
"calluuid" : "011AP643CSAPR4FKQGQE31TAES0001TH",
"contact" : {
"type" : "External",
"phoneNumber" : "8522001"
}
}, {
"occurredAt" : "2015-09-01T16:43:10.000+0000",
"event" : "Left",
"calluuid" : "011AP643CSAPR4FKQGQE31TAES0001TH",
"contact" : {
"type" : "User",
"phoneNumber" : "+14160000001",
"userName" : "screen1@genesys.com",
"firstName" : "Screen",
"lastName" : "GIR"
}
}, {
"occurredAt" : "2015-09-01T16:43:36.000+0000",
"event" : "Left",
"calluuid" : "011AP643CSAPR4FKQGQE31TAES0001TH",
"contact" : {
"type" : "User",
"phoneNumber" : "+14160000003",
"userName" : "screen3@genesys.com",
"firstName" : "Screen3",
"lastName" : "GIR"
}
}, {
"occurredAt" : "2015-09-01T16:43:36.000+0000",
"event" : "Left",
"calluuid" : "011AP643CSAPR4FKQGQE31TAES0001TH",
"contact" : {
"type" : "External",
"phoneNumber" : "8522001"
}
} ]
}