IP Library › Granted Patent US 12,726,547
Granted Patent B2
US 12,726,547 · App. 18/912,775 · Granted Sep 1, 2026

Systems and methods for data routing management

Inventor: David Rose (Parker, CO)
Assignee: Comcast Cable Communications, LLC
H04L67/51H04L61/103H04L67/1012
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 12,726,547
App. No.
18/912,775
Granted
Sep 1, 2026
Kind
B2
Abstract

Methods and systems for data routing management are disclosed. A method can comprise a system receiving a request directed to an address. The system can determine performance capabilities of a first logical grouping of computing devices, wherein the first logical grouping of computing devices share the address. The system can determine whether at least one computing device of the first logical grouping of computing devices can receive the request. If at least one computing device of the first logical grouping of computing devices can receive the request, the request can be transmitted to the at least one computing device of the first logical grouping of computing devices. If at least one computing device of the first logical grouping of computing devices cannot receive the request, the request can be transmitted to a second logical grouping of computing devices that share the address.

Claims (79)

1 . A method comprising:

receiving a communication request comprising an identifier;

based on receiving the communication request, determining an availability of each first computing device of a first logical grouping of computing devices associated with the identifier;

selecting, based on the availability of each first computing device, a second computing device of a second logical grouping of computing devices to process the communication request associated with the identifier; and

sending, to the second computing device, the communication request.

2 . The method of claim 1 , wherein receiving the communication request comprises receiving the communication request via at least one of: an internet phone call, a Voice over Internet Protocol (VOIP) communication, a multimedia communication, a VoIP enabled computer, a VoIP phone, or a VoIP adapter.

3 . The method of claim 1 , wherein the identifier comprises a device identifier common to the first logical grouping of computing devices.

4 . The method of claim 1 , wherein selecting, based on the availability of each first computing device, the second computing device of the second logical grouping of computing devices to process the communication request comprises:

determining each first computing device is unavailable to process the communication request; and

determining, based on each first computing device being unavailable to process the communication request, the second computing device of the second logical grouping of computing devices is available to process the communication request.

5 . The method of claim 4 , wherein determining each first computing device is unavailable to process the communication request comprises:

determining a performance metric of each first computing device, wherein each performance metric of each first computing device comprises at least one of: a central processing unit (CPU) status, a utilization of the CPU, a random access memory (RAM) status, a utilization of memory, a storage space status, an available disk space, a quantity of calls per second, a quantity of active communication sessions, an error message associated with the corresponding first computing device, or a historical performance metric; and

determining, based on comparing each performance metric of each first computing device to a performance threshold, each first computing device is unavailable to process the communication request.

6 . The method of claim 1 , further comprising:

determining, based on information stored in a node threshold table, that the second computing device satisfies an availability threshold, wherein the availability threshold comprises at least one of: a threshold performance metric value, a percentage of central processing unit (CPU) utilization capacity, a threshold quantity of active communication requests, a percentage of random access memory (RAM) utilization capacity, or a trigger point indicative of a classification of a processing availability or a routing availability of the second computing device; and

sending, to a database and based on determining the second computing device satisfies the availability threshold, an availability metric of the second computing device, wherein the availability metric is indicative of the processing availability or the routing availability of the second computing device.

7 . The method of claim 6 , further comprising updating, based on the second computing device satisfying the availability threshold and determining a change in the processing availability or the routing availability of the second computing device, a database that stores the processing availability or the routing availability of the second computing device.

8 . The method of claim 1 , further comprising determining a change in a performance capability category of the second computing device, wherein the performance capability category is associated with a classification of a processing availability or a routing availability of the second computing device.

9 . An apparatus comprising:

one or more processors; and

a memory storing processor-executable instructions that, when executed by the one or more processors, cause the apparatus to:

receive a communication request comprising an identifier;

based on receiving the communication request, determine an availability of each first computing device of a first logical grouping of computing devices associated with the identifier;

select, based on the availability of each first computing device, a second computing device of a second logical grouping of computing devices to process the communication request associated with the identifier; and

send, to the second computing device, the communication request.

