# Genesys Quality Management Suite 8.1.520 : Integrating Genesys CIM with Genesys Quality Management Suite

Genesys Customer Interaction Management (CIM) platform supports several underlying PBXs. Call Recording supports these PBXs for call recording and contact center integration:

- Genesys contact center with Genesys SIP Server.
- Genesys contact center with Cisco Unified Communications Manager.

Three Call Recording services are available for Genesys integration: GIM, EPR and MSR. Each service provides the same data.

## Active Recording Integration

Genesys Driver has a T-Lib Client that handles all communication via TLib. It also handles communication with the Configuration Server.

Call Recording caches information from the Configuration Manager. This includes the list of agents, devices, and other such information. You can configure this to be done at regular intervals.

## Genesys Enhanced Passive Recording (EPR)

EPR is a combination of active signaling capture and passive voice capture, often referred to as ‘hybrid’ recording. It uses the Voice Monitoring API, which is a part of the Genesys SDK Platform.

EPR provides a much more stable and reliable method of call recording on the Genesys platform than the older GIM. Since all phone and agent-based events are received over the API, there is no risk that some important information will be lost due to a lost packet on the network.

Voice streams are still delivered from the monitoring (SPAN) port on a network switch. However, this is not a significant issue. The signaling events are handled reliably by the "active driver."

EPR also integrates two different recording components; the protocol driver and the integration module. This means that with EPR, only one component is responsible for all information that comes from the Genesys platform. This makes the recording process easier. The attached metadata are more consistent and their delivery and completeness is assured. It also makes manageability and troubleshooting easier, since one component delivers all the events together.

## Genesys Integration Module

Genesys Integration Module (GIM) is required when SIP or JTAPI based call recording is deployed. The GIM connects Call Recording and Genesys T-Server using the Voice Platform SDK and Configuration Platform SDK.

Connection with Call Recording is implemented using the Call Recording API. Via its API, Call Recording notifies the integration library of every newly established call it detects or records. After the integration library learns of the available call information, it queries T-Server as to whether the call is controlled by Genesys contact center or not. If it is, it acquires the available properties of the call and hands selected data over to Call Recording, which saves it as external data.

If recording is based on the Cisco Unified Communications Manager softswitch Call Recording must be set to record through JTAPI adapter, since the lookup of information in both systems leverages call identification (GlobalCallID), which is available in Call Recording only through Cisco JTAPI.

For Genesys SIP Server deployments no specific settings are required.

## Genesys CIM to Call Recording Information Exchange

The data saved in the Call Recording external data table come from various sources. There are four basic information classes available:

- Basic call-related data
- Call-related user data (attached data)
- Agent configuration data
- Notification of recording

The presence of specific data depends on the system configuration, routing design, network topology, and other conditions. You should configure the specific properties that have to be stored in the Call Recording external data table during integration library implementation.

## External Data Available from CIM

The data saved in the Call Recording external data table comes from various sources. This information is available:

- Basic call-related data.
- Call-related user data (attached data).
- Agent configuration data.
- Extension Data.
- Notification of recording.
- Other GAD Data (only for Genesys Driver).
- Other Call Recording Data ( used internally by Call Recording).

The presence of specific data depends on the system configuration, routing design, network topology, and other conditions. You should configure the specific properties that have to be stored in the Call Recording external data table during integration library implementation.

## Set Genesys Driver Encoding for Attached Data

Genesys Driver assumes that any Attached Data received from the TServer is in the Unicode (UTF-8) format. However, Genesys Platform SDK encodes this XML data based on the OS on which it is installed.

Therefore if, for example, the Genesys software is installed on an OS with Czech encoding ('cp1250'), GIM does not store this correctly in the Call Recording database.

To avoid this encoding issue, set an encoding parameter manually in the Call Recording configuration file:

1. Edit the Call Recording configuration file at:

`/opt/Call Recording/etc/callrec.conf`

2. Use a text editor to add the parameter ' –`Dfile.encoding=<encoding>`' to the `JAVA_OPTS_GENESYS` environment variable found near the end of the file. For example:

    JAVA_OPTS_CORE="-server -XX:+DisableExplicitGC -Xmx96m -Dcom.sun.CORBA.transport.ORBUseNIOSelectToWait=false -Dfile.encoding=cp1250"

3. Save the file and restart Call Recording:

    /etc/init.d/callrec restart

## Basic call-related data

Basic call-related data is available from real-time events generated when the T-Server notifies a client of call-based activity. These events arise when an observed phone performs actions such as answering, transferring or hanging up the call. They are a source of essential information about agent activity.

The data is stored using the following naming convention:

External data key: `GEN_TEV_<TEvent.key>`

Example: `GEN_TEV_AgentID = “AG_3017”`

Default stored data keys are in bold:

