BillMax RADIUS Implementation

BillMax distributes a preconfigured FreeRADIUS® (https://freeradius.org) instance. This FreeRADIUS® instance runs on the BillMax server and accesses tables in the BillMax database.

A key feature of BillMax is the ability to tie a subscriber’s status in the billing system with that of the services provided to the subscriber by the ISP. For example, when a customer first subscribes to a service, BillMax can be configured to perform the Operations Support System (OSS) actions needed to provide that service.

Similarly, when a customer doesn’t pay or closes their account, their service can automatically be disabled or terminated. The ability for a Business Support System (BSS) like BillMax to alter OSS systems and data is known as provisioning.

When implementing provisioning by using RADIUS, BillMax transmits subscriber information to the RADIUS database. The information pushed includes, but not limited to, Username, Password, Plan (group name) and Static IP Address (if applicable).

Provisioning manages the authentication and authorization of users via RADIUS. In addition, RADIUS also provides information on customers' use of your network. This accounting information includes, but not limited to, bytes transferred, time online and packets transferred.

For usage-based billing on either time or bandwidth, access to the Radius accounting records are needed. In BillMax this is accomplished via a Perl script that receives the accounting packets and writes them to a BillMax datacall table. BillMax optionally performs usage billing upon receipt of this data. The BillMax Remote Application process (edge) is used by the Perl script in the submission of data. Therefore, the setup and use of this daemon is a prerequisite for populating the datacall table and optionally performing billing on this data.

BillMax along with FreeRADIUS® includes logic to manage prepaid network time. When access time is purchased for prepaid services, BillMax stores that time on the Service record. That time is subsequently managed via the post authorization step in the BillMax Perl script. Specifically, the used time is determined by querying the datacall table. Then that amount is subtracted from the purchased time to determine the remaining time (Radius Session-Timeout attribute).