IP Library Granted Patent US 10,033,770
Granted Patent B2
US 10,033,770 · App. 14/087,311 · Granted Jul 24, 2018

Systems and methods for processing SIP message flows

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,033,770
App. No.
14/087,311
Granted
Jul 24, 2018
Kind
B2
Abstract

Systems, methods, and computer program products are provided for modifying a Session Initiation Protocol (SIP) messages. The method includes providing a scripting-type computer programming language that includes contexts that reference pre-defined portions of data of a SIP message and variables that store data associated with a SIP message flow. An interface for configuring rules to be executed when processing SIP messages is provided. Each rule includes an action that describes a modification to be made to a particular SIP message. When a SIP message is received, it is parsed to determine at least a context of a portion of the message. The parsing includes associating the portion of the message with a particular context. It is then determined whether a rule should be applied to the data associated referenced by the contexts, and if so, the SIP message is modified based on the actions associated with the rule.

Claims (46)

1. A computer-implemented method for modifying a Session Initiation Protocol (SIP) message included in a series of SIP messages associated with a SIP message flow comprising:

providing a scripting-type computer programming language with contexts that reference pre-defined portions of data of a SIP message and variables for storing data associated with a particular SIP message flow;

providing an interface for configuring one or more rules of an ingress profile and one or more rules of an egress profile by the scripting language, wherein the one or more rules of the ingress profile are different than the one or more rules of the egress profile, wherein the one or more rules of the ingress profile and one or more rules of the egress profile are executed when processing one or more SIP messages in the SIP message flow, and wherein each of the one or more rules of the ingress profile and one or more rules of the egress profile includes at least one action, the action describing a modification to be made to a particular SIP message in the SIP message flow;

receiving, by at least one or more processors, a particular SIP message included in the series of SIP messages;

parsing the particular SIP message to determine one or more contexts corresponding to one or more particular portions of the particular SIP message, the parsing including associating a particular portion of the particular SIP message with a particular pre-defined context;

determining whether criteria associated with each rule applies to at least the data referenced by one of the contexts; and

in response to determining that data referenced by a particular context meets the criteria associated with a particular rule, saving data from the particular SIP message to a variable associated with a memory location based on the one or more actions associated with the particular rule; and

modifying a subsequent SIP message based on the data from the particular SIP message in the memory location.

2. The computer-implemented method of claim 1 , wherein a particular rule includes at least one trigger, wherein one or more actions associated with the rule are processed when a particular SIP message meets a criterion that satisfies the trigger.

3. The computer-implemented method of claim 1 , wherein a particular rule includes at least one trigger, wherein one or more actions associated with the rule are processed when a particular variable meets a criterion that satisfies the trigger.

4. The computer-implemented method of claim 1 , wherein modifying the particular SIP message includes modifying a portion of the SIP message based on a trigger associated with the action's rule.

5. The computer-implemented method of claim 1 , wherein one or more rules of the ingress profile and the one or more rules of the egress profile are associated with a scope of processing SIP messages where the one or more rules of the ingress profile and the one or more rules of the egress profile are to be processed.

6. The computer-implemented method of claim 5 , wherein the ingress profile or the egress profile is associated with a particular scope including a system processing level, a realm processing level, a group processing level, or an endpoint processing level.

7. The computer-implemented method of claim 6 , wherein the ingress profile is further associated with a scope including a SIP message ingress point of a particular processing level.

8. The computer-implemented method of claim 5 , wherein the egress profile is further associated with a scope including a SIP message egress point of a particular processing level.

9. The computer-implemented method of claim 1 , wherein a particular rule includes a trigger that is required to be satisfied in order to execute the particular rule's associated actions, and wherein satisfying the trigger depends on a portion of data includes in a SIP message and is selected from a SIP request line, a SIP status line, a SIP header, a SIP generic-body, or a SIP message body headers.

10. A computer system for modifying a Session Initiation Protocol (SIP) message included in a SIP message flow comprising:

a processor; and

a memory comprising machine readable instructions that when executed by the processor, cause the system to:

provide a scripting-type computer programming language with contexts that reference pre-defined portions of data of a SIP message and variables for storing data associated with a particular SIP message flow;

provide a user interface for configuring one or more rules of an ingress profile and one or more rules of an egress profile by the scripting language, wherein the one or more rules of the ingress profile are different than the one or more rules of the egress profile, wherein the one or more rules of the ingress profile and one or more rules of the egress profile are executed when processing one or more SIP messages in the SIP message flow, and wherein each of the one or more rules of the ingress profile and one or more rules of the egress profile includes at least one action, the action describing a modification to be made to a particular SIP message in the SIP message flow;

receive a particular SIP message included in the series of SIP messages;

parse the particular SIP message to determine one or more contexts corresponding to one or more particular portions of the particular SIP message, the parsing including associating a particular portion of the particular SIP message with a particular pre-defined context;

determine whether criteria associated with each rule applies to at least the data referenced by one of the contexts;

in response to determining that data referenced by a particular context meets the criteria associated with a particular rule, save data from the particular SIP message to a variable associated with a memory location based on the one or more actions associated with the particular rule; and

modifying a subsequent SIP message based on the data from the particular SIP message in the memory location.

11. The computer system of claim 10 , wherein a particular rule includes at least one trigger, and wherein one or more actions associated with the rule are processed when a particular SIP message meets a criterion that satisfies the trigger.

12. The computer system of claim 10 , wherein a particular rule includes at least one trigger, and wherein one or more actions associated with the rule are processed when a particular variable meets a criterion that satisfies the trigger.

13. The computer system of claim 10 , wherein the rule processor is further configured to modify a portion of the SIP message based on a trigger associated with the action's rule.

