Identify CTI data
Third-party CTI fields are based on events received from the switch. You can identify the third-party CTI attributes available for use by examining the Integration Service logs.
Before you begin
Configure the Recorder and an Integration Service adapter.
Procedure
-
Ensure the log Trace Level is set to DebugHigh.
-
On the server where the Integration Service is installed, navigate to <install software dir>\ContactStore\LogManager.exe. Run the Log Manager.
-
Select the IntegrationService component and set the Trace Level to DebugHigh.
-
-
Navigate to <datadir>/logs, and then open the Integration Service log file.
-
Locate the CTI event in question. Events from the integration target a destination of “CallTracker” within the system. These events are identified in the logs by filtering for log lines that look like the following:
--> <CallTracker>
If there are multiple adapters configured in the system, the source information (for example, the “si.1” field from the <si.1> --> <CallTracker> log line) can be used for additional filtering.
-
Locate the desired data from within the message. All data within a message is held within a named Field. Each Field is tracked within either a Folder or an Array. To extract data from a Field, the entire path to that Field must be defined.
CTI event example
The following is an example CTI event from Adapter #2 sent into the CallTracker for processing. In this case, the customer wants to extract the highlighted fields of call id and the calling party display name.
Dispatching Event CTI Event<si.2> --> <CallTracker> Size<2>
Int<AdapterId> = 2 ; Str<AdapterName> = JTAPI ; Int<SwitchId> = 304 ; Str<SwitchName> = Cisco ; Int<eventId> = 116
Str<description> = TermConnCreatedEv SEP68BDABA4568B
Folder<event>
Int<ciscoCause> = 100 ; Str<ciscoCauseStr> = CAUSE_INVALIDIECONTENTS ; Int<ciscoFeatureReason> = 12 ; Str<ciscoFeatureReasonStr> = REASON_NORMAL
Int<callId> = 16865573
Folder<ciscoCallIdentifiers>
Int<ciscoCallId> = 16865573 ; Int<ciscoCallManagerId> = 1 ; Int<ciscoGlobalCallId> = 88357
Folder<calledPartyInfo>
Str<displayName> = ; Str<unicodeDisplayName> =
Folder<callingPartyInfo>
Str<address> = 8614 ; Str<displayName> = 8614 SCCP Tier3 DMS ; Str<unicodeDisplayName> = 8614 SCCP Tier3 DMS
Folder<terminalConnection>
Int<termConnState> = 67 ; Int<callControlTermState> = 98 ; Int<connState> = 51 ; Int<callControlState> = 84 ; Str<terminalAddress> = 8614/SEP68BDABA4568B
Array<connections> [1]
[0]: Str<terminalAddress> = 8614/SEP68BDABA4568B ; Int<callControlState> = 84 ; Int<termConnState> = 67 ; Int<connState> = 51 ; Int<callControlTermState> = 98
In the CTI Event example, the following fields were identified for extraction:
-
“ciscoCallId” field. Working up from the “ciscoCallId” field, we need to identify all of the folders /arrays above it. In this particular example message, the “ciscoCallId” field exists in the “ciscoCallIdentifiers” folder, which is contained within the “event” folder. There is no folder above the “event” folder in this example. In order to access this field, the mapping is “event.ciscoCallIdentifiers.ciscoCallId”.
-
“unicodeDisplayName” field. Extracting the display name is done in a similar manner. The “unicodeDisplayName” field is held within a folder named “callingPartyInfo”, which is also contained within the “event” folder. To extract this name, the mapping is “event.callingPartyInfo.unicodeDisplayName”.
SIPREC event example
This is an example SIPREC recording event from the internal SIP Proxy sent into the CallTracker for processing. In this case, the customer wants to extract the highlighted fields of UCID and the second participant name.
Dispatching Event recording<SIPProxy> --> <CallTracker> Size<0>
Int<AdapterId> = 1 ; Str<AdapterName> = SIPREC SBC Avaya ; Int<SwitchId> = 751 ; Str<SwitchName> = SIPREC_SBC ; Str<datamode> = complete
Str<rSessionId> = 786562_54473663@xx.xx.254.70
Array<group> [1]
[0]: Str<group_id> = OGM3MTkzMDAtMThiNy0xMA== ; Str<associate-time> = 2017-05-11T20:37:18Z
[0]: Folder<callData>
[0]: Str<fromhdr> = sip:+114045555678@xx.xx.138.36:5060;user=phone ; Str<callid> = 1258564145_113685498@xx.xx.135.12 ; Str<gcid> = 786562
[0]: Str<tohdr> = "UUID-00FA080045C69E5914CB7E" <sip:+18885551234@xx.xx.135.71;user=phone>;tag=gK0c80b638
Array<session> [1]
[0]: Str<session_id> = OGM3MTkzMDEtMThiNy0xMA== ; Str<group-ref> = OGM3MTkzMDAtMThiNy0xMA== ; Str<start-time> = 2017-05-11T20:37:18Z
[0]: Str<avayaUCID> = 00FA080045C69E5914CB7E
Array<participant> [2]
[0]: Str<participant_id> = OGM3MTkzMDItMThiNy0xMA==
[0]: Folder<nameID>
[0]: Str<aor> = +18885551234@xx.xx.138.36:5060
[0]: Folder<name>
[0]: Str<lang> = en
[1]: Str<participant_id> = OGM3MTkzMDMtMThiNy0xMA==
[1]: Folder<nameID>
[1]: Str<aor> = +14045555678@xx.xx.135.71
[1]: Folder<name>
[1]: Str<lang> = en
Array<stream> [2]
[0]: Str<stream_id> = OGM3MTkzMDQtMThiNy0xMA== ; Str<session_id> = OGM3MTkzMDEtMThiNy0xMA== ; Str<associate-time> = 2017-05-11T20:37:18Z
[0]: Array<label> [1]
[0]: [0]: Str<label> = 1
[1]: Str<stream_id> = OGM3MTkzMDUtMThiNy0xMA== ; Str<session_id> = OGM3MTkzMDEtMThiNy0xMA== ; Str<associate-time> = 2017-05-11T20:37:18Z
[1]: Array<label> [1]
[1]: [0]: Str<label> = 2
In the SIPREC event example, the following fields were identified for extraction:
-
“avayaUCID” field. Working up from the “avayaUCID” field, we need to identify all of the folders /arrays above it. In this particular example message, the “avayaUCID” field exists in the “session” array. There is no folder above the “session” array in this example. The formatting of the Array tells us there is one (1) entry in the array (i.e. “Array<session> [1]”) and the desired field is in the zeroth index Repository of transcribed interactions, which are used for analysis in Speech Analytics. of the array (i.e. “[0]: Str<avayaUCID>”). In order to access this field, the mapping would be “session(0).avayaUCID”.
-
“aor” field. Extracting the display name is done in a similar manner. The “aor” field is held within a folder named “nameID”, which is contained within a different array named “participant”. To extract this name, the mapping is “participant(1).nameID.aor”.