# US 12,009,967 B2 · Communications methods and apparatus for minimizing and/or preventing message processing faults

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

- Number: US 12,009,967 B2
- Document ID: US12009967B2
- Status: Granted
- Kind: B2
- Application number: 17/540,203
- Filed: 2021-12-01
- Published: 2022-03-24
- Granted: 2024-06-11
- Earliest claimed: 2019-12-12
- Assignees: Ribbon Communications Operating Company, Inc.
- Applicants: Ribbon Communications Operating Company, Inc.
- Inventors: Shaun Jaikarran Bharrat; Subhransu S. Nayak; Prince Arimpur Cheerotha Philip; Rajangam Subramanian
- Web page: https://patentgrep.com/patent/US12009967B2

## CPC

- H04L 41/0654: using network fault recovery (ring fault isolation or reconfiguration in loop networks without recovery actions by a network management system H04L12/437)
- H04L 65/1045: Proxies, e.g. for session initiation protocol [SIP]
- H04L 65/1104: Session initiation protocol [SIP]
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## Abstract

The present invention relates to methods and apparatus for detecting, minimizing and/or preventing message processing faults and in particular message processing fault avalanches at a single processing device and among a cluster of message processing devices. An exemplary method embodiment includes: enabling message blocking at a Session Border Controller (SBC) for Session Initiation Protocol (SIP) messages including a first key value in response to a first threshold number of SIP messages including the first key value having caused a SIP message processing failure; receiving, at the SBC, a SIP message including at least one key value; determining if message blocking is enabled for one or more key values included in the SIP message; and dropping by the SBC the SIP message in response to determining that message blocking is enabled for one or more key values included in the SIP message, but otherwise processing the SIP message by the SBC.

## Claims

### Claim 1

A communications method, comprising:
enabling message blocking at a first Session Border Controller (SBC) for Session Initiation Protocol (SIP) messages including a first key value in response to a first threshold number of SIP messages including the first key value having caused a SIP message processing failure;
receiving, at the first SBC, a first SIP message including at least one key value;
determining, at the first SBC, if message blocking is enabled for one or more key values included in the first SIP message; and
performing, at the first SBC, one of:
i) dropping the first SIP message in response to determining that message blocking is enabled for one or more key values included in the first SIP message; and
ii) processing the first SIP message in response to determining that message blocking is not enabled for a key value included in the first SIP message.

### Claim 2 (depends on 1)

The method of claim 1, wherein said SIP message processing failure is a software failure which causes the entity which experiences the SIP message processing failure to crash and cease to provide SIP message processing services until a reboot of the entity.

### Claim 3 (depends on 2)

The method of claim 2, further comprising:
maintaining in persistent memory at the first SBC a first key value count, said first key value count indicating the number of times the first key value was included in a SIP message which caused an entity processing the SIP message to experience a SIP message processing failure; and
updating, by the first SBC, the first key value count maintained in persistent memory at the first SBC whenever the first SBC experiences a SIP message processing failure at the first SBC while processing a received SIP message including the first key value.

### Claim 4 (depends on 2)

The method of claim 2, wherein said at least one key value included in the first SIP message includes at least one of: (i) a call-id value, (ii) a calling party value, (iii) a called party value, (iv) a called party value and a calling party value, and (v) a peer device Internet Protocol address value.

### Claim 5 (depends on 3)

The method of claim 3, further comprising:
receiving, at the first SBC, from a second SBC, a message indicating one or more key values in a second SIP message that caused a SIP message processing failure at the second SBC, said one or more key values in the second SIP message that caused a SIP message processing failure at the second SBC including at least the first key value; and
updating, by the first SBC, a key value count maintained in persistent memory at the first SBC for each of the one or more indicated key values in the second SIP message; and
wherein said updating a key value count maintained at the first SBC for each of the one or more indicated key values in the second SIP message includes updating, by the first SBC, the first key value count maintained in persistent memory at the first SBC.

### Claim 6 (depends on 5)

The method of claim 5, further comprising:
after each update of the first key value count by the first SBC, determining by the first SBC whether or not to enable message blocking at the first SBC for received SIP messages including the first key value based on: (i) the updated first key value count, and (ii) a first SIP message blocking threshold number for the first key value.

### Claim 7 (depends on 1)

The method of claim 1, further comprising:
wherein said determining, at the first SBC, if message blocking is enabled for one or more key values included in the first SIP message includes:
determining if a key value included in the first SIP message matches the first key value; and
upon determining that a key value included in the first SIP message matches the first key value, determining that message blocking is enabled for one or more key values included in the first SIP message.

### Claim 8 (depends on 5)

The method of claim 5, further comprising:
operating the second SBC to receive the second SIP message;
identifying key values in the second SIP message;
detecting, at the second SBC, a SIP message processing failure caused by the processing of said second SIP message; and
communicating to other SBCs key values included in said second SIP message along with an indication that the communicated key values were associated with a SIP message processing failure.

### Claim 9 (depends on 8)

