1. A method comprising:
determining whether a number of resources for processing tasks exceeds a number of the tasks;
determining whether a target time exceeds an estimated wait time for one of the resources of each of the tasks plus an additional task;
in response to determining both that the number of the resources exceeds the number of the tasks and that the target time exceeds the estimated wait time of each of the tasks plus the additional task, initiating the additional task; and
in response to determining either that the number of the resources does not exceed the number of the tasks or that the target time does not exceed the estimated wait time for each of the tasks plus the additional task, forbearing from initiating the additional task.
2. The method of claim 1 wherein:
the additional task takes priority over at least some of the tasks.
3. The method of claim 1 wherein:
determining whether a number of resources for processing tasks exceeds a number of the tasks comprises
determining whether a number of idle said resources exceeds a number of unprocessed said tasks.
4. The method of claim 1 wherein:
determining whether a number of resources for processing tasks exceeds a number of the tasks comprises
determining whether a number of idle said resources, plus a difference between the target time and a shortest present waiting time for a resource of any of said tasks that are available for processing divided by an average advance time of said available tasks between adjacent positions of a queue of said available tasks, exceeds a number of unprocessed said tasks.
5. The method of claim 1 wherein:
determining whether a number of resources for processing tasks exceeds a number of the tasks comprises
determining whether a number of idle said resources, plus an average amount of time that a newly-initiated task takes to become available for processing divided by an average advance time of available said tasks between adjacent positions of a queue of said available tasks, exceeds the number of unprocessed said tasks.
6. The method of claim 1 wherein:
determining whether a number of resources for processing tasks exceeds a number of the tasks comprises
determining whether a sum of (a) a number of idle said resources, (b) a difference between the target time and a shortest present waiting time for a resource of any of said tasks that are available for processing divided by an average advance time of said available tasks between adjacent positions of a queue of said available tasks, (c) an average amount of time that a newly-initiated task takes to become available for processing divided by the average advance time, and (d) a number of said resources that are busy processing tasks and that are expected to become available within a time period equal to a sum of (b) and (c), less a number of resources among (d) that will receive a rest period upon ceasing to be busy, exceeds the number of said unprocessed tasks.
7. The method of claims 1 wherein:
determining whether a number of resources for processing tasks exceeds a number of the tasks comprises
determining whether a number of idle agents for servicing calls exceeds a number of unserviced calls.
8. The method of claim 7 wherein:
the number of idle agents comprises
a number of available agents plus a number of resting agents; and
the number of unserviced calls comprises
a number of available inbound calls plus a number of outstanding outbound calls.
9. The method of claim 8 wherein:
the outbound calls have priority over the inbound calls.
10. The method of claim 9 wherein:
initiating the additional task comprises
initiating an additional outbound call.
11. A method of determining whether or not to initiate an outbound call in a blended inboundoutbound call center, comprising:
determining whether a first number, comprising a number of agents having a skill who are available for servicing calls plus a number of agents having the skill who are resting, exceeds a second number, comprising a number of inbound calls needing the skill that are available for servicing plus a number of outstanding outbound calls needing the skill;
determining whether a target maximum amount of time for commencing to service each available inbound call needing the skill exceeds an estimated wait time for an agent having the skill of each of the available inbound calls needing the skill, wherein the pending outbound calls needing the skill and an additional outbound call needing the skill take precedence over the inbound calls needing the skill;
in response to determining both that the first number exceeds the second number and that the target time exceeds the estimated wait time of each of the available inbound calls needing the skill, initiating the additional outbound call needing the skill; and
in response to determining either that the first number does not exceed the second number or that the target time does not exceed the estimated wait time of each of the available inbound calls needing the skill, forbearing from initiating the additional outbound call needing the skill.
12. The method of claim 11 wherein:
determining whether a first number exceeds a second number comprises
determining whether the first number, comprising (a) the number of the agents having the skill who are available for servicing calls plus (b) the number of the agents having the skill who are resting plus (c) a difference between the target time and a shortest present waiting time for an agent of any of the available inbound calls needing the skill divided by an average advance time of the available inbound calls needing the skill between adjacent positions of a queue of the available inbound calls needing the skill, exceeds the second number.
13. The method of claim 11 wherein:
determining whether a first number exceeds a second number comprises
determining whether the first number, comprising (a) the number of the agents having the skill who are available for servicing calls plus (b) the number of the agents having the skill who are resting plus (c) an average amount of time that a newly-initiated outbound call needing the skill takes to become available for servicing by an agent divided by an average advance time of the available inbound calls needing the skill between adjacent positions of a queue of the available inbound calls needing the skill, exceeds the second number.
14. The method of claim 11 wherein:
determining whether a first number exceeds a second number comprises
determining whether the first number, comprising (a) the number of the agents having the skill who are available for servicing calls plus (b) the number of the agents having the skill who are resting plus (c) a difference between the target time and a shortest present waiting time for an agent of any of the available inbound calls needing the skill divided by an average advance time of the available inbound calls needing the skill between adjacent positions of a queue of the available inbound calls needing the skill plus (d) an average amount of time that a newly-initiated outbound call needing the skill takes to become available for servicing by an agent divided by the average advance time plus (e) a number of agents having the skill who are busy but are expected to become available within a time period equal to the sum of (c) and (d) minus a number of agents among (e) that will receive a rest period upon ceasing to be busy, exceeds the second number.
15. An apparatus that effects the method of one of the claims 1\u201314.
16. A computer-readable medium containing instructions which, when executed in a computer, cause the computer to perform the method of one of the claims 1\u201314.
17. An apparatus comprising:
first means for determining whether a number of resources for processing tasks exceeds a number of the tasks;
second means for determining whether a target time exceeds an estimated wait time for one of the resources of each of the tasks plus an additional task; and
means cooperative with the first and the second determining means and responsive to both a determination that the number of the resources exceeds the number of the tasks and a determination that the target time exceeds the estimated wait time of each of the tasks plus the additional task, for initiating the additional task, and further responsive to either a determination that the number of the resources does not exceed the number of the tasks or a determination that the target time does not exceed the estimated wait time for each of the tasks plus the additional task, for forbearing from initiating the additional task.
The claims below are in addition to those above.
All refrences to claim(s) which appear below refer to the numbering after this setence.
1. A non-transitory machine readable medium having a set of instructions which, when executed by one or more hardware processors, causes performance of a set of operations comprising:
receiving, by a first device from a second device, data traffic over a particular wireless link of a plurality of wireless links that communicatively couple the first device and the second device, the data traffic indicating a particular MAC address as a source MAC address;
storing, by the first device, an association between the particular wireless link and the particular MAC address;
receiving, by the first device, a data packet to be transmitted to the particular MAC address;
based on the stored association between the particular wireless link and the particular MAC address: selecting the particular wireless link, from the plurality of wireless links that communicatively couple the first device and the second device, to transmit the data packet to the second device;
transmitting, by the first device to the second device, the data packet over the particular wireless link.
2. The medium of claim 1, wherein each wireless link of the plurality of wireless links is configured for a different Radio Frequency (RF) channel than the other wireless links in the plurality of wireless links
3. The medium of claim 1, wherein the operations further comprise:
receiving, by the first device, an additional data packet to be transmitted to a second MAC address different than the particular MAC address;
applying a hash function to the second MAC address to obtain a hash value;
based on the hash value: selecting the second wireless link, from the plurality of wireless links that communicatively couple the first device and the second device, to transmit the additional data packet to the second device;
transmitting, by the first device to the second device, the additional data packet over the second wireless link
4. The medium of claim 3, wherein selecting the second wireless link comprises selecting a port on the first device associated with the second wireless link
5. The medium of claim 1, wherein the plurality of wireless links comprises:
the particular wireless link, the particular wireless link corresponding to a communication path between a first port on the first device and a second port on the second device; and
a second wireless link, the second wireless link corresponding to a communication path between a third port on the first device and a fourth port on the second device.
6. A first device comprising:
at least one hardware processor;
the first device being configured to perform operations comprising:
receiving, from a second device, data traffic over a particular wireless link of a plurality of wireless links that communicatively couple the first device and the second device, the data traffic indicating a particular MAC address as a source MAC address;
storing an association between the particular wireless link and the particular MAC address;
receiving a data packet to be transmitted to the particular MAC address;
based on the stored association between the particular wireless link and the particular MAC address: selecting the particular wireless link, from the plurality of wireless links that communicatively couple the first device and the second device, to transmit the data packet to the second device;
transmitting the data packet over the particular wireless link to the second device.
7. The first device of claim 6, wherein each wireless link of the plurality of wireless links is configured for a different Radio Frequency (RF) channel than the other wireless links in the plurality of wireless links
8. The first device of claim 6, wherein the operations further comprise:
receiving, by the first device, an additional data packet to be transmitted to a second MAC address different than the particular MAC address;
applying a hash function to the second MAC address to obtain a hash value;
based on the hash value: selecting the second wireless link, from the plurality of wireless links that communicatively couple the first device and the second device, to transmit the additional data packet to the second device;
transmitting, by the first device to the second device, the additional data packet over the second wireless link.
9. The first device of claim 8, wherein selecting the second wireless link comprises selecting a port on the first device associated with the second wireless link
10. The first device of claim 6, wherein the plurality of wireless links comprises:
the particular wireless link, the particular wireless link corresponding to a communication path between a first port on the first device and a second port on the second device; and
a second wireless link, the second wireless link corresponding to a communication path between a third port on the first device and a fourth port on the second device.