IP Library › Granted Patent US 12,652,324
Granted Patent B2
US 12,652,324 · App. 18/402,359 · Granted Jun 9, 2026

Methods, systems, and computer readable media for preserving network bandwidth during network address translation (NAT) device unavailability or after NAT device reboot

Inventors: Lalit Grover (Haryana, IN); Vimal Chandra Tewari (Bangalore, IN); Jayesh Shrimali (Telangana, IN)
Assignee: ORACLE INTERNATIONAL CORPORATION
H04L65/1073H04L61/256H04L65/1045
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 12,652,324
App. No.
18/402,359
Granted
Jun 9, 2026
Kind
B2
Abstract

A method for preserving network bandwidth during NAT device unavailability or after a NAT device reboot includes receiving, by a session initiation protocol (SIP) proxy, messages from SIP endpoints, determining, by the SIP proxy, that at least some of the SIP endpoints are located behind a NAT device. The method further includes determining, by the SIP proxy, that the NAT device is potentially unavailable or has potentially rebooted, testing, by the SIP proxy, reachability of at least some of the SIP endpoints located behind the NAT device and determining that the at least some of the SIP endpoints are unreachable, classifying, by the SIP proxy, all of the SIP endpoints located behind the NAT device as unreachable, and rejecting, by the SIP proxy, SIP messages directed towards the SIP endpoints located behind the NAT device.

Claims (61)

1 . A method for preserving network bandwidth during network address translation (NAT) device unavailability or after NAT device reboot, the method comprising:

receiving, by a session initiation protocol (SIP) proxy, messages from SIP endpoints;

determining, by the SIP proxy, that at least some of the SIP endpoints are located behind a NAT device;

determining, by the SIP proxy, that the NAT device is potentially unavailable or has potentially rebooted;

testing, by the SIP proxy, reachability of the at least some of the SIP endpoints located behind the NAT device and determining that the at least some of the SIP endpoints are unreachable;

in response to determining, from the testing, that the at least some of the SIP endpoints are unreachable, determining that the NAT device is unavailable or has rebooted, and classifying by the SIP proxy, all of the SIP endpoints located behind the NAT as unreachable; and

rejecting, by the SIP proxy, SIP messages directed towards the SIP endpoints located behind the NAT device, wherein rejecting, by the SIP proxy, the SIP messages directed towards the SIP endpoints located behind the NAT device includes:

receiving, by the SIP proxy, the SIP messages directed towards the SIP endpoints located behind the NAT device;

refraining, by the SIP proxy, from forwarding the SIP messages directed towards the SIP endpoints located behind the NAT device; and

transmitting, by the SIP proxy and to originators of the SIP messages directed towards the SIP endpoints located behind the NAT device, error response messages with Retry-After headers that each include a time value that defines a time interval that a receiving entity should wait before sending SIP message traffic to one of the SIP endpoints located behind the NAT device and a value indicating that the one of the SIP endpoints located behind the NAT device is unreachable and/or that the NAT device has rebooted or is unavailable.

2 . The method of claim 1 wherein receiving messages from the SIP endpoints includes receiving SIP REGISTER request messages from the SIP endpoints.

3 . The method of claim 2 wherein determining that the at least some of the SIP endpoints are located behind the NAT device includes:

comparing source Internet protocol (IP) addresses in layer 3 packets carrying the SIP REGISTER request messages to IP addresses in first SIP via headers of the SIP REGISTER request messages; and

determining that the source IP addresses in the layer 3 packets carrying the SIP REGISTER request messages do not match the IP addresses in the first SIP via headers of the SIP REGISTER request messages.

4 . The method of claim 1 comprising creating, by the SIP proxy, NAT device to SIP endpoint correlation records, wherein creating the records includes inserting, in each of the records, a layer 3 source Internet protocol (IP) address of a packet carrying a SIP message, a layer 4 source port number from the packet carrying the SIP message, an IP address, a port number, and a SIP instance identifier (ID) from a Contact header of the SIP message, and a call ID.

5 . The method of claim 1 wherein determining that the NAT device is potentially unavailable or has potentially rebooted includes:

sending a message to one of the SIP endpoints located behind the NAT device and failing to receive a response to the message within a timeout period; and

in response to failing to receive the response to the message within the timeout period, determining that the NAT device is potentially unavailable or has potentially rebooted.

6 . The method of claim 1 wherein determining that the NAT device is potentially unavailable or has potentially rebooted includes:

receiving a SIP REGISTER request message from one of the SIP endpoints located behind the NAT;

using a first information from the SIP REGISTER request message to locate a NAT device to SIP endpoint correlation record or to access an entry for the one SIP endpoint in a SIP registration cache; and

determining that a second information in the SIP REGISTER request message does not match information in the NAT device to SIP endpoint correlation record or the entry for the one SIP endpoint in the SIP registration cache.

