IP Library › Granted Patent US 10,686,694
Granted Patent B2
US 10,686,694 · App. 16/054,883 · Granted Jun 16, 2020

System and method for client communication in a distributed telephony network

Inventors: Brian Tarricone (San Francisco, CA); Edward Kim (San Francisco, CA); Ameya Lokare (San Francisco, CA); Jonas Boerjesson (San Francisco, CA)
Assignee: Twilio Inc.
H04L45/126H04L45/3065H04L65/102H04L65/1006H04L67/104H04L65/105H04L65/1069
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,686,694
App. No.
16/054,883
Granted
Jun 16, 2020
Kind
B2
Abstract

A system and method for regional routing of internet protocol based real-time communication that includes registering a set of client application endpoint routes, comprising registering at least a first client gateway route of a first endpoint in a first region; receiving a communication invitation of the first endpoint; processing a set of communication instructions associated with the communication invitation and identifying a set of communication resources and at least a second endpoint; querying the client application endpoint routes and identifying a client gateway route of the second endpoint; and dynamically directing signaling path and media path of the communication according to the regional availability of the communication resources, the client gateway route of the first endpoint, and client gateway instance route of the second endpoint.

Claims (51)

1. A method comprising:

receiving, by a communication processing system, a communication invitation directed to a first communication endpoint associated with a first client device, the first communication invitation received from a second client device associated with a second communication endpoint, the first communication endpoint being allocated in a first geographic region and the second communication being allocated in a second geographic region that is different than the first geographic region;

determining a first communication path between the first client device and the second client device, the first communication path being provided by a first client gateway device registered to the first communication endpoint;

determining a second communication path between the first client device and the second client device, the second communication path being provided by a second client gateway device registered to the first communication endpoint;

determining a number of geographic regions that are crossed by the first communication path;

determining a number of geographic regions that are crossed by the second communication path;

selecting one of the first client gateway device or the second client gateway device to facilitate a communication session between the first client device and the second client device based on a comparison of the number of geographic regions that are crossed by the first communication path and the number of geographic regions that are crossed by the second communication path; and

in response to selecting of the first client gateway device, establishing the communication session between the first client device and the second client device using the first client gateway device, the communication session following the first communication path between the first client device and the second client device.

2. The method of claim 1 , wherein the first client device is constructed to communicate with the first client gateway device and the second client gateway device by using application based communication.

3. The method of claim 1 , wherein the second client device and the first client device are external to the communication processing system.

4. The method of claim 1 , wherein the communication processing system receives the communication invitation from the second client device via a third client gateway device, the third client gateway device being registered to the second communication endpoint.

5. The method of claim 1 , further comprising:

identifying the first client gateway device and the second client gateway device registered for the first communication endpoint.

6. The method of claim 1 , further comprising:

processing a set of communication instructions associated with the communication invitation to identify a set of communication resources that are available to the communication processing system and the first communication endpoint.

7. The method of claim 1 , further comprising:

dynamically updating selection of the first client gateway device in response to a change of geographic location of at least one of the first communication endpoint and the second communication endpoint.

8. A communication processing system comprising:

one or more computer processors; and

one or more computer-readable mediums storing instructions that, when executed by the one or more computer processors, cause the communication processing system to perform operations comprising:

receiving a communication invitation directed to a first communication endpoint associated with a first client device, the first communication invitation received from a second client device associated with a second communication endpoint, the first communication endpoint being allocated in a first geographic region and the second communication being allocated in a second geographic region that is different than the first geographic region;

determining a first communication path between the first client device and the second client device, the first communication path being provided by a first client gateway device registered to the first communication endpoint;

determining a second communication path between the first client device and the second client device, the second communication path being provided by a second client gateway device registered to the first communication endpoint;

determining a number of geographic regions that are crossed by the first communication path;

determining a number of geographic regions that are crossed by the second communication path;

selecting one of the first client gateway device or the second client gateway device to facilitate a communication session between the first client device and the second client device based on a comparison of the number of geographic regions that are crossed by the first communication path and the number of geographic regions that are crossed by the second communication path; and

in response to selecting of the first client gateway device, establishing the communication session between the first client device and the second client device using the first client gateway device, the communication session following the first communication path between the first client device and the second client device.

9. The communication processing system of claim 8 , wherein the first client device is constructed to communicate with the first client gateway device and the second client gateway device by using application based communication.

10. The communication processing system of claim 8 , wherein the second client device and the first client device are external to the communication processing system.

11. The communication processing system of claim 8 , wherein the communication processing system receives the communication invitation from the second client device via a third client gateway device, the third client gateway device being registered to the second communication endpoint.

12. The communication processing system of claim 8 , the operations further comprising:

identifying the first client gateway device and the second client gateway device registered for the first communication endpoint.

13. The communication processing system of claim 8 , the operations further comprising:

processing a set of communication instructions associated with the communication invitation to identify a set of communication resources that are available to the communication processing system and the first communication endpoint.

14. The communication processing system of claim 8 , the operations further comprising:

dynamically updating selection of the first client gateway device in response to a change of geographic location of at least one of the first communication endpoint and the second communication endpoint.

15. A non-transitory computer-readable medium storing instructions that, when executed by one or more computer processors of a communication processing system, cause the communication processing system to perform operations comprising:

receiving a communication invitation directed to a first communication endpoint associated with a first client device, the first communication invitation received from a second client device associated with a second communication endpoint, the first communication endpoint being allocated in a first geographic region and the second communication being allocated in a second geographic region that is different than the first geographic region;

determining a first communication path between the first client device and the second client device, the first communication path being provided by a first client gateway device registered to the first communication endpoint;

determining a second communication path between the first client device and the second client device, the second communication path being provided by a second client gateway device registered to the first communication endpoint;

determining a number of geographic regions that are crossed by the first communication path;

determining a number of geographic regions that are crossed by the second communication path;

selecting one of the first client gateway device or the second client gateway device to facilitate a communication session between the first client device and the second client device based on a comparison of the number of geographic regions that are crossed by the first communication path and the number of geographic regions that are crossed by the second communication path; and

in response to selecting of the first client gateway device, establishing the communication session between the first client device and the second client device using the first client gateway device, the communication session following the first communication path between the first client device and the second client device.

16. The non-transitory computer-readable medium of claim 15 , wherein the first client device is constructed to communicate with the first client gateway device and the second client gateway device by using application based communication.

17. The non-transitory computer-readable medium of claim 15 , wherein the second client device and the first client device are external to the communication processing system.

18. The non-transitory computer-readable medium of claim 15 , wherein the communication processing system receives the communication invitation from the second client device via a third client gateway device, the third client gateway device being registered to the second communication endpoint.

19. The non-transitory computer-readable medium of claim 15 , the operations further comprising:

processing a set of communication instructions associated with the communication invitation to identify a set of communication resources that are available to the communication processing system and the first communication endpoint.

20. The non-transitory computer-readable medium of claim 15 , the operations further comprising:

dynamically updating selection of the first client gateway device in response to a change of geographic location of at least one of the first communication endpoint and the second communication endpoint.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 31, 2018
From: TARRICONE, BRIAN; KIM, EDWARD; LOKARE, AMEYA; BOERJESSON, JONAS
To: TWILIO INC.
Reel/Frame 046768/0445 →
Continuity (4)
Continuation 15376087 · Dec 12, 2016
Continuation 14539877 · Nov 12, 2014
Provisional Application 61902995 · Nov 12, 2013
Related Publication 20190007298A1 · Jan 3, 2019