CGRateS vs MagnusBilling: choosing a VoIP billing engine
Both MagnusBilling and CGRateS rate and charge telecom traffic — but they sit at very different points on the scale. Picking the wrong one means either paying for complexity you don't need, or hitting a ceiling you can't engineer around. This guide explains how to choose.
The short version
MagnusBilling is an all-in-one billing suite with a web UI, built on top of Asterisk. It suits VoIP resellers and small carriers who want rate cards, prepaid balances, trunk management, and invoicing in one familiar package.
CGRateS (Carrier Grade RateS) is a real-time charging and rating engine written in Go. It is built for operators, MVNOs, and platforms that need sub-millisecond charging decisions, very high throughput, multi-service balances, and integration with standards like Diameter and Radius.
If MagnusBilling is a billing application, CGRateS is a charging engine you architect into a larger system.
Where MagnusBilling is the right call
- You resell minutes and want one tool with a UI for rates, trunks, customers, and invoices.
- Your volume is comfortably handled by a PHP + Asterisk stack.
- You want a shorter path to go-live and a smaller operational surface.
For most resellers, this is the pragmatic choice — and it's why we deploy a lot of it.
Where CGRateS earns its complexity
Real-time session control. CGRateS authorizes and debits a session as it happens — it can force-disconnect a call the instant a prepaid balance runs out, across thousands of concurrent sessions.
Throughput. Its subsystems (SessionS, RALs, CDRs, RouteS, and more) run as distributed services behind DispatcherS, so it scales horizontally rather than vertically. Events per second measured in the thousands are normal territory.
Multi-service balances. Monetary and non-monetary balances (minutes, SMS, data) live in one account model, so you can rate voice, messaging, and data usage from a single engine.
Standards integration. AGENTS for Diameter (Gy/Ro online charging), Radius, and HTTP/JSON let CGRateS slot into an existing OCS, BSS, or 3GPP-style architecture instead of living on an island.
A decision checklist
Choose CGRateS if two or more of these are true:
- You need real-time session authorization and forced disconnect at scale.
- You're rating more than just voice — SMS and data belong in the same account.
- You must speak Diameter or Radius to existing infrastructure.
- Your throughput or failover requirements outgrow a single-server biller.
Otherwise, MagnusBilling will almost certainly serve you better and sooner.
How they connect to your switch
MagnusBilling runs directly with Asterisk. CGRateS connects to Asterisk (AMI/ARI), FreeSWITCH (event socket), Kamailio, or OpenSIPS through its session agents — so it fits whether you run a PBX or a bare softswitch.
A compliance note
Neither engine makes you compliant. Rating and charging traffic cleanly is a commercial concern; whether you're licensed to carry or resell that traffic is a regulatory one, and it remains your responsibility in your jurisdiction.
Getting the choice right
The expensive mistake is choosing CGRateS for its buzz when MagnusBilling would have shipped in a fraction of the time — or choosing MagnusBilling and hitting a wall six months later. We help you pick during discovery based on your real throughput, services, and integration needs, then deploy it properly. Request a quote to talk it through.