# US 2010/0169478 A1 · Systems, methods, and computer program products for adaptively adjusting a registration interval of an endpoint

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

- Number: US 2010/0169478 A1
- Document ID: US20100169478A1
- Status: Published application
- Kind: A1
- Application number: 12/404,286
- Filed: 2009-03-14
- Published: 2010-07-01
- Earliest claimed: 2008-12-29
- Assignees: GENBAND Inc.
- Inventors: Subhra Saha; Simon Arthur Oakley
- Web page: https://patentgrep.com/patent/US20100169478A1

## CPC

- H04L 65/1073: Registration or de-registration
- H04L 65/80: Responding to QoS
- H04L: TRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION (arrangements common to telegraphic and telephonic communication H04M)

## 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

### Claim 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 message received from the endpoint; and
adjusting the registration interval for the endpoint based on the determined stability of the binding.

### Claim 2 (depends on 1)

The method of claim 1, wherein the message is a first message, and
wherein setting the registration interval for the endpoint comprises:
determining the registration interval based on a maximum registration value; and
sending a second message to the endpoint to set the registration interval for the endpoint to the maximum registration value.

### Claim 3 (depends on 2)

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

### Claim 4 (depends on 1)

The method of claim 1, wherein the message is a first message,
wherein the method comprises receiving, from the endpoint, a REGISTER message including an Expires value; and
wherein setting 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 second 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 third message to the endpoint to set the registration interval for the endpoint to the Expires value.

### Claim 5 (depends on 1)

The method of claim 1, wherein the message is a first message, and
wherein the method comprises:
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 second message including a second Expires value based on the comparison to set the registration interval for the endpoint.

### Claim 6 (depends on 1)

The method of claim 1, wherein the message is a first message, and
wherein the method comprises:
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 second 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.

### Claim 7 (depends on 1)

The method of claim 1, wherein the message is a first message,
wherein the method comprises:
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, and
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; and
sending a second message to the endpoint to set the registration interval for the endpoint to the present registration value.

### Claim 8 (depends on 1)

The method of claim 1, wherein the message is a first message, and
wherein the method comprises:
maintaining a present stability counter for the endpoint for indicating the stability of the binding;
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.

### Claim 9 (depends on 1)

The method of claim 1, wherein the message is a first message,
wherein the method comprises:
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; and
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.

### Claim 10 (depends on 9)

The method of claim 9, comprising, 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 second message to the endpoint to set the registration interval for the endpoint to the incremented present registration value.

### Claim 11 (depends on 1)

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 a 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 second message to the endpoint to set the registration interval for the endpoint to the present registration value.

### Claim 12

A system for adaptively adjusting a registration interval of an endpoint, the system comprising:
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 message received from the endpoint; and
adjust the registration interval for the endpoint based on the determined stability of the binding.

### Claim 13 (depends on 12)

The system of claim 12, wherein the message is a first message,
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 second message to the endpoint to set the registration interval for the endpoint to the maximum registration value.

### Claim 14 (depends on 13)

The system of claim 13, 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.

### Claim 15 (depends on 12)

The system of claim 12, wherein the message is a first message,
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 second 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 third 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.

### Claim 16 (depends on 12)

The system of claim 12, wherein the message is a first message, and
wherein the system comprises 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 second message including a second Expires value based on the comparison to set the registration interval for the endpoint.

### Claim 17 (depends on 12)

The system of claim 12, wherein the message is a first message, and
wherein the registration interval manager is configured to:
determine whether the endpoint is registered with a registrar;
compare an Expires value contained in a second 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.

### Claim 18 (depends on 12)

The system of claim 12, wherein the message is a first message,
wherein the registration interval manager is configured to:
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;
determine whether the binding for the endpoint at the network address translation device has changed to a different binding; and
increment the present stability counter for the endpoint at the binding in response to determining that the binding for the endpoint has not changed to a different binding; 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 that the binding for the endpoint has not changed to a different binding.

### Claim 19 (depends on 12)

The system of claim 12, wherein the message is a first message, and
wherein the registration interval manager is configured to:
maintain a present stability counter for the endpoint for indicating the stability of the binding;
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.

### Claim 20 (depends on 12)

The system of claim 12, wherein the message is a first message,
wherein the registration interval manager is configured to:
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; and
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; and
determine whether a value of the present stability counter is less than or equal to a value of a 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.

### Claim 21 (depends on 20)

The system of claim 20, wherein the registration interval manager is configured to 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 output module is configured to send a second message to the endpoint to set the registration interval for the endpoint to the incremented present registration value.

### Claim 22 (depends on 12)

The system of claim 12, 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 a 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 second message to the endpoint to set the registration interval for the endpoint to the present registration value.

### Claim 23

A computer program product comprising computer-executable instructions embodied in a 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 message received from the endpoint; and
adjusting the registration interval for the endpoint based on the determined stability of the binding.

### Claim 24 (depends on 23)

The computer program product of claim 23, wherein the message is a first message, and
wherein setting the registration interval for the endpoint comprises:
determining the registration interval based on a maximum registration value; and
sending a second message to the endpoint to set the registration interval for the endpoint to the maximum registration value.

### Claim 25 (depends on 24)

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

### Claim 26 (depends on 23)

The computer program product of claim 23, wherein the message is a first message,
wherein the steps of the computer-executable instructions comprise receiving, from the endpoint, a REGISTER message including an Expires value; and
wherein setting 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 second 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 third message to the endpoint to set the registration interval for the endpoint to the Expires value.

### Claim 27 (depends on 23)

The computer program product of claim 23, wherein the message is a first message, and
wherein the steps of the computer-executable instructions comprise:
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 second message including a second Expires value based on the comparison to set the registration interval for the endpoint.

### Claim 28 (depends on 23)

The computer program product of claim 23, wherein the message is a first message, and
wherein the steps of the computer-executable instructions comprise:
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 second 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.

### Claim 29 (depends on 23)

The computer program product of claim 23, wherein the message is a first message,
wherein the steps of the computer-executable instructions comprise:
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, and
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; and
sending a second message to the endpoint to set the registration interval for the endpoint to the present registration value.

### Claim 30 (depends on 23)

The computer program product of claim 23, wherein the message is a first message, and
wherein the steps of the computer-executable instructions comprise:
maintaining a present stability counter for the endpoint for indicating the stability of the binding; and
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.

### Claim 31 (depends on 23)

The computer program product of claim 23, wherein the message is a first message,
wherein the steps of the computer-executable instructions comprise:
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; and
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.

### Claim 32 (depends on 31)

The computer program product of claim 31, comprising, 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 second message to the endpoint to set the registration interval for the endpoint to the incremented present registration value.

### Claim 33 (depends on 23)

The computer program product of claim 23, 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 a 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 second message to the endpoint to set the registration interval for the endpoint to the present registration value.