The method of claim 8,
wherein said first and second SBCs are part of a plurality of SBCs forming a cluster of SBCs, each of said SBCs in said cluster of SBCs, upon the detection of a SIP message processing failure, communicates key values extracted from the SIP message being processed by the SBC at the time of the SIP message processing failure to the other SBCs of the cluster of SBCs.

### Claim 10 (depends on 9)

The method of claim 9, wherein each SBC of the cluster of SBCs maintains in its persistent memory key value counts for call-id values, calling party values, called party values, called party and calling party values, and peer device Internet Protocol address values.

### Claim 11

A communications system comprising:
a first Session Border Controller (SBC) including: (i) persistent memory and (ii) a first processor, said first processor controlling the first SBC to perform the following operations:
enabling message blocking at the first SBC for Session Initiation Protocol (SIP) messages including a first key value in response to a first threshold number of SIP messages including the first key value having caused a SIP message processing failure;
receiving, at the first SBC, a first SIP message including at least one key value;
determining, at the first SBC, if message blocking is enabled for one or more key values included in the first SIP message; and
performing, at the first SBC, one of:
i) dropping the first SIP message in response to determining that message blocking is enabled for one or more key values included in the first SIP message; and
ii) processing the first SIP message in response to determining that message blocking is not enabled for a key value included in the first SIP message.

### Claim 12 (depends on 11)

The communications system of claim 11, wherein said SIP message processing failure is a software failure which causes the entity which experiences the SIP message processing failure to crash and cease to provide SIP message processing services until a reboot of the entity.

### Claim 13 (depends on 12)

The communications system of claim 12, wherein said first processor further controls the first SBC to the perform the additional operations of:
maintaining in said persistent memory at the first SBC a first key value count, said first key value count indicating the number of times the first key value was included in a SIP message which caused an entity processing the SIP message to experience a SIP message processing failure; and
updating, by the first SBC, the first key value count maintained in said persistent memory at the first SBC whenever the first SBC experiences a SIP message processing failure at the first SBC while processing a received SIP message including the first key value.

### Claim 14 (depends on 12)

The communications system of claim 12, wherein said at least one key value included in the first SIP message includes at least one of: (i) a call-id value, (ii) a calling party value, (iii) a called party value, (iv) a called party value and a calling party value, and (v) a peer device Internet Protocol address value.

### Claim 15 (depends on 13)

The communications system of claim 13, wherein the first processor further controls the first SBC to perform the additional operations of:
receiving, at the first SBC, from a second SBC, a message indicating one or more key values in a second SIP message that caused a SIP message processing failure at the second SBC, said one or more key values in the second SIP message that caused a SIP message processing failure at the second SBC including at least the first key value; and
updating, by the first SBC, a key value count maintained in said persistent memory at the first SBC for each of the one or more indicated key values in the second SIP message; and
wherein said updating a key value count maintained at the first SBC for each of the one or more indicated key values in the second SIP message includes updating, by the first SBC, the first key value count maintained in said persistent memory at the first SBC.

### Claim 16 (depends on 15)

The communications system of claim 15, wherein the first processor after each update of the first key value count by the first SBC further controls the first SBC to perform the additional operation of:
determining, by the first SBC, whether or not to enable message blocking at the first SBC for received SIP messages including the first key value based on: (i) the updated first key value count, and (ii) a first SIP message blocking threshold number for the first key value.

### Claim 17 (depends on 11)

The communications system of claim 11, further comprising:
wherein said determining, at the first SBC, if message blocking is enabled for one or more key values included in the first SIP message includes:
determining if a key value included in the first SIP message matches the first key value; and
upon determining that a key value included in the first SIP message matches the first key value, determining that message blocking is enabled for one or more key values included in the first SIP message.

### Claim 18 (depends on 15)

The communications system of claim 15,
wherein said second SBC includes a second processor that controls the second SBC to perform the following operations:
operating the second SBC to receive the second SIP message;
identifying key values in the second SIP message;
detecting, at the second SBC, a SIP message processing failure caused by the processing of said second SIP message; and
communicating to other SBCs key values included in said second SIP message along with an indication that the communicated key values were associated with a SIP message processing failure.

### Claim 19 (depends on 18)

The communications system of claim 18,
wherein said first and second SBCs are part of a plurality of SBCs forming a cluster of SBCs, each of said SBCs in said cluster of SBCs, upon the detection of a SIP message processing failure, communicates key values extracted from the SIP message being processed by the SBC at the time of the SIP message processing failure to the other SBCs of the cluster of SBCs.

### Claim 20

A non-transitory machine readable medium including processor executable instructions, which when executed by a processor of a first session border controller (SBC), control the first SBC to:
enable message blocking at the first SBC for Session Initiation Protocol (SIP) messages including a first key value in response to a first threshold number of SIP messages including the first key value having caused a SIP message processing failure;
receive, at the first SBC, a first SIP message including at least one key value;
determine, at the first SBC, if message blocking is enabled for one or more key values included in the first SIP message; and
perform, at the first SBC, one of:
i) dropping the first SIP message in response to determining that message blocking is enabled for one or more key values included in the first SIP message; and
ii) processing the first SIP message in response to determining that message blocking is not enabled for a key value included in the first SIP message.