Key | Description
--- | ---
GEN_TEV_AgentID | Available by default. The agent identifier specified by the PBX or ACD.
GEN_TEV_ANI | Available by default. Automatic Number Identification. Specifies which number the current inbound call originates from.
GEN_TEV_CallID | Available by default. The call identifier provided by the switch (as opposed to connection identifier, or ConnID, which is assigned by T-Server).
GEN_TEV_CallUuid | Available by default. The UUID of the call; a unique call identifier provided by the Genesys platform.
GEN_TEV_CallType | Available by default. Type of the call. One of the following values: Inbound, Outbound, Internal, Consult, or Unknown.
GEN_TEV_CollectedDigits | Digits that have been collected from the caller.
GEN_TEV_ConnID | Available by default. Connection identifier of the current call handled by the DN.
GEN_TEV_CustomerID | The string that contains the customer identifier, through which call processing was initiated.
GEN_TEV_DNIS | Available by default. The Directory Number Information Service. Specifies to which DN the current inbound call was made.
GEN_TEV_NetworkCallID | In case of network routing, the call identifier assigned by the switch where the call initially arrived.
GEN_TEV_NetworkNodeID | In case of network routing, the identifier of the switch where the call initially arrived.
GEN_TEV_NodeID | The unique identifier of a switch within a network.
GEN_TEV_OtherDN | Available by default. The other main Directory Number (which your application did not register) involved in this request or event. For instance, the DN of the main party of the call.
GEN_TEV_ThisDN | Available by default. The Directory Number (which the application registered) involved in this request or event.
GEN_TEV_ThisQueue | The queue related to ThisDN.

Important: If the value is empty, that key is not stored in the Call Recording database.

You can change this list manually in the driver configuration in the xml in the equal group `messageDataKeys` with the values `msgDataKey` and `coupleMsgDataKey.` These define the call event's attribute name and key that should be used for external data in Call Recording. If at least one basic call-related data attribute is set, no default data keys are used. In this case, you should manually configure all required attributes. This code shows you how to store `CallID` and `ThisDN` where `ThisDN` is renamed to `SomeDN` for storage in Call Recording.

    <SpecifiedConfiguration name="genesysDriver">
    ...
    <EqualGroup name="messageDataKeys">
    <Value name="msgDataKey">CallID</Value>
    <Value name="coupleMsgDataKey">CallID</Value>
    </EqualGroup>
    <EqualGroup name="messageDataKeys">

    <Value name="msgDataKey">ThisDN</Value>
    <Value name="coupleMsgDataKey">ThisDN</Value>
    </EqualGroup>
    ...

For the Legacy GIM integration, the Specified Configuration name is "genesys".

    <SpecifiedConfiguration name="genesys">

The rest of the listing is the same as in the example above.

## Call-Related User Data

User data or attached data is a set of call-related information predefined by the agent or application that handles the call. A user data object is structured as a list of data items described as key-value pairs.

User data can arrive at a client application with any event, at any time, even after the call has been cleared. For example: when the agent fills in wrap-up information.

Any value extracted from user data is attached through the following naming convention:

External data key: `GEN_USR_<UserData.key>`

Example: `GEN_USR_RStrategyName = “default”`

Important: You should define the list of the user data to attach in the configuration. By default, no user data gets attached.

## User Data Configuration

The User data configuration option allows you to define Genesys User Attached Data.

Navigate to Settings> Configuration > Protocol Drivers >Genesys Driver and scroll down to User Data Configuration.

You can add only user data in the column User Defined Parameters in the GIM configuration section of the Call Recording GUI. You can specify other non-default, pre-defined keys in the integration configuration file (`/opt/callrec/etc/integration.xml`) in XML format. You should not modify these values unless completely necessary.

To add a User data key definition to GIM configuration:

1. Type the User data key and User data name (value).

2. Click New to add another key value pair if necessary.

3. Click Save Configuration to save the changes.

## Agent Configuration Data

Configuration data objects enable the client to get any information about the user, agent, server, or other object configuration stored in the Genesys configuration database, in addition to information about the current state of the specific object.

You should use this naming convention to attach any value available from the configuration library:

External data key: `GEN_CFG_<CfgData.key>`

Example: `GEN_CFG_UserName = “jsmith”`

This information is available from Configuration Platform SDK:

Default stored agent data keys are in bold:

Key | Description
--- | ---
GEN_CFG_EmployeeID | Available by default. The code that identifies the person within the tenant staff.
GEN_CFG_FirstName | Available by default. The person's first name.
GEN_CFG_LastName | Available by default. The person's last name.
GEN_CFG_UserName | Available by default. The name the person uses to log into a CTI system.
GEN_CFG_AdminType | Specifies whether the person is configured as =Admin‘. Yes=1, No=0
GEN_CFG_AgentType | Specifies whether the person is configured as =Agent‘. Yes=1, No=0
GEN_CFG_PlaceDbid | A unique identifier of the place assigned to this agent by default.
GEN_CFG_State | The current state of the person object.

