Overview | Package | Class | Tree | Deprecated | Index | Help
| ContactCenters V. 0.9.9.
PREV NEXT | FRAMES NO FRAMES

# ContactCenters simulation library
API specification

A contact center is a set of resources (communication equipment, employees, computers, etc.) providing an interface between customers and a business [1,10,18,4].

See:
Description

Application packages
umontreal.iro.lecuyer.contactcenters.app | Provides an interface for application programs interacting with a contact center simulator or evaluation system.
umontreal.iro.lecuyer.contactcenters.app.trace | Provides facilities for creating contact-by-contact traces in simulators.
umontreal.iro.lecuyer.contactcenters.ctmc | Provides call center simulators based on a quick uniformized continuous-time Markov chain model.
umontreal.iro.lecuyer.contactcenters.ctmc.splitmerge | Provides an implementation of a split and merge scheme for simulating a call center with different staffing vectors simultaneously.
umontreal.iro.lecuyer.contactcenters.msk | Provides a generic simulator for multi-skill and blend call centers.
umontreal.iro.lecuyer.contactcenters.msk.conditions | Defines an interface for representing a condition on calls, and provides some implementations of the interface.
umontreal.iro.lecuyer.contactcenters.msk.cv | Contains classes used for simulation with control variables.
umontreal.iro.lecuyer.contactcenters.msk.model | Provides the classes that implement the model of a call center with multiple call types and agent groups used by the blend and multi-skill simulator.
umontreal.iro.lecuyer.contactcenters.msk.simlogic | Provides classes implementing the logic containing the necessary instructions to simulate a model of a call center, and interact with facilities for statistical collecting.
umontreal.iro.lecuyer.contactcenters.msk.spi | Service provider interfaces for creating custom arrival processes, router's or dialer's policies.
umontreal.iro.lecuyer.contactcenters.msk.stat | Provides utility classes to manage statistics in the blend/multi-skill call center simulator.

Core classes for simulation of contact centers
umontreal.iro.lecuyer.contactcenters | Contains general interfaces and classes for simulating contact centers.
umontreal.iro.lecuyer.contactcenters.contact | Manages contact arrivals into the contact center system.
umontreal.iro.lecuyer.contactcenters.dialer | Manages a predictive dialer capable of making outbound contacts.
umontreal.iro.lecuyer.contactcenters.expdelay | Provides facilities to predict the waiting time of contacts.
umontreal.iro.lecuyer.contactcenters.queue | Manages waiting queues for storing contacts not being served immediately.
umontreal.iro.lecuyer.contactcenters.queuemodel | Implements different formulae used to compute the delay probability and the service level, assuming some queueing model for the arrival and service rates.
umontreal.iro.lecuyer.contactcenters.router | Contains the contact routing facilities.
umontreal.iro.lecuyer.contactcenters.server | Manages the simulation of the contact's service process.
umontreal.iro.lecuyer.simevents | Extends the SSJ's discrete-event simulation package to add utility methods and support batch means simulation.
umontreal.iro.lecuyer.stat.mperiods | Provides facilities for storing observations during a simulation per time period, for the common situation where time is partitioned into a finite number of intervals, and statistics have to be collected separately for the different intervals.

SSJ extensions
umontreal.iro.lecuyer.collections | Provides collections dynamically transforming the elements of other collections or merging collections together.
umontreal.iro.lecuyer.randvar | Extends the random variate generation facilities of SSJ.
umontreal.iro.lecuyer.stat | Special tallies in line with the stat package of SSJ.
umontreal.iro.lecuyer.util | Contains some utility classes.
umontreal.iro.lecuyer.xmlbind | Extends the JAXB framework with new classes to simplify the process of marshalling and unmarshalling objects with validation using XML Schema.
umontreal.iro.lecuyer.xmlconfig | Provides some facilities to extract and verify parameters read from data files in XML format.

JAXB-derived classes
umontreal.iro.lecuyer.contactcenters.app.params | Defines types used for evaluation systems of contact centers.
umontreal.iro.lecuyer.contactcenters.msk.params | Defines types for the parameters of the blend/multi-skill call center simulator.
umontreal.iro.lecuyer.contactcenters.params | Defines basic types usable by simulators of contact center.
umontreal.iro.lecuyer.xmlbind.params | Defines some basic types usable by simulation applications.