10 . The apparatus of claim 9 , wherein the processor-executable instructions that, when executed by the one or more processors, cause the apparatus to receive the communication request, further cause the apparatus to:

receive the communication request via at least one of: an internet phone call, a Voice over Internet Protocol (VoIP) communication, a multimedia communication, a VoIP enabled computer, a VoIP phone, or a VoIP adapter.

11 . The apparatus of claim 9 , wherein the identifier comprises a device identifier common to the first logical grouping of computing devices.

12 . The apparatus of claim 9 , wherein the processor-executable instructions that, when executed by the one or more processors, cause the apparatus to select, based on the availability of each first computing device, the second computing device of the second logical grouping of computing devices to process the communication request, further cause the apparatus to:

determine each first computing device is unavailable to process the communication request; and

determine, based on each first computing device being unavailable to process the communication request, the second computing device of the second logical grouping of computing devices is available to process the communication request.

13 . The apparatus of claim 12 , wherein the processor-executable instructions that, when executed by the one or more processors, cause the apparatus to determine each first computing device is unavailable to process the communication request, further cause the apparatus to:

determine a performance metric of each first computing device, wherein each performance metric of each first computing device comprises at least one of: a central processing unit (CPU) status, a utilization of the CPU, a random access memory (RAM) status, a utilization of memory, a storage space status, an available disk space, a quantity of calls per second, a quantity of active communication sessions, an error message associated with the corresponding first computing device, or a historical performance metric; and

determine, based on comparing each performance metric of each first computing device to a performance threshold, each first computing device is unavailable to process the communication request.

14 . The apparatus of claim 9 , wherein the processor-executable instructions, when executed by the one or more processors, further cause the apparatus to:

determine, based on information stored in a node threshold table, that the second computing device satisfies an availability threshold, wherein the availability threshold comprises at least one of: a threshold performance metric value, a percentage of central processing unit (CPU) utilization capacity, a threshold quantity of active communication requests, a percentage of random access memory (RAM) utilization capacity, or a trigger point indicative of a classification of a processing availability or a routing availability of the second computing device; and

send, to a database and based on determining the second computing device satisfies the availability threshold, an availability metric of the second computing device, wherein the availability metric is indicative of the processing availability or the routing availability of the second computing device.

15 . The apparatus of claim 14 , wherein the processor-executable instructions, when executed by the one or more processors, further cause the apparatus to update, based on the second computing device satisfying the availability threshold and determining a change in the processing availability or the routing availability of the second computing device, a database that stores the processing availability or the routing availability of the second computing device.

16 . The apparatus of claim 9 , wherein the processor-executable instructions, when executed by the one or more processors, further cause the apparatus to determine a change in a performance capability category of the second computing device, wherein the performance capability category is associated with a classification of a processing availability or a routing availability of the second computing device.

17 . One or more non-transitory computer-readable media storing processor-executable instructions that, when executed by at least one processor, cause the at least one processor to:

receive a communication request comprising an identifier;

based on receiving the communication request, determine an availability of each first computing device of a first logical grouping of computing devices associated with the identifier;

select, based on the availability of each first computing device, a second computing device of a second logical grouping of computing devices to process the communication request associated with the identifier; and

send, to the second computing device, the communication request.

18 . The non-transitory computer-readable media of claim 17 , wherein the processor-executable instructions that, when executed by the at least one processor, cause the at least one processor to receive the communication request, further cause the at least one processor to:

receive the communication request via at least one of: an internet phone call, a Voice over Internet Protocol (VoIP) communication, a multimedia communication, a VoIP enabled computer, a VoIP phone, or a VoIP adapter.

19 . The non-transitory computer-readable media of claim 17 , wherein the identifier comprises a device identifier common to the first logical grouping of computing devices.

20 . The non-transitory computer-readable media of claim 17 , wherein the processor-executable instructions that, when executed by the at least one processor, cause the at least one processor to select, based on the availability of each first computing device, the second computing device of the second logical grouping of computing devices to process the communication request, further cause the at least one processor to:

determine each first computing device is unavailable to process the communication request; and

