SIP Registration Cache Limiting

Using SIP registration cache limiting for SIP endpoint access deployments, you can restrict the size of the SIP registration cache for the global SIP configuration.

You can implement this feature if you have been seeing issues where, either due to network failure scenarios or incorrect sizing of system capabilities, the Oracle® Enterprise Session Border Controller and/or the SIP registrar cannot support the number of registering endpoints. Although the Oracle® Enterprise Session Border Controller protects itself and the registrar against SIP REGISTER floods, conditions can still occur where too many legitimate endpoints attempt to register with the registrar via the Oracle® Enterprise Session Border Controller.

By enabling SIP registration cache limiting, you restrict the number of legitimate endpoints that can register. The Oracle® Enterprise Session Border Controller rejects any endpoints beyond the limit you set. If you do not want to use this feature, simply leave the reg-cache-limit parameter set to its default of 0, meaning there is no limit to the entries in the SIP registration cache.

When you limit the number of registered endpoints allowed in the Oracle® Enterprise Session Border Controller’s registration cache, the Oracle® Enterprise Session Border Controller analyzes each registration before starting to process it. First, the Oracle® Enterprise Session Border Controller checks the contact header to determine if it is already in the list of contacts for the user. If it finds the contact in its cache list, the Oracle® Enterprise Session Border Controller treats the registration as a refresh; it treats any other headers as new. Note that the Oracle® Enterprise Session Border Controller checks the message prior to making any changes to the cache because it must either accept or reject the message as a whole.

The Oracle® Enterprise Session Border Controller adds the number of new contacts to the number already present in the cache, and rejects any registration with a contact that would cause it to exceed its limit. Rejection causes the Oracle® Enterprise Session Border Controller to send a response communicating that its registration cache is full. The default response is the 503 Registration DB-Full message, but you can use the SIP response mapping feature to use another message if required.

You can set an option in the global SIP configuration that defines the value in the Retry-After header. The Oracle® Enterprise Session Border Controller sends this header as part of its rejection response when the registration cache is full. Another option sets the percentage of the registration cache size which, if exceeded, causes the Oracle® Enterprise Session Border Controller to send an alarm.

About Registration Cache Additions Modifications and Removals

When it receives a REGISTER message with new contact information for a user, the Oracle® Enterprise Session Border Controller considers it an addition to the cache and augments the number of registration cache entries. Then the Oracle® Enterprise Session Border Controller forwards the message to the registrar, and—when and only when the registrar returns both the original and new contacts in the 200 OK—the registration cache count stays the same. However, if the registrar returns only the new contact (making this a case of modification), then the Oracle® Enterprise Session Border Controller removes the old contact information and subtracts accordingly from the number of registration cache entries.

Thus the Oracle® Enterprise Session Border Controller does not know whether a REGISTER might result in an addition or a modification until it receives a response from the registrar. For this reason, the Oracle® Enterprise Session Border Controller first assumes it is to make an addition, and then updates the registration cache and count when it has the necessary information from the registrar.

The registration cache count does not reflect removals during the rejection check because the Oracle® Enterprise Session Border Controller ignores registration messages or expires headers with their expires values set to zero when it counts new entries. The fact that removals take place after additions and modifications means that messages which remove one contact while adding another might be rejected. That is, the addition might exceed the registration cache limit before any removal can take place to make room for it.

Registration Cache Alarm Threshold

A percentage of the registration cache limit, the registration cache alarm threshold is a configurable value you can set to trigger an alarm when the registration cache is reaching its limit. When exceeded, this threshold triggers the generation of an alarm and SNMP trap. When registrations fall back beneath the threshold, the Oracle® Enterprise Session Border Controller clears the alarm and sends a clear trap.

This alarm is Major in severity, and its text reads as follows:

Number of contacts <registration count> has exceeded the registration cache threshold <threshold %> of <registration cache limit value>.

Notes on Surrogate Registration

The Oracle® Enterprise Session Border Controller does not, under any circumstances, reject surrogate registrations on the basis of the registration cache limit. However, surrogate registrations generate contacts, and so they do add to the global registration count. In the case where the surrogate registrations add to the registration count to the extent the count exceeds the limit you configure, you will have more registrations in the cache than the configured limit.

Monitoring Information

You can monitor how many entries are in the SIP registration cache using the ACLI show registration command and referring to the Local Contacts statistics.

SIP Registration Cache Limiting Configuration

This section shows you how to configure the registration cache limit, and how to set the options controlling retry times and thresholds for alarm purposes.

To configure SIP registration cache limiting:

  1. In Superuser mode, type configure terminal and press Enter.
    ORACLE# configure terminal
    ORACLE(configure)#
  2. Type session-router and press Enter.
    ORACLE(configure)# session-router
    ORACLE(session-router)#
  3. Type sip-config and press Enter.
    ORACLE(session-router)# sip-config
    ORACLE(sip-config)#

    If you are adding this feature to an existing configuration, you need to select the configuration (using the ACLI select command) before making your changes.

  4. registration-cache-limit—Set the registration cache limit, or the maximum number of SIP registrations that you want to keep in the registration cache. The minimum and default value for this parameter is 0, and you can set it to a maximum value of 999999999. Leaving this parameter set to 0 means there is no limit on the registration cache (and therefore leaves this feature disabled).
  5. options—Set the options parameter by typing options, a Space, the option name reg-cache-lim-retry-after=X (where X is the value added to the Retry-After header) with a plus sign in front of it. This option defaults to 1800, and you can enter values from 0 to 999999999.

    You can configure the alarm threshold option the same way, substituting the option name reg-cache-alarm-thresh=X (where X is the percentage of registration cache limit that triggers an alarm). This option defaults to 95, and you can enter value from 0 to 100.

    ORACLE(sip-config)# options +reg-cache-lim-retry-after=2500
    ORACLE(sip-config)# options +reg-cache-alarm-thresh=90

    If you type options and then the option value for either of these entries without the plus sign, you will overwrite any previously configured options. In order to append the new options to this configuration’s options list, you must prepend the new option with a plus sign as shown in the previous example.

  6. Save and activate your configuration.