7 . The method of claim 6 wherein using the first information from the SIP REGISTER request message to locate the NAT device to SIP endpoint correlation record or the entry for the one SIP endpoint in the SIP registration cache includes using a layer 4 source port of a packet carrying the SIP REGISTER request message or a call identifier (ID) in the SIP REGISTER request message to locate the NAT device to SIP endpoint correlation record, determining that the call ID in the SIP REGISTER request message matches a call ID in the NAT device to SIP endpoint correlation record or the entry for the one SIP endpoint in the SIP registration cache, and determining that the second information in the SIP REGISTER request message does not match the information in the NAT device to SIP endpoint correlation record or the entry for the one SIP endpoint in the SIP registration cache includes determining that a SIP instance identifier or an Internet protocol (IP) address and port number in a SIP Contact header of the SIP REGISTER request message does not match a SIP instance identifier or an IP address and a port number in the NAT device to SIP endpoint correlation record or the entry for the one SIP endpoint in the SIP registration cache.

8 . The method of claim 1 wherein testing the reachability of the at least some of the SIP endpoints located behind the NAT device includes:

transmitting SIP OPTIONS request messages to the at least some of the SIP endpoints located behind the NAT device; and

determining that the NAT device is unavailable or has rebooted in response to detecting timeouts associated with the SIP OPTIONS request messages.

9 . The method of claim 1 wherein the time value is determined by the SIP proxy based on a registration refresh interval.

10 . The method of claim 1 wherein the SIP proxy comprises a session border controller (SBC).

11 . A system for preserving network bandwidth during network address translation (NAT) device unavailability or after NAT device reboot, the system comprising:

a session initiation protocol (SIP) proxy including at least one processor and a memory;

a NAT device to SIP endpoint correlation manager implemented by the at least one processor for receiving messages from SIP endpoints, determining that at least some of the SIP endpoints are located behind a NAT device, determining that the NAT device is potentially unavailable or has potentially rebooted, testing reachability of the at least some of the SIP endpoints located behind the NAT device and determining that the at least some of the SIP endpoints are unreachable, in response to determining, from the testing, that the at least some of the SIP endpoints are unreachable, determining that the NAT device is unavailable or has rebooted and classifying all of the SIP endpoints located behind the NAT device as unreachable, and rejecting SIP messages directed towards the SIP endpoints located behind the NAT device, wherein rejecting the SIP messages directed towards the SIP endpoints located behind the NAT device includes:

receiving the SIP messages directed towards the SIP endpoints located behind the NAT device;

refraining from forwarding the SIP messages directed towards the SIP endpoints located behind the NAT device; and

transmitting, to originators of the SIP messages directed towards the SIP endpoints located behind the NAT device, error response messages with Retry-After headers that each include a time value that defines a time interval that a receiving entity should wait before sending SIP message traffic to one of the SIP endpoints located behind the NAT device and a value indicating that the one of the SIP endpoints located behind the NAT device is unreachable and/or that the NAT device has rebooted or is unavailable.

12 . The system of claim 11 wherein receiving the messages from the SIP endpoints comprises receiving SIP REGISTER request messages from the SIP endpoints.

13 . The system of claim 12 wherein, in determining that the at least some of the SIP endpoints are located behind the NAT device, the NAT device to SIP endpoint correlation manager is configured to:

compare source Internet protocol (IP) addresses in layer 3 packets carrying the SIP REGISTER request messages to IP addresses in first SIP via headers of the SIP REGISTER request messages; and

determine that the source IP addresses in the layer 3 packets carrying the SIP REGISTER request messages do not match the IP addresses in the first SIP via headers of the SIP REGISTER request messages.

14 . The system of claim 11 wherein the NAT device to SIP endpoint correlation manager is configured to create NAT device to SIP endpoint correlation records and insert, in each of the records, a layer 3 source Internet protocol (IP) address from a packet carrying a SIP message, a layer 4 source port number from the packet carrying the SIP message, an IP address, a port number, and a SIP instance identifier (ID) from a Contact header of the SIP message, and a call ID.

15 . The system of claim 11 wherein, in determining that the NAT device is potentially unavailable or has potentially rebooted, the NAT device to SIP endpoint correlation manager is configured to:

send a message to one of the SIP endpoints located behind the NAT device and fail to receive a response to the message within a timeout period; and

in response to failing to receive the response to the message within the timeout period, determine that the NAT device is potentially unavailable or has potentially rebooted.

16 . The system of claim 11 wherein, in determining that the NAT device is potentially unavailable or has potentially rebooted, the NAT device to SIP endpoint correlation manager is configured to:

receive a SIP REGISTER request message from one of the SIP endpoints located behind the NAT;

use a first information from the SIP REGISTER request message to locate a NAT device to SIP endpoint correlation record or an entry for the one SIP endpoint in a SIP registration cache; and

determine that a second information in the SIP REGISTER request message does not match information in the NAT device to SIP endpoint correlation record or the entry for the one SIP endpoint in the SIP registration cache.

17 . The system of claim 11 wherein, in testing the reachability of the at least some of the SIP endpoints located behind the NAT device, the NAT device to SIP endpoint correlation manager is configured to:

