IMS Path and Service Route Header Support
The Oracle Communications Session Border Controller supports the Path header and the Service-Route header used in the registration phase of a SIP transaction. The Oracle Communications Session Border Controller will learn the route vectors from the SIP URIs contained in these headers in order to preload SIP headers with the correct route vectors in subsequent SIP message exchanges between the UA and the S-CSCF across the Oracle Communications Session Border Controller. This is how the Oracle Communications Session Border Controller supports RFC 3608 and RFC 3327.
Path Header
When a UE registers to an S-CSCF, the Oracle Communications Session Border Controller adds the Path header in the REGISTER message as it is proxied to the S-CSCF. The Path header includes the SIP URIs that form the route vector which describes how the UE reaches the Oracle Communications Session Border Controller, through a specific series of proxies. This route vector is saved in the Oracle Communications Session Border Controller's registration entry for the UE, routing all subsequent SIP messages from the S-CSCF to the UE. As the Path header is sent to the S-CSCF, the Oracle Communications Session Border Controller, as P-CSCF, inserts the SIP URI of itself as the top entry in the Path header.
The Path header only appears in SIP messages exchanged during the registration process.
If the REGISTER request already contains a Path header, the Oracle Communications Session Border Controller stores the contents of the Path header(s) for this endpoint for routing back to the endpoint in subsequent messages.
Service Route Header
When a UE registers through the Oracle Communications Session Border Controller to the registrar, the registrar returns a Service-Route header in a 200 OK message in response to the REGISTER message to the UE. This header contains the route vector that directs traffic through a specific sequence of proxies used to reach the S-CSCF. The Service-Route header only appears during the SIP registration process.
The P-CSCF ( Oracle Communications Session Border Controller) will now store the URIs listed in the Service-Route header(s) in the registration entry of the UE for use in routing subsequent traffic to the S-CSCF. The Oracle Communications Session Border Controller inserts this sequence of proxies into and outgoing message’s Route headers; this is called a pre-loaded route. This route is only applicable for the traffic flowing between the originating UE and the contacted S-CSCF.
When receiving subsequent requests from the UE, the Oracle Communications Session Border Controller looks at the UE's registration entry for a service route, and will insert the route vector as appropriate Route headers. If the service route is not found in the registration entry, the routing is performed in the usual fashion.
Note:
In the configuration section the way to disable Service-Route header routing.The manner in which passing or stripping of Service-Route headers sent from the S-CSCF is done is determined by local configuration on the Oracle Communications Session Border Controller. There is no verification of configured local policy against the route included in the stored service route. The Service-Route header, as created by the Oracle Communications Session Border Controller, and exiting back to the UE, contains a SIP URI pointing to itself as the topmost entry. This is used so that other proxies can learn the route back to the Oracle Communications Session Border Controller.
Summary
If a request originates at the UE, the routes enumerated in the Service-Route header are used to route the request to the S-CSCF. If a request is meant to terminate at a UE, the routes enumerated in the Path header are used to route the response to the UE. Service-Route routes take priority over configured local policy.
Path headers received in a 200 OK response from the registrar are transmitted to the UE unchanged. If you want them stripped as the SIP message leaves the Oracle Communications Session Border Controller, you can use the SIP Header Manipulation function.
