IP Library › Granted Patent US 9,621,733
Granted Patent B2
US 9,621,733 · App. 15/097,206 · Granted Apr 11, 2017

Method and system for a multitenancy telephone network

Inventors: Jeff Lawson (San Francisco, CA); John Wolthuis (San Francisco, CA); Evan Cooke (San Francisco, CA)
Assignee: Twilio, Inc.
H04M7/0033G06F9/505G06F9/5077G06F9/5083H04L47/125H04L61/2564H04L65/1016H04L67/10H04M1/2473H04M3/36H04M3/367H04M3/42323H04M3/51H04M3/5158H04M3/523H04M3/5235H04M7/006H04M15/34H04M2201/39H04M2201/40Y02B60/142Y02B60/167
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 9,621,733
App. No.
15/097,206
Granted
Apr 11, 2017
Kind
B2
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 (71)

1. A method comprising: at a multi-tenant communication platform system that includes at least a first call router and a first PSTN network channel:

responsive to a first outbound voice call request of a first platform account included in a first HTTP message provided by a first external server system, the first call router servicing the first outbound voice call request by establishing a first voice call session to a first destination telephony endpoint via the first PSTN network channel;

the first call router generating a first call router application programming Interface (API) resource that includes state of the first voice call session; and

responsive to a first call router API request of the first platform account included in a second HTTP message provided by the first external server system, the platform system providing the first external server system with the state of the first voice call session in a third HTTP message, wherein the first call router API request specifies a URI of the first call router API resource.

2. The method of claim 1 , further comprising:

responsive to a second outbound voice call request of a second platform account included in a fourth HTTP message provided by a second external server system, the first call router servicing the second outbound voice call request by establishing a second voice call session to a second destination telephony endpoint via the first PSTN network channel;

the first call router generating a second call router API resource that includes state of the second voice call session; and

responsive to a second call router API request of the second platform account included in a fifth HTTP message provided by the second external server system, the platform system providing the second external server system with the state of the second voice call session in a sixth HTTP message, wherein the second call router API request specifies a URI of the second call router API resource.

3. The method of claim 2 ,

wherein during servicing of the first outbound voice call request and responsive to the second outbound voice call request, the first call router queues the second outbound voice call request at a first call queue of the platform system,

wherein responsive to the platform system dequeuing the second outbound voice call request, the first call router services the second outbound voice call request.

4. The method of claim 3 , wherein the second outbound voice call request is dequeued at an inter-call rate of the second platform account.

5. The method of claim 3 , wherein the second outbound voice call request is dequeued responsive to completion of servicing of the first outbound voice call request.

6. The method of claim 2 , wherein the first destination telephony endpoint is a phone number and the second destination telephony endpoint is a phone number.

7. The method of claim 2 ,

wherein the first external server system provides the first HTTP message and the second HTTP message to the platform system,

wherein the first external server system provides a first application,

wherein the second external server system provides the fourth HTTP message and the fifth HTTP message to the platform system,

wherein the second external server system provides a second application,

wherein the first call router is a telephony resource of the platform system, and

wherein the PSTN network channel is a telephone network channel of the platform system.

8. A hardware system comprising:

a multi-tenant communication platform system comprising: a first call router;

and a first PSTN network channel,

wherein responsive to a first outbound voice call request of a first platform account included in a first HTTP message provided by a first external server system, the first call router is constructed to service the first outbound voice call request by establishing a first voice call session to a first destination telephony endpoint via the first PSTN network channel,

wherein the first call router is constructed to generate a first call router application programming Interface (API) resource that includes state of the first voice call session,

wherein responsive to a first call router API request of the first platform account included in a second HTTP message provided by the first external server system, the platform system is constructed to provide the first external server system with the state of the first voice call session in a third HTTP message, and

wherein the first call router API request specifies a URI of the first call router API resource.

9. The system of claim 8 ,

wherein responsive to a second outbound voice call request of a second platform account included in a fourth HTTP message provided by a second external server system, the first call router is constructed to service the second outbound voice call request by establishing a second voice call session to a second destination telephony endpoint via the first PSTN network channel,

