Abstract:
An external accessory is added to an automatic call director to ensure first in first out operation for connection to primary resources when secondary resources are accessed prior to primary resources. A controller intercepts resource requests for the call director and manages an auxiliary queue to provide first in first out operation. The resource requests are returned to the call director queue once first in first out is guaranteed.

Description:
BACKGROUND OF THE INVENTION  
         [0001]    The present invention relates to automatic call directors and, in particular, to accessories for maintaining first in first out call processing.  
           [0002]    Automatic call directors (ACDs) and their more simple-minded cousins, private branch exchanges, are used to connect callers with agents and other resources (e.g., modems, facsimile machines, voice mail, etc.). The typical ACD connects callers with resources until all resources are in use. At that point, further callers are placed in a hold queue until a resource becomes available. Normally the first in this hold queue will be the first out of the queue (i.e., a first in first out (FIFO) queue).  
           [0003]    Current ACDs are designed to handle callers in the described manner. A caller waits in the queue until a resource is available and is removed from the queue upon being connected to a resource. If the caller is returned to the queue for some reason the callers will be added to the end of the queue. For example, ACDs manufactured by Lucent, Siemens, and Nortel operate in this manner.  
           [0004]    Increasing there are resources that may be thought of as secondary resources, not the reason for the call, but a resource that the caller may be connected to prior to being connected to the desired primary resource.  
           [0005]    Resources that may be classified as secondary resources include voice mail (for voice mail independent of the main call (e.g., expressing an opinion of the calling experience while waiting for the primary resource)); information on demand systems, that provide prerecorded information on topics chosen by the caller while waiting; or non-agent telephones (e.g., calling a particular party on an ancillary matter while waiting for the primary resource).  
           [0006]    Another secondary resource is an automatic call back system. These systems take a call on hold, obtain call back information and calls back the caller at some future time. Such a system is disclosed in U.S. Pat. No. 5,227,884 and is incorporated herein by reference.  
           [0007]    Unfortunately, the ACDs available today do not permit a caller&#39;s place to be maintained in the hold queue while accessing these secondary resources. When the caller is connected to the secondary resource the caller&#39;s place in the queue is released (FIG. 1). Upon being released from the secondary resource, the caller goes to the end of the line in the hold queue for the primary resource. The caller&#39;s queue status has been lost.  
         SUMMARY OF THE INVENTION  
         [0008]    An accessory device for a server, where the server allocates client primary resource requests to primary resources and has a primary queue, includes a controller, a client/server communication link, an auxiliary queue, and a secondary resource communication link. The client/server communication link is adapted to communicate with the server and at least one client. The device intercepts client primary resource requests via the client/server communication link in response to the controller. The device stores the intercepted requests in the auxiliary queue in response to the controller. The secondary resource communication link is adapted to communicate with at least one secondary resource. The device allocates secondary resource requests to the secondary resource in response to the controller. The device returns the intercepted requests to the server via the client/server communication link in response to a desired condition. 
       
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS  
       [0009]    [0009]FIG. 1 is block diagram of a prior art system for assigning resources to clients using a server.  
         [0010]    [0010]FIG. 2 is a block diagram of an embodiment of a system for assigning resources to clients according to the invention.  
         [0011]    [0011]FIG. 3 is a block diagram of an accessory device according to the invention.  
         [0012]    [0012]FIG. 4 is a block diagram of an additional embodiment of a system for assigning resources to clients according to the invention.  
         [0013]    [0013]FIG. 5 is a block diagram of an embodiment of a system for assigning resources to callers according to the invention. 
     
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS  
       [0014]    Referring to FIG. 2, a FIFO accessory  12  is used to maintain the queue status for a server  14  that is not itself configured to maintain the status of clients  16  that will access secondary resources  18  while waiting for primary resources  20 . In this embodiment, the accessory  12  receives client information and resource requests from the server  14  and controls placement of client information and resource requests into the primary queue  21  of the server  14  via a client/server communications link  22 .  
         [0015]    The accessory  12  is responsive to requests by the clients  16  for secondary resources  18 . It provides secondary resources  18  via a secondary resource communications link  24 . Unlike the server  14 , the accessory  12  maintains the queue entry for the clients  16  even when a client is accessing a secondary resource  18 .  
         [0016]    Referring to FIG. 3, the accessory  12  includes a controller  26  and an auxiliary queue  28 . The controller  26  controls the client/server communication link  22 , the secondary resources link  24  and auxiliary queue  28 . The controller  26  and auxiliary queue  28  may be conveniently implemented using a microcomputer-based system, but such devices as programmable controllers, custom integrated circuits, and other devices known to those skilled in the art may be employed. The controller  26  and auxiliary queue  28  are distinct from the server  14 .  
         [0017]    In operation, the accessory  12  will typically pass all client requests for primary resources  20  directly to the server  14  as long as primary resources  20  are available. If all primary resources  20  are in use by other clients, the primary queue  21  will begin to fill. As the primary queue  21  fills, the controller  26  will begin placing the client requests in the auxiliary queue  28  instead of in the primary queue  21 . The threshold number of entries in the primary queue  21  at which the accessory  12  stops and starts placing client requests in the primary queue  21  may be chosen based on the likely wait period in the primary queue  21 . If the wait period will likely be too short to allow a client to make use of the secondary resources  20 , the client requests can conveniently wait in the primary queue  21 .  
         [0018]    It is possible to utilize other criteria to determine when the accessory  12  should start and stop placing client requests in the primary queue  21 . For example, if all secondary resources are disabled, all client requests could be placed in the primary queue  21 .  
         [0019]    Once in the auxiliary queue  28 , the controller  26  offers the clients access to the secondary resources  24 . This is accomplished by such well-known techniques as announcements, interactive voice response and voice response units. In some cases, access may be forced (e.g., a mandatory automatic call back system).  
         [0020]    The intercepted client requests for primary resources in the auxiliary queue  28  are maintained even while the client  16  accesses the secondary resources  18 . This information includes the order and/or time of the client&#39;s request for primary resources.  
         [0021]    In a preferred embodiment of the invention, this information is used to provide FIFO operation of not only the auxiliary queue  28 , but also the primary queue  21 . Entries are not placed into the primary queue  21  by the accessory  12  until the order of the entries is immutable (i.e., no more access of secondary resources are permitted and thus there is no way for the client to “get out of line” at that point).  
         [0022]    In addition, it is possible to maintain other ordering information in the auxiliary queue  28 . For example, clients might have differing priority levels. In this case, the priority level would be part of determining when the client left the auxiliary queue  28 .  
         [0023]    Various options are possible if a client is accessing a secondary resource when it reaches the head of the auxiliary queue  28 . Depending on the nature of the secondary resource, it may be immediately disconnected from the secondary resource, warned of a pending disconnect, or given a choice to disconnect. It is expected that in the cases of delayed disconnection, the client&#39;s will just “step aside” until disconnection from the secondary resource.  
         [0024]    Referring to FIG. 4, an additional embodiment of the invention places the accessory  12 ′ between the clients  16  and the server  14 . The accessory  12 ′ intercepts the primary resource requests directly from the clients  16  via the client communications link  22 A and communicates with the server  14  with the server communications link  22 B. The basic operation of the embodiments of FIGS. 2 and 4 is the same, but the design of some servers  12  may make it more convenient and/or effective to tie directly into the server  12  to take advantage of more of the server&#39;s inherent line switching abilities. In the case of servers having a less open architecture, the embodiment of FIG. 4 may be used.  
         [0025]    Referring to FIG. 4, a more specific application of the accessory  12  includes clients in the form of callers  16 ′, a server in the form of an ACD  14 ′, primary resources in the from the agents  20 ′ and various secondary resources, such as an automatic call back system  30 , a voice mail system  32 , an information on demand system  34  and a non-agent telephone instrument  36 .  
         [0026]    The operation of the accessory  12  is essentially as described above, but it is useful to consider the case of accessing the call back system  30 . A caller  16 ′ wishing to be connected to an agent  20 ′ is instead placed in the auxiliary queue  28 . By choice or otherwise, the caller  16 ′ is connected to the call back system  30 . The call back system  30  obtains the call back information from the caller  16 ′ and physically disconnects the caller  16 ′, but the call back system  30  and the accessory  12  maintain the caller  16 ′ as a “virtual” connection.  
         [0027]    The accessory  12  keeps the call in the auxiliary queue  28  and the call back system  30  monitors the progress of the call in the auxiliary queue  28 . When the call back system  30  determines that the call is about to be transferred to the primary queue  21 ′, it reestablishes the physical call and the caller  16 ′ is connected to the agent  20 ′.  
         [0028]    If the auxiliary queue  28  is being operated in FIFO mode, this, connection between the caller  16 ′ and the agent  20 ′ will occur essentially at the same time the caller  16 ′ would have been connected had the call remained on physical “hold” the entire time.  
         [0029]    Without the accessory  12  (FIG. 1), this call back at the same time the original call would have connected to an agent would be very improbable because the caller&#39;s order in the queue would have been lost when the call back system was initially connected to the caller.  
         [0030]    In some cases, it may be advantageous to combine the accessory  12  with the call back system  30  as a single unit.  
         [0031]    It should be evident that this disclosure is by way of example and that various changes may be made by adding, modifying or eliminating details without departing from the fair scope of the teaching contained in this disclosure. The invention is therefore not limited to particular details of this disclosure except to the extent that the following claims are necessarily so limited.