SUBSCRIBE Processing

When the Oracle Communications Unified Session Manager has the reg-event notification function enabled for a registrar, it includes the allow-events header in its 200OK replies to successful REGISTERS. This lets UEs know that they can subscribe to registration event packages.

When the Oracle Communications Unified Session Manager receives reg-event subscription requests, it follows the sequence below to process SUBSCRIBE requests for reg events:

  1. Determines validity of the request.

    Subscriptions cannot include more than one package name. If there is more than one package name in the request, the Oracle Communications Unified Session Manager replies with a 400 Bad Request message.

  2. Determines if it can be a notifier, as follows:
    • The SUBSCRIBE must include EVENT=reg.
    • The requesting UA must be in the same domain as the registrar.

    If both of the above are true, the Oracle Communications Unified Session Manager proceeds with the request.

  3. Authorizes the request. The Oracle Communications Unified Session Manager only authorizes requests from UEs that come from the same realm and layer 2 connection on which it received the initial REGISTER. 
Furthermore, the Oracle Communications Unified Session Manager only authorizes the following UEs:
    • Public user identities from UEs that are subscribing to their own registration events.
    • Public user identities that this user owns. Examples include implicitly registered public user identities.
    • Entities that were included in the PATH header of the target UE’s registration.
    • All ASs that are listed in the UE’s iFC and that are part of the trust domain.

    If all of the above are true, the Oracle Communications Unified Session Manager proceeds with the request. If not, it sends 403 Forbidden to the requester.

  4. Determines how it is functionally related to the UA. The Oracle Communications Unified Session Manager only processes subscriptions for users in its registration cache, replying with a 403 Forbidden if not. For cached users, the Oracle Communications Unified Session Manager forwards the request to the registrar if it is the P-CSCF. If it is the S-CSCF, it sends a 200 OK and begins to act as notifier.
  5. Identifies the subscription duration, as follows, and sends the 200 OK to the UE:

    If there is no Expires header in the UE’s 200OK message, the Oracle Communications Unified Session Manager applies it’s own configured minimum or the default (600000 seconds), whichever is greater.

    If the SUBSCRIBE includes an Expires header, the Oracle Communications Unified Session Manager honors the request unless it is less than the configured minimum.

    If the SUBSCRIBE’s Expires header is less than the minimum subscription time configured in the registration event profile, the Oracle Communications Unified Session Manager denies the subscription, sending a 423 Too Brief message.

    When the Oracle Communications Unified Session Manager encounters an Expires header set to 0, it terminates the subscription. This is referred to as unsubscribing.