(54) MANAGEMENT OF QUEUES IN CONTACT Publication Classi?cation CENTRES (51) Int. Cl.



Similar documents
(Us) (73) Assignee: Avaya Technology Corp. Je?' McElroy, Columbia, SC (US); (21) Appl. No.: 10/413,024. (22) Filed: Apr. 14, 2003 (57) ABSTRACT

/ \33 40 \ / \\ \ \ M / f 1. (19) United States (12) Patent Application Publication Lawser et al. NETWORK \ 36. SERVlCE 'NTERNET SERVICE

software, and perform automatic dialing according to the /*~102

US Al (19) United States (12) Patent Application Publication (10) Pub. No.: US 2007/ A1 Voight et al. SUBSCRIBER DATABASE.

US A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2002/ A1 STRANDBERG (43) Pub. Date: Oct.

Hay (43) Pub. Date: Oct. 17, 2002

US A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2007/ A1 Ollis et al. HOME PROCESSOR /\ J\ NETWORK

US A1 (19) United States (12) Patent Application Publication (10) Pub. N0.: US 2002/ A1. Mannarsamy (43) Pub. Date: NOV.

Ulllted States Patent [19] [11] Patent Number: 5,943,406

US A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2002/ A1 Fukuzato (43) Pub. Date: Jun.

(12> Ulllted States Patent (10) Patent N0.: US 6,591,288 B1 Edwards et al. (45) Date of Patent: Jul. 8, 2003

Lookup CNAM / other database for calllng

(12) Patent Application Publication (10) Pub. No.: US 2003/ A1 Wu et al. (43) Pub. Date: Feb. 20, 2003

Back up information data by blocks, and generate backup data of each block

Telephone Dressing Systems - Advantages and Disadvantages

;111: ~~~~~~~~~~~~~~~~~~~ [73] Assigneez Rockwell Semiconductor Systems 5,754,639 5/1998 Flockhart et al...

POTENTIAL. SC DA Il'JA N INTERFACE m. (21) Appl. No.: 11/037,604

(71) Applicant: SPEAKWRITE, LLC,Austin, TX (US)

US Al (19) United States (12) Patent Application Publication (10) Pub. N0.: US 2012/ A1 Lundstrom (43) Pub. Date: NOV.

US Al (19) United States (12) Patent Application Publication (10) Pub. No.: US 2009/ A1 Sanvido (43) Pub. Date: Jun.

(54) RETARGETING RELATED TECHNIQUES (52) US. Cl /1453 AND OFFERINGS. (75) Inventors: Ayrnan Farahat, San Francisco, (57) ABSTRACT

US A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2007/ A1. Operating System. 106 q f 108.

Ulllted States Patent [19] [11] Patent Number: 6,141,545

(12) United States Patent Edelen

(12) United States Patent (16) Patent N6.= US 6,198,814 B1 Gill (45) Date of Patent: Mar. 6, 2001

US A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2014/ A1 FAN et al. (43) Pub. Date: Feb.

(12) United States Patent (16) Patent N6.= US 6,611,861 B1 Schairer et al. (45) Date of Patent: Aug. 26, 2003

I SEARCH DATABASE l/ VISIT WEBSITE k ( UPDATE RECORDS Y (54) (75) (73) (21) (22) (63) (60) (US); Gary Stephen Shuster, Oakland, SELECT SUB-DOMAIN NAME

60 REDIRECTING THE PRINT PATH MANAGER 1

(30) Foreign Application Priority Data

wanagamem transformation and management

\ \ \ connection connection connection interface interface interface

US Al (19) United States (12) Patent Application Publication (10) Pub. No.: US 2012/ A1 Kuehl (43) Pub. Date: Aug.

US A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2007/ A1 Nej ah (43) Pub. Date: Feb.

US A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2012/ A1 Chung (43) Pub. Date: Aug.

US A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2005/ A1 Reuveni (43) Pub. Date: NOV.

Psychic Psychic Psychic Psychic Psychic

(12) Ulllted States Patent (10) Patent N0.: US 8,028,070 B2 Boyd et al. (45) Date of Patent: Sep. 27, 2011

(12) United States Patent

US A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2013/ A1 Warren (43) Pub. Date: Jan.

US B1 (12) United States Patent. (10) Patent N0.: US 6,282,278 B1 D0ganata et al. (45) Date 0f Patent: Aug. 28, 2001

(54) RAPID NOTIFICATION SYSTEM (52) US. Cl /206. (57) ABSTRACT (75) Inventors: Anand Rajasekar, San Jose, CA

/12 [-16. U CIUUU Cl UUCIEI U CICIUU. (12) Patent Application Publication (10) Pub. No.: US 2002/ A1 Lawless et al.

US A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2002/ A1 Boyer et al. (43) Pub. Date: Aug.

(54) LOTTERY METHOD Publication Classi?cation

3,2 74,344 AUTOMATIC DIALING DEVICE. Filed June 14, Sheets-Sheet 1 24 \ l NVENTOR. CHARLES C. YOUNG / /////% B ?

Cunneciiun to credit cards dltabase. The system analyzes all credit cards aeecums.

US A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2005/ A1 Owhadi et al. (43) Pub. Date: Feb.

US A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2007/ A1 Du et al. (43) Pub. Date: Aug.

remote backup central communications and storage facility

USOOS A Ulllted States Patent [19] [11 Patent Number: Dezonno et al. [45] Date of Patent: *May 25, 1999

: 2R5 ML OR 2. United States Patent [191. Fig-A3 [111 3,909,553. [451 Sept. 30, 1975 C54 ( T : Marshall. Laboratories Incorporated, Northlake, Ill.

Filetto et al. [45] Date of Patent: Feb. 15, 2000

(12> Ulllted States Patent (16) Patent N6.= US 6,320,621 B1 Fu (45) Date of Patent: Nov. 20, 2001

(12) United States Patent Halonen

(12) United States Patent Wen et a].

205 Controller / 205

US A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2014/ A1 Kota et al. (43) Pub. Date: Dec.

(12) Unlted States Patent (10) Patent N0.2 US 7,428,664 B2 Sirbu (45) Date of Patent: Sep. 23, 2008

(12) United States Patent (10) Patent N0.: US 8,282,471 B1 Korner (45) Date of Patent: Oct. 9, 2012

(12) United States Patent (10) Patent No.: US 7,142,661 B2 Erhart et al. (45) Date of Patent: Nov. 28, 2006

NETWORK BOUNDARY PRIVATE NETWORK PUBLIC _1 NETWORK

Patent Application Publication Sep. 30, 2004 Sheet 1 0f 2. Hierarchical Query. Contact Ow FIG. 1

(54) (76) (21) (22) (60) plurality of price panels for displaying currency pair prices, Leong Fai Mah, BridgeWater, NJ (US) (57) ABSTRACT

(54) METHOD FOR AUTOMATED HANDLING OF Publication Classi?cation OUTBOUND CONTACTS REQUIRING ASSURED CONNECTION TO A LIVE AGENT (51) Int- Cl

US A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2013/ A1 Chen (57)

Web Hosting Community 100

USOO A United States Patent [191 [11] Patent Number: 5,469,362. Hunt et al. [45] Date of Patent: Nov. 21, 1995

Support systems messaging via

US A1 (19) United States (12) Patent Application Publication (10) Pub. N0.: US 2013/ A1 DANG (43) Pub. Date: Jul.

US A1 (19) United States (12) Patent Application Publication (10) Pub. N0.: US 2013/ A1 Pi0t (43) Pub. Date: May 30, 2013

Internet Telephony Terminology

(IP Connection) Miami (54) (76) (21) (22) (51) (52) Application

i VlRTUAL SERVER 1 \ VIRTUAL SERVER 2, _ 7

(43) Pub. Date: Jan. 24, 2008

(43) Pub. Date: Feb. 16, 2012

i Load balancer relays request to selected node

US A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2013/ A1 Yoder (43) Pub. Date: NOV.

5,793,972 Aug. 11, 1998

Access List: my-fw-rule

Europaisches Patentamt European Patent Office Office europeen des brevets (11) EP A2 EUROPEAN PATENT APPLICATION

Ulllted States Patent [19] [11] Patent Number: 5,859,416

Integrating VoIP Phones and IP PBX s with VidyoGateway

Levy Processing System 1_Q

Logging Application. (73) Assignee: AUDIOCODES, INC., Somerset, NJ (US)

GATEWAY ' o o o

(75) Inventor: RoelofVIS, Eastern Passage (CA)

(12) United States Patent (10) Patent N0.: US 7,068,424 B1 Jennings et al. (45) Date of Patent: Jun. 27, 2006

subscription event billing event Dispatch selection to user

US A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2005/ A1 Kelly et al. (43) Pub. Date: Feb.

(54) SYSTEM AND METHOD FOR RING DELAY (52) US. Cl /252 ON A USER AGENT

United States Patent [191

Present Invention of the Internet - A Practical Approach to Marketing

US A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2006/ A1 Levine (43) Pub. Date: May 11, 2006

l / Normal End, client 1 granted access to " System 1

(21) (22) (57) ABSTRACT. Appl. No.: 10/752,736

7714 Evaluation 7 logic

US A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2003/ A1 Inoue et al. (43) Pub. Date: Jun.

116 \ 102 \ Switch based. VoIP terminal 1023 Von, client // / 1048 \ VoIP terminal. Gateway. Call. routing. Packet software \ network

Exam Name: Contact Center RIS.6.0 Application Developer Exam Type: Nortel Exam Code: Doc Type: Q & A with Explanations Total Questions: 60

Transcription:

l US 20110283000A1 (19) United States (12) Patent Application Publication (10) Pub. No.: US 2011/0283000 A1 McCormack et al. (43) Pub. Date: NOV. 17, 201 1 (54) MANAGEMENT OF QUEUES IN CONTACT Publication Classi?cation CENTRES (51) Int. Cl. (75) Inventors: Tony McCormack, Galway (IE); 52 30562115 73 (200601) 709/226 Nithyaganesh Kirubalaratnam ( )........ Galway (IE); Neil O Connor, (57) ABSTRACT Galway (IE) Contacts are managed within a contact centre by representing. _ each contact as a software object which contains skillset and (73) Asslgnee' NORTEL NETWORKS priority identi?ers. Contact objects are queued relative to one LIMITED Mississauga (CA) another by means of references to and/or from the object(s) immediately ahead of and behind each contact. In this way a (21) Appl' NO : 13/195 948 conventional queue can be dispensed with. Queries can be. _ made to a plurality of contact centres across a network to (22) Flled' Aug 2 2011 identify objects matching certain criteria at the top of each Related U-s- Application Data local queue. In this way a set of local queues substitutes for a network queue prov1d1ng increased res1l1ence 1n the case of (63) Continuation of application No, 10/645,438,?led on the failure of any individual component of the network or of Aug. 21, 2003, now Pat. No. 8,010,607. the network itself. Agent becomes available 1 N etwo rked Agent manager F Agent manager 134 passes detalls of passes details of 148 agent to query agent to network handler queue manager Query handier I maa er re ets 135 locates matching easih qugry 150 contact at top of queue handler S best Network queue manager 152 compares objects for best match 138 Query handler updates contact object with agent routing 140 Contact manager passes contact object to MM Router 142 MM router transfers corres punsing contact tc'agent Contact manager 144 deletes object ] from top of queue 146 Contact Manager l updates object reference(s) for adjacent objecl(s)

7 Patent Application Publication Sheet 1 of5 US 2011/0283000 A1 PBX <_ 'Incoming Calls 10 Interface & Multimedia Router Contact Manager Shared MemoryA Work?ow NR 20 12 / ( Shared MemoryB ~~~~~~~~~~ ~ Replication Service Customer Database 24 32 Multimedia Queue Manager 28 Query Hand er <~To Network Queue Manager Contact Centre Network Agent 30 Manager t } L Agent Agent Agent Agent } Agent Agent

Patent Application Publication Sheet 2 of5 US 2011/0283000 A1 Receive Catt at PBX 100 Queueing com mands processed I L Contact Manager writes new obiect in shared memory A t Workfiow requests MM Router to route caii to ivr aw ; Workflow updates object in Memory A with queue commands I Object replicated to shared memory MMQ Manager runs commands in object MMQ returns object to queue with skihset & priority information 102 104 106 108 110 112 to Contact object updated with 112 skillset & priority information For each skillset queue identi?ed 116 for new object Fla Find highest queued object with 1 same skiilset & lower priority Find the object immediately 120 above this in queue L Update each found object with 122 references to new contact object T, Update new contact object with 124 references to found objects Contact Manager updates object refs to piece object in queue(s) l i To Fig.3 114 All skillsets com piete? Yes 126 Contact queued 123 Fig. 2 Fig. 3

Patent Application Publication Sheet 3 0f 5 US 2011/0283000 A1 C2 C3 QQQQD F3 J8? of 2, C6. F lg. 4 C2 C6 Q9 LO

Patent Application Publication Sheet 4 of5 US 2011/0283000 A1 Agent becomes available 130 Local Local or networked operation? Networked 134.4~ h Agent manager passes details of agent to query handler Agent manager passes details of agent to network queue manager 148 136 Query handler locates matching contact at top of queue NeIWOl' queue manager requests each query handler s best m tr h 150 r Network queue manager compares objects for best match 152 138 Query handler updates contact object with agent routing 140 Contact manager passes contact object to MM Router 142 MM router transfers corresponsing contact to'agent 7 144 146 Contact manager deletes object from top of queue 1 Contact Manager updates object reference(s) for adjacent object(s) Fig. 6

Patent Application Publication Sheet 5 0f 5 US 2011/0283000 A1 Agent C 0 n.t a c 1 C e n U e A Contact Centre B N 6 w e MM 08 Mn Qw um Contact Centre C Contact Centre D Agent Agent L Agent J *_ I Agent Agent Agent Fig. 7

MANAGEMENT OF QUEUES IN CONTACT CENTRES FIELD OF THE INVENTION [0001] The present invention relates to the management of queues in contact centres. It has particular application in contact centres Which are networked together. BACKGROUND OF THE INVENTION [0002] Contact centres receive contacts in many forms, such as telephone calls, chat session requests, emails, video calls, etc. Such contacts must be processed and this usually means that they are assigned to agents based on the skillsets needed to effectively deal With the contacts. Because agents deal With many contacts throughout the day and the load on the centre varies over time, it is necessary to maintain queues both of contacts Which are Waiting to be assigned and of agents Who are ready for the next suitable contact. [0003] In conventional contact centres, contacts are?rst routed through a Work?oW designed to determine the priority of the contact and the skillset(s) required to deal With the contact (indeed the skillset may determine the priority rating assigned to a contact). In the case of voice calls, the call Will then be typically held at a private branch exchange (PBX) or a call server, and an identi?er for that call Will then be passed, along With the results of the Work?oW routing, to a contact queuing module (or queue manager ). [0004] The queue manager maintains one or more queues or lists of contact identi?ers, and new contacts are inserted into the appropriate queue based on skillset determinations from the Work?oW, and at the point in the queue determined by the priority assigned to the contact by the Work?oW pro cess. [0005] Where contact centres are networked together, the ideal distribution of new and Waiting contacts is one in Which the load is evenly balanced across the individual nodes (con tact centres). One approach is to use a network contact router Which is the entry point for all contacts entering the network (i.e. irrespective of Which contact centre receives the contact initially, the responsibility for routing the contact is made by the network router. The network contact router receives sta ti stical information from each node and from this information a decision is made as to Which node is most available based on the activity level of each node. Each new contact is diverted to the currently most available node. A problem With this approach is that it does not deal directly With individual agent availability. A further problem is that the method does not guarantee even distribution particularly When agents are only idle for very short times. [0006] An alternative approach is for the network contact router to directly monitor the activity of each agent, by receiv ing event reports from each node (an event in this sense might be that a contact has been passed to an agent, or that an agent has logged off for a break, or that an agent has become free. While this provides a more hands on approach in Which agent availability is dealt With directly, it is very sensitive to failure of the network queue. Should this fail, then the entire queue needs to be rebuilt from scratch When service has been restored. In networked multimedia contact centres, there may be thousands of agents and millions of queued contacts at any given time, so rebuilding the queue takes considerable time and requires considerable resources. [0007] A different approach is one in Which each node maintains its own queue and deals With its own received contacts. Only When there is a shortage of resources is a contact transferred to another node With spare capacity. This approach has the disadvantage that contacts are not evenly distributed through the network, and ine?iciencies such as over- and under-sta?ing can occur at different times of the day at individual nodes When in fact the network as a Whole might be able to handle the aggregated contacts more e?iciently. SUMMARY OF THE INVENTION [0008] The invention provides, in a?rst aspect, a method of managing contacts Within a contact centre, comprising the steps of: [0009] assigning to a received contact a priority and a skillset identi?er, Whereby the contact can be prioritised relative to other contacts; [0010] creating a software object for said contact; [0011] determining a queuing position for said object relative to at least one other object representing a contact having a similar skillset identi?er; and [0012] adding to said object a reference to said at least one other object, Whereby a collection of such objects each containing a reference to at least one other object provides a prioritised queue for a skillset. [0013] This method of managing contacts is very different to a traditional queue. Instead of the queue being provided as a list of contact IDs, each contact is represented by an object Which includes a forward and/or backward reference to the contact(s) immediately ahead or behind. In this Way, each node (e.g. each contact centre) can maintain its own queue and a stateless network queuing facility can be introduced to query the object at the top of each queue in the node and determine Which is most suitable for an agent Who has become available. [0014] Preferably, said object includes references to two other contacts having a similar skillset identi?er, denoting the contacts immediately ahead of and behind it Within a queue, apart from the case in Which the object is positioned at an end of a queue. [0015] In this Way, a new object can be inserted into the queue at any position by simply adding to the new object references to the objects between Which it is inserted (those immediately ahead and behind), and modifying those objects to refer to the new contact rather than to one another. The contact at the head of the queue can also be identi?ed by the fact that it has no forward reference (though a?ag may be added to that contact also), and that at the tail can be identi?ed by the lack of a backward reference. [0016] The term object encompasses structures imple mented using programming systems and languages Which are not object-orientated. [0017] Preferably, therefore, the method comprises the additional step of modifying said at least one other object With a reference to the newly created object. [00] In preferred embodiments, When the received con tact is assigned multiple skillset identi?ers, the corresponding object can include separate references to objects in different queues. In this Way each object might simultaneously be holding a position in several queues at once. [0019] Preferably, the method further comprises the step of responding to a network request by sending over the network details of those objects at the head of a queue matching criteria speci?ed in the request.

[0020] When this is done by a number of contact centres in a network, a network routing agent can quickly poll each contact centre for the top priority contact held at each centre meeting certain skillset criteria, and from the responses, choose the highest priority contact for assignment to an avail able agent. [0021] Should the network routing agent fail, then When service is restored it can immediately resume service due to the fact that the objects are maintained locally at each node. Additionally, a local queuing component can initiate queuing service in the event of a failure of the network queuing service [0022] In a preferred embodiment, the objects are created and maintained by a contact manager, and a queuing module carries out said determination of said queuing position according to information associated With the new object, the queuing module being further capable of adding said refer ence to said object. [0023] In this Way, all of the contacts are held together and the creation of a new object is followed by the queuing mod ule assigning to the new object a position relative to one or more existing objects. [0024] Preferably, the contact manager has a memory space in Which objects are stored, and the queuing module has a memory space in Which objects are updated, and said memory spaces either form part of a common space or a replication service is provided to update changes to an object effected in one of the memory spaces With corresponding changes to a copy of the object in the other of the memory spaces. [0025] The invention also provides a method of di stributing contacts across a network of contact centres, Wherein each contact is represented by a software object maintained at a contact centre, each said software object containing refer ences to one or more other software objects maintained at the same contact centre to provide a queue of objects at each contact centre, Wherein the method comprises: [0026] upon a network resource having the capability of handling contacts With certain criteria becoming avail able, requesting from each contact centre the highest priority queued object matching said criteria; [0027] receiving information relating to each such high est priority queued object from said contact centres; [0028] determining Which object represents the contact With the highest priority and/or best match for the avail able resource; and [0029] issuing routing instructions to cause said contact to be routed to the resource. [0030] The act of requesting from each contact centre the highest priority queued object physically may not require a network request if the memory area maintained by the nodal contact modules and network queue manager are synchro nised using a replication service. [0031] Preferably, the contact centre Which maintained the object representing the selected contact carries out the further step of removing the selected object from its queue and updat ing those objects Which contain references to the selected object, to thereby update the top of one or more queues represented at that contact centre by a collection of objects. [0032] While the preferred embodiment treats an agent as being a network resource Which is available to handle a contact, each contact centre could itself be a network resource in this sense. [0033] In another aspect the invention provides a computer program product comprising instructions in machine read able form Which When executed in a computer system for managing contacts at a contact centre are effective to cause the computer system to: [0034] assign to a received contact a priority and a skillset identi?er, Whereby the contact can be prioritised relative to other contacts; [0035] create a software object for said contact; [0036] determine a queuing position for said object rela tive to at least one other object representing a contact having a similar skillset identi?er; and [0037] add to said object a reference to said at least one other object, Whereby a collection of such objects each containing a reference to at least one other object pro vides a prioritised queue for a skillset. [0038] The computer program product may be a carrier such as a magnetic or optical disk (eg a hard drive, a tape for a tape drive, a?oppy disk, compact disk or digital versatile disk), or it may be an electronic signal such as an electronic?le for downloading over the lntemet. It may also be hard Wired in an electronic circuit of a processor. [0039] It Will be appreciated by those skilled in the art that a computer system for carrying out the instructions referred to above can be represented by a number of computers each carrying out different interrelated tasks, or by a dedicated electronic circuit (e.g. provided in a PBX) Which is either programmable or Which encodes the instructions referred to above. [0040] In another aspect the invention provides a computer program product comprising instructions in machine read able form Which When executed in a computer system pro vided in a network of contact centres are effective to cause the computer system to: [0041] upon a network resource having the capability of handling contacts With certain criteria becoming avail able, request from each contact centre a highest priority queued object representing a contact queued at that con tact centre Which matches said criteria; [0042] receive information relating to each such highest priority queued object from said contact centres; [0043] determine Which object represents the contact With the highest priority and/or best match for the avail able resource; and [0044] issue routing instructions to cause said contact to be routed to the resource. [0045] In another aspect the invention provides a system for managing contacts in a contact centre, the system comprising: [0046] a Work?oW processor for assigning to a received contact a priority and a skillset identi?er, Whereby the contact can be prioritised relative to other contacts; [0047] an object creation module for creating a software object for said contact; [0048] a queuing manager for determining a queuing position for said object relative to at least one other object representing a contact having a similar skillset identi?er; and [0049] an object modi?cation module for adding to said object a reference to said at least one other object, Whereby a collection of such objects each containing a refer ence to at least one other object provides a prioritised queue for a skillset. [0050] In a further aspect the invention provides a system for distributing contacts across a network of contact centres, Wherein each contact is represented by a software object maintained at a contact centre, each said software object

containing references to one or more other software objects maintained at the same contact centre to provide a queue of objects at each contact centre, wherein the system comprises: [0051] a request generator for generating a request, upon a network resource having the capability of handling contacts with certain criteria becoming available, said request being effective to determine from each contact centre the highest priority queued object at that contact centre matching said criteria; [0052] a network connection for forwarding said request to each contact centre and receiving therefrom informa tion concerning the highest priority queued object at each contact centre matching said criteria; [0053] comparison means for determining which object represents the contact with the highest priority and/or best match for the-available resource; and [0054] a routing instruction generator for issuing routing instructions to cause said contact to be routed to the resource. [0055] The invention further provides a software object representing a contact at a contact centre, said object includ ing a reference to one or more other such objects located immediately ahead of or behind said object in a queue, the object further comprising an identi?er to the contact which it represents and a skillset identi?er enabling it to be identi?ed in a search for objects representing contacts which match given skillset criteria. [0056] In another aspect the invention provides a virtual queue of contacts, wherein each contact within the queue is represented by a software object as de?ned above, and the order of contacts within the queue is determinable from the aggregated references between objects. [0057] The virtual queue can comprise a single collection of software objects (e. g. stored in the memory area(s) of one contact centre) or it may comprise a set of collections of software objects, each collection being independently main tained in a respective contact centre within a contact centre network. BRIEF DESCRIPTION OF DRAWINGS [0058] The invention will now be illustrated by the follow ing descriptions of embodiments thereof given by way of example only with reference to the accompanying drawings, in which: [0059] FIG. 1 is an architecture of a contact centre; [0060] FIG. 2 is a?owchart illustrating the steps leading up to a contact being queued; [0061] FIG. 3 is a?owchart of the process of placing a contact in a queue; [0062] FIG. 4 is a schematic representation of a queue before a new contact has been added; [0063] FIG. 5 is a schematic representation of a queue after a new contact has been added; and [0064] FIG. 6 is a?owchart of the process of assigning a contact to an agent; and [0065] FIG. 7 is an architecture of a contact centre network. DETAILED DESCRIPTION OF PREFERRED EMBODIMENTS [0066] In FIG. 1 the main components or processes of a contact centre as they relate to the present invention are shown. Such additional conventional details of a contact cen tre as are required for a complete architecture will be well known to the skilled person. The operation of the contact centre is illustrated with reference to voice calls but the same method of operation canbe used for any other type of contacts such as emails, chat session requests, video calls, etc. [0067] Incoming contacts are received at a contact server, which in the case of voice calls is a private branch exchange 10 (PBX) such as the Meridian series of PBXs available from Nortel Networks ( Meridian is a Trade Mark of Nortel Net works). The PBX is connected to and receives calls both from the public switched telephone network (PSTN) and from data networks such as the Internet and corporate intranets and wide area networks (via a suitable gateway, not shown). [0068] Referring additionally to FIG. 2, which shows the steps described below in?owchart format, the PBX answers each call, step 100, and holds it while details of the call (such as the port on which it is held and the origin of the call, eg the calling line ID or the IP address of the calling terminal) are passed via a proprietary protocol to an interface and multi media router 12. The multimedia router noti?es the details of the call to a contact manager 14, which generates a software object containing the details of the call in a shared memory area 16 (Memory Area A ), step 102. [0069] The multimedia router is adapted to generate com mands to the PBX using a proprietary protocol to cause the calls to be routed to whichever location has been identi?ed for the call (such as an agent of the call centre or another contact centre forming part of a common network of contact centres). The multimedia router, as its name implies, will typically handle other media types also, so it might be in communication with and in control of an email server, a videoconferencing server, and a chat server, for example. For simplicity it is described only in operation with voice calls. The Work?ow receives an event relating to the availability of a new contact. [0070] The contact manager is designed to manage a local queue of contacts (or more speci?cally, software objects rep resenting contacts). Both the work?ow 22 and the multimedia router 12 are typically embodied in software running on a computer having a suitable interface to enable communica tion with other components of the system. They can be run on the same computer or on different computers, and it will be appreciated that the details of the implementation are not critical to the principles of operation of the system. These components (as well as those described below in functional terms) could equally be embodied in dedicated hardware in which the program instructions are hardwired in an electronic circuit. [0071] The contact manager 14 next requests, step 104, the multimedia router 12 to direct the call to an interactive voice response (IVR) server 20 which directs the caller to respond to a series of prompts arranged in a suitable menu structure which the caller typically navigates using tones generated by the numbers on a handset. When the call is transferred to the IVR server 20, a work?ow process manager 22 locates the object in memory area A corresponding to the call (identi? able by the details of the contact held in the object) and updates the object in accordance with the output of the IVR process, step 106. [0072] Typically, the object is updated by adding a set of data based on the responses given by the caller, and based on customer details accessible from a customer details database 24 (if the identity of the caller can be determined from eg the calling line ID or information input by the caller during the IVR session), and these data are effective to act as a set of

commands to a multimedia queue (MMQ) manager to enable the MMQ manager to determine a priority rating for the call and to identify the skillsets required for an agent to deal With the call, as Will be described below. [0073] The mechanism Whereby the MMQ manager and the Work?oW process manager can each access the shared memory area and update contacts therein is at the choice of the system designer. For example, the shared memory may be a memory area in a memory of a computer in Which both the contact manager and the Work?oW manager are running. Alternatively, the memory area can be duplicated in two locations, i.e. at the contact manager 14 and the Work?oW manager 22, and a replication service running in each location can notify its counterpart to update an object With any changes made locally. In this Way, the two physically distinct memory areas can together form a uni?ed virtual memory area Which is accessible by both processes. Preferably, shared memory areas A and B are synchronised, leading to the situ ation Where a contact created/updated in A is automatically created/updated in B (and vice versa). [0074] The call is returned to the PBX by the MM router 12 When the IVR process is terminated, and When the contact manager determines that the corresponding object has been updated by the Work?oW process manager, it removes the object from shared memory area A and a replication service transfers it to a second shared memory area 26 (Memory Area B ), step 108. The MMQ manager is adapted to convert the Work?oW output (Which it reads from each object in memory area B) into queuing commands. It does this, step 110, by assigning one or more skillset identi?ers to the contact based on the information collected in the Work?oW process (and according to locally adjustable rules Which take account of the skillsets maintained in that contact centre) and by assign ing a priority rating based on the identity of the caller and the skillset determinations, in known manner. For example, calls received from particular numbers or made to restricted access numbers might get higher or lower priorities, and calls includ ing a sales skillset might be rated higher than those Which do not include that skillset. The management personnel of the contact centre can vary the priority ratings and skillset deter minations to take account of locally varying factors. [0075] The MMQ updates the object With the priority and skillset identi?ers and this then allows the contact manager to queue the object With reference to other Waiting contacts (or more accurately, the objects corresponding to other Wait ing contacts). The contact manager does not maintain a queue in the traditional sense, in Which a list of contact identi?ers is maintained. Instead, as Will be more fully described below, it provides each object With information about the contact immediately ahead and/ or behind it in the queue so that each object knows its place in the queue and the contact manager does not need to keep track of a list of objects. Thus, in step 114, the contact manager reads the priority and skillset infor mation and from this determines Which object(s) are imme diately ahead and/or behind it in the queue, and the relevant objects are then updated to refer to one another. This process Will now be described more fully With reference to FIGS. 3, 4 and 5. [0076] FIG. 3 starts With steps 110 and 112 in Which the MMQ manager runs the queuing commands, i.e. processes the data in the object, and then Writes to the object With the skillset and priority information. Each contact may have more than one skillset identi?er (e. g. sales, new customer and product ID no. 12345 ), and it is therefore placed in the queues for each skillset. The contact manager processes each skillset identi?ed in the object in turn, step 116, and?nds for that skillset the object With the priority immediately below that of the newly updated contact, step 1. A small collection of queued objects in a memory area are illustrated schemati cally in FIG. 4 before the new object has taken its place in the queues. [0077] Each contact object (C1-C7) includes at least one skillset identi?er and at least one reference to an object imme diately above or below it in a queue for that skillset. Thus, the queue for skillset SKI comprises, in decreasing order of priority, objects C1, C2 and C3. The queue for skillset SK2 comprises, again in decreasing order of priority, objects C1, C6 and C7, and that for skillset SK3 comprises C1, C4 and C5. [0078] Objects at the top of a queue (in this case C1 is at the top of the three queues) are identi?able by the lack of a forward reference (C1 refers back to C2, C4 and C6). Objects at the bottom of a queue are identi?able by the lack of a backward reference (thus C3 at the bottom of queue SKI has only a forward reference to C2 and C5 at the bottom of queues SK2 and SK3 has only forward references to C7 and C4). [0079] Taking the example of a new contact object, C8, Which is assigned to skillsets SK2 and SK3, With priority ratings higher than C7 (in queue SK2) and higher than C5 (in queue SK3), the contact manager identi?es C7, When pro cessing the SK2 skillset identi?er of object C8 in step 1, as the highest priority queued object With a lower priority in that skillset queue. From the forward reference in C7, the contact manager can then determine that C6 is immediately above this in the queue, step 120. (It should be noted that C6 and C8 may have identical priorities, in Which case C6 is placed above C8 as being an older contact.) [0080] In order to place C8 between C6 and C7, the contact manager modi?es, step 122, the backward reference in C6 to refer to C8 (rather than C7) and modi?es the forward refer ence in C7 to refer to C8 (rather than C6). Then, the C8 object is modi?ed by adding forward and backward references to C6 and C7, respectively. The C8 object is then considered to be queued for skillset SK2. [0081] The contact manager checks, in step 126, Whether the object is queued in each of its skillsets, and repeats steps 116-124 as many times as necessary until the object is queued in each skillset, step 128. [0082] The result of this process can be seen in FIG. 5, Where C8 is now queued (by virtue of the inter-object refer ences) between C6 and C7 in queue SK2 and between C4 and C5 in queue SK3. Apart from the objects immediately ahead of and behind the new object, the remaining objects in the memory area are unchanged. [0083] FIG. 6 shows how objects are removed from the queues When an agent becomes available, step 130. Referring?rst back to FIG. 1, an agent manager 30 monitors the activi ties of each agent in known manner and generates event reports as the status of each agent changes (such as an agent logging on/off, an agent becoming engaged in a call or an agent becoming free after a call). [0084] The contact centre can operate independently of other contact centres or it can form part of a larger networked contact centre (via the Internet 32, for example). FIG. 7 shows a contact centre network comprising a number of contact centres 160 (each of Which may be as shown in FIG. 1) connected to the Internet 32. Each contact centre 160 has a plurality of network resources (in this case, agents ) Which

are available to service contacts received either via the Inter net or over the PSTN (not shown in FIG. 7). A network queue manager 162 operates as described below to control the assignment of contacts to agents. [0085] A method of handling the local scenario and a method of handling the networked scenario will be described. (It is to be noted that a contact centre can operate in both local and networked modes simultaneouslyifor example an agent may have some skills which are used only on contacts received locally, whereas other skills may be applicable in other contact centres across the network.) A query manager 34 (FIG. 1) is programmed to decide if the contact centre should act in a local mode or a networked mode when a particular agent becomes available, decision 132 in FIG. 6. It might be the case that some agents are in high demand across the network and others (for example due to language abilities) are only in demand locally. Alternatively, the con tact centre might be a freelance centre which sells its services to various enterprises and therefore moves in and out of networks of contact centres over time. Yet again, the decision might depend on the availability of a network connection or the quality of service at a given time. As another example, the decision to operate locally or in a network might depend on how busy the centre is or how busy other centres are within the network. The decision made in step 132 can either be auto matic or it can be made by a supervisor controlling the query handler 34. [0086] Dealing?rst with the local mode of operation, the newly available agent will obviously be assigned a contact from among those held locally and identi?ed by a queued object in memory area B. The details of the agent (perhaps simply an identi?er if the query handler has access to the skillsets of the agent, or a listing of the agent s skillset abili ties if the query handler does not) are passed to the query handler, step 134. The query handler 34 accesses the memory area B and determines, step 136, which contact at the top of a queue (identi?ed by a lack of a forward reference) is most suited to the skillset of the agent. That contact object is then updated with a route to agent instruction identifying the agent, step 138. [0087] When the contact manager 14 notes that an object has been updated in this way, it sends the contact object, step 140, to the MM router 12 which in turn instructs the PBX, step 142, to transfer the call to the extension or workstation of the identi?ed agent. When transfer of the contact is con?rmed by the MM router 12, the contact manager 14 deletes the corre sponding object reference from the top of the queue, step 144 and then adjusts any references to this deleted object in other objects accordingly to place the next highest priority queued object(s) at the tops of their respective queues, step 146. [0088] If the contact centre is operating as part of a network of contact centres when the agent becomes free (as deter mined in decision 132), the details of the agent are passed from the agent manager via the query handler to a network queue manager 162 (FIG. 7) via the network 32. The function of the network queue manager is to determine the best contact across the network for that agent, and it does this by request ing the query manager in each contact centre for its best local match, step 150. A network queue manager could be available at each contact centre rather than having a single manager for the entire network. [0089] When the responses of each query manager are received back the network queue manager compares the results to determine which contact should be assigned to the agent, step 152. Following this determination, the network queue manager instructs the local query handler of the centre holding the contact to cause the contact to be transferred to the agent in question, in accordance with steps 138-146 described above. Of course if the agent and the contact are not in the same contact centre, then the contact object will be updated with an agent reference which contains su?icient information to allow the contact to be transferred by the PBX and the MM router to the relevant contact centre across the network where the agent is located, and the local MM router at that centre will connect the contact with the agent. Note that batching indi vidual updates from each agent manager and contact manager to/from the network queue manager using a replication ser vice enables e?icient real-time operation [0090] It is to be noted that the network queue manager is stateless, ie does not maintain any queues. Thus in the event of a failure of the network connection to any contact centre, then that centre can continue to operate locally and the remaining contact centres operate together as before. If the network queue manager itself fails, then each centre can operate independently without any setback. As soon as the network queue manager is again available, it bene?ts from the fact that it is stateless and can immediately resume routing contacts to agents without any need to rebuild queues. [0091] The invention is not limited to the embodiments described herein which can be varied without departing from the scope of the invention. What is claimed is: 1. 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 soft ware 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 speci?ed capability criteria becomes available: to determine a highest priority queued software object matching the speci?ed capability criteria; and to issue routing instructions to route a request correspond ing to the highest priority queued software object match ing the speci?ed capability criteria to the available net work 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 speci?ed capability by: requesting identi?cation of respective highest priority queued software objects matching the speci?ed capabil ity criteria from a plurality of nodes distributed across the network; and comparing the identi?ed respective highest priority queued software objects matching the speci?ed capability crite ria to determine the highest priority queued software object matching the speci?ed 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 identi?ed 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 repre sented by a software object positioned in at least one priori tized 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 speci?ed capability criteria becomes available: determining a highest priority queued software object matching the speci?ed capability criteria; and issuing routing instructions to route a request correspond ing to the highest priority queued software object match ing the speci?ed capability criteria to the available net work resource. 6. The method of claim 5, comprising determining the highest priority queued software object meeting the speci?ed capability by: requesting identi?cation of respective highest priority queued software objects matching the speci?ed capabil ity criteria from a plurality of nodes distributed across the network; and comparing the identi?ed respective highest priority queued software objects matching the speci?ed capability crite ria to determine the highest priority queued software object matching the speci?ed 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 identi?ed 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 compris ing at least one processor operable: to receive from a queue manager a request for identi?cation of a highest priority queued software objects matching speci?ed capability criteria stored at the node; and to send to the queue manager identi?cation of the highest priority queued software objects matching the speci?ed 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 identi?ed software object; to remove the identi?ed software object at the node in response to the received request when the identi?ed 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 identi?er to the received request; to determine a queuing position for the received request relative to at least one other request having a capability identi?er similar to the capability identi?er 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 identi?er, 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 identi?ers. 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 identi?cation of a highest priority queued software objects matching speci?ed capability criteria stored at the node; and sending to the queue manager identi?cation of the highest priority queued software objects matching the speci?ed 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.. 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 identi?ed software object; removing the identi?ed software object at the node in response to the received request when the identi?ed 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 identi?er to the received request; determining a queuing position for the received request relative to at least one other request having a capability identi?er similar to the capability identi?er 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 soft ware object comprises storing a new software object having multiple capability identi?ers. 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 speci?ed capability criteria becomes available: to determine a highest priority queued software object matching the speci?ed capability criteria; and to issue routing instructions to route a request correspond ing to the highest priority queued software object match ing the speci?ed capability criteria to the available net work 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 speci?ed capability by: requesting identi?cation of respective highest priority queued software objects matching the speci?ed capabil ity criteria from a plurality of nodes distributed across the network; and comparing the identi?ed respective highest priority queued software objects matching the speci?ed capability crite ria to determine the highest priority queued software object matching the speci?ed 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 identi?ed 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 speci?ed capability criteria becomes avail able: determining a highest priority queued software object matching the speci?ed capability criteria; and issuing routing instructions to route a request correspond ing to the highest priority queued software object match ing the speci?ed capability criteria to the available net work resource. 28. The method of claim 27, comprising determining the highest priority queued software object meeting the speci?ed capability by: requesting identi?cation of respective highest priority queued software objects matching the speci?ed capabil ity criteria from a plurality of nodes distributed across the network; and comparing the identi?ed respective highest priority queued software objects matching the speci?ed capability crite ria to determine the highest priority queued software object matching the speci?ed 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 identi?ed 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 soft ware object representing a respective request for action and having a corresponding capability identi?er, a corresponding priority and at least one pointer pointing to another software object corresponding to a similar capability identi?er 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 identi?er to the received request; determining a queuing position for the received request relative to at least one other request having a capability identi?er similar to the capability identi?er 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 hav ing the similar capability identi?er, 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 speci?ed capability criteria. 36. The method of claim 31, Wherein at least one software object has multiple corresponding capability identi?ers and at least one pointer corresponding to each corresponding capa bility identi?er. 37. The method of claim 32, comprising: assigning multiple capability identi?ers to the received request; and storing the new software object With at least one pointer corresponding to each capability identi?er. 38. Apparatus for managing requests for actions by net Work 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 identi?er, a corresponding priority and at least one pointer pointing to another software object corresponding to a similar capability identi?er 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 identi?er to the received request; to determine a queuing position for the received request relative to at least one other request having a capability identi?er similar to the capability identi?er 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 identi?er, 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 hav ing the similar capability identi?er, 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 speci fying capability criteria by sending over a network details of at least one software object at a head of a queue matching the speci?ed capability criteria. 43. The apparatus of claim 38, Wherein at least one soft Ware object has multiple corresponding capability identi?ers and at least one pointer corresponding to each corresponding capability identi?er. 44. The apparatus of claim 39, Wherein the at least one processor is operable: to assign multiple capability identi?ers to the received request; and to store the new software object With at least one pointer corresponding to each capability identi?er. 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 com prising: When a network resource having speci?ed capability crite ria becomes available, requesting from the network the highest priority queued software object matching the speci?ed capability criteria; and issuing routing instructions to route a request correspond ing to the highest priority queued software object match ing the speci?ed capability criteria to the available net Work 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 com prising at least one processor operable: When a network resource having speci?ed capability crite ria becomes available, to request from the network the highest priority queued software object matching the speci?ed capability criteria; and to issue routing instructions to route a request correspond ing to the highest priority queued software object match ing the speci?ed capability criteria to the available net Work 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. * * * * *