# US 9,882,942 B2 · Method for processing telephony sessions of a network

> Agents: this data is available as JSON from the patentgrep API and MCP server — see https://patentgrep.com/llms.txt

- Number: US 9,882,942 B2
- Document ID: US9882942B2
- Status: Granted
- Kind: B2
- Application number: 15/241,504
- Filed: 2016-08-19
- Published: 2016-12-08
- Granted: 2018-01-30
- Earliest claimed: 2011-02-04
- Assignees: Twilio Inc.
- Applicants: Twilio, Inc.
- Inventors: Jeffrey Lawson; John Wolthuis; Evan Cooke
- Web page: https://patentgrep.com/patent/US9882942B2

## CPC

- H04L 65/1069: Session establishment or de-establishment
- H04L 61/106: across networks, e.g. mapping telephone numbers to data network addresses
- H04L 65/4053: without floor control
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

A method for processing telephony sessions of a network including at least one application server and a call router, the method including the steps of assigning a primary Uniform Resource Identifier (URI) and at least a secondary URI to an application; mapping a telephony session to the primary URI; communicating with the application server designated by the primary URI using an application layer protocol; receiving telephony instructions from the application server and processing the telephony instructions with the call router; detecting an application event; and upon detecting the application event, communicating with the application server designated by the secondary URI.

## Claims

### Claim 1

A method comprising: at a platform system:
the platform system assigning a primary application resource identifier and at least a first status application resource identifier to a first application, wherein the primary application resource identifier is a resource identifier of a first application server system that is external to the platform system, and wherein the first status application resource identifier is a resource identifier of one of the first application server system and a second application server system that is external to the platform system;
responsive to the platform system initiating a session of the first application at the platform system, the platform system communicating with the first application server system by using an application layer protocol, wherein communicating with the application server comprises:
embedding at least a portion of state information of the session of the first application in a first application layer protocol request,
sending the first application layer protocol request through the application layer protocol to an application resource identified by the primary application resource identifier, and
receiving a first application server response from the first application server system,
the platform system processing the first application server response; and
responsive to an application status change event of the session of the first application, the platform system:
embedding at least a portion of state information of the session of the first application and the application status change event in a second application layer protocol request, and
sending the second application layer protocol request through the application layer protocol to an application resource identified by the first status application resource identifier.

### Claim 2 (depends on 1)

The method of claim 1, wherein the platform system receives the primary application resource identifier and the first status application resource identifier from the first application server system.

### Claim 3 (depends on 1)

The method of claim 1, wherein the platform system receives the primary application resource identifier and the first status application resource identifier from an application administration system.

### Claim 4 (depends on 1)

The method of claim 1, further comprising the platform system updating the primary application resource identifier during the session of the first application.

### Claim 5 (depends on 1)

The method of claim 1,
wherein the first status application resource identifier is registered for at least one type of state change in the session of the first application, and
wherein the platform system sends the second application layer protocol request to an application resource identified by the first status application resource identifier, responsive to a type of state change registered for the first status application resource identifier.

### Claim 6 (depends on 1)

The method of claim 1,
wherein the first status application resource identifier is registered for a plurality of types of state changes in the session of the first application, and
wherein the platform system sends the second application layer protocol request to an application resource identified by the first status application resource identifier, responsive to a type of state change registered for the first status application resource identifier.

### Claim 7 (depends on 5)

The method of claim 5,
further comprising: the platform system assigning a second status application resource identifier to the first application,
wherein the second status application resource identifier is a resource identifier of one of: the first application server system, the second application server system, and a third application server system that is external to the platform system, and
wherein the second status application resource identifier is registered for at least one type of state change in the session of the first application, and
wherein the platform system sends a third application layer protocol request to an application resource identified by the second status application resource identifier, responsive to a type of state change registered for the second status application resource identifier.

### Claim 8

A method comprising: at a platform system:
the platform system assigning a primary application resource identifier and at least a first error application resource identifier to a first application, wherein the primary application resource identifier is a resource identifier of a first application server system that is external to the platform system, and wherein the first error application resource identifier is a resource identifier of one of the first application server system and a second application server system that is external to the platform system;
responsive to the platform system initiating a session of the first application at the platform system, the platform system communicating with the first application server system by using an application layer protocol, wherein communicating with the application server comprises:
embedding at least a portion of state information of the session of the first application in a first application layer protocol request,
sending the first application layer protocol request through the application layer protocol to an application resource identified by the primary application resource identifier, and
receiving a first application server response from the first application server system,
the platform system processing the first application server response; and
responsive to an application error during processing of the first application server response:
the platform system embedding at least a portion of state information of the session of the first application from a time of the application error and an error identifier in a second application layer protocol request, and sending the second application layer protocol request through the application layer protocol to an application resource identified by the first error application resource identifier.

