IP Library Granted Patent US 9,906,651
Granted Patent B2
US 9,906,651 · App. 15/413,660 · Granted Feb 27, 2018

System and method for processing media requests during telephony sessions

Inventors: Jeff Lawson (San Francisco, CA); John Wolthuis (San Francisco, CA); Evan Cooke (San Francisco, CA)
Assignee: Twilio, Inc.
H04M7/0075H04L65/105H04L65/1013H04M7/0021H04L67/02
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,906,651
App. No.
15/413,660
Granted
Feb 27, 2018
Kind
B2
Abstract

In a preferred embodiment, the method of caching media used in a telephony application includes: receiving a media request; sending the media request to a media layer using HTTP; the a media layer performing the steps of checking in a cache for the media resource; processing the media request within a media processing server; and storing the processed media in the cache as a telephony compatible resource specified by a persistent address. The system of the preferred embodiment includes a call router and a media layer composed of a cache and media processing server.

Claims (69)

1. A method comprising:

receiving a media processing instruction at a call router system;

converting the media processing instruction into a media processing REST API request that specifies a persistent Universal Resource Identifier (URI) that identifies a media processing server by using the call router system;

providing the REST API request from the call router system to a cache system;

responsive to a determination that the persistent URI is not identified in the cache system, forwarding the REST API request from the cache system to the media processing server identified by the persistent URI;

processing the REST API request by using the media processing server to generate a first telephony compatible media resource;

providing the first telephony compatible media resource from the media processing server to the cache system;

storing the first telephony compatible media resource at the cache system in association with the persistent URI; and

forwarding the first telephony compatible media resource from the cache system to the call router system as a response to the REST API request.

2. The method of claim 1 , wherein the cache system uses the persistent URI to determine whether the first telephony compatible media resource is stored at the cache system.

3. The method of claim 1 , wherein the media processing instruction is associated with a first telephony session of the call router system, and wherein the REST API request includes state information of the first telephony session.

4. The method of claim 1 , wherein the cache system uses the persistent URI to determine whether the first telephony compatible media resource is stored at the cache system.

5. The method of claim 1 , wherein the REST API request is a request in accordance with an API of the media processing server.

6. The method of claim 3 , wherein the REST API request is a request in accordance with an API of the media processing server.

7. The method of claim 1 , further comprising:

receiving a second media processing instruction at the call router system;

converting the second media processing instruction into a second media processing REST API request that specifies a second persistent URI that identifies a different second media processing server by using the call router system;

providing the second media processing REST API request from the call router system to the cache system;

responsive to a determination that the second persistent URI is not identified in the cache system, forwarding the second media processing REST API request from the cache system to the second media processing server;

processing the second media processing REST API request by using the second media processing server to generate a second telephony compatible media resource;

providing the second telephony compatible media resource from the second media processing server to the cache system;

storing the second telephony compatible media resource at the cache system in association with the second persistent URI; and

forwarding the second telephony compatible media resource from the cache system to the call router system as a response to the second media processing REST API request.

8. A method comprising:

receiving a first media processing instruction at a call router system;

converting the first media processing instruction into a first media processing REST API request that specifies a first persistent Universal Resource Identifier (URI) that identifies a first media processing server by using the call router system;

providing the first media processing REST API request from the call router system to a cache system;

responsive to a determination that the first persistent URI is not identified in the cache system, forwarding the first media processing REST API request from the cache system to the first media processing server identified by the first persistent URI;

processing the first media processing REST API request by using the first media processing server to generate a first telephony compatible media resource;

providing the first telephony compatible media resource from the first media processing server to the cache system;

storing the first telephony compatible media resource at the cache system in association with the first persistent URI;

forwarding the first telephony compatible media resource from the cache system to the call router system as a response to the first media processing REST API request;

receiving a second media processing instruction at the call router system;

converting the second media processing instruction into a second media processing REST API request that specifies the first persistent Universal Resource Identifier (URI) that identifies the first media processing server by using the call router system;

providing the second media processing REST API request from the call router system to the cache system;

responsive to the second media processing REST API request, the cache system determining that the first persistent URI is identified in the cache system, and forwarding the associated first telephony compatible media resource from the cache system to the call router system as a response to the second media processing REST API request.

9. A system comprising:

a call router system;

a cache system; and

a media processing server,

wherein the call router system is constructed to:

receive a media processing instruction;

convert the media processing instruction into a media processing REST API request that specifies a persistent Universal Resource Identifier (URI) that identifies the media processing server; and

provide the REST API request to the cache system;

wherein the cache system is constructed to: responsive to a determination that the persistent URI is not identified in the cache system, forward the REST API request to the media processing server identified by the persistent URI,

wherein the media processing server is constructed to:

process the REST API request to generate a first telephony compatible media resource; and

provide the first telephony compatible media resource to the cache system, and

wherein the cache system is constructed to:

store the first telephony compatible media resource in association with the persistent URI; and

forward the first telephony compatible media resource to the call router system as a response to the REST API request.

10. The system of claim 9 , wherein the cache system is constructed to use the persistent URI to determine whether the first telephony compatible media resource is stored at the cache system.

11. The system of claim 9 , wherein the media processing instruction is associated with a first telephony session of the call router system, and wherein the REST API request includes state information of the first telephony session.

12. The system of claim 11 , wherein the cache system is constructed to use the persistent URI to determine whether the first telephony compatible media resource is stored at the cache system.

13. The system of claim 9 , wherein the REST API request is a request in accordance with an API of the media processing server.

14. The system of claim 11 , wherein the REST API request is a request in accordance with an API of the media processing server.

15. The system of claim 9 ,

further comprising a second media processing server,

wherein the call router system is constructed to:

receive a second media processing instruction;

convert the second media processing instruction into a second media processing REST API request that specifies a second persistent URI that identifies the second media processing server; and

provide the second media processing REST API request to the cache system,

wherein responsive to a determination that the second persistent URI is not identified in the cache system, the cache system is constructed to forward the second media processing REST API request to the second media processing server,

wherein the second media processing server is constructed to:

process the second media processing REST API request to generate a second telephony compatible media resource; and

provide the second telephony compatible media resource to the cache system;

wherein the cache system is constructed to:

store the second telephony compatible media resource in association with the second persistent URI; and

forward the second telephony compatible media resource to the call router system as a response to the second media processing REST API request.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 24, 2017
From: LAWSON, JEFF; WOLTHUIS, JOHN; COOKE, EVAN
To: TWILIO, INC.
Reel/Frame 041061/0024 →
Continuity (16)
Continuation 15050268 · Feb 22, 2016
Continuation 14103632 · Dec 11, 2013
Continuation 12568646 · Sep 28, 2009
Continuation In Part 12417630 · Apr 2, 2009
Continuation In Part 15413660
Continuation 15050268 · Feb 22, 2016
Continuation 14103632 · Dec 11, 2013
Continuation 12568646 · Sep 28, 2009
Provisional Application 61041829 · Apr 2, 2008
Provisional Application 61055417 · May 22, 2008
Provisional Application 61100578 · Sep 26, 2008
Provisional Application 61156746 · Mar 2, 2009
Provisional Application 61156751 · Mar 2, 2009
Provisional Application 61100627 · Sep 26, 2008
Provisional Application 61100630 · Sep 26, 2008
Related Publication 20170134587A1 · May 11, 2017