Time in queue
Concept and Architecture
To display the elapsed time a call was in queue, a variable must be set and defined in the CCE script. This variabel is then being transferred to the MCAL. Based on the value of this variable, the MCAL calculates the time difference between the current time and the timestamp in this variable and passes the calculated value on to the CTA, which provides the data to the Siebel CRM.
The defined variable must not be used for other purposes! If the variable is overwritten with a timestamp at a later time, the last timestamp is used to calculate the time in queue.
As soon as I call arrives in the CCE Script, the timestamp has to be stored into a variable to ensure accuracy of the time in queue. When a call is being routed to the longest available agent, the variable is passed with that call to the MCAL.
The used time format is:
CT: <year> - <month> - <day> <hour> : <minute> : <second>
As example:
CT:2020-6-17 15:24:42
To write the timestamp in the CCE script, CCE uses the local time. Ensure that the MCAL is running in the same time zone as the CCE whenever possible. Otherwise, the value must be corrected with the available offset value.
When the call gets assigned to an agent, the filled up variable will also be passed to the corresponding MCAL. The MCAL then calculates the elapsed time and passes this value to Siebel.
Configuring
Before the configuration can be started, the variable (CV1 .. CV10, or ECC) must be defined. The dedicated variable shall only be used for this feature.
CCE Script
A 'Set Variable'-node is used for this.
The desired variable must then be read out and the following string entered into the Value-field:
concatenate("CT:",year(),"-",month(),"-",day()," ",concatenate(hour(),":",minute(),":",second()))
It is important to ensure that the notation is exactly adopted. The node can then be integrated into the desired CCE script.
MCAL Config File
Two new parameters are available in the MCAL Config File:
| Name | Range | Comment |
|---|---|---|
| CtiTimeInQueueVariableName | NONE (default), CV1 .. CV10, ECC. | The variable in which the timestamp can be found is defined here. NONE or empty switch off the function. |
| CtiTimeInQueueOffsetValue | int [sec] | This value is added to the difference. This can be used to correct a time zone difference. The value can be + (positive) and - (negative). |
If an ECC variable is being used to transport the timestamp, ensure that the variable is also listed in
CtiAttachedDataEccVariableName-parameter.
Example:
Use Call Variable 8 to transport timestamp:
[config] ... CtiTimeInQueueVariableName=CV8 ...
Use ECC Variable user.TimeInQueue
[config] ... CtiTimeInQueueVariableName=ECC.user.TimeInQueue ...
Use Call Variable 2 and correct a time zone difference of one hour
[config]
...
CtiTimeInQueueVariableName=CV2
CtiTimeInQueueOffsetValue=3600
...