ContactCenters
V. 0.9.9.

umontreal.iro.lecuyer.contactcenters.msk.model
Class DialerManager

java.lang.Object
  extended by umontreal.iro.lecuyer.xmlbind.NamedInfo
      extended by umontreal.iro.lecuyer.contactcenters.msk.model.CallSourceManager
          extended by umontreal.iro.lecuyer.contactcenters.msk.model.DialerManager

public class DialerManager
extends CallSourceManager

Manages a dialer performing outbound calls. An object of this class encapsulates the parameters specific to the dialer, and provides methods to construct the corresponding Dialer instance, and to update its state it during simulation.


Constructor Summary
DialerManager(CallCenter cc, DialerParams par, int k)
          Constructs a new dialer manager using the call center model cc, the dialer parameters par, and dialer index k.
 
Method Summary
static void addDialerPolicyFactory(DialerPolicyFactory dpf)
          Registers the dialer policy factory dpf for dialer managers.
protected  DialerPolicy createDialerPolicy(DialerParams par, DialerList dialerList)
          Constructs and returns an object representing the managed dialer's policy.
 CallCenter getCallCenter()
          Returns a reference to the call center associated with this dialer manager.
 double getCheckedPeriodDuration()
          Determines the duration, in simulation time units, of the testing periods used by some dialing policies taking cumulative statistics into account.
 Dialer getDialer()
          Returns the dialer managed by this object.
 int[] getMinFreeAgentsTarget()
           
 int[] getMinFreeAgentsTest()
           
 int getNumCheckedPeriods()
          Determines the number of testing periods used by dialing policies taking cumulative statistics (service level, mismatch rate, etc.) into account for taking their decisions.
 int getServiceLevelIndex()
          Determines the 0-based index of the service-level information matrix used if the dialing policy in use takes service level (or acceptable waiting time) into account for its decisions.
 double getSlInboundThresh()
          Determines the outbound-to-inbound threshold for the service level.
 double getSlOutboundThresh()
          Determines the inbound-to-outbound threshold for the service level.
 AgentGroupSet getTargetSet()
          Returns a reference to the target set of agent groups associated with the managed dialer.
 void init()
           
 boolean isUseNumActionEvents()
          Determines if the dialer subtracts the number of calls for which dialing is in progress from the number of calls to dial.
 
Methods inherited from class umontreal.iro.lecuyer.contactcenters.msk.model.CallSourceManager
getSourceToggleTimes, isSourceEnabled, setSourceToggleTimes
 
Methods inherited from class umontreal.iro.lecuyer.xmlbind.NamedInfo
getName, getProperties, getStringProperties
 
Methods inherited from class java.lang.Object
clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait
 

Constructor Detail

DialerManager

public DialerManager(CallCenter cc,
                     DialerParams par,
                     int k)
              throws DialerCreationException
Constructs a new dialer manager using the call center model cc, the dialer parameters par, and dialer index k. If k is smaller than the number of outbound call types, this creates a dialer producing calls of a single type. Otherwise, this creates a dialer producing calls of randomly-chosen types.

Parameters:
cc - the call center model.
par - the dialer's parameters.
k - the index of the dialer.
Throws:
DialerCreationException - if a problem occurs during the creation of the dialer.
Method Detail

createDialerPolicy

protected DialerPolicy createDialerPolicy(DialerParams par,
                                          DialerList dialerList)
                                   throws DialerCreationException
Constructs and returns an object representing the managed dialer's policy. This method uses DialerParams.getDialerPolicy() to get a type identifier for the dialer's policy. It then retrieves parameters and initializes a dialer's policy specific to the given type. If the name of the dialer's policy corresponds to a constant in DialerPolicyType, the method handles its construction directly. Otherwise, it queries every factory registered using addDialerPolicyFactory(DialerPolicyFactory) until it finds one factory capable of constructing the policy. If no such factory can create the policy, it uses the ServiceLoader class to find a dialer's policy factory dynamically. If that last step fails, a dialer-creation exception is thrown.

Parameters:
par - the parameters of the dialer's policy.
dialerList - the dialer's list.
Returns:
the constructed dialer's policy.
Throws:
DialerCreationException - if an error occurs during the creation of the dialer's policy.

addDialerPolicyFactory

public static void addDialerPolicyFactory(DialerPolicyFactory dpf)
Registers the dialer policy factory dpf for dialer managers. If the user-specified dialer policy does not correspond to a predefined policy, the registered factories are queried to find one capable of creating a dialer's policy. This method must be called before the call-center simulator is initialized.

Parameters:
dpf - the new dialer policy factory to register.

getDialer

public Dialer getDialer()
Returns the dialer managed by this object.

Returns:
the managed dialer.

getMinFreeAgentsTest

public int[] getMinFreeAgentsTest()

getMinFreeAgentsTarget

public int[] getMinFreeAgentsTarget()

init

public void init()

getCallCenter

public CallCenter getCallCenter()
Returns a reference to the call center associated with this dialer manager.

Returns:
the associated call center.

getTargetSet

public AgentGroupSet getTargetSet()
Returns a reference to the target set of agent groups associated with the managed dialer.

Returns:
the target set of agent groups.

getServiceLevelIndex

public int getServiceLevelIndex()
Determines the 0-based index of the service-level information matrix used if the dialing policy in use takes service level (or acceptable waiting time) into account for its decisions.

Returns:
the index of the service-level information matrix.

getNumCheckedPeriods

public int getNumCheckedPeriods()
Determines the number of testing periods used by dialing policies taking cumulative statistics (service level, mismatch rate, etc.) into account for taking their decisions.


getCheckedPeriodDuration

public double getCheckedPeriodDuration()
Determines the duration, in simulation time units, of the testing periods used by some dialing policies taking cumulative statistics into account.


getSlInboundThresh

public double getSlInboundThresh()
Determines the outbound-to-inbound threshold for the service level. When the service level goes below this threshold, some dialers start moving agents from outbound groups to inbound groups.


getSlOutboundThresh

public double getSlOutboundThresh()
Determines the inbound-to-outbound threshold for the service level. When the service level goes above this threshold, some dialers start moving agents from inbound groups to outbound groups.


isUseNumActionEvents

public boolean isUseNumActionEvents()
Determines if the dialer subtracts the number of calls for which dialing is in progress from the number of calls to dial. When dial delays are large enough for the dialer to start often while phone numbers are being composed, the agents of the call center might receive too many calls to serve, which results in a large number of mismatches. If this attribute is set to true (the default), the dialer will take into account the number of calls for which dialing is in progress while determining the number of additional calls to dial.


ContactCenters
V. 0.9.9.

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