Preserving an Original Dialog Indicator

As the Oracle Communications Core Session Manager (OCCSM) works through dialogs with Application Servers (AS), it saves and uses the Original Dialog Indicator (ODI) parameter to manage a call's service subscription sequence. By default, the OCCSM deletes the in-memory Service Profile, including the ODI, on receiving a final response to a transaction with an AS. If you enable the preserve-odi parameter in the sip-config however, the OCCSM maintains the in-memory service profiles, and each associated ODI, until it receives the BYE from the AS that ends the dialog between them. This is a global configuration, causing the OCCSM to maintain all ODIs for the duration of the dialog.

If the OCCSM discards the ODI when it receives the transaction's final message, it may experience problems, for example, with AS processes that are in B2BUA mode. In this mode, the AS may send a 200OK response to the request originator before forwarding the INVITE to the terminating side. If the OCCSM receives a message from the AS using a discarded ODI, the OCCSM restarts and repeats the entire iFC evaluation process for the call. Configuring ODI preservation provides value in applicable environments by avoiding this extraneous processing.

Enabling ODI preservation uses system resources to store this information. Balance this impact on resources with the value of deploying this behavior in your environment.

Key OCCSM behavioral detail with respect to the preserve-odi configuration includes:

  • Upon receipt of an ODI, the OCCSM continues with iFC evaluation from the point where it left off for this ODI, using the same trigger-set and route-set as used within the initial iFC evaluation.
  • If the originating user cancels a call, each AS also generates CANCEL message for each INVITE. The OCCSM clears ODIs from its memory when it processes the CANCEL for each original INVITE.
  • If the HSS updates the user's service profile during iFC evaluation for a particular request message, for example, if the HSS sends a PPR to the OCCSM with a modified iFC, the OCCSM continues the current call with the existing in-memory Service Profile and uses the updated user-profile for subsequent calls.
  • if an AS tries to send multiple request messages re-using an ODI, the OCCSM rejects those request messages and send 403 Forbidden response to the AS. The OCCSM only accepts the first request message from the AS using the same ODI.
  • If the OCCSM does not receive the BYE, it retains the ODI until the session timers expire.
  • An active OCCSM provides the service profile for each call, including all associated ODIs to its standby, enabling further service modification on a per-ODI basis despite a failover. This backup process requires a final message, a 200 OK received from the AS. If a failover happens before the 200 OK, the standby does not save the ODI.

The diagram below illustrates the OCCSM iFC evaluation behavior when you enable this parameter. By default, the OCCSM removes the ODI after the transaction between the OCCSM and AS1 is complete. With the preserve-odi parameter enabled, however, the OCCSM retains the ODI until it receives the BYE from AS1, which terminates the dialog between the OCCSM and AS1. If there are ODIs tracking service with other AS servers, shown below as AS2, the OCCSM retains those until the dialogs between itself and those servers terminates.

Given the diagram above, assume that the originating UE issues an invite towards the IMS core, which includes AS1 performing originating services and AS2 performing terminating services. The OCCSM initiates the iFC process with AS1, resulting in multiple transactions including the exchange of INVITEs using odi=1. When configured with preserve-odi, the OCCSM retains the service profile beyond the initial transaction. The OCCSM proceeds with terminating services via AS2, resulting in a similar set of transactions. In the meantime, the sequence has contacted the terminating UE. The sequence proceeds with completing the INVITE to 200OK interactions with AS1, AS2 and the terminating UE. The session proceeds until a UE issues a BYE to end the session. Subsequently, the process issues BYEs to terminate the dialogs with AS1 and AS2, at which time the OCCSM deletes those service profiles.

There are a large number of messages omitted from the diagram above for brevity and to highlight the dialogs between the OCCSM and the ASs.