### Claim 9 (depends on 8)

The method of claim 8, further comprising: the platform system receiving a response to the second application layer protocol request; and the platform system processing the response to the second application layer protocol request.

### Claim 10 (depends on 9)

The method of claim 9, wherein processing the response to the second application layer protocol request comprises updating the primary application resource identifier of the first application.

### Claim 11 (depends on 8)

The method of claim 8, wherein the platform system receives the primary application resource identifier and the first error application resource identifier from the first application server system.

### Claim 12 (depends on 8)

The method of claim 8, wherein the platform system receives the primary application resource identifier and the first error application resource identifier from an application administration system.

### Claim 13 (depends on 8)

The method of claim 8,
wherein the first error application resource identifier is registered for at least one error in the session of the first application, and
wherein the platform system sends the second application layer protocol request to an application resource identified by the first error application resource identifier, responsive to an error registered for the first error application resource identifier.

### Claim 14 (depends on 13)

The method of claim 13,
further comprising: the platform system assigning a second error application resource identifier to the first application,
wherein the second error application resource identifier is a resource identifier of one of: the first application server system, the second application server system, and a third application server system that is external to the platform system, and
wherein the second error application resource identifier is registered for at least one error in the session of the first application, and
wherein the platform system sends a third application layer protocol request to an application resource identified by the second error application resource identifier, responsive to an error registered for the second error application resource identifier.

### Claim 15

A hardware system comprising:
a first application server system;
a second application server system; and
a platform system external to the first application server system and the second application server system,
wherein the platform system is constructed to:
assign a primary application resource identifier and at least a first secondary application resource identifier to a first application, wherein the primary application resource identifier is a resource identifier of the first application server system, and wherein the first secondary application resource identifier is a resource identifier of one of the first application server system and the second application server system;
responsive to the platform system initiating a session of the first application at the platform system, communicate with the first application server system by using an application layer protocol, wherein communicating with the application server comprises:
embedding at least a portion of state information of the session of the first application in a first application layer protocol request,
sending the first application layer protocol request through the application layer protocol to an application resource identified by the primary application resource identifier, and
receiving a first application server response from the first application server system,
process the first application server response; and
responsive to an application event of the session of the first application:
embed at least a portion of state information of the session of the first application and the application event in a second application layer protocol request, and
send the second application layer protocol request through the application layer protocol to an application resource identified by the first secondary application resource identifier.

### Claim 16 (depends on 15)

The system of claim 15,
wherein the application event is an application error, and
wherein the platform system is constructed to embed at least a portion of state information of the session of the first application from a time of the application error and an error identifier in the second application layer protocol request.

### Claim 17 (depends on 16)

The system of claim 16,
wherein the first secondary application resource identifier is registered for at least one error in the session of the first application, and
wherein the platform system is constructed to send the second application layer protocol request to an application resource identified by the first secondary application resource identifier, responsive to an error registered for the first secondary application resource identifier.

### Claim 18 (depends on 17)

The system of claim 17,
further comprising: the platform system assigning a second secondary application resource identifier to the first application,
wherein the second secondary application resource identifier is a resource identifier of one of: the first application server system, the second application server system, and a third application server system that is external to the platform system, and
wherein the second secondary application resource identifier is registered for at least one error in the session of the first application, and
wherein the platform system sends a third application layer protocol request to an application resource identified by the second secondary application resource identifier, responsive to an error registered for the second secondary application resource identifier.

### Claim 19 (depends on 15)

The system of claim 15,
wherein the application event is an application status change event,
wherein the first secondary application resource identifier is registered for at least one type of state change in the session of the first application, and
wherein the platform system is constructed to send the second application layer protocol request to an application resource identified by the first secondary application resource identifier, responsive to a type of state change registered for the first secondary application resource identifier.

### Claim 20 (depends on 19)

The method of claim 19,
further comprising: the platform system assigning a second secondary application resource identifier to the first application,
wherein the second secondary application resource identifier is a resource identifier of one of: the first application server system, the second application server system, and a third application server system that is external to the platform system, and
wherein the second secondary application resource identifier is registered for at least one type of state change in the session of the first application, and
wherein the platform system sends a third application layer protocol request to an application resource identified by the second secondary application resource identifier, responsive to a type of state change registered for the second secondary application resource identifier.