wherein the first call router is constructed to generate a second call router API resource that includes state of the second voice call session,

wherein responsive to a second call router API request of the second platform account included in a fifth HTTP message provided by the second external server system, the platform system is constructed to provide the second external server system with the state of the second voice call session in a sixth HTTP message, and

wherein the second call router API request specifies a URI of the second call router API resource.

10. The system of claim 9 ,

further comprising: a first call queue,

wherein during servicing of the first outbound voice call request and responsive to the second outbound voice call request, the first call router is constructed to queue the second outbound voice call request at the first call queue,

wherein responsive to the platform system dequeuing the second outbound voice call request, the first call router is constructed to service the second outbound voice call request.

11. The system of claim 9 , wherein the first destination telephony endpoint is a phone number and the second destination telephony endpoint is a phone number.

12. The system of claim 8 ,

the hardware system further comprising the first external server system,

wherein the first external server system is constructed to provide the first HTTP message and the second HTTP message to the platform system,

wherein the first external server system provides a first application;

wherein the first call router is a telephony resource of the platform system, and

wherein the PSTN network channel is a telephone network channel of the platform system.

13. The system of claim 10 ,

the hardware system further comprising the first external server system and the second external server system,

wherein the first external server system is constructed to provide the first HTTP message and the second HTTP message to the platform system,

wherein the second external server system is constructed to provide the fourth HTTP message and the fifth HTTP message to the platform system,

wherein the first external server system is constructed to provide a first application;

wherein the second external server system is constructed to provide a second application;

wherein the first call router is a telephony resource of the platform system, and

wherein the PSTN network channel is a telephone network channel of the platform system.

14. The system of claim 13 , wherein the second outbound voice call request is dequeued at an inter-call rate of the second platform account.

15. The system of claim 13 , wherein the second outbound voice call request is dequeued responsive to completion of servicing of the first outbound voice call request.

16. A method comprising:

a first application server system providing an HTTP first outbound voice call request to a multi-tenant communication platform system that includes a first call router telephony resource and a first telephone network channel;

the first call router servicing the first outbound voice call request by establishing a first voice call session to a first destination telephony endpoint via the first telephone network channel;

the first call router generating a first call router application programming Interface (API) resource that includes state of the first voice call session;

the first application server system providing an HTTP first call router API request to the platform system, wherein the first call router API request specifies a URI of the first call router API resource;

responsive to the first call router API request, the platform system providing the first application server system with the state of the first voice call session in an HTTP message.

17. The method of claim 16 , wherein the first telephone network channel is a PSTN network channel.

18. The method of claim 16 , wherein the HTTP first outbound voice call request and the HTTP first call router API request are requests of a first platform account of the platform system.

19. The method of claim 18 , further comprising:

a second application server system providing an HTTP second outbound voice call request to the platform system;

the first call router servicing the second outbound voice call request by establishing a second voice call session to a second destination telephony endpoint via the first telephone network channel;

the first call router generating a second call router application programming Interface (API) resource that includes state of the second voice call session;

the second application server system providing an HTTP second call router API request to the platform system, wherein the second call router API request specifies a URI of the second call router API resource;

responsive to the second call router API request, the platform system providing the second application server system with the state of the second voice call session in an HTTP message.

20. The method of claim 19 ,

wherein during servicing of the first outbound voice call request and responsive to the second outbound voice call request, the first call router queues the second outbound voice call request at a first call queue of the platform system,

wherein responsive to the platform system dequeuing the second outbound voice call request, the first call router services the second outbound voice call request.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 21, 2016
From: LAWSON, JEFF; WOLTHUIS, JOHN; COOKE, EVAN
To: TWILIO, INC.
Reel/Frame 038340/0568 →
Continuity (8)
Continuation 14626427 · Feb 19, 2015
Continuation 14158281 · Jan 17, 2014
Continuation 13632872 · Oct 1, 2012
Continuation 12716127 · Mar 2, 2010
Provisional Application 61156758 · Mar 2, 2009
Provisional Application 61249493 · Oct 7, 2009
Provisional Application 61296270 · Jan 19, 2010
Related Publication 20160269564A1 · Sep 15, 2016