Navigation



Version 6 (modified by Sebastien Decugis, 13 years ago) (diff)

--

Extensions

Introduction

The freeDiameter framework is able to load extensions when it starts. The framework alone only provides support for Diameter Base Protocol (RFC3588) which is common to all Diameter peers. But this Base protocol by itself is only useful to establish and maintain a secure and reliable Diameter transport network. One then needs Diameter applications that are deployed on this Diameter network. Examples of applications are Diameter EAP (RFC4072), Diameter SIP (RFC4740), etc.

freeDiameter extensions are used to implement Diameter applications, but not limited to this. Extensions can also be used to extend the behavior of the framework in term of routing, peers management, and so on. See the list of extensions bellow in this page for more information.

What is an extension

A freeDiameter extension is really simply a library compiled as shared object. This library must at the very least provide a symbol fd_ext_init which will be called when the framework loads the extension, to initialize it. See the Developers page for more information on how to create a new extension.

Extension files are usually renamed as ".fdx" (freeDiameter eXtension) to easily recognize them.

See the Configuration file for instructions on how to load an extension from the framework.

List of extensions

Please remember that all extensions are not built by default. Check the Installation page for information on how to select extensions to build.

Applications

app_acct.fdx
Very simple server implementation for the Diameter Base Accounting application (RFC3588). It dumps the received information in a local PostgreSQL database in a fully configurable format. A separate application (not based on freeDiameter) can then pick and process this data.
app_diameap.fdx
A Diameter EAP server (RFC4072) implementation that supports several EAP methods for authenticating the users.
app_radgw.fdx
An extensible Diameter/RADIUS gateway implementation.
app_redirect.fdx?
A configurable Diameter Redirect agent.
app_sip.fdx
An implementation of the Diameter SIP specification (RFC4740).

Server

acl_wl.fdx?
White-list some peers to connect to the local system. By default, all remote peers Diameter Identities must be explicitly listed in the configuration. This extension allows wildcards to be used (for example allow all peers "*.domain.net" to connect).

Routing

rt_default.fdx?
Configure the routing table of the local peer.
rt_ereg.fdx?
Route Diameter messages according to an AVP value in the message matching some configurable regular expressions.
rt_redirect.fdx?
Handle Diameter Redirect indications and add routing rules accordingly.

Dictionary

dict_eap.fdx?
Dictionary objects defined in RFC4072 (Diameter EAP application).
dict_legacy_xml.fdx
Allows the use of XML dictionary files, the format used by OpenDiameter.
dict_mip6a.fdx?, dict_mip6i.fdx?, dict_nas_mipv6.fdx?, dict_rfc5777.fdx?
Dictionary objects related to IPv6 mobility.
dict_nasreq.fdx?
Dictionary objects defined in RFC4005 (Diameter Network Access Server application).
dict_rfc5580.fdx?
Dictionary objects defined in RFC5580 (Location Objects).
dict_sip.fdx
Dictionary objects defined in RFC4740 (Diameter SIP application).

Debug and tests

dbg_interactive.fdx
Interact with the framework, "live" or from a batch file, from a Python interpreter.
dbg_monitor.fdx
Monitor the state of freeDiameter framework by displaying periodical status information.
dbg_rt.fdx?
Display information about messages routing (pertaining to the choice of route for each message).
test_acct.fdx?
A dummy Diameter Base Accounting server that simply acknowledges any message without any storage.
test_app.fdx
The Test application extension, a kind of "ping" for freeDiameter.
test_netemul.fdx?
A kind of Diameter network emulator: introduces configurable delays and duplicates when relaying Diameter messages.
test_rt_any.fdx?
Pick a random peer to send the message to, without any concern for routing AVPs or routing configuration.
test_sip.fdx?
A dummy Diameter SIP server used for testing of the app_sip.fdx extension.