Abstract:
The present invention provides for the allocation of agents to channels associated with the contact center. In particular, the present invention provides a contact center that allows agents to be efficiently allocated among channels, without requiring centralized control applications. Instead, the contact center of the present invention provides centralized agent and channel information fields to permit coordination between independent channel and agent work station applications. The present invention allows channels to be added to a contact center without requiring extensive modifications to the various components of the contact center.

Description:
FIELD OF THE INVENTION  
         [0001]    The present invention relates to the dispatching of resources in connection with a contact center. In particular, the present invention is related to coordinating the allocation of resources among various media channels available in connection with a contact center.  
         BACKGROUND OF THE INVENTION  
         [0002]    Contact centers, including call centers and multi-media contact centers, provide customer contact resources. In particular, contact centers coordinate the operations of human agents in initiating and responding to customer contacts. Contact centers increasingly utilize a variety of media, to maximize the efficiency of contact center operations and customer convenience. For example, contact centers may operate in connection with switched circuit voice telephony, packet data networks, and traditional mail communication channels. In order to utilize agents as efficiently as possible, it is necessary to coordinate the allocation of agent duties among the various media operable in connection with a contact center.  
           [0003]    In addition to various media, the duties of agents deployed in connection with a contact center may be divided among various channels. For example, in connection with voice telephony as the media, a first channel may consist of incoming requests for service, and a second channel may comprise outgoing solicitations. As a further example, in connection with packet data networks as the media, a first channel may consist of e-mail communications, and a second channel may consist of Internet chat or instant messaging. Accordingly, the efficient utilization of contact center resources requires the allocation of agents between various channels, as well as between various media. Furthermore, tasks performed in connection with certain channels may require the complete attention of an agent, while multiple tasks in connection with one or more other channels may be handled simultaneously by an agent. Accordingly, the demands placed on agents by different channels varies.  
           [0004]    One solution to the allocation of tasks to agents associated with a contact center allows the individual agents to determine what channels the agents&#39; attentions are devoted to. The choices made by the individual agents in selecting channels can be informed by providing the agents with information regarding the current resource loads in connection with the various channels supported by the contact center. However, such systems tend to be inefficient. For example, agents are typically predisposed to select channels according to the personal preferences of the individual agents. In addition, requiring individual agents to decide where to turn their attention diverts the agents from their primary task, which is to service the various channels.  
           [0005]    Still another approach to allocating resources in connection with a call center provides a centralized controller. Although centralized controllers are capable of providing an integrated system for allocating agents to various media channels, such systems are relatively inflexible. In particular, such systems require pervasive changes in order to accommodate new channels. Accordingly, modifications to such systems to operate in connection with new channels is a relatively expensive and time-consuming proposition. Furthermore, adapting newly developed or third party software for use in connection with an existing contact center having a centralized controller is difficult.  
           [0006]    Still other systems provide automated blending of the workload assigned to each agent in connection with each agent&#39;s work station. However, such systems can result in the assignment of incompatible work tasks to an agent, as assignments to various channels are controlled independently of the agent&#39;s state with respect to other channels. Furthermore, such systems have required centralized control in order to resolve competing demands for resources among the channels. Accordingly, such systems do not solve the problems associated with accommodating new or additional channels in connection with a contact center.  
         SUMMARY OF THE INVENTION  
         [0007]    The present invention is directed to solving these and other problems and disadvantages of the prior art. Generally, according to the present invention, an agent state and a transition field are maintained in a central agent control block in connection with a contact center. By making reference to the central agent control block, a particular channel can determine whether an agent is available to that channel. In addition, the use of central agent control block fields for conveying agent information allows the system to be readily adapted to use in connection with newly developed media and/or software and permits the allocation of agent resources, without the imposition of incompatible assignments on agents.  
           [0008]    In accordance with a further embodiment of the present invention, a central channel status control block is established. Individual channels report status information to the channel status control block, thereby allowing other channels access to that information. The information recorded in the channel status control block by the channels may include an indication of a channel&#39;s need for agents, and the priority of that channel relative to other channels. The provision of the channel status control block allows the recruiting and dispatching of agents by individual channels to be coordinated with that of other channels. Furthermore, the provision of a channel status control block allows additional or revised channels to be integrated with the call center without requiring extensive revisions to other components of the call center.  
           [0009]    In accordance with still another embodiment of the present invention, a call center servicing more than one channel is provided. The channels serviced by the call center may operate in connection with one or more media types. Also provided in connection with the call center are a plurality of agent work stations in connection with which at least a first agent may interface with one or more of the channels. In addition, the call center includes a centrally provided agent control block in connection with each agent work station. In particular, each agent work station reports status information to a corresponding agent control block. The agent control blocks are additionally accessible to each of the channels.  
           [0010]    These and other advantages and features of the invention will become more apparent from the following discussion, particularly when taken together with the accompanying drawings. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0011]    [0011]FIG. 1 is a block diagram depicting the components of a call center in accordance with an embodiment of the present invention;  
         [0012]    [0012]FIG. 2 is a block diagram depicting a server in accordance with an embodiment of the present invention;  
         [0013]    [0013]FIG. 3 is a block diagram depicting a work station in accordance with an embodiment of the present invention;  
         [0014]    [0014]FIG. 4 is a table illustrating the various fields maintained as part of an agent control block in accordance with an embodiment of the present invention;  
         [0015]    [0015]FIG. 5 is a table illustrating the various fields maintained as part of a channel control block in accordance of an embodiment of the present invention;  
         [0016]    [0016]FIG. 6 is a flowchart illustrating a channel agent recruiting and dispatching process in accordance with an embodiment of the present invention;  
         [0017]    [0017]FIG. 7 is a flowchart illustrating a process for the conditional recruitment of an agent by a channel in accordance with an embodiment of the present invention; and  
         [0018]    [0018]FIG. 8 is a flowchart illustrating a process for the conditional dispatch of an agent by a channel in accordance with an embodiment of the present invention. 
     
    
     DETAILED DESCRIPTION  
       [0019]    The present invention is related to the coordination of activities within a contact center and to providing a contact center utilizing a system that is readily adapted to the incorporation of new or revised channels.  
         [0020]    With reference now to FIG. 1, a contact center  100  in accordance with an embodiment of the present invention is illustrated in block diagram form. In general, the contact center  100  includes an agent data unit server  104 , and a contact center server  108 . Although the agent data unit server  104  and the contact center server  108  are illustrated as different server units for purposes of aiding in the description of the present invention, it should be appreciated that the agent data unit server  104  and the contact center server  108  may be incorporated in a common server computer.  
         [0021]    The contact center  100  additionally includes a number of channel servers  112 . The channel servers  112  interconnect the contact center  100  to the outside world in connection with any of a variety of media. For example, the channel 1 server  112   a  illustrated in FIG. 1 is shown as being interconnected to the Internet  116 . Accordingly, the channel 1 server  112   a  may comprise any channel capable of operating in connection with a media that comprises the Internet. Examples of such communication channels include e-mail, instant messaging, chat, remote video links, or voice over Internet protocol (VoIP) telephony. As a further example, the channel 2 server  112   b  is shown as being interconnected to the public switched telephony network (PSTN)  120 . Accordingly, the channel 2 server  112   b  may incorporate a channel suitable for use in connection with media comprising the public switched telephony network. Examples of such channels include servicing incoming real time voice communications, facsimile communications, and performing out-bound predictive dialing operations. Although shown as separate server computers in FIG. 1, it should be appreciated that the channel servers  112  may be implemented within a single computer. Furthermore, it should be appreciated that one or more of the channel servers  112  may be combined with one or both of the agent data unit server  104  and the contact center server  108 .  
         [0022]    The call center  100  additionally comprises a number of agent work stations  124 . In general, each of the agent work stations  124  provides an interface for an associated agent  128  with other components of the contact center  100 , including the associated channels  112  through or in associated with the channel servers. The agent  128  may comprise a human agent or some other resource, such as a computer implemented agent or a robotic agent.  
         [0023]    The various servers  104 ,  108 ,  112  and work stations  124  associated with the contact center are interconnected to one another by an internal communication network  132 . The internal communication network  132  may comprise one or more networks suitable for conveying communications between the various components. Accordingly, the internal communication network  132  may comprise a computer network, including a packet data network, such as a local area network, a wide area network, or a combination of computer network types. In general, any communication network suitable for passing information between interconnected servers  104 ,  108 ,  112  and work stations  124  may comprise the internal communication network  132 .  
         [0024]    The agent data unit server  104  generally provides a central repository for information concerning the agent work stations  124  and/or agents  128  associated with the contact center  100 . This information may be maintained in agent control blocks  136  maintained for each agent work station  124  and/or agent  128 . As will be described in greater detail below, components of the contact center  100  in communication with the agent data unit server  104  may use information stored in the agent control blocks  136  in determining aspects of the operation of those components. In addition, certain of the components associated with the contact center  100  may report status information to other of the components by altering fields maintained within the agent control blocks  136 .  
         [0025]    The contact center server  108  generally serves as a central repository for information related to the channels  112  associated with the contact center  100 . For example, the contact center server  108  may maintain a channel status control block  140  in connection with the channels  112  associated with the contact center  100 . The information maintained in the channel status control block  140  may be utilized to coordinate the activities of the channel servers  112 . In particular, a channel (e.g., a channel associated with the channel 1 server  112   a ) may report information related to that channel to the channel status control block  140 . Other channels (for example, channel 2  112   b ) may obtain information related to the status of the other channel or channels (e.g., channel 1  112   a ) by reading such information from fields maintained in the channel status control block  140 . As an alternative to a single status control block  140  containing status information related to each channel, a separate channel status control block may be provided for each channel associated with the contact center  100 . For example, a first channel status control block  140   a  may be provided in connection with the channel 1 server  112   a  and a second channel status control block  140   b  may be provided in connection with the channel 2 server  112   b.    
         [0026]    In addition to providing an interface between other components of the contact center  100  and the various media channels, as will be described in greater detail below, the channel servers  112  operate to obtain and release agents  128  as required to satisfy work loads in connection with the channel. Accordingly, the channel servers  112  each comprise a recruiter module  144  and a dispatcher module  148 .  
         [0027]    The work stations  124  each comprise a blender client  152 . As will be described in greater detail below, the blender client  152  generally functions to report a current agent work station  124  status to the corresponding agent control block  136  maintained as part of the agent data unit server  104 . In addition, the blender client  152  functions to prepare the associated agent work station  124  to transition to a different channel in response to a request for transfer indicated by a channel server  112  in the agent control block  136 . Each agent work station  124  may also comprise agent applications  156 . The agent applications  156  generally include applications allowing the human agent  128  associated with a work station  124  to communicate and otherwise initiate or respond to customer contacts over the channels. Examples of applications  156  that may be provided include electronic mail programs, instant messaging programs, programs implementing soft telephones, video telephones, and programs controlling the operation of hard telephones associated with a workstation  124 .  
         [0028]    With reference now to FIG. 2, a block diagram generally depicting the major functional components of a server  104 ,  108 ,  112  associated with a contact center  100  in accordance with the present invention is illustrated. In general, the server  104 ,  108 ,  112  comprises data storage  204 . The data storage  204  may comprise one or more components capable of maintaining information for use in connection with the operation of the server  104 ,  108 ,  112 . For example, the data storage  204  may comprise a hard disk drive, an optical drive, a floppy disk drive, magnetic tape devices, or solid state memory. Furthermore, it should be appreciated that the data storage  204  may comprise components capable of maintaining analog information, such as voice announcements, in addition to digital data.  
         [0029]    Each server  104 ,  108 ,  112  additionally includes a processor  208 . The processor  208  may comprise a programmable processor such as a Pentium™ or Power™ PC processor. Alternatively or in addition, the processor  208  may comprise a controller. In general, the processor  208  runs applications, which may be stored as programs in the data storage  204 , for controlling the operation of the server  104 ,  108 ,  112 .  
         [0030]    Each server  104 ,  108 ,  112  additionally includes a first network interface  212 . The first network interface  212  serves to interconnect the server  104 ,  108 ,  112  to the internal communication network  132  of the contact center  100 . For example, where the internal communication network  132  comprises an Ethernet network at the point of contact between the server  104 ,  108 ,  112  and the internal communication network  132 , the first network interface  212  comprises an Ethernet network interface.  
         [0031]    The server  104 ,  108 ,  112  may additionally include a second network interface  216 . In general, a second network interface  216  is provided where connectivity to a communication network using a different system or protocol than the first network interface  212  is required or desired. For instance, a second network interface  216  may be provided with channel servers  112  that interconnect the contact center  100  to external media. For instance, the channel 1 server  112   a  illustrated in FIG. 1 is shown as being interconnected to the Internet  116 . Accordingly, the channel 1 server  112   a  may comprise a TCP/IP network interface  216  that differs from the first network interface  212  associated with the channel 1 server  112   a . As a further example, the channel 2 server  112   b  illustrated in FIG. 1 is shown interconnected to the public switched telephony network (PSTN)  120 . Accordingly, the channel 2 server  112   b  may comprise a tip-ring interface as the second network interface  216 , to allow the channel server 2  112   b  to communicate over switched circuit communication lines. Still another example of a second network interface  216  is a computer telephony integration (CTI) interface.  
         [0032]    From the above description, it should be appreciated that the servers  104 ,  108 ,  112  used in connection with the present invention may be adapted to provide functions and hardware necessary or desirable in connection with the performance of their intended function. Furthermore, it should be appreciated that the servers  104 ,  108 ,  112  can be implemented using general purpose computers configured for operation in connection with the contact center  100 , or special purpose communication servers. In addition, it should be appreciated that, although the various servers  104 ,  108 ,  112  are illustrated by different functional blocks in FIG. 1, the contact center  100  may incorporate servers  104 ,  108 ,  112  that are not physically distinct from one another. For example, the agent data unit server  104  and the contact center server  108  may be implemented using a common general purpose server programmed to provide the functions of the agent data unit server  104  and the contact center server  108 . As a further example, the channel 1 server  112   a  and the channel 2 server  112   b  may share a common, suitably programmed communication server. Where, as in the example given above, the channel 1 server  112   a  and the channel 2 server  112   b  are interconnected to different media types, an additional network interface may be provided. That is, a second network interface  216  may be provided for TCP/IP communications, and a third network interface may be provided for tippering communications.  
         [0033]    According to a further embodiment of the present invention, a channel server  112  may comprise a single network interface  212  where customer contact may be maintained through the internal communication network  132 , for example via a server (such as the contact center server  108 ) that interconnects the internal communication network  132  to the Internet. As yet another example, the first channel  212  may be used in connection with VoIP telephony, and a second network interface  216  may be provided that is utilized in connection with tip-ring communications. As a further example, the servers  104 ,  108 ,  112  may all be implemented in a single physical computer.  
         [0034]    With reference now to FIG. 3, a work station  124  in accordance with an embodiment of the present invention is illustrated. In general, the work station  124  comprises a data storage device  304 , a processor  308  and a network interface  312 . The date storage device  304  may comprise one or more devices suitable for maintaining digital and/or analog information. For example, the data storage device  304  may comprise a hard disk drive, optical drive, floppy disk drive, tape drive, or solid state memory. The processor  308  may comprise a general purpose programmable processor, such as a Pentium™ or Power PC™ processor or a controller. In general, the processor  308  functions to run applications stored in the data storage  304  and used in connection with the operation of the work station  124 . The network interface  312  is provided for interconnecting the work station  124  to the internal communication network  132 . Accordingly, the network interface  312  may comprise a TCP/IP interface, such as an ethernet interface.  
         [0035]    An input/output or peripheral bus  316  may also be provided as part of the workstation  124  for interconnecting the work station  124  to a user input device  320  and/or a display  324 . The user input device  320  may comprise one or more devices for allowing an agent  128  to interface with the work station  124 . For example, the input device  320  may comprise a keyboard or pointing device. The display  324  may provide an agent  128  with visual output regarding the status of the work station  124  and in particular regarding tasks assigned to the agent  128  in connection with a channel. Accordingly, the display  324  may comprise a cathode ray tube or liquid crystal type display. Furthermore, as can be appreciated, input and output functions may be combined, for example in connection with a touch screen type display.  
         [0036]    The work station  124  may additionally comprise a communication device interface  328  for interconnecting the work station  124  to a communication device  332 . For instance, the communication device interface  328  may comprise a digital or analog audio interface, and the communication device  332  may comprise a telephone handset. Accordingly, as can be appreciated, the work station  124  may allow an agent  128  to communicate over channels comprising textual communications, such as Internet chat, using the input device  320  and display  324 . In addition, the communication device  332  may allow the agent  128  to communicate over channels comprising the public switched telephony network (e.g., in the example system of FIG. 1 an agent  128  can communicate over the PSTN  120  through the channel 2 server  112   b ).  
         [0037]    With reference now to FIG. 4, a table  400  illustrating various data fields maintained in connection with an agent control block  136  according to an embodiment of the present invention is illustrated. In general, the table  400  may include an agent state field  404 . The agent state field  404  may indicate whether an agent is available or unavailable for transfer to a different channel. The value held by the agent state field  404  may be controlled by the agent work station  124  associated with the particular agent control block  136  with which the particular table  400  is associated. A transition field  408  may be provided for indicating whether an agent  128  is designated for a transition to a new channel. The value held by the transition field  408  may be controlled by the agent work station  124 . In addition, a field indicating the agent&#39;s state on a channel  412  may be provided. In general, the field regarding the agent&#39;s state on a channel  412  indicates whether an agent  128  is, for example, on a call, idle, or wrapping up a client contact, for example, by updating client information maintained in a database. Accordingly, the field indicating the agent&#39;s state on an assigned channel  412  can indicate whether additional, concurrent work may be assigned to the agent  128 . Multiple fields  412  indicating an agent&#39;s state on a channel may be provided where the simultaneous assignment of an agent  128  to multiple channels is supported.  
         [0038]    The agent control block table  400  may additionally include a pending work items field  416 , for indicating the number of work items pending on each channel with respect to the agent  128 . Accordingly, work load information related to an agent  128  may be obtained from the agent control block tables  140 . Multiple fields  416  for indicating pending work items may be provided in connection with a contact center  100  in which the simultaneous assignment of agents  128  to multiple channels is supported. In addition, the agent control block table  400  may include one or more qualification fields  420 . The qualification field or fields  140  may, for example, indicate the channels (i.e. the types of work) that the agent is qualified to work on, and/or the agent&#39;s particular qualifications with respect to a channel.  
         [0039]    With reference now to FIG. 5, a channel status control block  140  in accordance with the present invention  140  may comprise a table  500  for storing various information regarding the status of the channels  112 . Fields related to the channels may include fields specifying whether additional agents are needed  504 , and a field regarding the priority of the channel  508  relative to the other channels. In an embodiment in which a separate channel status control block  140  is provided for each channel associated with the contact center, only information related to an associated channel is maintained in each status control block  140 . In such an embodiment, a channel server  112  checks the status control block  140  associated with each of the other channels to determine, for example, whether any other channels require additional agents.  
         [0040]    With reference now to FIG. 6, a flowchart depicting a process for recruiting or dispatching agents in connection with a channel followed by a channel server  112  is illustrated. Initially, at step  600 , agents  128  are considered for reassignment into or out of the channel. At step  604 , the channel server  112  determines which agents  128  are qualified for operations in connection with the channel. The capabilities of individual agents  128  may be indicated in qualification fields  420  provided as part of the agent control blocks  136 . Alternatively, or in addition, this determination can be made by referencing a table indicating the capabilities of various agents  128  maintained in the agent data unit server  104 . At step  608 , the agents  128  are ordered according to an ordering scheme. For instance, agents  128  may be ordered according to the time since they were last assigned to work in connection with the channel, to provide the agents  128  with a variety of work. The first agent  128  qualified for the channel  112  is then selected (step  612 ).  
         [0041]    At step  616 , the channel server  112  fetches the states of the selected agent  128  from the agent control block  136  associated with that agent  128 . In particular, the value held by the agent state field  404  of the table  400  maintained in the agent control block  136  for the selected agent  128  is referenced. At step  620 , a determination is made as to whether the selected agent  128  is already on the channel. If the agent is already on the channel, the channel server  112  may perform a conditional dispatch process for the agent  128  (step  624 ). If the agent  128  is not assigned to the channel, the channel server  112  performs a conditional recruitment process for the agent  128  (step  628 ). After performing either the conditional dispatch process or the conditional recruitment process, the channel server  112  determines whether the agent  128  previously conditionally dispatched or recruited is the last agent  128  qualified for the channel (step  632 ). If additional agents  128  qualified for the channel remain to be conditionally dispatched or recruited, the next agent  128  is selected (step  636 ), and steps  616 ,  620  and either  624  or  628  are performed with respect to the next agent  128 . If it is determined that the last agent  128  has been conditionally dispatched or recruited, the process for considering agents  128  for reassignment ends (step  640 ). A new process for considering agents  128  for reassignment may then begin immediately, after a period of delay, or after some triggering event, such as a change in traffic on a channel.  
         [0042]    In FIG. 7, the steps performed as a part of the conditional recruitment process  628  are shown. In particular, at step  700 , a determination is made as to whether the channel associated with the channel server  112  needs another agent  128 . If another agent  128  is required, a check is made to determine what other work (i.e., what other channels) the selected agent  128  is qualified for (step  704 ). This may be performed by checking the qualification field  420  maintained in the agent control block  400  for the selected agent  128 . Next, at step  708 , a determination is made as to whether any of the other work (i.e., the other channels) require agents  128 . This can be performed by checking the field specifying whether additional agents are required  504  that is maintained for each channel in the channel status control block  140 . If any other channels for which the selected agent is qualified require agents  128 , a determination is made as to whether any of those other channels requiring agents  128  has a higher priority than the channel associated with the server  112  has (step  712 ). The priority of other channels can be ascertained by assigned priority value for each channel. The priority values are maintained in the channel priority field  508  for each channel as part of the channel status control block  140 . If any of the other channels has a higher priority, the conditional recruitment process ends (step  716 ), and the channel server  112  returns to step  632  (see FIG. 6).  
         [0043]    If no other channel requiring agents has a higher priority than the channel associated with the channel server  112 , or if none of the other channels requires an agent  128 , a determination is made as to whether the agent  128  under consideration is already scheduled for a transition to another channel (step  720 ). In particular, the channel server  112  makes reference to the transition field  408  maintained in the agent control block  136  for the agent  128  under consideration. If the agent  128  under consideration has already been scheduled for a transition to another channel, the conditional recruitment process ends (step  716 ) and the server  112  returns to step  632  (see FIG. 6). If the agent  128  under consideration has not been scheduled for a transition to another channel, the agent&#39;s  128  transition state is set for transition to the channel associated with the channel server  112  (step  724 ).  
         [0044]    In general, when an agent  128  is recruited by a channel, the agent  128  will begin accepting work in connection with that channel after work pending on previously assigned channels has been completed. An agent work station  124  will signal that it is ready to accept work from a channel by indicating in the agent&#39;s state field  404  that the agent  128  is available. Accordingly, the agent work station  124  controls the value held by the transition field  408 . Furthermore, as can be appreciated by the description of the recruitment process, the channel server  112  seeking to recruit the services of an agent  128  for work on an associated channel may control the value held by the transition field  408  where no transition is pending.  
         [0045]    With reference now to FIG. 8, a flowchart depicting the conditional dispatch process for an agent  624  followed by a channel server  112  is illustrated. Initially, at step  800 , a check is made to determine what other types of work (i.e., what other channels) the agent  128  under consideration is qualified for by checking the agent qualifications field  420  for the agent  128 . Next, at step  804 , a determination is made as to whether any of the other work requires agents  128  by checking the field specifying whether additional agents  128  are needed  504  for each channel associated with the control center  100  for which the agent is qualified. If none of the other work requires agents  128 , the conditional dispatch process ends (step  808 ). The agent  128  under consideration thus will continue to be assigned work by the server  112  performing the conditional dispatch process. The server  112  then proceeds to step  632  (see FIG. 6).  
         [0046]    If at step  804  it is determined that other work needs agents  128 , a determination is made as to whether the channel associated with the channel server  112  performing the conditional dispatch process requires this particular agent  128  (step  808 ). If the agent  128  needs to be retained by the channel (for example, the agent  128  has pending work items, as shown in the pending work item field  416  of the agent control block  136  for that agent  128 , that prohibits reassignment, or service goals for the channel server  112  are in jeopardy without benefit of all of the currently assigned agents  128 ), a determination is made as to whether any of the other work requiring agents  128  has a higher priority than the channel associated with the channel server  112  (step  812 ). If none of the other channels has a higher priority, the conditional dispatch process ends (step  808 ) and the channel server  112  returns to step  632  (see FIG. 6).  
         [0047]    If the channel does not need the agent  128  under consideration, or if other work requiring agents  128  has a higher priority, a determination is made as to whether a transition to another channel has already been set for the agent  128  under consideration (step  816 ). If a transition for the agent  128  has already been set, the conditional dispatch process ends (step  808 ), and the channel server  112  continues to step  632  (see FIG. 6). If the agent transition state has not already been set, the transition state is set by the channel server  112  to indicate transition out of the channel (i.e. the agent  128  is released by the channel server  112  performing the conditional dispatch process pending the completion of tasks requiring the retention of the agent  128 ) (step  820 ). The conditional dispatch process then ends (step  808 ) and the channel server  112  continues to step  632  (see FIG. 6).  
         [0048]    As can be appreciated by the above description, the channel servers  112  cooperate with one another to distribute agents  128  to channels that require agents  128 . In particular, the channel servers  112  operate to recruit agents  128  when an associated channel has work to be completed, and that channel has a sufficiently high priority to recruit agents  128  given the work requirements of other channels. In addition, the channel servers  112  operate to release agents  128  to other channels if work having a higher priority arises on other channels.  
         [0049]    In addition, it can be appreciated that the cooperation between channel servers  112  to distribute agents  128  between the various channels is performed in the absence of a central control application. Instead, a central control block  140  is maintained for communicating the needs of individual channels for agents  128 , and the relative priorities of the channels. Accordingly, additional channels can be integrated into a contact center  100  simply by providing space within the channel control block  140  and by assigning a priority to the newly added channel. In particular, additional channels can be added without requiring the modification or rewriting of a central control application.  
         [0050]    The allocation of work to agents  128  associated with work stations  124  can also be performed in the absence of a central work allocation application. Instead, agent control blocks  136  are maintained centrally, to allow channel servers  112  to access status information regarding agents  128 . Accordingly, new or additional channels can be associated with a contact center  100  without requiring features associated with the work stations  124  to be modified. In particular, a newly added channel server  112  need only be capable of accessing the agent control blocks  136  maintained within the agent data unit server  104 .  
         [0051]    The present invention also ensures that agents  128  are not provided with incompatible work simultaneously. In particular, a channel can be precluded from distributing work to an agent  128  until the agent  128  has completed the work items previously distributed to the agent  128  by another channel.  
         [0052]    The foregoing discussion of the invention has been presented for purposes of illustration and description. Further, the description is not intended to limit the invention to the form disclosed herein. Consequently, variations and modifications commensurate with the above teachings within the skill and knowledge of the relevant art, are within the scope of the present invention. The embodiments described hereinabove are further intended to explain the best mode presently known of practicing the invention and to enable others skilled in the art to utilize the invention in such or in other embodiments and with various modifications required by their particular use or application of the invention. It is intended that the appended claims be construed to include the alternative embodiments to the extent permitted by the prior art.