IP Library Granted Patent US 7,945,663
Granted Patent B2
US 7,945,663 · App. 12/404,286 · Granted May 17, 2011

Systems, methods, and computer program products for adaptively adjusting a registration interval of an endpoint

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 7,945,663
App. No.
12/404,286
Granted
May 17, 2011
Kind
B2
Abstract

Methods, systems, and computer program products for adaptively adjusting a registration interval of an endpoint are provided. In an embodiment of the subject matter disclosed herein, a method of adaptively adjusting a registration interval of an endpoint comprises determining a registration interval for an endpoint associated with a binding defined at a network address translation device. The method also comprises determining a stability of the binding based on a message received from the endpoint. Further, the method comprises adjusting the registration interval for the endpoint based on the determined stability of the binding. A message can be sent to the endpoint for indicating the adjusted registration interval.

Claims (134)

1. A method of adaptively adjusting a registration interval of an endpoint, the method comprising:

determining a registration interval for an endpoint associated with a binding defined at a network address translation device;

determining a stability of the binding based on a first message received from the endpoint;

adjusting the registration interval for the endpoint based on the determined stability of the binding;

maintaining a present stability counter for the endpoint for indicating the stability of the binding; and

maintaining a present registration value for indicating the adjusted registration interval for the endpoint at the binding,

wherein determining the stability of the binding comprises:

determining whether the binding for the endpoint at the network address translation device has changed to a different binding; and

in response to determining that the binding for the endpoint has not changed to a different binding:

incrementing the present stability counter for the endpoint at the binding;

determining whether a value of the present stability counter is less than or equal to a value of a global stability counter;

in response to determining the value of the present stability counter is less than or equal to the value of the global stability counter, sending a second message to the endpoint to set the registration interval for the endpoint to the present registration value; and

in response to determining that the value of the present stability counter is not less than or equal to the value of the global stability counter:

incrementing the present registration value by a global increment value; and

sending a third message to the endpoint to set the registration interval for the endpoint to the incremented present registration value.

2. The method of claim 1 , wherein adjusting the registration interval for the endpoint comprises:

determining the registration interval based on a maximum registration value; and

sending a fourth message to the endpoint to set the registration interval for the endpoint to the maximum registration value.

3. The method of claim 2 , wherein sending the fourth message to the endpoint comprises sending, to the endpoint, a 200 OK message including an Expires value set to the maximum registration value.

4. The method of claim 1 , comprising,

receiving, from the endpoint, a REGISTER message including an Expires value; and

wherein adjusting the registration interval comprises:

determining whether the Expires value is greater than or equal to a maximum registration value;

in response to determining the Expires value is greater than or equal to the maximum registration value, sending a fourth message to the endpoint to set the registration interval for the endpoint to the maximum registration value; and

in response to determining the Expires value is not greater than or equal to the maximum registration value, sending a fifth message to the endpoint to set the registration interval for the endpoint to the Expires value.

5. The method of claim 1 , comprising:

receiving, from the endpoint, a REGISTER message including a first Expires value;

determining whether the endpoint is registered with a registrar; and

in response to determining the endpoint is registered:

comparing the first Expires value to a maximum registration value; and

sending, to the endpoint, a fourth message including a second Expires value based on the comparison to set the registration interval for the endpoint.

6. The method of claim 1 , comprising:

determining whether the endpoint is registered with a registrar;

in response to determining the endpoint is registered with the registrar, comparing an Expires value contained in a fourth message received from the endpoint to the adjusted registration interval for the endpoint; and

readjusting the registration interval for the endpoint based on the comparison of the Expires value to the adjusted registration interval.

7. The method of claim 1 , comprising:

determining whether the binding for the endpoint at the network address translation device has changed to a different binding; and

in response to determining that the binding for the endpoint has changed to a different binding, resetting the present stability counter for the endpoint.

8. The method of claim 1 , comprising:

