The N-Squared Online Charging Server (N2OCS) is a charging engine designed for real time rating. It uses MongoDB for horizontally scalable, resilient storage and provides a comprehensive HTTP API for external systems integration. It deploys on Hazelcast+Vert.x, tightly integrating with N-Squared’s JSLEE to access services, including the Diameter Gateway and Notification Service.
The N2OCS rates and charges sessions for real-world scenarios such as voice calls and data sessions, along with fixed charge events such as SMS. The OCS solution incorporates a voucher engine for the management of voucher codes that can be redeemed for cash and cash-equivalent values in a wallet.
The core loop of the OCS is to:
- Receive events from the wider network - e.g. over Diameter, or Nchf.
- Determine the rating to apply to the event.
- Apply the charge of the event to the wallet associated with the event.
A fully web-enabled web interface is provided for administration purposes, and real time EDRs are generated for data warehousing and auditing.
The OCS solution architecture is shown in the following diagram:
In addition to that which is shown here, N-Squared’s JSLEE product infrastructure provides integration with Diameter peers for charging control, customer care via the N-Squared CRM, and subscriber self-care via the N-Squared web-enabled self-care portal.
Conceptually, the N-Squared OCS stores “wallets” which maintain buckets of value - whether monetary, time, bytes, or counter units. These buckets are credited and debited as events are executed by the OCS engine in accordance with rules configured by administrators.
Wallets, subscriptions and even buckets have customizable lifecycles. Within the OCS these records maintain individual lifecycle states and transition between states based on configurable lifecycles.
The rating engine supports event and session based rating with the application of rating rules, including rating based on usage, time and rating context. The OCS subscription model supports ad-hoc (single) and regular events against wallets.
Policies can be associated with each rule to constrain geography, time-of-day, group membership, product type and other concepts. It is possible with policies to deploy shared wallets (e.g. commercial wallets used by teams) with unique customised policies for individual customers.
The N-Squared OCS is extendable, with a comprehensive hook mechanism to allow customisations to the OCS written in Lua to be run within the OCS. When complimented by the N-Squared JSLEE notification solution, the OCS can generate notifications for events such as credit adjustments which may in turn generate SMS or email notifications to subscribers.