14. The computer system of claim 10 , wherein one or more rules of the ingress profile and the one or more rules of the egress profile are associated with a scope of processing SIP messages where the one or more rules of the ingress profile and the one or more rules of the egress profile are to be processed.

15. The computer system of claim 14 , wherein the ingress profile or egress profile is associated with a particular scope including a system processing level, a realm processing level, a group processing level, or an endpoint processing level.

16. The computer system of claim 15 , wherein the ingress profile is further associated with a scope including a SIP message ingress point of a particular processing level.

17. The computer system of claim 14 , wherein the egress profile is further associated with a scope including a SIP message egress point of a particular processing level.

18. The computer system of claim 10 , wherein a particular rule includes a trigger that is required to be satisfied in order to execute the particular rule's associated actions, and wherein satisfying the trigger depends on a portion of data includes in a SIP message and is selected from a SIP request line, a SIP status line, a SIP header, a SIP generic-body, or a SIP message body headers.

19. A session border controller for modifying a Session Initiation Protocol (SIP) message included in a SIP message flow comprising:

a processor; and

a memory comprising machine readable instructions that when executed by the processor, cause the system to:

provide a scripting-type computer programming language, the scripting language including contexts that are configured to reference pre-defined portions of data of a SIP message and variables that are configured to store data based on processing a SIP message flow;

provide a user interface for configuring one or more rules of an ingress profile and one or more rules of an egress profile, by the scripting language, wherein the one or more rules of the ingress profile are different than the one or more rules of the egress profile, wherein the one or more rules of the egress profile and one or more rules of the egress profile include at least one trigger that determines the SIP messages the one or more rules of the egress profile and one or more rules of the egress profile is applied to, and at least one action that describes how to process the SIP message; and

store rules entered by a user in a rule database such that the rules are retrieved and applied to SIP messages as the SIP messages are processed by the session boarder controller;

receive a particular SIP message included in the SIP message flow;

parse the particular SIP message to determine one or more contexts that each correspond pre-defined portions of the particular SIP message;

determine whether the trigger associated with a particular rule applies to the particular SIP message, wherein the determining is based on comparing the trigger to at least one context referencing the particular SIP message; and

in response to determining that data referenced by a particular context meets the trigger associated with the particular rule, save data from the particular SIP message to a variable associated with a memory location based on one or more actions associated with the particular rule; and

modifying a subsequent SIP message based on the data from the particular SIP message in the memory location.

20. The session border controller of claim 19 , wherein the rule processor is further configured to modify one or more variables associated with the SIP message flow based on actions associated with the particular rule.

Assignments (13)
SHORT-FORM PATENTS SECURITY AGREEMENT Recorded Sep 5, 2024
From: RIBBON COMMUNICATIONS OPERATING COMPANY, INC.
To: HPS INVESTMENT PARTNERS, LLC, AS ADMINISTRATIVE AGENT
Reel/Frame 068857/0290 →
RELEASE OF SECURITY INTEREST Recorded Jun 24, 2024
From: CITIZENS BANK, N.A.
To: RIBBON COMMUNICATIONS OPERATING COMPANY, INC. (F/K/A GENBAND US LLC AND SONUS NETWORKS, INC.)
Reel/Frame 067822/0433 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT AT R/F 044978/0801 Recorded Dec 6, 2021
From: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
To: RIBBON COMMUNICATIONS OPERATING COMPANY, INC. (F/K/A GENBAND US LLC AND SONUS NETWORKS, INC.)
Reel/Frame 058949/0497 →
MERGER Recorded Jul 15, 2020
From: GENBAND US LLC
To: RIBBON COMMUNICATIONS OPERATING COMPANY, INC.
Reel/Frame 053223/0260 →
SECURITY INTEREST Recorded Mar 3, 2020
From: RIBBON COMMUNICATIONS OPERATING COMPANY, INC.
To: CITIZENS BANK, N.A., AS ADMINISTRATIVE AGENT
Reel/Frame 052076/0905 →
CORRECTIVE ASSIGNMENT TO CORRECT THE SCHEDULE PREVIOUSLY RECORDED ON REEL 049035 FRAME 0939. ASSIGNOR(S) HEREBY CONFIRMS THE FIRST SUPPLEMENT TO PATENT SECURITY AGREEMENT. Recorded Aug 22, 2019
From: GENBAND US LLC; RIBBON COMMUNICATIONS OPERATING COMPANY, INC., FORMERLY KNOWN AS SONUS NETWORKS, INC.
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 050705/0001 →
SECURITY INTEREST Recorded Jan 2, 2018
From: GENBAND US LLC; SONUS NETWORKS, INC.
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 044978/0801 →
TERMINATION AND RELEASE OF PATENT SECURITY AGREEMENT Recorded Dec 29, 2017
From: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
To: GENBAND US LLC
Reel/Frame 044986/0303 →
CORRECTIVE ASSIGNMENT TO CORRECT PATENT NO. 6381239 PREVIOUSLY RECORDED AT REEL: 039269 FRAME: 0234. ASSIGNOR(S) HEREBY CONFIRMS THE PATENT SECURITY AGREEMENT. Recorded Jan 3, 2017
From: GENBAND US LLC
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 041422/0080 →
PATENT SECURITY AGREEMENT Recorded Jul 6, 2016
From: GENBAND US LLC
To: SILICON VALLEY BANK, AS ADMINISTRATIVE AGENT
Reel/Frame 039269/0234 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 12, 2015
From: GARG, SUMIT
To: GENBAND US LLC
Reel/Frame 035147/0441 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 18, 2014
From: MACFARLANE, IAN
To: GENBAND US LLC
Reel/Frame 034200/0178 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 11, 2014
From: PHILLIPS, PAUL
To: GENBAND US LLC
Reel/Frame 032653/0218 →