PortaBilling consists of four main logical components: the main database server (lower left), the billing (online charging) server (upper left), the admin/web and replica database server (bottom right), and the configuration/log collector server (upper right). Typically, the billing, web, and two database servers are installed on three separate physical computers so as to provide data redundancy and load sharing. Although a “shared” combination (where some servers, e.g., billing engine and main database run on a single physical computer) is also possible and supported, this is recommended only for evaluation or demo systems.
The Configuration server must always reside on a separate physical server. It alters the software configuration and version of the other servers and must remain unaffected by the changes thus made. This allows a rollback to the previous stable version of the configuration or software release.
Online charging server (OCS)
The OCS server hosts the billing engine which communicates with the nodes via the RADIUS protocol. It can also process Diameter requests that are received from nodes provisioned for services via the Diameter protocol.
The billing engine provides:
- Authentication – It tells the node whether the subscriber (identified by phone number, PIN, IP, or the like) is allowed to use a specific service (e.g., voice calls or wireless Internet access), and returns attributes such as current balance.
- Authorization – It tells the node whether the subscriber (identified by phone number, PIN, IP, or the like) is allowed to initiate a session with specific parameters within a service (e.g., calling a particular phone number), and returns session attributes such as the maximum allowed session duration or the allowed amount of bandwidth.
- Interim (also called keep-alive) accounting processing – This is used for services like Internet access, when nodes constantly update the billing about usage for the current session.
- Accounting processing – Based on information from the gateways, it bills the session and writes transaction records to the database.
Main database server
The main database server hosts the primary copy of the database. This database is used for all real-time data access (e.g., during account authentication) and for all data modifications.
Web and replica database server
Web server
The web server hosts the following:
- Web interface, consisting of:
- Admin interface.
- Account self-care.
- Customer self-care.
- Reseller’s helpdesk (self-care; customer care).
- Distributor self-care.
- Vendor self-care.
- Representative self-care.
- Online web signup interface.
- Scripts for generating invoices, calculating various statistics, and producing reports.
- Optional IVR (TFTP) server.
- XML API (SOAP) or JSON RPC for integration with external applications.
Replica database server
The replica database server hosts the second copy of the database. This database is used for all data mining activities (e.g., calculating a summary for the invoice or producing reports) and can be used to restore billing data in the event that the main database is lost.
Configuration server
This server stores the information about all the other servers in the installation plus service configuration details about each of them. See more details about the configuration management framework in the Centralized Configuration Management chapter of the PortaSwitch Architecture and Concepts guide.
The Configuration server monitors the status of all the other servers. Data such as available disk space, load, or service status can be viewed via the web interface. If a problem is detected, the PortaOne support team will be notified immediately.
The Configuration server also collects log data, such as SIP communication logs from PortaSIP, or billing engine logs from billing nodes. These are then stored, processed, and indexed so that all entries relating to a particular session can be retrieved instantly. This reduces the amount of disk space needed on the production servers, as well as the load on them.
Log data for the most recent time period is kept in the original format. Older data is archived to save disk space, while log files that are outdated are erased.