The following new features have been added to OpenSIPS: <br><br>1. Generic AAA API <br><br>The AAA API represents a set of generic callbacks and structures needed <br>for AAA operations.<br><br>The purpose of the API is to move all the AAA specific (Radius) implementations<br>
in a single module. The AAA API will hide the implementations details from the<br>modules that want to use AAA support, making it easier to use.<br><br>Currently, only one module implements the AAA API - aaa_radius, offering Radius<br>
support.<br><br>Because both standardized AAA protocols, Radius and Diameter, use lists of <br>attribute-value pairs, the API is designed based on attribute-value pairs, as well.<br><br>One of the advantages of using the API is that any module that wishes to do <br>
AAA operations does not depend on a certain protocol implementation, therefore <br>it is not linked with a certain AAA library. <br><br>Hence, any module that was previously using Radius, for example, is not <br>linked with the radiusclient library any more, which is obviously an advantage,<br>
especially when the module uses more than one API (DB, AAA, etc).<br><br>The AAA protocol to be used by a module is specified from the script using a <br>so called "aaa_url" that encodes the protocol used and other useful information<br>
depending on the protocol. <br><br>The way the generic AAA API is used makes it very similar to the generic <br>database API.<br><br>2. The ability to make custom Radius requests directly from the script<br><br>This feature is very useful because of its flexibility. Basically, any type<br>
of Radius queries can be yielded directly from the script, and also, Radius <br>replies can be inspected for certain attributes.<br><br>3. Radius implementation for the generic AAA API<br><br>The handling of Radius AVP "SIP-AVP" (used for fetching variables from the <br>
Radius server) was integrated in this module. All SIP-AVPs are automatically<br>and transparently handled by the module, so that this functionality is by default<br>available for all the modules that use Radius.<br><br><br>
Due to the fact that the modules that were previously using Radius were ported<br>to the generic AAA API, the following changes have been made:<br>- auth_radius became auth_aaa<br>- group_radius was merged with group<br>- uri_radius was merged with uri<br>
<br>