Some of the properties, namely LoginInfo and SkillInfo, contain more items, since an agent can have more logins or skills. In this case, Call Recording saves them as indexed fields:

Key | Description
--- | ---
GEN_CFG_AgentLoginInfo_:_LoginDbid | agentLoginDBID — A unique identifier of the Agent Login identifier.
GEN_CFG_AgentLoginInfo_:_WrapupTime | wrapupTime — Wrap-up time in seconds associated with this login identifier. Can't be a negative value.
GEN_CFG_AgentSkillLevels_:_SkillDbid | skillDBID — A unique identifier of the skill the level relates to.
GEN_CFG_AgentSkillLevels_:_Level | Level — Level of the skill. Can't be a negative value.

Important: If the value is empty, that key is not stored in the Call Recording database.

You can change this list manually in driver configuration in xml in the equal group `agentDataKeys` with the values`agentDataKey` and `coupleAgentDataKey`, These define the event Telephonic attribute name and key which should be used for external data in Call Recording. If at least one Agent Data attribute is set, no default data keys are used. In this case, you should manually configure all required attributes.This listing shows the configuration of storing only `EmployeeID`.

    <SpecifiedConfiguration name="genesysDriver">
    ...
    <EqualGroup name="agentDataKeys">
    <Value name="agentDataKey">EmployeeID</Value>
    <Value name="coupleAgentDataKey">EmployeeID</Value>
    </EqualGroup>
    ...

For Passive GIM integration, the SpecifiedConfiguration name is "genesys".

    <SpecifiedConfiguration name="genesys">

The rest of the listing is the same as the example above.

## Extension Data

Extension data is stored with the `GEN_EXT_` prefix. This data is taken from the Extensions section of Genesys voice events. None of this data is stored by default.

You can configure the required data manually in driver configuration in the xml in the equal group `extensionDataKeys` with the values `extDataKey` and `coupleExtDataKey`. These define event Extension attribute name and key which should be used for external data in Call Recording. This listing shows the configuration of storing `BusinessID`.

     <SpecifiedConfiguration name="genesysDriver">

    ...

    <EqualGroup name="extensionDataKeys">

    <Value name="extDataKey">BusinessID</Value>

    <Value name="coupleExtDataKey">BusinessID</Value>

    </EqualGroup>

    ...

For Passive GIM integration, the SpecifiedConfiguration name is "genesys".

    <SpecifiedConfiguration name="genesys">

## Other Genesys Driver Data

Genesys Driver and GIM also store some other Genesys-related data. These are not configurable.

- `GEN_REC_` – External data with the signaling of recording state for audio and video.
- `GEN_CONFERENCE_MEMBERS –` List of parties that participate in conference Couple. Only available from Genesys Driver, not GIM.
- `GEN_CFG_FULLNAME –` Full name of agent created based on the configuration.
- `GEN_CFG_Tenant` – Call Tenant. Only available from Genesys Driver in Active Recording mode, not GIM.
- `GEN_CFG_Switch` – Call Switch. Only available from Genesys Driver in Active Recording mode, not GIM.
- `GEN_TEV_CSUP_MODE` – Call supervision mode, with the value `Monitoring` or `Coaching`. Only available from Genesys Driver in EPR or Active Recording mode, not GIM.
- `GEN_TEV_CSUP_SCOPE` – Call supervision scope, with the value `Call` or `Agent`. Only available from Genesys Driver in EPR or Active Recording mode, not GIM.
- `GEN_TEV_CSUP_SUPID` – The agent ID of the monitoring Supervisor. Only available from Genesys Driver in EPR or Active Recording mode, not GIM.
- `GEN_TEV_CSUP_SUPDN` – The DN of the Monitoring Supervisor. Only available from Genesys Driver in EPR or Active Recording mode, not GIM.

## Notification of Recording

The Notification of Recording option allows the system to provide information that concerns whether a particular call is being successfully recorded. It is necessary for banks or financial institutions that undertake financial transactions and need to ensure that a specific call is being recorded. Add a preconfigured key in the attached data to provide notifications.

The principle of notification is that Call Recording ensures that the call has been detected and all actions that lead to successful recording have been performed. After this, it provides status information. This usually takes one second. However, in general we can't guarantee that the state information will be available in only one second. The waiting timeout for for the state is configurable. The default is 3 seconds.

When the state is known or the timeout expires, Call Recording provides state information within pre-configured attached data. You can configure both key and value strings. For example:

`RecordingStatus_GIM1 = Recording`

`RecordingStatus_GIM2 = Unknown`

The example demonstrates that you can configure different key names for different servers that record the same Genesys platform. This is useful in case of redundant deployment.

Important: Note that in some situations the notification may not be 100% correct. For example, in the case that the recorder does not get any voice data during the call, it can't be recognized and reported. You should solve such situations through an additional monitoring system that monitors SPAN ports and recording results.

## Attachments:

t33 1.png (image/png)