IP Library Granted Patent US 10,694,042
Granted Patent B2
US 10,694,042 · App. 15/868,796 · Granted Jun 23, 2020

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/1013H04L69/329H04M1/2473H04M7/0021H04L29/06027H04L67/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 10,694,042
App. No.
15/868,796
Granted
Jun 23, 2020
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 (90)

1. A method comprising:

receiving, by a telephony platform, a first media request to access a first media item in relation to a first telephony session, the first media request initiated by a first application utilizing communication services provided by the telephony platform, the first media request including a specified Universal Resource Identifier (URI);

determining whether the specified URI corresponds to any cached media resources stored in a cache memory of the telephony platform, each cached media resource being a copy of a previously requested media item formatted into a compatible format for telephony sessions facilitated by the telephony platform;

in response to determining that the specified URI does not correspond to any of the cached media resources stored in the cache memory of the telephony platform, transmitting a request for the first media item to a media server identified by the specified URI;

in response to receiving the first media item from the media server, converting the first media item into the compatible format and storing a copy of the first media item converted into the compatible format in the cache memory of the telephony platform, yielding a first cached media resource, the first cached media resource being associated with the specified URI; and

forwarding the first media item converted into the compatible format to a call router to provide the first media item in relation to the first the telephony session.

2. The method of claim 1 , further comprising:

receiving a second media request to access the first media item in relation to a second telephony session, the second media request including the specified URI;

determining whether the specified URI corresponds to any cached media resources stored in the cache memory of the telephony platform;

determining that the specified URI corresponds to the first cached media resource in the cache memory of the telephony platform; and

forwarding the first cached media resource to the call router to provide the first media item in relation to the second telephony session.

3. The method of claim 2 , further comprising:

in response to determining that the specified URI corresponds to the first cached media resource in the cache memory of the telephony platform, determining whether the first cached media resource is valid, the first cached media resource being forwarded to the call router in response to determining that the first cached media resource is valid.

4. The method of claim 3 , wherein determining whether the first cached media resource is valid comprises:

determining an amount of time that has elapsed after the first cached media resource was stored in the cache memory of the telephony platform; and

comparing the amount of time to a threshold amount of time.

5. The method of claim 1 , further comprising:

receiving a second media request to access the first media item in relation to a second telephony session, the second media request including the specified URI;

determining that the specified URI corresponds to the first cached media resource in the cache memory of the telephony platform; and

determining that the first cached media resource is not valid;

in response to determining that the first cached media resource is not valid, transmitting a subsequent request for the first media item to the media server identified by the specified URI;

converting the first media item into the compatible format and storing an updated copy of the first media item converted into the compatible format in the cache memory of the telephony platform, yielding an updated first cached media resource, the updated first cached media resource being associated with the specified URI; and

forwarding the first media item converted into the compatible format to a call router to provide the first media item in relation to the second the telephony session.

6. The method of claim 5 , further comprising:

receiving a third media request to access the first media item in relation to a third telephony session, the third media request including the specified URI;

determining whether the specified URI corresponds to any cached media resources stored in the cache memory of the telephony platform;

determining that the specified URI corresponds to the updated first cached media resource in the cache memory of the telephony platform; and

forwarding the updated first cached media resource to the call router to provide the first media item in relation to the third telephony session.

7. The method of claim 6 , further comprising:

in response to determining that the specified URI corresponds to the updated first cached media resource in the cache memory of the telephony platform, determining whether the updated first cached media resource is valid, the updated first cached media resource being forwarded to the call router in response to determining that the updated first cached media resource is valid.

8. A telephony platform 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 telephony platform to perform operations comprising:

receiving a first media request to access a first media item in relation to a first telephony session, the first media request initiated by a first application utilizing telephony services provided by the telephony platform, the first media request including a specified Universal Resource Identifier (URI);

determining whether the specified URI corresponds to any cached media resources stored in a cache memory of the telephony platform, each cached media resource being a copy of a previously requested media item formatted into a compatible format for telephony sessions facilitated by the telephony platform;

in response to determining that the specified URI does not correspond to any of the cached media resources stored in the cache memory of the telephony platform, transmitting a request for the first media item to a media server identified by the specified URI;

in response to receiving the first media item from the media server, converting the first media item into the compatible format and storing a copy of the first media item converted into the compatible format in the cache memory of the telephony platform, yielding a first cached media resource, the first cached media resource being associated with the specified URI; and

forwarding the first media item converted into the compatible format to a call router to provide the first media item in relation to the first the telephony session.

9. The telephony platform of claim 8 , the operations further comprising:

receiving a second media request to access the first media item in relation to a second telephony session, the second media request including the specified URI;

determining whether the specified URI corresponds to any cached media resources stored in the cache memory of the telephony platform;

determining that the specified URI corresponds to the first cached media resource in the cache memory of the telephony platform; and

forwarding the first cached media resource to the call router to provide the first media item in relation to the second telephony session.

10. The telephony platform of claim 9 , the operations further comprising:

in response to determining that the specified URI corresponds to the first cached media resource in the cache memory of the telephony platform, determining whether the first cached media resource is valid, the first cached media resource being forwarded to the call router in response to determining that the first cached media resource is valid.

