SIP GRUU

SIP Globally Routable User Agent (UA) URIs (GRUU) are designed to reliably route a SIP message to a specific device or end user. This contrasts with a SIP AoR which can refer to multiple UAs for a single user, thus contributing to routing confusion. The Oracle® Enterprise Session Border Controller can perform different behaviors when it finds SIP GRUUs in Contact headers.

User agents supporting GRUU include a GRUU-identifying parameter in the Contact header of dialog forming and target refresh requests. The Oracle® Enterprise Session Border Controller scans for the GRUU parameter in the Contact header either when the message is received on a realm or interface configured for registered endpoints or when the pass-gruu-contact parameter is enabled. Configure an interface for registered endpoints by enabling nat-traversal or registration caching.

Contact Header URI Replacement

When no GRUU is encountered in the contact header, and when a SIP message is forwarded to the egress realm, the contact header’s URI is replaced with the Oracle® Enterprise Session Border Controller’s egress interface. For example:

The Contact Header URI Replacement diagram is described above.

When the Oracle® Enterprise Session Border Controller forwards a request where the original Contact header contains a GRUU, the contact header’s URI is forwarded unchanged on the egress side of the call. For example:

The Contact Header URI Replacement with GRUU diagram is described above.

Record-Route Addition

When the request is forwarded to a realm where the endpoint’s registrar does not exist, the Oracle® Enterprise Session Border Controller adds a Record-Route header containing the egress SIP interface address. This causes subsequent replies or requests addressed to the GRUU to be routed through the Oracle® Enterprise Session Border Controller first.

The Record-Route Addition diagram is described above.

When the request is forwarded to the realm where the registrar exists, adding the Record-Route header is unnecessary and does not occur. This is because subsequent requests are directed to the registrar which will ultimately forward them to the Oracle® Enterprise Session Border Controller using the registered Contact in the Request-URI.

GRUU URI Parameter Name

The Oracle® Enterprise Session Border Controller scans for a gr URI parameter in the contact header to identify it as a GRUU as defined in the ietf draft[2]. The Oracle® Enterprise Session Border Controller can be configured to scan for a gruu URI parameter in the contact header too. This alternate behavior is enabled with the scan-for-ms-gruu option and is used to interact with the Microsoft Office Communications Server unified communications product. When scan-for-ms-gruu is enabled, the Oracle® Enterprise Session Border Controller scans first for the gruu URI parameter. If not found, it then scans for gr URI parameter.

SIP GRUU Configuration

This section shows you how to configure the GRUU support for non-registered contacts. Enabling GRUU functionality to parse for gr URI parameter rather than the IETF standard gruu parameter is also provided.

To configure SIP GRUU functionality:

  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. pass-gruu-contact—Set this parameter to enabled to parse for gr URI parameter in the contact header in non-registered endpoints’ messages and then pass the messages thought the system.
  5. options—Set the options parameter by typing options, a Space, the option name scan-for-ms-gruu. This option forces the Oracle® Enterprise Session Border Controller to first scan for the gruu URI parameter, then the gr URI parameter.
  6. Save and activate your configuration.