determining whether a predetermined number of messages have been received from the endpoint set at the registration interval;

in response to determining the predetermined number of messages have been received from the endpoint at the registration interval:

determining whether the present registration value is equal to a maximum registration interval; and

in response to determining the present registration value is equal to the maximum registration interval, setting a final registration value to the present registration value, and sending a fourth message to the endpoint to set the registration interval for the endpoint to the present registration value.

9. A system for adaptively adjusting a registration interval of an endpoint, the system comprising:

a memory;

a registration interval manager configured to:

determine a registration interval for an endpoint associated with a binding defined at a network address translation device;

determine a stability of the binding based on a first message received from the endpoint;

adjust the registration interval for the endpoint based on the determined stability of the binding

maintain a present stability counter for the endpoint for indicating the stability of the binding;

maintain a present registration value for indicating the adjusted registration interval for the endpoint at the binding;

determine whether the binding for the endpoint at the network address translation device has changed to a different binding;

in response to determining that the binding for the endpoint has not changed to a different binding:

increment the present stability counter for the endpoint at the binding;

determine whether a value of the present stability counter is less than or equal to a value of a global stability counter; and

increment the present registration value by a global increment value in response to determining that the value of the present stability counter is not less than or equal to the value of the global stability counter; and

wherein the system comprises an output module configured to:

send a second message to the endpoint to set the registration interval for the endpoint to the present registration value in response to determining the value of the present stability counter is less than or equal to the value of the global stability counter; and

send a second message to the endpoint to set the registration interval for the endpoint to the incremented present registration value.

10. The system of claim 9 ,

wherein registration interval manager is configured to determine the registration interval based on a maximum registration value, and

wherein the system comprises an output module configured to send a fourth message to the endpoint to set the registration interval for the endpoint to the maximum registration value.

11. The system of claim 10 , wherein the output module is configured to send, to the endpoint, a 200 OK message including an Expires value set to the maximum registration value.

12. The system of claim 9 ,

wherein the system comprises an input module configured to receive, from the endpoint, a REGISTER message including an Expires value; and

wherein the registration interval manager is configured to:

determine whether the Expires value is greater than or equal to a maximum registration value;

send a fourth message to the endpoint to set the registration interval for the endpoint to the maximum registration value in response to determining the Expires value is greater than or equal to the maximum registration value; and

send a fifth message to the endpoint to set the registration interval for the endpoint to the Expires value in response to determining the Expires value is not greater than or equal to the maximum registration value.

13. The system of claim 9 , comprising

an input module configured to receive, from the endpoint, a REGISTER message including a first Expires value;

wherein the registration interval manager is configured to:

determine whether the endpoint is registered with a registrar; and

in response to determining the endpoint is registered:

compare the first Expires value to a maximum registration value; and

send, to the endpoint, a fourth message including a second Expires value based on the comparison to set the registration interval for the endpoint.

14. The system of claim 9 ,

wherein the registration interval manager is configured to:

determine whether the endpoint is registered with a registrar;

compare an Expires value contained in a fourth message received from the endpoint to the adjusted registration interval for the endpoint in response to determining the endpoint is registered with the registrar; and

readjust the registration interval for the endpoint based on the comparison of the Expires value to the adjusted registration interval.

15. The system of claim 9 ,

wherein the registration interval manager is configured to:

determine whether the binding for the endpoint at the network address translation device has changed to a different binding; and

reset the present stability counter for the endpoint in response to determining that the binding for the endpoint has changed to a different binding.

16. The system of claim 9 , wherein the registration interval manager is configured to:

determine whether a predetermined number of messages have been received from the endpoint set at the registration interval;

in response to determining the predetermined number of messages have been received from the endpoint at the registration interval:

determine whether the present registration value is equal to a maximum registration interval; and

in response to determining the present registration value is equal to the maximum registration interval, set a final registration value to the present registration value, and send a fourth sec-end message to the endpoint to set the registration interval for the endpoint to the present registration value.

