IP Library Granted Patent US 8,837,465
Granted Patent B2
US 8,837,465 · App. 13/743,080 · Granted Sep 16, 2014

System and method for processing telephony sessions

Inventors: Jeffrey G. Lawson (San Francisco, CA); John Wolthuis (San Francisco, CA); Evan Cooke (San Francisco, CA)
Assignee: Twilio, Inc.
H04M1/2473H04M7/003H04M7/0021
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 8,837,465
App. No.
13/743,080
Granted
Sep 16, 2014
Kind
B2
Abstract

In one embodiment, the method of processing telephony sessions includes: communicating with an application server using an application layer protocol; processing telephony instructions with a call router; and creating call router resources accessible through a call router Application Programming Interface (API). In another embodiment, the system for processing telephony sessions includes: a call router, a URI for an application server, a telephony instruction executed by the call router, and a call router API resource.

Claims (61)

1. A method for processing a telephony communication comprising:

associating an initial URI with a telephony endpoint;

initiating a telephony voice session for a telephony communication to the telephony endpoint;

mapping the initial URI to the telephony session;

sending an application layer protocol request to an application resource specified by the URI and embedding state information of the telephony voice session in the request;

receiving a response to the application layer protocol request sent to the application resource, wherein the response includes a document of telephony instructions; and

executing telephony actions during the telephony voice session according to a sequential processing of at least a subset of the telephony instructions of the response.

2. The method of claim 1 , wherein the telephony communication is a call.

3. The method of claim 2 , wherein executing a telephony action includes communicating over the public switched telephony network (PSTN).

4. The method of claim 1 , wherein executing telephony actions includes performing the following telephony actions during the telephony voice session: playing audio, playing text-to-speech audio, capturing input, calling a telephony endpoint, or recording audio.

5. The method of claim 1 , wherein executing a telephony action includes sending a telephony message that is sent to a telephony endpoint.

6. The method of claim 5 , wherein sending the telephony message includes communicating over a Signaling System Number Seven (SS 7 ) network.

7. The method of claim 5 , wherein the telephony message is a Short Message Service (SMS) message.

8. The method of claim 5 , wherein the telephony message is a Multimedia Messaging Service (MMS) message.

9. The method of claim 1 , wherein the telephony endpoint is a phone number.

10. The method of claim 1 , wherein the telephony endpoint is a Session Initiation Protocol (SIP) address.

11. The method of claim 1 , wherein the telephony endpoint is selected from the group consisting of a phone number and a Session Initiation Protocol (SIP) address.

12. The method of claim 1 , wherein initiating a telephony session for a telephony communication to the telephony endpoint is in response to an inbound telephony communication.

13. The method of claim 1 , wherein initiating a telephony session for a telephony communication to the telephony endpoint is in response to an application programming interface request to create a telephony communication.

14. The method of claim 1 , wherein executing telephony actions for the telephony session includes redirecting to a second URI during the telephony voice session.

15. The method of 14 , further comprising sending an application layer protocol request to a second application resource specified by the second URI; receiving a second response from the second application resource, wherein the second response includes a second document of telephony instructions; and executing telephony actions for the telephony session according to sequentially processed telephony instructions of the second response.

16. The method of claim 15 , wherein state of the telephony session is embedded in the second URI.

17. The method of claim 16 , wherein collected digits are embedded in the second URI.

18. The method of claim 1 , wherein executing telephony actions includes processing internet content type of the response and determining telephony actions based on the internet content type.

19. The method of claim 18 , wherein processing the internet content type comprises setting content type to a first type if the response includes a document of telephony instructions and setting content type to a second type if the response is a playable media file; and wherein executing the telephony instructions comprises at a call router sequentially processing the telephony instructions if the response is the first type and at a call router playing the playable media file if the response is the second type.

20. The method of claim 19 , wherein a response including an extensible markup language document of stateless telephony instructions is a first type and a response including an audio file is a second type.

21. The method of claim 1 , wherein the state information includes at least an originating telephony endpoint, a destination telephony endpoint, and a telephony voice session identifier.

22. The method of claim 1 , wherein executing telephony actions during the telephony voice session according to the response are executed statelessly at a call router.

23. The method of claim 1 , wherein executing telephony actions includes redirecting to a second URI according to a telephony instruction specifying the second URI; wherein redirecting comprises sending an application layer protocol request to a second application resource specified by the second URI and embedding state information of the telephony session in the request; receiving a response of the second application resource; and executing telephony actions during the telephony session according to the response of the second application resource.

24. A method for processing a telephony communication comprising:

associating an initial URI with a telephone number;

initiating a telephony call session for an incoming telephony communication to the telephone number;

mapping the initial URI to the telephony session;

sending an application layer protocol request to an application resource specified by the URI and embedding state information of the telephony session in the request;

receiving a response from the application resource, wherein the response includes telephony instructions; and

according to the telephony instructions, sequentially executing a plurality of telephony actions over a public switched telephony network (PSTN) during the telephony session, comprising:

according to a first telephony instruction, playing audio,

according to a second telephony instruction, playing text-to-speech audio,

according to a third telephony instruction, calling a telephony number,

according to a fourth telephony instruction, capturing input, and

according to a fourth telephony instruction, recording audio.

25. A method for processing a telephony communication comprising:

associating an initial URI with a telephone number;

initiating a telephony call session for an incoming telephony message to the telephone number;

mapping the initial URI to the telephony session;

sending an application layer protocol request to an application resource specified by the URI and embedding state information of the telephony session in the request;

receiving a response from the application resource, wherein the response includes telephony instructions; and

according to the telephony instructions, sequentially executing a plurality of telephony actions, comprising:

according to a first telephony instruction, sending a telephony message, and

according to a second telephony instruction, calling a telephone number.

26. A method for processing a telephony communication comprising:

associating an initial URI with a telephone number;

initiating a telephony call session for an incoming telephony message to the telephone number;

mapping the initial URI to the telephony session;

sending an application layer protocol request to an application resource specified by the URI and embedding state information of the telephony session in the request;

receiving a response from the application resource;

processing a content type of the response;

if the response is a content type of a playable media file, playing the media file in the telephony voice session and

if the response is a content type with telephony instructions, sequentially executing a plurality of telephony actions during the telephony voice session according to the telephony instructions, comprising:

according to a first telephony instruction, sending a telephony message, and

according to a second telephony instruction, calling a telephone number.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 9, 2014
From: LAWSON, JEFF; WOLTHUIS, JOHN; COOKE, EVAN
To: TWILIO, INC.
Reel/Frame 033059/0352 →
Continuity (8)
Continuation 13632798 · Oct 1, 2012
Continuation 12417630 · Apr 2, 2009
Provisional Application 61041829 · Apr 2, 2008
Provisional Application 61055417 · May 22, 2008
Provisional Application 61100578 · Sep 26, 2008
Provisional Application 61156745 · Mar 2, 2009
Provisional Application 61156751 · Mar 2, 2009
Related Publication 20130128883A1 · May 23, 2013