# US 8,570,873 B2 · Method and system for a multitenancy telephone network

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 8,570,873 B2
- Document ID: US8570873B2
- Status: Granted
- Kind: B2
- Application number: 13/743,139
- Filed: 2013-01-16
- Published: 2013-05-23
- Granted: 2013-10-29
- Earliest claimed: 2009-03-02
- Assignees: Twilio Inc.
- Applicants: Twilio, Inc.
- Inventors: Jeffrey G. Lawson; John Wolthuis; Evan Cooke
- Web page: https://patentgrep.com/patent/US8570873B2

## CPC

- H04M 7/0033: {Notification or handling of incoming calls by a computer}
- G06F 9/505: {considering the load}
- G06F 9/5077: {Logical partitioning of resources; Management or configuration of virtualized resources (specific details on emulation or internal functioning of virtual machines G06F9/455)}
- G06F 9/5083: {Techniques for rebalancing the load in a distributed system}
- H04L 47/125: by balancing the load, e.g. traffic engineering
- H04L 61/2564: {for a higher-layer protocol, e.g. for session initiation protocol [SIP]}
- H04L 65/1016: IP multimedia subsystem [IMS]
- H04L 67/10: in which an application is distributed across nodes in the network (software deployment G06F8/60; multiprogramming arrangements G06F9/46)
- H04L 67/1008: based on parameters of servers, e.g. available memory or workload (monitoring of computer activity G06F11/30)
- H04M 1/2473: {Telephone terminals interfacing a personal computer, e.g. using an API (Application Programming Interface) (details of API H04M7/0021)}
- H04M 3/36: Statistical metering, e.g. recording occasions when traffic exceeds capacity of trunks
- H04M 3/367: {Traffic or load control}
- H04M 3/42323: {PBX's with CTI arrangements}
- H04M 3/51: Centralised call answering arrangements requiring operator intervention {, e.g. call or contact centers for telemarketing}
- H04M 3/5158: {in combination with automated outdialling systems (devices for signalling identity of wanted subscriber H04M1/26)}
- H04M 3/523: with call distribution or queueing
- H04M 3/5235: {Dependent on call type or called number [DNIS]}
- H04M 7/006: {Networks other than PSTN/ISDN providing telephone service, e.g. Voice over Internet Protocol (VoIP) , including next generation networks with a packet-switched transport layer (H04L65/00 takes precedence; aspects not specific to the type of network H04M3/00; special services in those networks H04M3/42)}
- H04M 15/34: {Charging, billing or} metering arrangements for private branch exchanges
- H04M 2201/39: using speech synthesis
- H04M 2201/40: using speech recognition
- Y02D 10/00: Energy efficient computing, e.g. low power processors, power management or thermal management
- H04M: TELEPHONIC COMMUNICATION (circuits for controlling other apparatus via a telephone cable and not involving telephone switching apparatus G08)
- G06F: ELECTRIC DIGITAL DATA PROCESSING (computer systems based on specific computational models G06N)
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)
- Y02D: CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE

## Abstract

A method and system for operating a multitenancy telephony system including a call queue that stores call requests received from a plurality of users; an expandable and contractible telephony resource cluster that establishes call sessions for call requests; a analysis system that calculates capacity requirements of the system; a resource allocator that manages the scaling and operation of the telephony resource cluster; and a plurality of telephony network channels that are used as telephony communication channels for call sessions.

## Claims

### Claim 1

A method for multitenant call communication comprising:
through an application programming interface (API) of a telephony resource cluster, receiving a first outbound call request of a first account over HTTP;
through the API of the telephony resource cluster, receiving a second outbound call request of a second account over HTTP;
servicing the first outbound call request with a first resource of the communication resource cluster;
at a second individually assigned call queue, queuing the second outbound call request;
dequeuing the second outbound call request at an inter-call rate of the second account; and
servicing the dequeued second call request with the first resource of the telephony resource cluster, wherein servicing the dequeued call request comprises establishing a call session to a destination telephony endpoint;
wherein the telephony resource cluster can communicate calls over a public switched telephony network (PSTN), and the telephony resource cluster is limited in call capacity.

### Claim 2 (depends on 1)

The method of claim 1, wherein the call capacity is limited by the number of concurrent calls handled by an allocated number of telephony channels of the telephony resource cluster.

