Cisco Cisco Computer Telephony Integration OS 8.5 开发者指南

下载
页码 640
 
4-97
CTI OS Developer’s Guide for Cisco ICM/IPCC Enterprise & Hosted Editions Release 7.0(0)
 
Chapter 4      Building Your Application
Building Supervisor Applications
“UniqueObjectID” (Enum_CtiOs.CTIOS_UNIQUEOBJECTID) field of the 
NewAgentTeamMember event as the key (first parameter to this method).  This 
method will return an Agent object.  Check the properties of the Agent object for 
the field “AgentFlags” (Enum_CtiOs.CTIOS_AGENTFLAGS).  If the field exists 
with the TeamConfigFlag.AGENT_FLAG_PRIMARY_SUPERVISOR (0x01) bit 
set, the agent is a primary supervisor and should not be added to the grid.
It is possible for an agent to be a team’s supervisor while not being a member of 
the team.  Some supervisor applications, including the combo desktop, may not 
want to add this type of supervisor to the agent select grid.  This is tricky because 
supervisors that are not part of the team will generate 
MonitoredAgentStateEvents.  The agent select grid normally updates when the 
MonitoredAgentStateEvent is received.  In order to prevent this, supervisors who 
are not members of the team that they are supervising will need to be marked as 
such.  This information can be used to avoid updates when a 
MonitoredAgentStateEvent is received for a supervisor that is not part of the 
team.  In order to accomplish this, the application leverages the following.
1.
NewAgentTeamMember events will not be received for supervisors that are 
not part of the team.
2.
The CIL keeps a cache of all the agents and supervisors that it knows about.  
Agents in this cache have properties that can be modified by applications built 
on top of the CIL.
Knowing this, the application will mark every agent that is included in a 
NewAgentTeamMember event as a member of this supervisor's team.  When 
MonitoredAgentStateEvents are received, the agent select grid will only update 
when the agent that is represented by the event is marked as a member of the team.  
In short, any agent that does not send a NewAgentTeamMember event to the CIL 
will not be displayed in the agent select grid.  This is illustrated in the 
SupervisorUIManager.ProcessMonitoredAgentStateChange() method.
MonitoredAgentStateEvent
MonitoredAgentStateEvents are sent when an agent in the supervisor’s team 
changes state.  Supervisor applications, like the CTIOS 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 NewAgentTeamMember.  However, there 
is one subtle difference.  Instead of using the Arguments object carried with the 
event, the application should use the arguments associated with the agent object 
cached by the CIL.  This is done to correctly handle skill group membership