determine, based on each first computing device being unavailable to process the communication request, the second computing device of the second logical grouping of computing devices is available to process the communication request.

21 . The non-transitory computer-readable media of claim 20 , wherein the processor-executable instructions that, when executed by the at least one processor, cause the at least one processor to determine each first computing device is unavailable to process the communication request, further cause the at least one processor to:

determine a performance metric of each first computing device, wherein each performance metric of each first computing device comprises at least one of: a central processing unit (CPU) status, a utilization of the CPU, a random access memory (RAM) status, a utilization of memory, a storage space status, an available disk space, a quantity of calls per second, a quantity of active communication sessions, an error message associated with the corresponding first computing device, or a historical performance metric; and

determine, based on comparing each performance metric of each first computing device to a performance threshold, each first computing device is unavailable to process the communication request.

22 . The non-transitory computer-readable media of claim 17 , wherein the processor-executable instructions, when executed by the at least one processor, further cause the at least one processor to:

determine, based on information stored in a node threshold table, that the second computing device satisfies an availability threshold, wherein the availability threshold comprises at least one of: a threshold performance metric value, a percentage of central processing unit (CPU) utilization capacity, a threshold quantity of active communication requests, a percentage of random access memory (RAM) utilization capacity, or a trigger point indicative of a classification of a processing availability or a routing availability of the second computing device; and

send, to a database and based on determining the second computing device satisfies the availability threshold, an availability metric of the second computing device, wherein the availability metric is indicative of the processing availability or the routing availability of the second computing device.

23 . The non-transitory computer-readable media of claim 22 , wherein the processor-executable instructions, when executed by the at least one processor, further cause the at least one processor to update, based on the second computing device satisfying the availability threshold and determining a change in the processing availability or the routing availability of the second computing device, a database that stores the processing availability or the routing availability of the second computing device.

24 . The non-transitory computer-readable media of claim 17 , wherein the processor-executable instructions, when executed by the at least one processor, further cause the at least one processor to determine a change in a performance capability category of the second computing device, wherein the performance capability category is associated with a classification of a processing availability or a routing availability of the second computing device.

25 . A system comprising:

a first logical grouping of computing devices;

a second logical grouping of computing devices; and

a communication processing system in communication with the first logical grouping of computing devices and the second logical grouping of computing devices, wherein the communication processing system is configured to:

receive a communication request comprising an identifier;

based on receiving the communication request, determine an availability of each first computing device of the first logical grouping of computing devices associated with the identifier;

select, based on the availability of each first computing device, a second computing device of the second logical grouping of computing devices to process the communication request associated with the identifier; and

send, to the second computing device, the communication request.

26 . The system of claim 25 , wherein the communication processing system is configured to receive the communication request via at least one of: an internet phone call, a Voice over Internet Protocol (VoIP) communication, a multimedia communication, a VoIP enabled computer, a VoIP phone, or a VoIP adapter.

27 . The system of claim 25 , wherein the identifier is a device identifier common to the first logical grouping of computing devices.

28 . The system of claim 25 , wherein the communication processing system is configured to select, based on the availability of each first computing device, the second computing device of the second logical grouping of computing devices to process the communication request, the communication processing system is further configured to:

determine each first computing device is unavailable to process the communication request; and

determine, based on each first computing device being unavailable to process the communication request, the second computing device of the second logical grouping of computing devices is available to process the communication request.

29 . The system of claim 28 , wherein the communication processing system is configured to determine each first computing device is unavailable to process the communication request, the communication processing system is further configured to:

determine a performance metric of each first computing device, wherein each performance metric of each first computing device comprises at least one of: a central processing unit (CPU) status, a utilization of the CPU, a random access memory (RAM) status, a utilization of memory, a storage space status, an available disk space, a quantity of calls per second, a quantity of active communication sessions, an error message associated with the corresponding first computing device, or a historical performance metric; and

determine, based on comparing each performance metric of each first computing device to a performance threshold, each first computing device is unavailable to process the communication request.

30 . The system of claim 25 , wherein the communication processing system is further configured to:

