Cisco Cisco Computer Telephony Integration Option 8.5 Developer's Guide

Page of 508
   
4-69
CTI OS Developer’s Guide for Cisco Unified ICM/Contact Center Enterprise & Hosted
Release 8.0(1)
Chapter 4      Building Your Application
Building Supervisor Applications
General Flow
The general flow of a supervisor application is as follows.
1.
Request the supervisor’s teams.
2.
Start monitoring the supervisor’s team.
3.
Select a team member and start monitoring the selected team member’s activity.
4.
Perform supervisory actions on the currently monitored call.
These steps illustrate the layers of a supervisor application.  First, the application gets the team.  Once 
the team is retrieved, the supervisor application can monitor agents.  This generates more 
events/information allowing the supervisor application to monitor agent calls.
Note
Supervisor applications monitoring agent team members cannot receive agent statistics for each team 
member. To view agent statistics for all agents create a filter (monitor) mode application. Only two filter 
mode instances are allowed per CTI OS Server.
Monitored and Unmonitored Events
When writing a supervisor application, developers will be confronted with two types of events: 
monitored events and unmonitored events.  
Unmonitored events are received for agent, call, and button enablement events associated with the 
supervisor. Monitored events are received to notify the supervisor of agent, call, and button enablement 
events corresponding to an agent or call that is currently monitored by the supervisor. These events carry 
a field named 
CTIOS_ISMONITORED
. This field is set to true.
For example, if a supervisor changes state to ready, the supervisor receives an AgentStateEvent.  If a 
supervisor is monitoring an agent and the monitored agent changes state, the supervisor receives an 
OnMonitoredAgentState event.  Call events behave in a similar manner.  When the supervisor puts a call 
on hold, the supervisor receives an OnCallHeld event.  When the supervisor is monitoring an agent and 
that agent puts a call on hold, the supervisor receives an OnMonitoredCallHeld event.
Button enablement events behave differently.  When the supervisor is monitoring agents on the 
supervisor’s team, the agent will receive OnButtonEnablementChange events for the monitored agent.  
It is important for the application not to apply these events to elements of the application that control the 
supervisor’s or any of the supervisor’s calls state.  For example if a monitored agent changes state to 
ready, the supervisor will receive a ButtonEnablementChange event.  The supervisor should not apply 
this event since the event does not apply to the supervisor’s state.
To determine if an event is monitored, check the payload of the event for the “Monitored” field.  If the 
field exists and is set to true, the event is a monitored event.
Requesting and Monitoring the Supervisor’s Teams
This section discusses steps 1 and 2 in the flow of a supervisor application.  The methods and events 
listed below are used to request and monitor the team.
Methods Called:
Agent.RequestAgentList(Arguments args)
Agent.StartMonitoringAgentTeams(Arguments args)