IP Library Granted Patent US 10,250,545
Granted Patent B1
US 10,250,545 · App. 15/188,618 · Granted Apr 2, 2019

Method, system and computer readable medium for notification delivery

Inventors: Gary Douglas Pulford (Lafayette, CO); Bruce Pollock (Omaha, NE); Ian James Juliano (Omaha, NE); James P. Breen (Chicago, IL)
Assignee: West Corporation
H04L51/26H04L41/5003H04L51/04H04L51/24H04W4/12
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 10,250,545
App. No.
15/188,618
Granted
Apr 2, 2019
Kind
B1
Abstract

In a system, method and computer readable medium for managing message delivery, message delivery jobs are dynamically prioritized into a plurality of priority queues based on a delivery timeframe for each job. A delivery manager controls delivery of the message delivery jobs through a number of delivery channels and ports. A priority manager reviews jobs pending in the queues. If the priority manager determines that a message delivery job will not be completed within its delivery timeframe, the priority manager assigns a higher priority to the message delivery job.

Claims (65)

1. A method, comprising:

a processor assigning a plurality of delivery ports to each of a plurality of delivery channels;

the processor receiving a plurality of message delivery jobs;

the processor assigning each of the message delivery jobs to one of the plurality of delivery channels;

the processor determining a delivery timeframe for each of the message delivery jobs;

the processor assigning a priority to each of the message delivery jobs, wherein each job's priority is based at least in part on its delivery timeframe,

the processor ordering the delivery jobs for delivery according to their priority;

in the case any of the prioritized jobs' delivery timeframe will not be met, increasing that job's priority to ensure its delivery within its delivery timeframe, and reordering the delivery jobs for delivery;

in the case any of the reprioritized jobs' delivery timeframe will not be met, determining, by the processor, a number of ports required by each channel to ensure that each message assigned to that channel is delivered to its respective recipient within its delivery timeframe;

in the case the number of available ports is at least equal to the total number of required ports, reassigning the available ports so that each channel has at least the number of ports it requires; and

in the case the number of available ports is not at least equal to the total number of required ports, reassigning the available ports to maximize the total value of delivering the messages, including any penalties incurred by the inability to delivery every message within its timeframe.

2. The method of claim 1 , wherein each message delivery job comprises at least one message and at least one message recipient.

3. The method of claim 1 , wherein the determining the priority of each of the message delivery jobs is further based at least in part on a service level requirement for each job.

4. The method of claim 1 , comprising receiving, by the processor, a further message delivery job.

5. The method of claim 4 , comprising assigning, by the processor, a priority to said further message delivery job higher than a selected message delivery job being processed.

6. The method of claim 5 , comprising the processor ordering the delivery jobs including the further delivery job for delivery according to their priority;

in the case any of the prioritized jobs' delivery timeframe will not be met, increasing that job's priority to ensure its delivery within its delivery timeframe, and reordering the delivery jobs for delivery according to their priority;

in the case any of the reprioritized jobs' delivery timeframe will not be met, determining, by the processor, a number of ports required by each channel to ensure that each message assigned to that channel is delivered to its respective recipient within its delivery timeframe;

in the case the number of available ports is at least equal to the total number of required ports, reassigning the available ports so that each channel has at least the number of ports it requires; and

in the case the number of available ports is not at least equal to the total number of required ports, reassigning the available ports to maximize the total value of delivering the messages, including any penalties incurred by the inability to delivery every message within its timeframe.

7. A non-transitory computer-readable medium comprising instructions that, when read by a processor, cause the processor to perform:

assigning a plurality of delivery ports to each of a plurality of delivery channels;

receiving a plurality of message delivery jobs;

assigning each of the message delivery jobs to one of the plurality of delivery channels;

determining a delivery timeframe for each of the message delivery jobs;

assigning a priority to each of the message delivery jobs, wherein each job's priority is based at least in part on its delivery timeframe,

ordering the delivery jobs for delivery according to their priority;

in the case any of the prioritized jobs' delivery timeframe will not be met, increasing that job's priority to ensure its delivery within its delivery timeframe, and reordering the delivery jobs for delivery;

in the case any of the reprioritized jobs' delivery timeframe will not be met, determining a number of ports required by each channel to ensure that each message assigned to that channel is delivered to its respective recipient within its delivery timeframe;

in the case the number of available ports is at least equal to the total number of required ports, reassigning the available ports so that each channel has at least the number of ports it requires; and

in the case the number of available ports is not at least equal to the total number of required ports, reassigning the available ports to maximize the total value of delivering the messages, including any penalties incurred by the inability to delivery every message within its timeframe.

8. The non-transitory computer-readable medium of claim 7 , wherein each message delivery job comprises at least one message and at least one message recipient.

9. The non-transitory computer-readable medium of claim 7 , wherein the determining the priority of each of the message delivery jobs is further based at least in part on a service level requirement for each job.

10. The non-transitory computer-readable medium of claim 7 , comprising instructions that, when read by the processor, cause the processor to perform receiving a further message delivery job.

11. The non-transitory computer-readable medium of claim 10 , comprising instructions that, when read by the processor, cause the processor to perform assigning to said further message delivery job a higher priority than a selected message delivery job being processed.

12. The non-transitory computer-readable medium of claim 11 , comprising instructions that, when read by the processor, further cause the processor to perform ordering the delivery jobs including the further delivery job for delivery according to their priority;

in the case any of the prioritized jobs' delivery timeframe will not be met, increasing that job's priority to ensure its delivery within its delivery timeframe, and reordering the delivery jobs for delivery according to their priority;

