IP Library › Granted Patent US 10,637,912
Granted Patent B2
US 10,637,912 · App. 16/242,415 · Granted Apr 28, 2020

System and method for managing media in a distributed communication network

Inventors: Brian Tarricone (San Francisco, CA); John Wolthuis (San Francisco, CA); Jonas Boerjesson (San Francisco, CA)
Assignee: Twilio Inc.
H04L67/10H04L45/22H04L65/103H04L65/1006H04L65/1069H04L65/1086H04L65/80H04L69/24H04L45/124H04W40/20
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,637,912
App. No.
16/242,415
Granted
Apr 28, 2020
Kind
B2
Abstract

A system and method for processing communication media in a regionally distributed communication platform that includes at a first platform region, establishing a communication session comprising establishing a media communication to at least one endpoint from the first region and establishing signaling communication to a second platform region; selecting a media resource in response to a change in media processing requirements of the communication session; when the selected media resource is outside the first region, routing media communication through a media resource outside of the first region; when the media resource is available in the first region, routing media communication through the media resource of the first region; and when the media resource is outside of the second region, storing the media communication in the first region at least temporarily and tunneling a branch of the media communication to a central media service in the second region.

Claims (41)

1. A method comprising:

receiving, at a communication processing server of a communication platform, a request to initiate a media communication session between a first endpoint and a second endpoint, the communication processing server being located in a first geographic region and the first endpoint being located in a second geographic region, the request having been transmitted by a gateway located in the second geographic region, wherein the communication platform does not include any communication processing servers in the second geographic region;

establishing, by the communication processing server, the media communication session between the first endpoint and the second endpoint;

selecting a first media resource to facilitate a first media service in relation to the media communication session between the first endpoint and the second endpoint, the first media resource selected from a plurality of media resources that provide the first media service, the plurality media resources including media resources located in the first geographic region, and media resources located in the second geographic region;

when the first media resource is located in the first geographic region:

storing a copy of media communications transmitted as part of the media communication session at the second geographic region, and

tunneling the copy of the media communications stored at the second geographic region to the first media resource located in the first geographic region, wherein the first media resource provides the first media service based on the copy of the media communications received from the second geographic region.

2. The method of claim 1 , further comprising:

when the first media resource is located in the second geographic region, routing the media communication session through the first media resource located in the second geographic region.

3. The method of claim 1 , wherein tunneling the copy of the media communications stored at the second geographic region to the first media resource located in the first geographic region is independent of a media path through the first media resource.

4. The method of claim 1 , wherein the first media service is a recording service for the media communication session.

5. The method of claim 1 , wherein the first media service is a text-to-speech service for the media communication session.

6. The method of claim 1 , wherein the first media service is a speech recognition service for the media communication session.

7. A communication processing server of a communication platform system, the communication processing server 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 server to perform operations comprising:

receiving a request to initiate a media communication session between a first endpoint and a second endpoint, the communication processing server being located in a first geographic region and the first endpoint being located in a second geographic region, the request having been transmitted by a gateway located in the second geographic region, wherein the communication platform does not include any communication processing servers in the second geographic region;

establishing the media communication session between the first endpoint and the second endpoint;

selecting a first media resource to facilitate a first media service in relation to the media communication session between the first endpoint and the second endpoint, the first media resource selected from a plurality of media resources that provide the first media service, the plurality media resources including media resources located in the first geographic region, and media resources located in the second geographic region;

when the first media resource is located in the first geographic region:

storing a copy of media communications transmitted as part of the media communication session at the second geographic region, and

tunneling the copy of the media communications stored at the second geographic region to the first media resource located in the first geographic region, wherein the first media resource provides the first media service based on the copy of the media communications received from the second geographic region.

8. The communication processing server of claim 7 , the operations further comprising:

when the first media resource is located in the second geographic region, routing the media communication session through the first media resource located in the second geographic region.

9. The communication processing server of claim 7 , wherein tunneling the copy of the media communications stored at the second geographic region to the first media resource located in the first geographic region is independent of a media path through the first media resource.

10. The communication processing server of claim 7 , wherein the first media service is a recording service for the media communication session.

11. The communication processing server of claim 7 , wherein the first media service is a text-to-speech service for the media communication session.

12. The communication processing server of claim 7 , wherein the first media service is a speech recognition service for the media communication session.

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

receiving a request to initiate a media communication session between a first endpoint and a second endpoint, the communication processing server being located in a first geographic region and the first endpoint being located in a second geographic region, the request having been transmitted by a gateway located in the second geographic region, wherein the communication platform does not include any communication processing servers in the second geographic region;

establishing the media communication session between the first endpoint and the second endpoint;

selecting a first media resource to facilitate a first media service in relation to the media communication session between the first endpoint and the second endpoint, the first media resource selected from a plurality of media resources that provide the first media service, the plurality media resources including media resources located in the first geographic region, and media resources located in the second geographic region;

when the first media resource is located in the first geographic region:

storing a copy of media communications transmitted as part of the media communication session at the second geographic region, and

tunneling the copy of the media communications stored at the second geographic region to the first media resource located in the first geographic region, wherein the first media resource provides the first media service based on the copy of the media communications received from the second geographic region.

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

when the first media resource is located in the second geographic region, routing the media communication session through the first media resource located in the second geographic region.

15. The non-transitory computer-readable medium of claim 13 , wherein tunneling the copy of the media communications stored at the second geographic region to the first media resource located in the first geographic region is independent of a media path through the first media resource.

16. The non-transitory computer-readable medium of claim 13 , wherein the first media service is a recording service for the media communication session.

17. The non-transitory computer-readable medium of claim 13 , wherein the first media service is a text-to-speech service for the media communication session.

18. The non-transitory computer-readable medium of claim 13 , wherein the first media service is a speech recognition service for the media communication session.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 9, 2020
From: TARRICONE, BRIAN; WOLTHUIS, JOHN; BOERJESSON, JONAS
To: TWILIO INC.
Reel/Frame 051470/0857 →
Continuity (7)
Continuation 15426474 · Feb 7, 2017
Continuation 14278952 · May 15, 2014
Continuation In Part 14176458 · Feb 10, 2014
Continuation 13891111 · May 9, 2013
Provisional Application 61823837 · May 15, 2013
Provisional Application 61644886 · May 9, 2012
Related Publication 20190215360A1 · Jul 11, 2019