Topology Hiding

So that it can perform topology hiding, the Oracle® Enterprise Session Border Controller retains necessary routing information (such as the Contact or Record-Route header values) and it encodes certain data from the messages it receives in the messages it sends. To be more specific, the Oracle® Enterprise Session Border Controller encodes the original URI hostport and the ingress realm name into a gr parameter it adds to the URI. The hostport information is replaced with the IP address and port of the SIP interface from which the message is sent (the egress interface). Without this information, subsequent in-dialog messages cannot be routed correctly because the Oracle® Enterprise Session Border Controller does not retain dialog state (i.e., the route-set or remote-target).

For example, the URI sip:td@192.168.24.121:5060 might be encoded as sip:td@192.168.24.121:5060; gr=vjml9qtd175bhmhvhkgp0jov81popvbp000040.

The Oracle® Enterprise Session Border Controller also performs URI encoding on the message body for Content-Type application/pdif+xml. this contains a Presence Information Data Format document (or PIDF) in PUBLISH and NOTIFY requests so subsequent SIP requests using the URIs in the PIDF document can be routed correctly.

The Oracle® Enterprise Session Border Controller performs URI encoding in outgoing SIP messages after SIP=NAT is applied and before outbound HMR occurs. And the system decodes URIs in SIP messages after inbound HMR takes place and before SIP-NAT is applied.

In the event a URI is encoded several times (as is the case in spiral and hairpin calls), the encoded realm+hostport values are separated by a plus sign (+), as in the following:

sip:td@192.168.24.121:5060; gr=vjml9qtd175bhmhvhkgp+dhfhb0jov81opvbp

When the Oracle® Enterprise Session Border Controller receives any of the following requests, it matches the contents of the request’s Event header with the list you configure in the proxy-sub-events parameter:

  • PUBLISH
  • SUBSCRIBE
  • NOTIFY
  • REFER

This is provided the operation-mode for the SIP configuration is set to either session or dialog. If it finds a match, the Oracle® Enterprise Session Border Controller marks the request for processing in transaction-stateful mode rather than in B2BUA mode.

Note:

Although PUBLISH is not a dialog-creating request, topology hiding needs to be applied to the PIDF so that subsequent NOTIFY requests containing portions of the published PIDF can be decoded properly.

When the Oracle® Enterprise Session Border Controller forwards the request, it will have encoded all Contact and Record-Route header information using the ingress realm. The hostport value of the URIs then has egress SIP interface’s IP address and port. The Via headers in the requested the Oracle® Enterprise Session Border Controller received are not included in the outgoing request.

Then PUBLISH, SUBSCRIBE, NOTIFY, and REFER responses are compared to the request that was sent to determine if the response should receive transaction-stateful proxy treatment. The Oracle® Enterprise Session Border Controller decodes any encoded Record-Route headers back to their original values for the outgoing response. Any Record-Route headers added downstream from the Oracle® Enterprise Session Border Controller are encoded using the original request’s egress realm (meaning the realm from which the response was received). In addition, the Contact header is encoded using the request’s egress realm and ingress SIP interface and port.