IP Library Granted Patent US 11,303,752
Granted Patent B1
US 11,303,752 · App. 17/487,014 · Granted Apr 12, 2022

Techniques for managing user transmission rates in a communications network

Inventors: Nathan Miles (Raleigh, NC); Nick Ashley (Raleigh, NC)
Assignee: Bandwidth Inc.
H04M3/5232H04M3/4228H04M3/5237
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 11,303,752
App. No.
17/487,014
Granted
Apr 12, 2022
Kind
B1
Abstract

Techniques for managing transmission rates for users from each of a plurality of call engines (CEs) distributed on a communications network are provided. A list of users with at least one pending call in a corresponding queue from all other CEs is received, wherein each user's queue has a maximum queue depth calculated, in part, using a capped transmission rate in calls per second (CPS) for each user associated with their queue. It is determined, for each user, a total number of CEs having at least one pending call in their corresponding queue. A current CE transmission rate is calculated for each user by dividing the capped transmission rate for each user by the total number of CEs having at least one pending call in their corresponding queue. The current CE transmission rate indicates a rate at which calls in each user's queue are dequeued at each of the plurality of CEs. When a call request is received at a CE from a specific user, a total number of calls currently queued for the specific user in all CEs is determined. A maximum queue depth for the specific user is also determined, the maximum queue depth indicative of the total number of calls the specific user may queue for a predetermined length of time. The call request will be rejected when the total number of calls currently queued exceeds the maximum queue depth.

Claims (39)

1. A method for managing transmission rates for users of a plurality of call engines (CEs) distributed in a communications network, the method comprising, at each CE of the plurality of CEs distributed in the communications network:

receiving a list of users with at least one pending call or message in a corresponding queue from all other CEs, wherein each user's queue has a maximum queue depth calculated, in part, using a capped transmission rate in calls per second (CPS) or messages per second (MPS) for each user associated with their queue;

determining, for each user, a total number of CEs having at least one pending call or message in their corresponding queue;

calculating a current CE transmission rate for each user by dividing the capped transmission rate for each user by the total number of CEs having at least one pending call or message in their corresponding queue, the current CE transmission rate indicating a rate at which calls or messages in each user's queue are dequeued at each of the plurality of CEs currently handling calls or messages;

periodically repeating the receiving, determining, and calculating, to provide a current CE transmission rate for calls and messages for each user;

receiving a call or message request at a CE via an application programming interface (API), the request emanating from a telecommunication device of a specific user;

determining a total number of calls or messages currently queued for the specific user in all CEs;

determining the maximum queue depth for the specific user, the maximum queue depth indicative of the total number of calls or messages the specific user may queue over a predetermined length of time; and

rejecting the call or message request when the total number of calls or messages currently queued exceeds the maximum queue depth.

2. The method of claim 1 , the maximum queue depth equal to the capped transmission rate multiplied by the predetermined length of time.

3. The method of claim 2 , further comprising dequeuing calls or messages in the queue for each user based on a predetermined call or message priority.

4. A call engine (CE) device for managing transmission rates for users of a plurality of call engines (CEs) distributed in a communications network, comprising:

at least one non-transitory storage module; and

at least one processor, communicatively coupled to the at least one storage module, the at least one processor being configured to:

receive a list of users with at least one pending call or message in a corresponding queue from all other CEs, wherein each user's queue has a maximum queue depth calculated, in part, using a capped transmission rate in calls per second (CPS) or messages per second (MPS) for each user associated with theft queue;

determine, for each user, a total number of CEs having at least one pending call or message in their corresponding queue;

calculate a current CE transmission rate for each user by dividing the capped transmission rate for each user by the total number of CEs having at least one pending call or message in their corresponding queue, the current CE transmission rate indicating a rate at which calls or messages in each users queue are dequeued at each of the plurality of CEs currently handling calls or messages;

periodically repeat the receiving, determining, and calculating, to provide a current CE transmission rate for calls and messages for each user;

receive a call or message request at a CE via an application programming interface (API), the request emanating from a telecommunication device of a specific user;

determine a total number of calls or messages currently queued for the specific user in all CEs;

determine the maximum queue depth for the specific user, the maximum queue depth indicative of the total number of calls or messages the specific user may queue over a predetermined length of time; and

reject the call or message request when the total number of calls or messages currently queued exceeds the maximum queue depth.

5. The call engine device of claim 4 , the maximum queue depth equal to the capped transmission rate multiplied by the predetermined length of time.

6. The call engine device of claim 5 , wherein the processor is further configured to dequeue calls or messages in the queue for each user based on a predetermined call or message priority.

7. A system for managing transmission rates for users, the system comprising:

a communication network;

a plurality of call engines (CEs) distributed on the communications network, each call engine device comprising:

at least one non-transitory storage module; and

at least one processor, communicatively coupled to the at least one non-transitory storage module, the at least one processor being configured to:

receive a list of users with at least one pending call or message in a corresponding queue from all other CEs, wherein each user's queue has a maximum queue depth calculated, in part, using a capped transmission rate in calls per second (CPS) or messages per second (MPS) for each user associated with theft queue;

determine, for each user, a total number of CEs having at least one pending call or message in theft corresponding queue;

calculate a current CE transmission rate for each user by dividing the capped transmission rate for each user by the total number of CEs having at least one pending call or message in their corresponding queue, the current CE transmission rate indicating a rate at which calls or messages in each user's queue are dequeued at each of the plurality of CEs currently handling calls or messages;

periodically repeat the receiving, determining, and calculating, to provide a current CE transmission rate for calls and messages for each user;

receive a call or message request at a CE via an application programming interface (API), the request emanating from a telecommunication device of a specific user;

determine a total number of calls or messages currently queued for the specific user in all CEs;

determine the maximum queue depth for the specific user, the maximum queue depth indicative of the total number of calls or messages the specific user may queue over a predetermined length of time; and

reject the call or message request when the total number of calls or messages currently queued exceeds the maximum queue depth.

8. The system of claim 7 , the maximum queue depth equal to the capped transmission rate multiplied by the predetermined length of time.

9. The system of claim 8 , wherein the processor is further configured to dequeue calls or messages in the queue for each user based on a predetermined call or message priority.

Assignments (4)
SECURITY INTEREST Recorded Sep 6, 2023
From: BANDWIDTH INC.
To: BANK OF AMERICA, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 064807/0346 →
RELEASE OF SECURITY INTEREST Recorded Mar 15, 2023
From: SILICON VALLEY BRIDGE BANK, N.A. (SUCCESSOR TO SILICON VALLEY BANK), AS AGENT
To: BANDWIDTH INC.
Reel/Frame 062993/0767 →
SECURITY INTEREST Recorded Jun 6, 2022
From: BANDWIDTH INC.
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT AND COLLATERAL AGENT
Reel/Frame 060112/0638 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 28, 2021
From: MILES, NATHAN; ASHLEY, NICK
To: BANDWIDTH, INC.
Reel/Frame 057630/0977 →