IP Library › Granted Patent US 8,306,021
Granted Patent B2
US 8,306,021 · App. 12/417,630 · Granted Nov 6, 2012

System and method for processing telephony sessions

Assignee: Twilio, Inc.
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,306,021
App. No.
12/417,630
Granted
Nov 6, 2012
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 (44)

1. A method of processing telephony sessions comprising:

communicating with an application server using an application layer protocol;

processing telephony instructions with a call router;

creating call router resources accessible through a call router Application Programming Interface (API), wherein the call router resources are accessible by outside devices at an addressable Uniform Resource Identifier (URI);

mapping a telephony session to the URI, the URI being associated with the application server;

sending a request to the application server;

embedding state information of the telephony session in the request;

receiving from the application server a response comprising telephony instructions for sequential processing;

storing state information in the URI of a call router resource;

modifying call router resources to alter the state of the call router; and

interacting with media of the call router according to the call router API.

2. The method of claim 1 , further comprising embedding state information of the telephony session into the URI.

3. The method of claim 2 , wherein all state information required by the application server is embedded in the URI.

4. The method of claim 1 , wherein sending and receiving are performed using a Hypertext Transfer Protocol (HTTP).

5. The method of claim 4 , wherein the telephony instructions are encoded in Extensible Markup Language (XML).

6. The method of claim 1 , further comprising sending a digital signature with the request, wherein the digital signature is adapted to be used for account verification by the application server.

7. The method of claim 6 , wherein the digital signature is a cryptographic hash generated by a key, wherein the key is shared by a call router and the server, and wherein the cryptographic hash is included in the URI.

8. The method of claim 1 , further comprising initiating the telephony session from a phone number through the Public Switched Telephone Network (PSTN).

9. The method of claim 1 , further comprising initiating the telephony session from a message received from a Short Message Service (SMS) system.

10. The method of claim 1 , further comprising initiating the telephony session by an application server through the call router API; wherein the initial URI mapped to the telephony session is provided by the application server.

11. The method of claim 1 , wherein the call router API is substantially a Representational State Transfer (REST) API.

12. The method of claim 1 , wherein the telephony session includes a sent Short Message Service (SMS) message.

13. A method comprising:

communicating with an application server using an application layer protocol;

processing telephony instructions with a call router;

creating call router resources accessible through a call router Application Programming Interface (API), wherein the call router resources are accessible by outside devices at an addressable Uniform Resource Identifier (URI);

mapping a telephony session to the URI, the URI being associated with the application server;

sending a request to the application server;

embedding state information of the telephony session in the request;

receiving from the application server a response comprising telephony instructions for sequential processing;

receiving an API request from the application server for interaction with a resource; and

responding to an API request based on the interaction with a resource.

14. The method of claim 13 , including creating a resource selected from the group consisting of: a call resource, a media resource, an incoming address resource, an account resource, and a caller identification (ID) resource.

15. The method of claim 14 , further comprising:

altering the state of the telephone session with the call resource;

accessing media with the media resource;

modifying incoming addresses with an incoming address resource;

modifying account information with the account resource; and

modifying caller ID information with the caller ID resource.

16. The method of claim 14 , wherein the telephony instruction is selected from the group consisting of: connecting to a telephony device, playing a media file, converting text to speech, sending a SMS message, sending a Multimedia Messaging Service (MMS) message, detecting input from a telephony device, and connecting to a new URI.

17. The method of claim 15 , further comprising setting the initial URI associated with an inbound incoming address.

18. The method of claim 17 , wherein a direct inward dialing (DID) number, a SMS short code, or a Session Initiation Protocol (SIP) address is used as the inbound incoming address.

19. The method of claim 13 , including creating a call resource; wherein the call resource is used for altering a connection of the telephony session.

20. The method of claim 19 , wherein altering a connection of a call session includes: joining telephony sessions, splitting a telephony session, and transferring a telephony session.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jun 9, 2009
From: COOKE, EVAN; WOLTHUIS, JOHN; LAWSON, JEFFREY
To: TWILIO, INC.
Reel/Frame 022803/0266 →
Continuity (6)
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
Related Publication 20090252159A1 · Oct 8, 2009