Cisco Cisco Computer Telephony Integration Option 8.5 Developer's Guide

Page of 490
   
4-71
CTI OS Developer’s Guide for Cisco Unified Contact Center Enterprise
Release 8.5(3)
Chapter 4      Building Your Application
Building Supervisor Applications
the team. In short, any agent that does not send a OnNewAgentTeamMember event to the CIL is not 
displayed in the agent select grid. This is illustrated in the 
SupervisorUIManager.ProcessMonitoredAgentStateChange() method.
OnMonitoredAgentStateChange Events
OnMonitoredAgentStateChange events are sent when an agent in the supervisor’s team changes state. 
Supervisor applications, like the CTI OS Toolkit Combo Desktop, use this event to update structures that 
store the supervisor’s team (the agent team grid). This event is processed similar to 
OnNewAgentTeamMember. However, there is one subtle difference. Instead of using the Arguments 
object carried with the event, the application uses the arguments associated with the agent object cached 
by the CIL. This is done to correctly handle skill group membership changes related to dynamic 
reskilling. The CIL contains logic that processes the OnMonitoredAgentStateChange and determines 
whether or not an agent has been added or removed from a skill group. The changes in the agent’s skill 
group membership are reflected in the agent object’s properties.
OnMonitoredAgentInfo Event
You can use this event to populate the following agent information:
AgentID
AgentFirstName
AgentLastName
LoginName
Time in State
If your application needs to track an agent’s time in state, it can be done as follows. The algorithm is 
contained in AgentSelectGridHelper.cs. The first part of the algorithm resides in the 
AgentData.UpdateData() method. This method decides if the agent’s state duration is known or 
unknown. An agent’s state duration is unknown if the agent was just added to the grid or if the agent’s 
state has not changed since being added to the grid. If a state change is detected after the agent was added 
to the grid, the time of the state change is marked.
Second, there is a timer callback that the AgentSelectGridHelper class starts when the grid is initialized. 
The timer callback fires every ten seconds. When the callback fires, the method 
AgentSelectGridHelper.m_durationTimer_Tick() cycles through all of the rows in the grid. Each row 
whose Time in State column is not unknown has its value set to the time the agent changed state minus 
the current time.
OnSkillInfo Event
OnSkillInfo events are sent to the CIL when skillgroup statistics are enabled using the 
Agent.EnableSkillGroupStatistics() method. These events are used to populate the fields in the Skill 
Name column of the team grid. OnSkillInfo events carry the ID of a skill group and its corresponding 
name. The AgentSelectGridHelper processes this event by storing a mapping of skill group IDs to skill 
group names. After the map is updated, each field in the Skill Name column is updated to reflect the new 
skill name.