17. A computer program product comprising computer-executable instructions embodied in a non-transitory computer-readable medium for performing steps comprising:

determining a registration interval for an endpoint associated with a binding defined at a network address translation device;

determining a stability of the binding based on a first message received from the endpoint;

adjusting the registration interval for the endpoint based on the determined stability of the binding;

maintaining a present stability counter for the endpoint for indicating the stability of the binding; and

maintaining a present registration value for indicating the adjusted registration interval for the endpoint at the binding,

wherein determining the stability of the binding comprises:

determining whether the binding for the endpoint at the network address translation device has changed to a different binding; and

in response to determining that the binding for the endpoint has not changed to a different binding:

incrementing the present stability counter for the endpoint at the binding;

determining whether a value of the present stability counter is less than or equal to a value of a global stability counter;

in response to determining the value of the present stability counter is less than or equal to the value of the global stability counter, sending a second message to the endpoint to set the registration interval for the endpoint to the present registration value; and

in response to determining that the value of the present stability counter is not less than or equal to the value of the global stability counter:

incrementing the present registration value by a global increment value; and

sending a third message to the endpoint to set the registration interval for the endpoint to the incremented present registration value.

18. The computer program product of claim 17 ,

wherein adjusting the registration interval for the endpoint comprises:

determining the registration interval based on a maximum registration value; and

sending a fourth message to the endpoint to set the registration interval for the endpoint to the maximum registration value.

19. The computer program product of claim 18 , wherein sending the fourth message to the endpoint comprises sending, to the endpoint, a 200 OK message including an Expires value set to the maximum registration value.

20. The computer program product of claim 17 , comprising

receiving, from the endpoint, a REGISTER message including an Expires value; and

wherein adjusting the registration interval comprises:

determining whether the Expires value is greater than or equal to a maximum registration value;

in response to determining the Expires value is greater than or equal to the maximum registration value, sending a fourth message to the endpoint to set the registration interval for the endpoint to the maximum registration value; and

in response to determining the Expires value is not greater than or equal to the maximum registration value, sending a fifth message to the endpoint to set the registration interval for the endpoint to the Expires value.

21. The computer program product of claim 17 , comprising:

receiving, from the endpoint, a REGISTER message including a first Expires value;

determining whether the endpoint is registered with a registrar; and

in response to determining the endpoint is registered:

comparing the first Expires value to a maximum registration value; and

sending, to the endpoint, a fourth message including a second Expires value based on the comparison to set the registration interval for the endpoint.

22. The computer program product of claim 17 , comprising:

determining whether the endpoint is registered with a registrar;

in response to determining the endpoint is registered with the registrar, comparing an Expires value contained in a fourth message received from the endpoint to the adjusted registration interval for the endpoint; and

readjusting the registration interval for the endpoint based on the comparison of the Expires value to the adjusted registration interval.

23. The computer program product of claim 17 , comprising:

determining whether the binding for the endpoint at the network address translation device has changed to a different binding; and

in response to determining that the binding for the endpoint has changed to a different binding, resetting the present stability counter for the endpoint.

24. The computer program product of claim 17 , comprising:

determining whether a predetermined number of messages have been received from the endpoint set at the registration interval;

in response to determining the predetermined number of messages have been received from the endpoint at the registration interval:

determining whether the present registration value is equal to a maximum registration interval; and

in response to determining the present registration value is equal to the maximum registration interval, setting a final registration value to the present registration value, and sending a fourth message to the endpoint to set the registration interval for the endpoint to the present registration value.

Assignments (11)
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 →
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 →
RELEASE AND REASSIGNMENT OF PATENTS Recorded Jul 7, 2016
From: COMERICA BANK, AS AGENT
To: GENBAND US LLC
Reel/Frame 039280/0467 →
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 Oct 23, 2014
From: GENBAND INC.
To: GENBAND US LLC
Reel/Frame 034023/0018 →