IP Library Granted Patent US 9,294,515
Granted Patent B2
US 9,294,515 · App. 13/672,625 · Granted Mar 22, 2016

Method of controlling session initiation protocol sessions with state charts

Inventor: Slava Sayko (Walnut Creek, CA)
Assignee: GENESYS TELECOMMUNICATIONS LABORATORIES, INC.
H04L65/1006H04L65/105
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 9,294,515
App. No.
13/672,625
Granted
Mar 22, 2016
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 (77)

1. A method, comprising:

receiving a Session Initiation Protocol (SIP) request;

initiating by a computing device having a processor, a first SIP session as a result of receiving the SIP request;

executing, by the processor, a state chart implemented in a SIP server;

communicating events by the computing device to the state chart, as the events occur in the first SIP session;

changing states in the first SIP session by the computing device, as the states are defined in the state chart, to completion of the first SIP session;

coordinating, by the processor, processing of the first SIP session and a second SIP session, wherein the first and second SIP sessions are concurrently running SIP sessions and the coordinating invokes the state chart for sending events between the first SIP session and the second SIP session;

storing, by the processor, data exchanged between the first SIP session and the second SIP session; and

using, by the processor, the data as context for subsequent processing of the first SIP session.

2. The method of claim 1 further comprising:

implementing the state chart in an extensible markup language (XML).

3. The method of claim 2 , further comprising:

accessing, by the state chart, data from individual events;

using the data in preparing input parameters invoking state chart extensions; and

manipulating and storing the data using scripting capabilities.

4. The method of claim 3 further comprising:

creating, by a Proxy Request extension, a client transaction and a proxy request to a specified destination;

creating, by a Proxy Response extension, a proxy response from the client transaction to a server transaction;

cancelling, by a Cancel extension, the client transaction; and

sending, by a Response extension, a specified response in the server transaction.

5. The method of claim 1 , further comprising:

invoking, by the state chart, an additional action in course of the first SIP session.

6. The method of claim 1 further comprising:

invoking an additional action querying an external data source; and

calling external services via an application programming interface (API).

7. The method of claim 6 further comprising:

utilizing Representational State Transfer (REST) for the API.

8. The method of claim 1 further comprising:

continuing operation of the state chart after the first SIP Session is finished, performing post-processing tasks.

9. An apparatus, comprising:

a processor and a memory, the memory storing instructions that when executed by the processor, cause the processor to:

receive a Session Initiation Protocol (SIP) request;

initiate a first SIP session as a result of receiving the SIP request;

execute a state chart implemented in a SIP server;

communicate events to the state chart, as the events occur in the first SIP session;

change states in the first SIP session, as the states are defined in the state chart, to completion of the first SIP session;

coordinate processing of the first SIP session and a second SIP session, wherein the first and second SIP sessions are concurrently running SIP sessions and the coordinating invokes the state chart for sending events between the first SIP session and the second SIP session;

store data exchanged between the first SIP session and the second SIP session; and

use the data as context for subsequent processing of the first SIP session.

10. The apparatus of claim 9 wherein the state chart is implemented in an extensible markup language (XML).

11. The apparatus of claim 9 wherein the instructions further cause the processor to:

access data from events;

use the data in preparing input parameters for invoking extensions; and

manipulate and store the data using scripting capabilities.

12. The apparatus of claim 11 wherein the instructions further cause the processor to:

create a client transaction and a proxy request to specified destination using a PROXY REQUEST extension;

create a proxy response from the client transaction to a server transaction using a PROXY RESPONSE extension;

cancel the client transaction using a CANCEL extension; and

send a specified response using a RESPONSE extension.

13. The apparatus of claim 9 wherein the instructions cause the processor to invoke an additional action in course of SIP session processing.

14. The apparatus of claim 13 wherein the instructions cause the processor to:

invoke additional actions comprising querying an external data source or calling other services via an application programming interface (API).

15. The apparatus of claim 14 wherein the API comprises Representational State Transfer (REST).

16. The apparatus of claim 9 wherein the instructions cause the processor to:

continue operation of the state chart after the first SIP Session is finished, performing post-processing tasks.

17. The apparatus of claim 9 , wherein:

the instructions, when executed by the processor, further cause the processor to:

receive the Session Initiation Protocol (SIP) request from an origination;

determine a primary destination and transmit the SIP request to the primary destination;

receive a successful response from the primary destination;

propagate the successful response back to the origination;

receive an acknowledgement from the origination;

propagate the acknowledgement to the primary destination; and

connect the origination and the destination.

18. The apparatus of claim 17 wherein the instructions cause the processor to:

in the event of an error in sending the request to the primary destination, or a busy signal at the primary destination, determine an alternative destination and send the request to the alternative destination;

receive a successful response from the alternative destination;

propagate the successful response back to the origination;

receive an acknowledgement from the origination;

propagate the acknowledgement to the primary destination; and

connect the origination and the alternative destination.

19. The apparatus of claim 18 wherein the instructions cause the processor to:

receive an error response from the alternative destination; and

terminate activity of the apparatus for the SIP request.

20. The apparatus of claim 17 wherein the instructions cause the processor to:

implement call control functions with a first software-implemented state chart coded in an extensible markup language (SCXML); and

implement specific functionality beyond basic call-control functions with a second SCXML state chart.

Assignments (8)
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 067390/0340 →
CORRECTIVE RELEASE FOR SECURITY INTEREST IN PATENTS ORIGINALLY RECORDED AT REEL/FRAME (029778/0939) Recorded Feb 27, 2017
From: JPMORGAN CHASE BANK, N.A., AS SUCCESSOR TO THE ORIGINAL COLLATERAL AGENT GOLDMAN SACHS BANK USA
To: GENESYS TELECOMMUNICATIONS LABORATORIES, INC.; ANGEL.COM INCORPORATED; UTOPY, INC.; SOUNDBITE COMMUNICATIONS, INC.
Reel/Frame 041821/0209 →
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 →
PATENT RELEASE (REEL:031644/FRAME:0814) Recorded Dec 2, 2016
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: GENESYS TELECOMMUNICATIONS LABORATORIES, INC., AS GRANTOR; ANGEL.COM INCORPORATED; UTOPY, INC.; SOUNDBITE COMMUNICATIONS, INC.
Reel/Frame 040798/0428 →
SECURITY AGREEMENT Recorded Nov 15, 2013
From: GENESYS TELECOMMUNICATIONS LABORATORIES, INC.; ANGEL.COM INCORPORATED; UTOPY, INC.; SOUNDBITE COMMUNICATIONS, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 031644/0814 →
SECURITY AGREEMENT Recorded Feb 8, 2013
From: GENESYS TELECOMMUNICATIONS LABORATORIES, INC.
To: GOLDMAN SACHS BANK USA
Reel/Frame 029778/0939 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 14, 2012
From: SAYKO, SLAVA
To: GENESYS TELECOMMUNICATIONS LABORATORIES, INC.
Reel/Frame 029299/0079 →
Continuity (1)
Related Publication 20140129726A1 · May 8, 2014