SIP Proxy Subscriptions

When the Oracle® Enterprise Session Border Controller operates in dialog mode (i.e., as a B2BUA), it creates and maintains dialog state for subscription dialogs created with SUBSCRIBE/NOTIFY messages and for INVITE-initiated dialogs. Since there can be a very large number of subscriptions per user in a Rich Communication Services (RCS) environment (especially for presence subscriptions), Oracle® Enterprise Session Border Controller resources can quickly become depleted.

To alleviate this consumption of resources, you can configure your Oracle® Enterprise Session Border Controller to operate in proxy mode for event packages that you define using the proxy-sub-event parameter in the global SIP configuration. When you define event packages in this list and the operation mode for the SIP configuration is dialog or session, the Oracle® Enterprise Session Border Controller processes all SUBSCRIBE and NOTIFY requests and responses for the designated event packages in transaction stateful mode.

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.

Feature Interaction

When using this feature, the Oracle® Enterprise Session Border Controller does not keep dialog or subscription state. Therefore the Per-user SUBSCRIBE Dialog Limit feature—configured in the enforcement-profile configuration—will not function properly when a subscription is handled in proxy mode.

SIP Proxy Subscription Configuration

This section shows you how to configure a list of SIP event packages to cause the Oracle® Enterprise Session Border Controller to act in proxy mode.

Note:

The operation-mode parameter for the global SIP configuration must be set to either dialog or session in order for this feature to function as designed.

To configure a list of SIP event packages to enable SIP proxy subscriptions:

  1. In Superuser mode, type configure terminal and press Enter.
    ORACLE# configure terminal
  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 support for this feature to a pre-existing configuration, then you must select (using the ACLI select command) the configuration that you want to edit.

  4. proxy-sub-events—Enter a list of SIP event package names that you want to enable the SIP proxy subscriptions feature. You can enter more than one value by enclosing multiple values in quotations marks, as in the following example.
    ORACLE(sip-config)# proxy-sub-events presence winfo