in the case any of the reprioritized jobs' delivery timeframe will not be met, determining, by the processor, a number of ports required by each channel to ensure that each message assigned to that channel is delivered to its respective recipient within its delivery timeframe;

in the case the number of available ports is at least equal to the total number of required ports, reassigning the available ports so that each channel has at least the number of ports it requires; and

in the case the number of available ports is not at least equal to the total number of required ports, reassigning the available ports to maximize the total value of delivering the messages, including any penalties incurred by the inability to delivery every message within its timeframe.

13. A system, comprising:

a processor; and

memory;

wherein the processor and the memory are communicably coupled;

wherein the processor:

assigns a plurality of delivery ports to each of a plurality of delivery channels;

receives a plurality of message delivery jobs;

assigns each of the message delivery jobs to one of the plurality of delivery channels;

determines a delivery timeframe for each of the message delivery jobs;

assigns a priority to each of the message delivery jobs, wherein each job's priority is based at least in part on its delivery timeframe,

orders the delivery jobs for delivery according to their priority;

in the case any of the prioritized jobs' delivery timeframe will not be met, increasing that job's priority to ensure its delivery within its delivery timeframe, and reordering the delivery jobs for delivery;

in the case any of the reprioritized jobs' delivery timeframe will not be met, determines a number of ports required by each channel to ensure that each message assigned to that channel is delivered to its respective recipient within its delivery timeframe;

in the case the number of available ports is at least equal to the total number of required ports, reassigns the available ports so that each channel has at least the number of ports it requires; and

in the case the number of available ports is not at least equal to the total number of required ports, reassigns the available ports to maximize the total value of delivering the messages, including any penalties incurred by the inability to delivery every message within its timeframe.

14. The system of claim 13 , wherein each message delivery job comprises at least one message and at least one message recipient.

15. The system of claim 13 , wherein the processor determines the priority of each of the message delivery jobs is further based at least in part on a service level requirement for each job.

16. The system of claim 13 wherein the processor further:

receives a further message delivery job;

assigns said further message delivery job a priority higher than a selected message delivery job being processed;

orders the delivery jobs including the further delivery job for delivery according to their priority;

in the case any of the prioritized jobs' delivery timeframe will not be met, increases that job's priority to ensure its delivery within its delivery timeframe, and reorders the delivery jobs for delivery according to their priority;

in the case any of the reprioritized jobs' delivery timeframe will not be met, determines a number of ports required by each channel to ensure that each message assigned to that channel is delivered to its respective recipient within its delivery timeframe;

in the case the number of available ports is at least equal to the total number of required ports, reassigns the available ports so that each channel has at least the number of ports it requires; and

in the case the number of available ports is not at least equal to the total number of required ports, reassigns the available ports to maximize the total value of delivering the messages, including any penalties incurred by the inability to delivery every message within its timeframe.

Assignments (9)
OMNIBUS ASSIGNMENT OF SECURITY INTEREST IN INTELLECTUAL PROPERTY Recorded Nov 25, 2024
From: UBS AG, STAMFORD BRANCH (AS SUCCESSOR TO CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH IN ITS CAPACITY AS COLLATERAL AGENT)
To: WILMINGTON TRUST, NATIONAL ASSOCIATION, AS THE SUCCESSOR COLLATERAL AGENT
Reel/Frame 069438/0775 →
CHANGE OF NAME Recorded Apr 3, 2023
From: WEST CORPORATION
To: INTRADO CORPORATION
Reel/Frame 063239/0900 →
CHANGE OF NAME Recorded Apr 3, 2023
From: INTRADO CORPORATION
To: WEST TECHNOLOGY GROUP, LLC
Reel/Frame 063239/0876 →
NOTICE OF GRANT OF SECURITY INTEREST (SECOND LIEN) IN PATENTS Recorded Jan 31, 2023
From: CX360, INC.; WEST TECHNOLOGY GROUP, LLC (FKA INTRADO CORPORATION, FKA WEST CORPORATION); INTRADO INTERACTIVE SERVICES CORPORATION (FKA WEST INTERACTIVE SERVICES CORPORATION, FKA COBALT ACQUISITION COMPANY)
To: U.S. BANK TRUST COMPANY, NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 062571/0018 →
RELEASE OF SECURITY INTEREST Recorded May 1, 2018
From: U.S. BANK NATIONAL ASSOCIATION
To: WEST CORPORATION; WEST INTERACTIVE SERVICES CORPORATION
Reel/Frame 045682/0403 →
NOTICE OF GRANT OF SECURITY INTEREST IN PATENTS (FIRST LIEN) Recorded Oct 10, 2017
From: WEST CORPORATION
To: CREDIT SUISSE AG, CAYMAN ISLANDS BRANCH, AS COLLATERAL AGENT
Reel/Frame 044166/0901 →
TERMINATION AND RELEASE OF SECURITY INTEREST IN PATENTS RECORDED AT REEL 040019, FRAME 0508 AND REEL 040019, FRAME 0761 Recorded Oct 10, 2017
From: WELLS FARGO BANK, NATIONAL ASSOCIATION
To: WEST INTERACTIVE SERVICES CORPORATION; WEST CORPORATION
Reel/Frame 044217/0284 →
SHORT FORM INTELLECTUAL PROPERTY AGREEMENT Recorded Sep 13, 2016
From: WEST CORPORATION
To: WELLS FARGO BANK, NATIONAL ASSOCIATION
Reel/Frame 040019/0508 →
SECURITY INTEREST Recorded Aug 22, 2016
From: WEST CORPORATION; WEST INTERACTIVE SERVICES CORPORATION
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 039500/0366 →
Continuity (2)
Continuation 14600974 · Jan 20, 2015
Continuation 11951394 · Dec 6, 2007