### Claim 3 (depends on 1)

The method of claim 1, wherein the call capacity is limited by processing capacity of the telephony resource cluster.

### Claim 4 (depends on 1)

The method of claim 1, further comprising dequeuing at least a third call request at substantially the same time as dequeuing the second call request; and servicing the third call request at substantially the same time as servicing the second call request.

### Claim 5 (depends on 1)

The method of claim 1, the dequeuing rate is an entity rate limit.

### Claim 6 (depends on 1)

The method of claim 1, wherein queuing the second outbound call request includes queuing the second call request in a queue with call requests from a plurality of users.

### Claim 7 (depends on 1)

The method of claim 1, wherein the second call request is dequeued in round-robin methodology.

### Claim 8 (depends on 1)

The method of claim 1, wherein the second call request is dequeued in a user-weighted fair queuing methodology.

### Claim 9 (depends on 1)

The method of claim 1, wherein servicing a second call request includes selecting a load balancing call router of the telephony resource cluster; and communicating the dequeued call request to the selected call router; wherein at the call router, servicing the dequeued call request.

### Claim 10 (depends on 1)

The method of claim 1, wherein servicing the dequeued call request includes calling a telephony endpoint over the PSTN; wherein the resource of the communication resource is a telephony channel.

### Claim 11 (depends on 1)

The method of claim 1, wherein servicing the second call request includes calling a telephony endpoint over a Session initiation Protocol (SIP) connection.

### Claim 12 (depends on 1)

The method of claim 1, further comprising provisioning resources to the telephony resource cluster.

### Claim 13 (depends on 1)

The method of claim 1, further comprising satisfying a dequeuing rate of the second account before dequeuing the second outbound call request.

### Claim 14 (depends on 1)

The method of claim 1, further comprising queuing the first outbound call request; and dequeuing the first outbound call request prior to servicing the first outbound call request.

### Claim 15 (depends on 14)

The method of claim 14, wherein dequeuing the first outbound call request is dequeued according to a dequeuing rate of the first account; and wherein dequeuing the second outbound call request is dequeued according to a dequeuing rate of the second account.

### Claim 16 (depends on 1)

The method of claim 1, wherein the call capacity is limited by the number of concurrent calls handled by an allocated number of telephony channels of the telephony resource cluster.

### Claim 17 (depends on 1)

The method of claim 1, wherein the number of queued call requests exceeds the maximum number of call sessions serviceable by the communication resource cluster at one time.

### Claim 18 (depends on 1)

The method of claim 1, wherein individually assigned by phone number is assigned to a outbound call requests of a phone number of the second account.

### Claim 19

A method for multitenant communication comprising:
managing a plurality of queues that are individually assigned to accounts of a multitenant communication platform;
at the communication platform, initiating a call request;
queuing the call request in an individually assigned queue of an account;
dequeuing the queued call request from a plurality of queued call requests, and dequeuing at a dequeuing rate not exceeding the capacity of a multitenant communication resource cluster and not exceeding an inter-call request rate of the account, wherein the communication resource cluster is limited in communication capacity; and
servicing the dequeued call request at a resource of the communication resource cluster that services call requests dequeued from other individually assigned queue, wherein the communication resource cluster can communicate calls over a public switched telephony network (PSTN).

### Claim 20 (depends on 19)

The method of claim 19, wherein servicing the dequeued call request includes retrieving application instructions to execute during a telephony session of the call request.

### Claim 21 (depends on 19)

The method of claim 19, wherein the call capacity is limited by the number of concurrent calls handled by a fixed number of telephony channels of the telephony resource cluster.

### Claim 22 (depends on 19)

The method of claim 19, wherein the call capacity is limited by processing capacity of the telephony resource cluster.

### Claim 23 (depends on 19)

The method of claim 19, further comprising initiating the call request upon, at the multi telephony resource cluster, receiving an outbound call request submitted to a multitenant application programming interface (API).

### Claim 24 (depends on 23)

The method of claim 23, wherein servicing a queued communication request includes selecting a load balancing call router of the telephony resource cluster; and communicating the dequeued call request to the selected call router; wherein at the call router, servicing the dequeued call request includes calling a telephony endpoint over the PSTN.