transmit SIP OPTIONS request messages to the at least some of the SIP endpoints located behind the NAT device; and

determine that the NAT device is unavailable or has rebooted in response to detecting timeouts associated with the SIP OPTIONS request messages.

18 . The system of claim 11 wherein the time value is determined by the SIP proxy based on a registration refresh interval.

19 . The system of claim 11 wherein the SIP proxy comprises a session border controller (SBC).

20 . A non-transitory computer readable medium having stored thereon executable instructions that when executed by a processor of a computer control the computer to perform steps comprising:

receiving, by a session initiation protocol (SIP) proxy, messages from SIP endpoints;

determining, by the SIP proxy, that at least some of the SIP endpoints are located behind a network address translation (NAT) device;

determining, by the SIP proxy, that the NAT device is potentially unavailable or has potentially rebooted;

testing, by the SIP proxy, reachability of the at least some of the SIP endpoints located behind the NAT device and determining that the at least some of the SIP endpoints are unreachable;

in response to determining, from the testing, that the at least some of the SIP endpoints are unreachable, determining that the NAT device is unavailable or has rebooted and classifying, by the SIP proxy, all of the SIP endpoints located behind the NAT device as unreachable; and

rejecting, by the SIP proxy, SIP messages directed towards the SIP endpoints located behind the NAT device, wherein rejecting, by the SIP proxy, the SIP messages directed towards the SIP endpoints located behind the NAT device includes:

receiving, by the SIP proxy, the SIP messages directed towards the SIP endpoints located behind the NAT device;

refraining, by the SIP proxy, from forwarding the SIP messages directed towards the SIP endpoints located behind the NAT device; and

transmitting, by the SIP proxy and to originators of the SIP messages directed towards the SIP endpoints located behind the NAT device, error response messages with Retry-After headers that each includes a time value that defines a time interval that a receiving entity should wait before sending SIP message traffic to one of the SIP endpoints located behind the NAT device and a value indicating that the one of the SIP endpoints located behind the NAT device is unreachable and/or that the NAT device has rebooted or is unavailable.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jan 3, 2024
From: GROVER, LALIT; TEWARI, VIMAL CHANDRA; SHRIMALI, JAYESH
To: ORACLE INTERNATIONAL CORPORATION
Reel/Frame 066007/0166 →
Continuity (1)
Related Publication 20250220057A1 · Jul 3, 2025
References Cited (30)
US 7483437B1 · Mohaban · 2009 [cited by examiner]
US 7515549B2 · Wing et al. · 2009 [cited by applicant]
US 7760744B1 · Mohaban · 2010 [cited by examiner]
US 8023432B2 · Herzog · 2011 [cited by applicant]
US 9692724B2 · Chien · 2017 [cited by applicant]
US 10819755B1 · Asveren · 2020 [cited by examiner]
US 11838259B1 · Liu · 2023 [cited by examiner]
US 12243525B1 · Oliver · 2025 [cited by examiner]
US 20040024879A1 · Dingman · 2004 [cited by examiner]
US 20070253418A1 · Shiri · 2007 [cited by examiner]
US 20100034194A1 · Fieremans · 2010 [cited by examiner]
US 20100161809A1 · Roach · 2010 [cited by examiner]
US 20120166656A1 · Asveren · 2012 [cited by examiner]
US 20130054762A1 · Asveren · 2013 [cited by examiner]
US 20150023251A1 · Giakoumelis · 2015 [cited by examiner]
US 20150222601A1 · Metz · 2015 [cited by examiner]
US 20160156531A1 · Cartwright · 2016 [cited by examiner]
US 20170251062A1 · Lu · 2017 [cited by examiner]
US 20190037518A1 · Russell · 2019 [cited by examiner]
US 20190149583A1 · Jutila · 2019 [cited by examiner]
US 20190281021A1 · Asveren · 2019 [cited by examiner]
US 20200259794A1 · Asveren · 2020 [cited by examiner]
Cheshire, et al., “NAT Port Mapping Protocol (NAT-PMP)”, RFC 6886 (Apr. 2013). [cited by applicant]
“Policies Configuration Guide for vEdge Routers, Cisco SD-WAN Releases 19.1, 19.2, and 19.3” CISCO (2019). [cited by applicant]
Guduru, et al., “Queuing Strategies for Self Overload Control in SIP Servers”, IEEE, pp. 1007-1011 (2014). [cited by applicant]
Kabir, “Security Mechanisms for a Cooperative Firewall”, Aalto University (2014). [cited by applicant]
“Configuring the SIP proxy for network outage detection”, IBM Documentation (2022). [cited by applicant]
“SIP message to reboot or resync”, CISCO community (2012). [cited by applicant]
“Stream Control Transfer Protocol Overview”, ACLI Configuration Guide, Oracle (2013). [cited by applicant]
Rosenberg et al., SIP: Session Initiation Protocol, IETF RFC 3261 (Jun. 2002). [cited by applicant]