determine, based on information stored in a node threshold table, that the second computing device satisfies an availability threshold, wherein the availability threshold comprises at least one of: a threshold performance metric value, a percentage of central processing unit (CPU) utilization capacity, a threshold quantity of active communication requests, a percentage of random access memory (RAM) utilization capacity, or a trigger point indicative of a classification of a processing availability or a routing availability of the second computing device; and

send, to a database and based on determining the second computing device satisfies the availability threshold, an availability metric of the second computing device, wherein the availability metric is indicative of the processing availability or the routing availability of the second computing device.

31 . The system of claim 30 , wherein the communication processing system is further configured to update, based on the second computing device satisfying the availability threshold and determining a change in the processing availability or the routing availability of the second computing device, a database that stores the processing availability or the routing availability of the second computing device.

32 . The system of claim 25 , wherein the communication processing system is further configured to determine a change in a performance capability category of the second computing device, wherein the performance capability category is associated with a classification of a processing availability or a routing availability of the second computing device.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 15, 2024
From: ROSE, DAVID
To: COMCAST CABLE COMMUNICATIONS, LLC
Reel/Frame 068894/0083 →
Continuity (6)
Continuation 18342428 · Jun 27, 2023
Continuation 16867282 · May 5, 2020
Continuation 16277622 · Feb 15, 2019
Continuation 15637566 · Jun 29, 2017
Continuation 14532276 · Nov 4, 2014
Related Publication 20250039270A1 · Jan 30, 2025
References Cited (26)
US 6609213B1 · Nguyen et al. · 2003 [cited by applicant]
US 7363349B2 · Friedman et al. · 2008 [cited by applicant]
US 8291108B2 · Raja et al. · 2012 [cited by applicant]
US 8520502B2 · Tenny · 2013 [cited by examiner]
US 9432298B1 · Smith · 2016 [cited by applicant]
US 9736248B2 · Rose · 2017 [cited by applicant]
US 10257290B2 · Rose · 2019 [cited by applicant]
US 20030160815A1 · Muschetto · 2003 [cited by applicant]
US 20060036763A1 · Johnson et al. · 2006 [cited by applicant]
US 20070143395A1 · Uehara et al. · 2007 [cited by applicant]
US 20080304441A1 · Tsirtsis · 2008 [cited by examiner]
US 20090129580A1 · Terpstra et al. · 2009 [cited by applicant]
US 20120011145A1 · Ruiz-Velasco et al. · 2012 [cited by applicant]
US 20120209650A1 · Romagnino et al. · 2012 [cited by applicant]
US 20140050123A1 · Chandler · 2014 [cited by examiner]
US 20140280810A1 · Gabrielson · 2014 [cited by examiner]
US 20150138962A1 · Tipton et al. · 2015 [cited by applicant]
US 20150146637A1 · Morita · 2015 [cited by examiner]
US 20150304969A1 · Morita · 2015 [cited by examiner]
US 20160127480A1 · Rose · 2016 [cited by applicant]
US 20170374163A1 · Rose · 2017 [cited by applicant]
U.S. Appl. No. 18/342,428 (2024/0056510), filed Jun. 27, 2023 (Feb. 15, 2024), David Rose (Comcast Cable Communications, LLC). [cited by applicant]
U.S. Appl. No. 16/867,282 (U.S. Pat. No. 11,729,278), filed May 5, 2020 (Aug. 15, 2023), David Rose (Comcast Cable Communications, LLC). [cited by applicant]
U.S. Appl. No. 16/277,622 (U.S. Pat. No. 10,693,978), filed Feb. 15, 2019 (Jun. 23, 2020), David Rose (Comcast Cable Communications, LLC). [cited by applicant]
U.S. Appl. No. 15/637,566 (U.S. Pat. No. 10,257,290), filed Jun. 29, 2017 (Apr. 9, 2019), David Rose (Comcast Cable Communications, LLC). [cited by applicant]
U.S. Appl. No. 14/532,276 (U.S. Pat. No. 9,736,248), filed Nov. 4, 2014 (Aug. 15, 2017), David Rose (Comcast Cable Communications, LLC). [cited by applicant]