4G based communications are all IP based. Diameter is the industry standard for data signaling from various devices such as smartphones and tablets. With the increase in data speeds, there is bound to be increase in the Diameter signalling. Diameter brings in standardized communication between various network elements in the 4G network. Soon you could think of Diameter implementation as a commodity software. Almost everyone in telecommunication business would need a highly scalable Diameter stack. You could therefore believe that because of this reason we have seen quite a few open source Diameter implementations for C and JAVA. Having said that only one seems to be most impressive and usable in a highly scalable and high performance environment. That is the FreeDiameter implementation.

Features of Open Source Diameter implementation by FreeDiameter

Diameter open source stack

1. Base code is written in C and shows high performance.

2. It can be easily used with JAVA via SWIG. This seems to be preferred approach as some companies seem to have created JAVA wrappers on C/C++ code for Diameter as shown here.

3. It allows integration with lower level code such as DPI (Deep Packet inspection) which is generally in C.

4. It is extremely customizable via extensions. The base stack provides implementation of RFC 3588/6733. Any new functionality like RFC 4006 can be written as a extension.

5. It already provides many extensions such as Redirect Agents, Accounting Applications, RADIUS Gateway, Diameter SIP implementation, Diameter EAP server, Support for white listing IP addresses, . See full list on the FreeDiameter website.

6. Complete code is written from ground up. That means it has very less third party library dependency. This makes code more stable and less prone to version mismatches. The TLS functionality is the only dependency as it relies on the gnuTLS library for security.

7. It is available as a RedHat package making it easy to install.

8. The support is quick and responsive. This ensure prompt bug fixing and help with the stack.

9. Elaborate documentation on the stack helps with quick start of any efforts to use the code within your software.

10. Support for TCP, SCTP, IPv4, IPv6, TLS security.

11. Support for statistics to report performance and any bottlenecks in the system.

If you are looking for pure JAVA implementation then JDiameter is an option. It used to be separate Open Source Diameter stack however now it is part of Mobicents.