Cisco Cisco Computer Telephony Integration OS 8.5 Developer's Guide

Page of 506
   
4-69
CTI OS Developer’s Guide for Cisco Unified Contact Center Enterprise
Release 8.5(1)
Chapter 4      Building Your Application
Building Supervisor Applications
Building Supervisor Applications
This section describes how to build a supervisor desktop for Unified CC.  The following documentation 
references the source of the CTI OS Toolkit Combo Desktop when describing how to build a supervisor 
desktop.  This section also references a class called CTIObject.  This class is used by the CTI OS Toolkit 
Combo Desktop to wrap CIL functionality.
The source code for the Combo Desktop can be found in the following directories.
<Install Drive>\Program Files\Cisco Systems\CTIOS Client\CTIOS Toolkit\dotNet 
CIL\Samples\CTI Toolkit Combo Desktop.NET
<Install Drive>\Program Files\Cisco Systems\CTIOS Client\CTIOS Toolkit\dotNet 
CIL\Samples\CtiOs Data Grid.NET
In the following section, string keys are used as keys to method calls.  This is for the sake of readability.  
A developer writing an application can use either string or integer based keys.
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.
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.