Architecture
OCS.io is a comprehensive solution designed to handle various postpaid and prepaid services' rating, charging, and billing. It supports a wide range of services, including voice (including premium voice), messaging (SMS and MMS), data sessions, content (including premium content), and pre-rated events. In addition to telecommunications companies, OCS.io can be utilized by other sectors to manage different types of records, such as API transactions and utility consumptions.
OCS.io goes beyond rating and charging functionalities by providing robust revenue management capabilities. It supports the entire lifecycle of financial documents, including invoices, payments, and collection triggering. With OCS.io, organizations can streamline their financial processes and ensure accurate and efficient management of revenue-related operations.
OCS.io Core
The OCS.io Core forms the foundation of the OCS.io solution, consisting of a collection of objects, logic, and internal APIs built on top of the Billing & RM Database. It encompasses essential functionalities that enable smooth and efficient operations, including:
-
Database Layer Access: The OCS.io Core provides a seamless interface for accessing the underlying database, allowing efficient storage, retrieval, and data management.
-
Caching: To optimize performance, the core incorporates caching mechanisms, ensuring frequently accessed data is readily available and reducing the need for repeated database queries.
-
Security: Security is a fundamental aspect of OCS.io, and the core implements robust security measures to protect sensitive data and prevent unauthorized access.
-
Logging: Comprehensive logging capabilities are integrated into the core, enabling detailed tracking and auditing of system activities for troubleshooting, analysis, and compliance purposes.
-
and more: Additionally, the OCS.io Core encompasses various other essential functionalities, contributing to the overall reliability, scalability, and efficiency of the solution.
Configuration GUI
The OCS.io provides a user-friendly web-based GUI (Graphical User Interface) that serves as a central hub for configuring and managing various aspects of the system. The Configuration GUI empowers users to perform tasks such as Product Catalogue configuration, Rating & Charging Configuration, Billing configuration, Operations and Maintenance, and more.
With its intuitive interface, the Configuration GUI streamlines the configuration process, making it easier for users to define and customize essential components of the system. Certain parts of the Configuration can be conveniently managed through a spreadsheet-like interface, offering a familiar and efficient way to handle large datasets.
The Configuration GUI primarily focuses on the Configuration of critical elements such as the Product Catalogue, GL Codes, Taxes, Usage charges, and other related parameters. Through this interface, users can define and fine-tune pricing plans, set up billing rules, specify taxation rules, and manage various aspects of service provisioning.
CASM & RM REST API(s)
The OCS.io provides a comprehensive set of RESTful APIs for Customer, Account & Subscription Management (CASM), and Revenue Management (RM). These APIs enable seamless integration with external systems such as CRM (Customer Relationship Management) to efficiently manage customers, accounts, subscribers, and related processes.
Using the CASM API, external systems can perform various operations, including activating and deactivating customers, accounts, and subscribers. It also allows for changes to subscriber offers, adding add-ons to subscribers, and retrieving customer, account, and subscriber details. Additionally, the CASM API provides functionality to query the balance on a subscriber’s wallet and bucket, perform balance adjustments, and perform top-ups for account recharge.
The RM API, on the other hand, focuses on revenue management processes. External systems, such as CRM, can utilize this API to create new financial documents, register payments, query the overall account balance, and retrieve information on an account’s registered financial documents and payments. These capabilities provide seamless integration between the OCS.io and external financial management systems.
Both the CASM and RM APIs are designed as synchronous interfaces, ensuring real-time interaction and immediate response for the supported operations. This design choice allows for efficient communication and enables external systems to interact seamlessly with the OCS.io, ensuring accurate and timely management of customer-related activities and revenue management processes.
Online Rating & Charging
OCS.io provides a RESTful API for online rating and charging, allowing seamless charging for various services such as Voice, Messaging, Data, Content, and pre-rated events. This API enables real-time processing and accurate calculation of charges for these services.
When using the online rating and charging API, clients make a POST request with a JSON payload that includes all the necessary information required for rating and charging. This information typically includes subscriber identification details like IMSI, MSISDN, or username, the timestamp of the session or event, the duration or number of events, and any other relevant parameters.
Upon receiving the request, the API processes the provided data and generates a response in JSON format. This response contains essential details regarding the event, including whether the event is allowed or disallowed, along with supplementary information such as the price of the event, the amount of units consumed from the subscriber’s balance, and the remaining balance after the charging operation.
To ensure efficient communication and immediate response, all charging APIs in OCS.io are designed as synchronous interfaces. This design choice enables real-time interaction between the client and the system, allowing for quick and accurate charging calculations and seamless integration with the overall rating and billing processes.
Offline Rating & Charging
To support offline rating and charging, OCS.io offers an interface similar to (S)FTP that allows the system to receive files containing Voice, Messaging, Data, Content, and Pre-Rated Event Detail Records (EDRs).
The EDR Processor module within OCS.io is crucial in handling offline rating and charging. When EDR files are received through the interface, the EDR Processor module decodes, verifies, and checks for duplicities in the records. For each EDR record, the module initiates a synchronous internal call to the Rating & Charging API to perform the necessary rating and charging operations.
Additionally, the EDR Processor module is responsible for calculating statistics on the processed files. It tracks the number of EDR records that were successfully processed as well as those that encountered errors. These statistics can be used for revenue assurance, reporting, and other analytical tasks.
By providing an offline rating and charging mechanism, OCS.io enables the efficient handling of large volumes of EDR records in batch mode. This approach allows for the seamless processing of offline usage data, ensuring accurate charging and billing for services consumed during the offline period.
EDR Extractor
In OCS.io, various types of Event Detail Records (EDRs) are generated to capture different aspects of the system’s operations:
-
Rated Usage EDRs: These EDRs are generated for all charged transactions that occur through the Charging RESTful API or the batch EDR interface. Rated Usage EDRs contain information about the usage event, such as the subscriber, timestamp, duration or number of events, and the corresponding charges.
-
Rejected Usage EDRs: When a subscriber is not known or encounters an error during charging, Rejected Usage EDRs are generated. These EDRs capture details of usage events that couldn’t be processed due to various reasons.
-
Management EDRs: Management EDRs are generated as a result of operations performed on customers, accounts, subscribers, balances, and other related entities. These EDRs are primarily triggered by the CASM API and provide insights into the system’s management activities.
All generated EDRs are published to a Streaming platform. Additionally, you can deploy the EDR Extractor module, which is responsible for capturing EDR events from the Streaming platform and writing them into files. This module ensures that the EDR data is preserved and can be accessed for further analysis, reporting, or integration with external systems as needed.
Billing & Invoicing
The Billing & Invoicing module in OCS.io plays a pivotal role in the entire billing process and the generation of invoices. Its primary responsibilities include:
-
Capture of chargeable events: During the billing process, all chargeable events associated with an account, including subordinate hierarchical accounts and their respective subscribers, are captured. This ensures that all relevant usage and transactional data are accounted for in the billing process.
-
Application of discounts: The Billing & Invoicing module applies valid discounts to the captured chargeable events. This ensures that the final billing calculation considers any applicable discounts or promotional offers.
-
Generation of invoices: The module generates an invoice in an internal format based on the captured chargeable events and applied discounts. This invoice contains detailed information about the billed items, usage charges, taxes, and other relevant billing components.
-
Debt invoice calculation (optional): Optionally, the Invoicing process can calculate any outstanding debt from previous billing periods. This ensures that the current billing cycle includes any unpaid or partially paid invoices from prior periods.
-
Over-payment calculation (optional): Additionally, the module can calculate any over-payments made by customers. This ensures that any excess customer payments are properly accounted for and can be adjusted in the final invoice.
-
Formatting of invoices: The generated invoice can be formatted in various formats based on the deployment requirements. Common formats include HTML, PDF, CSV, and others. The module allows flexibility in generating invoices according to the desired format.
The Billing & Invoicing module is crucial in ensuring accurate and comprehensive billing for all services provided by OCS.io. Capturing chargeable events, applying discounts, and generating invoices facilitate efficient revenue management and provide a clear overview of customer billing information.
Revenue Management
The Revenue Management module in OCS.io oversees various critical processes related to financial transactions and ensures effective revenue management. Its key responsibilities include:
-
Creation and maintenance of Financial Documents: The module handles the creation and management of different types of financial documents, such as Periodical Invoices (generated by the Billing & Invoicing module), One-Time Invoices, Deposits, Credit Notes, Corrective Tax Documents, and more. This ensures proper documentation and tracking of financial transactions within the system.
-
Registration and maintenance of Incoming Payments: The Revenue Management module enables the registration and management of incoming payments. It ensures that payments received from customers are accurately recorded, associated with the relevant financial documents, and reflected in the account balance.
-
Registration and maintenance of Outgoing Payments: Similarly, the module facilitates the registration and management of outgoing payments. This includes recording payments made to vendors, suppliers, or other entities and maintaining a comprehensive record of all outgoing financial transactions.
-
Triggering of Direct Debit requests: The module supports initiating and processing direct debit requests. This feature enables automatic payment collection from customers' authorized bank accounts, providing a convenient and streamlined payment method.
-
Calculation of Overall Account Balance: The Revenue Management module calculates the overall account balance for customers. It considers various factors such as outstanding invoices, payments received, credits, and adjustments to represent the customer’s financial position accurately.
-
Triggering of Collection (Dunning) processes: In cases where customers have outstanding payments, the module facilitates the triggering of collection processes, also known as dunning processes. This involves sending customers notifications, reminders, and escalation procedures to ensure timely payment and minimize revenue leakage.
-
Other functionalities: The Revenue Management module encompasses additional functionalities relevant to revenue management, such as managing customer credits, handling refunds, reconciling financial transactions, generating financial reports, and supporting revenue analysis.
By effectively managing the entire revenue lifecycle, the Revenue Management module in OCS.io ensures financial accuracy, compliance, and streamlined processes for the organization. It plays a critical role in maintaining financial stability and optimizing revenue streams.
Data Extractor
The Data Extractor module in OCS.io efficiently extracts data from the system. It supports both periodical extractions, such as daily or after the billing cycle, and on-demand extraction triggered through the Configuration GUI or via RESTful API from an external system. The module ensures seamless data retrieval for various purposes, such as reporting, integration with external financial systems, and analysis. Some of the typical data extracted by the module include:
-
Daily General Ledger feed for the Financial System: This feed contains summarized General Ledger (GL) information for various financial documents, such as One-Time Invoices, Deposits, Credit Notes, Corrective Tax Documents, and more. The extracted data provides an overview of financial transactions within a specified time period.
-
After Billing General Ledger feed for the Financial System: This feed includes GL summaries specifically related to Periodical Invoices. It captures relevant financial data generated during the billing process, providing insights into the financial impact of recurring services or subscriptions.
-
Direct Debit requests: The Data Extractor module captures data related to Direct Debit requests initiated by customers. This includes information about authorized automatic payment collection from customers' bank accounts. The extracted data assists in tracking and reconciling these payment requests.
-
Outgoing Payments: The module retrieves data about outgoing payments made by the organization. This encompasses payments to customers, facilitating comprehensive financial transaction monitoring and recording.
The Data Extractor module ensures that the extracted data is structured and available in a format compatible with external financial systems or other designated destinations. It supports seamless data exchange and integration, enabling efficient financial analysis, reporting, and collaboration with external entities.
External Notifications
The External Notifications feature in OCS.io enables the system to trigger notifications in response to specific events or conditions. These notifications serve various purposes, such as alerting external systems about critical situations or informing them about important updates. When triggered, the notifications are published to the Streaming platform, which can be consumed by target systems such as Customer Relationship Management (CRM) systems, Data Warehouses (DWH), and more.
The OCS.io allows for the Configuration of notifications based on predefined criteria, such as reaching a defined threshold on the balance of an account or subscriber. This ensures that relevant stakeholders receive timely information regarding essential changes in the system. For example, when a balance threshold is reached, the system triggers a notification indicating the need for action or attention.
OCS.io provides a centralized and efficient method for transmitting information to external systems by publishing notifications to the Streaming platform. The Streaming platform acts as a reliable communication channel, facilitating the seamless consumption of notifications by the target systems. External systems, such as CRM or DWH, can subscribe to the relevant notification topics and receive real-time updates whenever new notifications are published.
Overall, the External Notifications feature in OCS.io adds value by enabling the system to proactively communicate important information to external systems, promoting efficient data exchange, and facilitating timely decision-making processes.
Shared Filesystem / SFTP Server
In the OCS.io architecture, a Shared Filesystem or Secure File Transfer Protocol (SFTP) server is utilized to facilitate the exchange of files between systems. This component enables seamless and secure file transfer within the ecosystem.
The Shared Filesystem or SFTP Server is built on top of the internal Filesystem of OCS.io. It provides a dedicated location where authorized systems and users can store and access files. This centralized file storage mechanism ensures efficient and reliable file exchange between different components or systems involved in the OCS.io ecosystem.
The use of a Shared Filesystem or SFTP Server offers several benefits. Firstly, it provides a standardized and consistent approach to file exchange, ensuring compatibility and ease of integration between various systems. Secondly, it enhances security by implementing access controls and encryption mechanisms to protect the confidentiality and integrity of the exchanged files.
By leveraging the Shared Filesystem or SFTP Server, OCS.io enables seamless communication and data exchange between different components or systems. Files containing essential data, such as Voice, Messaging, Data, Content, and Pre-Rated EDR records, can be securely transferred, ensuring the integrity of the information being exchanged.
Streaming Platform
In the OCS.io architecture, the Streaming Platform serves as a critical component responsible for facilitating streamed data exchange between OCS.io and external systems, such as CRM, Financial systems, Data Warehouses (DWH), and more. It enables real-time communication and data sharing, ensuring efficient and timely integration between different systems within the ecosystem.
The Streaming Platform utilizes a Publish-Subscribe pattern, allowing flexible and scalable data distribution. By default, the payload format used is JSON, ensuring a widely supported and easily consumable data structure. The Streaming Platform provides the capability to publish various types of data on different topics, offering configurability to meet the specific requirements of the integrated systems.
Through the Publish-Subscribe pattern, the Streaming Platform enables event-driven communication, where data producers (publishers) publish events or messages to specific topics, and data consumers (subscribers) can subscribe to those topics of interest. This decoupled architecture ensures that each system receives only the data it needs, promoting scalability, modularity, and flexibility in the data exchange process.
By utilizing the Streaming Platform, OCS.io can seamlessly share data in real time with external systems. This allows instant notifications, updates, and insights to be delivered to subscribing systems, enabling them to respond and react promptly based on the received data. For example, notifications triggered by threshold levels on balances or other critical events can be published via the Streaming Platform, providing timely information to subscribing systems such as CRM, Financial systems, or Data Warehouses.