AAA: Authentication, Authorization, Accounting
"AAA" is an acronym that rings familiar to all old hands of telecommunication since time immemorial. Particularly, is the base itself of businesses like PSTN carriers, but also to Internet Providing since the early days of dialup modems.
Simply put, AAA is the whole operation of:
* Authentication - knowing an user is actually who he is declaring to be (eg: login and password do match)
* Authorization - knowing what "rights" that user has (eg: he can call national and international numbers, excluded premium and for-pay numbers)
* Accounting - knowing what the user has just done and his history (eg: he started with a credit of 835 units, and the call just finished is rated 35 units)
As you can see from this souped-up definition (google around for better ones), AAA is a pretty abstract requirement, one that can be implemented in many different ways, for many different aims, business logics and technologies. And it is different from billing, even if it is providing the billing operation with its basic accounting data, and is itself influenced by billing (if you don't pay your bills you will probably end up being no longer authorized to use services).
In the old days, and still used by many ISPs, RADIUS was the main protocol and server for centralization of AAA. FreeSWITCH supports RADIUS and can be integrated in such legacy environments.
In the example demo configuration from a fresh install, FreeSWITCH handles AAA in a static way, tailored for a company's internal PBX:
* Authentication is checked against user id and password in the User Directory
* Authorization is checked in dialplan against variables
* Accounting data is provided in the form of Comma Separated Values (CSV) rows (directly processable by spreadsheets and databases) and/or XML entities (richer in data dimensions, for further elaboration)