11. The telephony platform of claim 10 , wherein determining whether the first cached media resource is valid comprises:

determining an amount of time that has elapsed after the first cached media resource was stored in the cache memory of the telephony platform; and

comparing the amount of time to a threshold amount of time.

12. The telephony platform of claim 8 , the operations further comprising:

receiving a second media request to access the first media item in relation to a second telephony session, the second media request including the specified URI;

determining that the specified URI corresponds to the first cached media resource in the cache memory of the telephony platform; and

determining that the first cached media resource is not valid;

in response to determining that the first cached media resource is not valid, transmitting a subsequent request for the first media item to the media server identified by the specified URI;

converting the first media item into the compatible format and storing an updated copy of the first media item converted into the compatible format in the cache memory of the telephony platform, yielding an updated first cached media resource, the updated first cached media resource being associated with the specified URI; and

forwarding the first media item converted into the compatible format to a call router to provide the first media item in relation to the second the telephony session.

13. The telephony platform of claim 12 , the operations further comprising:

receiving a third media request to access the first media item in relation to a third telephony session, the third media request including the specified URI;

determining whether the specified URI corresponds to any cached media resources stored in the cache memory of the telephony platform;

determining that the specified URI corresponds to the updated first cached media resource in the cache memory of the telephony platform; and

forwarding the updated first cached media resource to the call router to provide the first media item in relation to the third telephony session.

14. The telephony platform of claim 13 , the operations further comprising:

in response to determining that the specified URI corresponds to the updated first cached media resource in the cache memory of the telephony platform, determining whether the updated first cached media resource is valid, the updated first cached media resource being forwarded to the call router in response to determining that the updated first cached media resource is valid.

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

receiving a first media request to access a first media item in relation to a first telephony session, the first media request initiated by a first application utilizing telephony services provided by the telephony platform, the first media request including a specified Universal Resource Identifier (URI);

determining whether the specified URI corresponds to any cached media resources stored in a cache memory of the telephony platform, each cached media resource being a copy of a previously requested media item formatted into a compatible format for telephony sessions facilitated by the telephony platform;

in response to determining that the specified URI does not correspond to any of the cached media resources stored in the cache memory of the telephony platform, transmitting a request for the first media item to a media server identified by the specified URI;

in response to receiving the first media item from the media server, converting the first media item into the compatible format and storing a copy of the first media item converted into the compatible format in the cache memory of the telephony platform, yielding a first cached media resource, the first cached media resource being associated with the specified URI; and

forwarding the first media item converted into the compatible format to a call router to provide the first media item in relation to the first the telephony session.

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

receiving a second media request to access the first media item in relation to a second telephony session, the second media request including the specified URI;

determining whether the specified URI corresponds to any cached media resources stored in the cache memory of the telephony platform;

determining that the specified URI corresponds to the first cached media resource in the cache memory of the telephony platform; and

forwarding the first cached media resource to the call router to provide the first media item in relation to the second telephony session.

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

in response to determining that the specified URI corresponds to the first cached media resource in the cache memory of the telephony platform, determining whether the first cached media resource is valid, the first cached media resource being forwarded to the call router in response to determining that the first cached media resource is valid.

18. The non-transitory computer-readable medium of claim 17 , wherein determining whether the first cached media resource is valid comprises:

determining an amount of time that has elapsed after the first cached media resource was stored in the cache memory of the telephony platform; and

comparing the amount of time to a threshold amount of time.

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

receiving a second media request to access the first media item in relation to a second telephony session, the second media request including the specified URI;

determining that the specified URI corresponds to the first cached media resource in the cache memory of the telephony platform; and

determining that the first cached media resource is not valid;

in response to determining that the first cached media resource is not valid, transmitting a subsequent request for the first media item to the media server identified by the specified URI;

converting the first media item into the compatible format and storing an updated copy of the first media item converted into the compatible format in the cache memory of the telephony platform, yielding an updated first cached media resource, the updated first cached media resource being associated with the specified URI; and

forwarding the first media item converted into the compatible format to a call router to provide the first media item in relation to the second the telephony session.

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

receiving a third media request to access the first media item in relation to a third telephony session, the third media request including the specified URI;

determining whether the specified URI corresponds to any cached media resources stored in the cache memory of the telephony platform;

determining that the specified URI corresponds to the updated first cached media resource in the cache memory of the telephony platform; and

forwarding the updated first cached media resource to the call router to provide the first media item in relation to the third telephony session.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 11, 2018
From: LAWSON, JEFF; WOLTHUIS, JOHN; COOKE, EVAN
To: TWILIO, INC.
Reel/Frame 044603/0033 →
Continuity (13)
Continuation 15413660 · Jan 24, 2017
Continuation 15050268 · Feb 22, 2016
Continuation 14103632 · Dec 11, 2013
Continuation 12568646 · Sep 28, 2009
Continuation In Part 12417630 · Apr 2, 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 20180131813A1 · May 10, 2018
Cited By (4)
US 12,294,677 US 12,316,810 US 12,457,293 US 12,712,969