IP Library Granted Patent US 10,165,013
Granted Patent B2
US 10,165,013 · App. 15/076,623 · Granted Dec 25, 2018

Method of controlling session initiation protocol sessions with state charts

Inventor: Slava Sayko (Walnut Creek, CA)
H04L65/1009H04L65/105H04L65/1006
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,165,013
App. No.
15/076,623
Granted
Dec 25, 2018
Kind
B2
Abstract

A method involves acts of receiving a Session Initiation Protocol (SIP) request, initiating by a computing device having a processor, a SIP session as a result of receiving the SIP request, executing, by the processor, a state chart implemented in the SIP server, communicating events by the computing device to the state chart, as the events occur in the SIP session, and changing states in the SIP session by the computing device, as the states are defined in the state chart, to completion of the SIP session.

Claims (42)

1. A method for processing Session Initiation Protocol (SIP) sessions, the method comprising:

receiving, by a processor, an event from a SIP protocol layer, the event corresponding to a first SIP session of the SIP sessions, the event being associated with event data;

executing, by the processor, a state chart implemented in a SIP server, wherein the state chart includes instructions for changing states of the first SIP session, and further includes instructions for storing the event data and for processing events;

storing, by the processor, the event data in a data storage device based on the instructions in the state chart to store the event data;

changing, by the processor, a state of the first SIP session according to the state chart based on the event data;

receiving, by the processor a second event from the SIP protocol layer, the second event corresponding to the first SIP session;

processing, by the processor, the second event based on the stored information, wherein the processing of the second event is based on the instructions in the state chart for processing events; and

establishing, by the processor, a connection between first and second end user corresponding to the first SIP session,

wherein, the state chart is executed asynchronously based on an order of the event and the second event received from the SIP protocol layer.

2. The method of claim 1 , further comprising applying, by the processor, business logic at each succeeding state before the state changes.

3. The method of claim 2 , wherein the applying the business logic comprises at least one of: analyzing SIP message attributes, applying business rules, modifying SIP Uniform Resource Identifiers (URIs) and headers, determining destinations for SIP requests, sending proxy requests to one or more destinations, creating client transactions, or querying external storage.

4. The method of claim 1 , wherein data about SIP messages, transactions, or dialogs is received with the event.

5. The method of claim 4 , wherein the processor accesses the data in preparation for performing actions on the first SIP session.

6. The method of claim 1 , wherein the performing the actions on the first SIP session comprises:

creating, by the processor, a client transaction and a proxy request to a specified destination;

creating, by the processor, a proxy response from the client transaction to a server transaction;

cancelling, by the processor, the client transaction; and

sending, by the processor, a specific response in the server transaction.

7. The method of claim 1 , wherein the state chart creates, via the processor, one or more SIP client transactions, and processes, via the processor, events received from the SIP client transactions until they are concluded.

8. The method of claim 1 , wherein the event from the SIP protocol layer is at least one of SIP request associated with the first SIP session, a SIP response associated with the first SIP session, a timeout associated with the first SIP session, or a transport error associated with the first SIP session.

9. The method of claim 1 , wherein the state chart further includes instructions for querying an external data source, wherein the external data source is queried during executing of the state chart.

10. A system for processing Session Initiation Protocol (SIP) sessions, the system comprising:

a processor; and

a memory, wherein the memory stores instructions that, when executed by the processor, cause the processor to:

receive an event from a SIP protocol layer, the event corresponding to a first SIP session of the SIP sessions, the event being associated with event data;

execute a state chart implemented in a SIP server, wherein the state chart includes instructions for changing states of the first SIP session, and further includes instructions for storing the event data and for processing events;

store the event data in a data storage device based on the instructions in the state chart to store the event data;

change a state of the first SIP session according to the state chart based on the event data;

receive a second event from the SIP protocol layer, the second event corresponding to the first SIP session;

process the second event based on the stored information, wherein the processing of the second event is based on the instructions in the state chart for processing events; and

establish a connection between first and second end user devices corresponding to the first SIP session,

wherein, the state chart is configured to be executed asynchronously based on an order of the event and the second event received from the SIP protocol layer.

11. The system of claim 10 , wherein the instructions, when executed, further cause the processor to apply business logic at each succeeding state before the state changes.

12. The system of claim 11 , wherein the instructions that cause the processor to apply the business logic comprise instructions for at least of: analyzing SIP message attributes, applying business rules, modifying SIP Uniform Resource Identifiers (URIs) and headers, determining destinations for SIP requests, sending proxy requests to one or more destinations, creating client transactions, or querying external storage.

13. The system of claim 10 , wherein data about SIP messages, transactions, or dialogs is received with the event.

14. The system of claim 13 , wherein the processor accesses the data in preparation for performing actions on the first SIP session.

15. The system of claim 10 , wherein the instructions that cause the processor to perform the actions on the first SIP session comprise instructions for:

creating a client transaction and a proxy request to a specified destination;

creating a proxy response from the client transaction to a server transaction;

cancelling the client transaction; and

sending a specific response in the server transaction.

16. The system of claim 10 , wherein the state chart creates one or more SIP client transactions, and processes events received from the SIP client transactions until they are concluded.

Assignments (6)
NOTICE OF SUCCESSION OF SECURITY INTERESTS AT REEL/FRAME 04814/0387 Recorded Feb 5, 2025
From: BANK OF AMERICA, N.A., AS RESIGNING AGENT
To: GOLDMAN SACHS BANK USA, AS SUCCESSOR AGENT
Reel/Frame 070115/0445 →
NOTICE OF SUCCESSION OF SECURITY INTERESTS AT REEL/FRAME 040815/0001 Recorded Feb 3, 2025
From: BANK OF AMERICA, N.A., AS RESIGNING AGENT
To: GOLDMAN SACHS BANK USA, AS SUCCESSOR AGENT
Reel/Frame 070498/0001 →
CHANGE OF NAME Recorded May 13, 2024
From: GENESYS TELECOMMUNICATIONS LABORATORIES, INC.
To: GENESYS CLOUD SERVICES, INC.
Reel/Frame 067391/0101 →
SECURITY AGREEMENT Recorded Feb 22, 2019
From: GENESYS TELECOMMUNICATIONS LABORATORIES, INC.; ECHOPASS CORPORATION; GREENEDEN U.S. HOLDINGS II, LLC
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 048414/0387 →
SECURITY AGREEMENT Recorded Dec 5, 2016
From: GENESYS TELECOMMUNICATIONS LABORATORIES, INC., AS GRANTOR; ECHOPASS CORPORATION; INTERACTIVE INTELLIGENCE GROUP, INC.; BAY BRIDGE DECISION TECHNOLOGIES, INC.
To: BANK OF AMERICA, N.A., AS COLLATERAL AGENT
Reel/Frame 040815/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 29, 2016
From: SAYKO, SLAVA
To: GENESYS TELECOMMUNICATIONS LABORATORIES, INC.
Reel/Frame 038128/0891 →
Continuity (2)
Continuation 13672625 · Nov 8, 2012
Related Publication 20160205144A1 · Jul 14, 2016