Management of Queues in Contact Centres
Abstract
Contacts are managed within a contact centre by representing each contact as a software object which contains skillset and priority identifiers. Contact objects are queued relative to one another by means of references to and/or from the object(s) immediately ahead of and behind each contact. In this way a conventional queue can be dispensed with. Queries can be made to a plurality of contact centres across a network to identify objects matching certain criteria at the top of each local queue. In this way a set of local queues substitutes for a network queue providing increased resilience in the case of the failure of any individual component of the network or of the network itself.
Claims
exact text as granted — not AI-modified1 . A queue manager for distributing across a network requests for actions by network resources wherein each request has an assigned priority and is represented by a software object positioned in at least one prioritized queue of software objects, each software object having at least one respective pointer determining the position of the software object in the at least one prioritized queue and each network resource meeting corresponding capability criteria, the queue manager comprising at least one processor operable, when a network resource having specified capability criteria becomes available:
to determine a highest priority queued software object matching the specified capability criteria; and to issue routing instructions to route a request corresponding to the highest priority queued software object matching the specified capability criteria to the available network resource.
2 . The queue manager of claim 1 , wherein the at least one processor is operable to determine the highest priority queued software object meeting the specified capability by:
requesting identification of respective highest priority queued software objects matching the specified capability criteria from a plurality of nodes distributed across the network; and comparing the identified respective highest priority queued software objects matching the specified capability criteria to determine the highest priority queued software object matching the specified capability criteria.
3 . The queue manager of claim 1 , wherein the at least one processor is further operable:
to initiate removal of the highest priority software object from the at least one prioritized queue; and to initiate updating of any software object having a pointer to the removed software object.
4 . The queue manager of claim 2 , wherein the at least one processor is further operable:
to initiate removal of the highest priority software object at the respective node which identified the software object determined to be the highest priority software object; and to initiate updating of any software object having a pointer to the removed software object at any node distributed across the network.
5 . A method of operating a queue manager to distribute across a network requests for actions by network resources wherein each request has an assigned priority and is represented by a software object positioned in at least one prioritized queue of software objects, each software object has at least one respective pointer determining the position of the software object in the at least one prioritized queue and each network resource matches corresponding capability criteria, the method comprising, when a network resource having specified capability criteria becomes available:
determining a highest priority queued software object matching the specified capability criteria; and issuing routing instructions to route a request corresponding to the highest priority queued software object matching the specified capability criteria to the available network resource.
6 . The method of claim 5 , comprising determining the highest priority queued software object meeting the specified capability by:
requesting identification of respective highest priority queued software objects matching the specified capability criteria from a plurality of nodes distributed across the network; and comparing the identified respective highest priority queued software objects matching the specified capability criteria to determine the highest priority queued software object matching the specified capability criteria.
7 . The method of claim 5 , further comprising:
initiating removal of the highest priority software object from the prioritized queue; and initiating updating of any software object having a pointer to the removed software object.
8 . The method of claim 6 , further comprising:
initiating removal of the highest priority software object at the respective node which identified the software object determined to be the highest priority software object; and initiating updating of any software object having a pointer to the removed software object at any node distributed across the network.
9 . A node for a network handling distributed requests for actions by network resources wherein each request has an assigned priority and is represented by a software object positioned in at least one prioritized queue of software objects, each software object having at least one respective pointer determining the position of the software object in the at least one prioritized queue and each network resource meeting corresponding capability criteria, the node comprising at least one processor operable:
to receive from a queue manager a request for identification of a highest priority queued software objects matching specified capability criteria stored at the node; and to send to the queue manager identification of the highest priority queued software objects matching the specified capability criteria stored at the node in response to the received request.
10 . The node of claim 9 , wherein the at least one processor is further operable:
to receive from the queue manager routing instructions to route a request corresponding to a queued software object to an available network resource; and to route the request corresponding to the queued software object to the available network resource in response to the received instructions.
11 . The node of claim 10 , wherein the at least one processor is operable to route the request by routing the software object to the available network resource.
12 . The node of claim 10 , wherein the at least one processor is further operable:
to receive from the queue manager a request for removal of an identified software object; to remove the identified software object at the node in response to the received request when the identified software object is stored at the node; and to update any software object stored at the node having a pointer to the removed software object in response to the received request.
13 . The node of claim 9 wherein the at least one processor is further operable:
to receive a request for action;
to assign a priority and a capability identifier to the received request;
to determine a queuing position for the received request relative to at least one other request having a capability identifier similar to the capability identifier assigned to the received request; and
to store a new software object representing the received request, the new software object having at least one pointer to at least one other software object representing a request having a similar capability identifier, the at least one pointer indicating the queuing position of the received request relative to the at least one other request.
14 . The node of claim 13 , wherein the at least one processor is operable to store a new software object representing the received request by storing a new software object having multiple capability identifiers.
15 . The node of claim 13 , wherein the at least one processor is operable to modify a pointer of the at least one other software object to point to the new software object.
16 . A method of operating a node for a network handling distributed requests for actions by network resources wherein each request has an assigned priority and is represented by a software object positioned in at least one prioritized queue of software objects, each software object having at least one respective pointer determining the position of the software object in the at least one prioritized queue and each network resource meeting corresponding capability criteria, the method comprising:
receiving from a queue manager a request for identification of a highest priority queued software objects matching specified capability criteria stored at the node; and sending to the queue manager identification of the highest priority queued software objects matching the specified capability criteria stored at the node in response to the received request.
17 . The method of claim 16 , further comprising:
receiving from the queue manager routing instructions to route a request corresponding to a queued software object to an available network resource; and routing the request corresponding to the queued software object to the available network resource in response to the received instructions.
18 . The method of claim 17 , comprising routing the request by routing the software object to the available network resource.
19 . The method of claim 16 , further comprising:
receiving from the queue manager a request for removal of an identified software object; removing the identified software object at the node in response to the received request when the identified software object is stored at the node; and updating any software object stored at the node having a pointer to the removed software object in response to the received request.
20 . The method of claim 16 , further comprising:
receiving a request for action; assigning a priority and a capability identifier to the received request; determining a queuing position for the received request relative to at least one other request having a capability identifier similar to the capability identifier assigned to the received request; and storing a new software object representing the received request, the new software object having at least one pointer to at least one other software object representing a request having a similar capability, the at least one pointer indicating the queuing position of the received request relative to the at least one other request.
21 . The method of claim 20 , wherein storing a new software object comprises storing a new software object having multiple capability identifiers.
22 . The method of claim 20 , further comprising modifying a pointer of the at least one other software object to point to the new software object.
23 . The node of claim 9 , wherein the at least one processor is further operable, when a network resource having specified capability criteria becomes available:
to determine a highest priority queued software object matching the specified capability criteria; and to issue routing instructions to route a request corresponding to the highest priority queued software object matching the specified capability criteria to the available network resource.
24 . The node of claim 23 , wherein the at least one processor is operable to determine the highest priority queued software object meeting the specified capability by:
requesting identification of respective highest priority queued software objects matching the specified capability criteria from a plurality of nodes distributed across the network; and comparing the identified respective highest priority queued software objects matching the specified capability criteria to determine the highest priority queued software object matching the specified capability criteria.
25 . The node of claim 24 , wherein the at least one processor is further operable:
to initiate removal of the highest priority software object from the at least one prioritized queue; and to initiate updating of any software object having a pointer to the removed software object.
26 . The node of claim 23 , wherein the at least one processor is further operable:
to initiate removal of the highest priority software object at the respective node which identified the software object determined to be the highest priority software object; and to initiate updating of any software object having a pointer to the removed software object at any node distributed across the network.
27 . The method of claim 16 , comprising, when a network resource having specified capability criteria becomes available:
determining a highest priority queued software object matching the specified capability criteria; and issuing routing instructions to route a request corresponding to the highest priority queued software object matching the specified capability criteria to the available network resource.
28 . The method of claim 27 , comprising determining the highest priority queued software object meeting the specified capability by:
requesting identification of respective highest priority queued software objects matching the specified capability criteria from a plurality of nodes distributed across the network; and comparing the identified respective highest priority queued software objects matching the specified capability criteria to determine the highest priority queued software object matching the specified capability criteria.
29 . The method of claim 27 , further comprising:
initiating removal of the highest priority software object from the prioritized queue; and initiating updating of any software object having a pointer to the removed software object.
30 . The method of claim 28 , further comprising:
initiating removal of the highest priority software object at the respective node which identified the software object determined to be the highest priority software object; and initiating updating of any software object having a pointer to the removed software object at any node distributed across the network.
31 . A method of managing requests for actions by network resources meeting respective capability criteria, the method comprising storing a plurality of software objects, each software object representing a respective request for action and having a corresponding capability identifier, a corresponding priority and at least one pointer pointing to another software object corresponding to a similar capability identifier and having a next highest priority such that the stored plurality of software objects provides at least one prioritized queue for requests for actions by network resources having at least one capability.
32 . The method of claim 31 , further comprising:
receiving a request for action; assigning a priority and a capability identifier to the received request; determining a queuing position for the received request relative to at least one other request having a capability identifier similar to the capability identifier assigned to the received request; and storing a new software object representing the received request, the new software object having at least one pointer to at least one other software object representing a request having a similar capability, the at least one pointer indicating the queuing position of the received request relative to the at least one other request.
33 . The method of claim 32 , wherein the new software object comprises pointers to two other software objects having the similar capability identifier, the other two software objects representing requests immediately ahead of and immediately behind the received request in the prioritized queue, except when the new software object is at an end of the prioritized queue.
34 . The method of claim 32 , further comprising modifying a pointer of the at least one other software object to point to the new software object.
35 . The method of claim 31 , further comprising responding to a network request specifying capability criteria by sending over a network details of at least one software object at a head of a queue matching the specified capability criteria.
36 . The method of claim 31 , wherein at least one software object has multiple corresponding capability identifiers and at least one pointer corresponding to each corresponding capability identifier.
37 . The method of claim 32 , comprising:
assigning multiple capability identifiers to the received request; and storing the new software object with at least one pointer corresponding to each capability identifier.
38 . Apparatus for managing requests for actions by network resources having respective capabilities, the apparatus comprising a memory operable to store a plurality of software objects, each software object representing a respective request for action and having a corresponding capability identifier, a corresponding priority and at least one pointer pointing to another software object corresponding to a similar capability identifier and having a next highest priority such that the stored plurality of software objects provides at least one prioritized queue for requests for actions by network resources having at least one capability.
39 . The apparatus of claim 38 , further comprising at least one processor operable:
to receive a request for action; to assign a priority and a capability identifier to the received request; to determine a queuing position for the received request relative to at least one other request having a capability identifier similar to the capability identifier assigned to the received request; and to store a new software object representing the received request, the new software object having at least one pointer to at least one other software object representing a request having a similar capability identifier, the at least one pointer indicating the queuing position of the received request relative to the at least one other request.
40 . The apparatus of claim 39 , wherein the new software object comprises pointers to two other software objects having the similar capability identifier, the other two software objects representing requests immediately ahead of and immediately behind the received request in a prioritized queue, except when the new software object is at an end of the prioritized queue.
41 . The apparatus of claim 39 , wherein the at least one processor is operable to modify a pointer of the at least one other software object to point to the new software object.
42 . The apparatus of claim 39 , wherein the at least one processor is operable to respond to a network request specifying capability criteria by sending over a network details of at least one software object at a head of a queue matching the specified capability criteria.
43 . The apparatus of claim 38 , wherein at least one software object has multiple corresponding capability identifiers and at least one pointer corresponding to each corresponding capability identifier.
44 . The apparatus of claim 39 , wherein the at least one processor is operable:
to assign multiple capability identifiers to the received request; and to store the new software object with at least one pointer corresponding to each capability identifier.
45 . A method of distributing across a network requests for actions by network resources wherein each request has an assigned priority and is represented by a software object positioned in at least one prioritized queue of software objects, each software object having at least one respective pointer determining the position of the software object in the at least one prioritized queue and each network resource meeting corresponding capability criteria, the method comprising:
when a network resource having specified capability criteria becomes available, requesting from the network the highest priority queued software object matching the specified capability criteria; and issuing routing instructions to route a request corresponding to the highest priority queued software object matching the specified capability criteria to the available network resource.
46 . The method of claim 45 , further comprising:
removing the highest priority software object from the at least one prioritized queue; and updating any software object having a pointer to the removed software object.
47 . Apparatus for distributing across a network requests for actions by network resources wherein each request has an assigned priority and is represented by a software object positioned in at least one prioritized queue of software objects, each software object having at least one respective pointer determining the position of the software object in the at least one prioritized queue and each network resource meeting corresponding capability criteria, the apparatus comprising at least one processor operable:
when a network resource having specified capability criteria becomes available, to request from the network the highest priority queued software object matching the specified capability criteria; and to issue routing instructions to route a request corresponding to the highest priority queued software object matching the specified capability criteria to the available network resource.
48 . The apparatus of claim 47 , wherein the at least one processor is further operable:
to remove the highest priority software object from the at least one prioritized queue; and to update any software object having a pointer to the removed software object.Cited by (0)
No later patents cite this yet.
References (0)
No backward citations on record.