A contact center is a set of resources (communication equipment, employees, computers, etc.) providing an interface between customers and a business [1,10,18,4]. A contact represents a customer's request for some service such as information, subscription, order, etc. Customers may use various media for contacting a business: telephone, fax, mail, or Internet. A contact center processing phone calls only is named a call center.

Inbound contacts are initiated by customers trying to communicate with the business. A customer can be blocked, i.e., receive a busy signal, if all phone lines are used at the time he calls. He can also be queued if service cannot be started immediately. A queued customer may become impatient and abandon without receiving service. A retrial occurs if the customer having abandoned tries to contact the business again. A served customer may also return to get new service, or to satisfy its initial request.

Outbound contacts are initiated by agents contacting customers, or by a predictive dialer making phone calls by trying to anticipate the number of free agents at the time contacted customers are reached. A right party connect occurs when an outbound contact is successful, i.e., the right person has been reached. A mismatch represents a successful contact that cannot be served immediately. Often, these mismatches are considered as lost calls, because most customers will not wait after they answer.

Modern contact centers use skill-based routing for processing different types of requests when each agent is trained for handling only a subset of these types. Each contact is assigned a type (or skill) k in 0,…, K - 1. To determine this type, before reaching an agent, a customer must indicate his needs: callers interact with an interactive voice response (IVR) unit while Internet users enter data in a Web form. Outbound contacts can also have a type, since all customers are not contacted for the same reason.

The agents are partitioned in I agent groups or skill sets. All agents in a group i share the same skills, i.e., they can serve the same types of contacts (although some members may be more efficient than others).

Queueing theory can be used to derive approximations for estimating the performance measures of contact centers, but only for models that oversimplify the complexities of real-life systems for which only simulation can provide accurate results. Simulation permits the analysis of the impact of parameter changes on contact center's performance. For example, it can evaluate service level of contacts, occupancy ratio of agents, waiting times, etc. for (almost) arbitrary contact centers.

The ContactCenters library provides a set of building blocks to help programmers in the development of contact center simulators. The library uses Stochastic Simulation in Java (SSJ) [17] to perform discrete-event simulation and to generate random variates. It also relies on Collections Tuned (Colt) [11] for matrix manipulation.

The `umontreal.iro.lecuyer.contactcenters.app` package provides generic contact center simulators for the most common cases. It defines a common interface for simulators and approximations to allow uniform communication between other tools such as analyzers and optimizers. A precompiled generic contact center simulator, adapted for blend and multi-skill models, is provided and can use XML files for parameters. See `guidemsk.pdf` for more information about this simulator, how to configure it, and how to use it.

For existing simulators to be extended or new ones to be created, the simulation toolset provided by this library must be used directly. This toolset is comprised of various components grouped in different packages. Each component corresponds to a specific contact center element and can easily be extended or replaced by the user. The `umontreal.iro.lecuyer.contactcenters` package provides some facilities to manage contact centers in general. It defines base classes for contact center simulation applications as well as a framework to generate contact-specific values during the simulation. The package `umontreal.iro.lecuyer.contactcenters.contact` defines the `Contact` class whose instances represent the contacts traveling into the system. It also defines several arrival processes for inbound contacts.

The package `umontreal.iro.lecuyer.contactcenters.server` defines the facilities for serving contacts by agents. It defines agent groups as well as a data structure to store information about served contacts.

The package `umontreal.iro.lecuyer.contactcenters.queue` defines the waiting queue contacts can have to wait in if they cannot be served at the time they enter the center. It defines a First-In-First-Out waiting queue as well as a generic priority queue, with a data structure to store information about queued contacts.

The package `umontreal.iro.lecuyer.contactcenters.dialer` defines the dialer capable of performing outbound calls. The defined dialer can implement a complex dialing policy obtaining contacts from various sources.

The package `umontreal.iro.lecuyer.contactcenters.router` implements the routing facilities, linking all the contact center objects together. It defines a base class representing a router as well as several subclasses for various routing policies.

The ContactCenters simulation library uses and extends the Stochastic Simulation in Java (SSJ) library. The package `umontreal.iro.lecuyer.xmlbind` provides some convenience classes to marshal and unmarshal complex parameter objects using JAXB.

Overview | Package | Class | Tree | Deprecated | Index | Help
| ContactCenters V. 0.9.9.
PREV NEXT | FRAMES NO FRAMES

To submit a bug or ask questions, send an e-mail to Richard Simard.