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:

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:

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.

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.