jDiameter is an open-source Java implementation of the Diameter protocol, providing a modular and extensible stack for Authentication, Authorization, and Accounting (AAA) in telecom core networks. It implements the Diameter Base Protocol as well as some of the most important and widely used applications, jDiameter allows a fast development of interfaces for the IMS and 4G LTE EPC network nodes, such as Home Subscriber Server (HSS), Subscriber Location Function (SLF), Mobility Management Entity (MME), Policy and Charging Rules Function (PCRF), Online Charging System (OCS), 3GPP AAA Server, Application Server (AS), Call Session Control Function (CSCF), Short Message Service Center (SMSC), Gateway Mobile Location Center (GMLC), Equipment Identity Register (EIR), etc. Featuring an extensible architecture to provide support for new applications, as well as to adapt the core functionalities of the stack to a fully customized solution.
jDiameter supports several applications and/or IMS/4G LTE interfaces/reference points, namely:
- Diameter Base (IETF RFC 3588/6733)
- Credit-Control Application (CCA, IETF RFC 4006)
- Ro/Rf (3GPP TS 32.260/32.299), between AS and OCS, online charging in IMS & LTE.
- Rx (3GPP TS 29.212 & TS 23.203), between AF (Application Function) and the PCRF (QoS and Policy).
- Sh Client/Server (3GPP TS 29.328/29.329), between AS and HSS, Subscription and Authentication Data – IMS.
- Cx/Dx (3GPP TS 29.228/29.229), between CSCF and HSS, subscription and authentication data – IMS / between CSCF and SLF.
- Gx/Gxc (3GPP TS 29.212 & TS 23.203), between PCEF/PGW and the PCRF (QoS and Policy).
- Gq (3GPP TS 29.209), between AF and RACS (Resource and Admission Control).
- S6a/S6d (3GPP TS 29.272), between MME/SGSN and HSS for subscription and authentication data, location update, UE purge, etc.
- S6b (3GPP TS 23.402), between the 3GPP AAA Server/Proxy and the PGW.
- S6c and SGd (3GPP TS 29.338, 3GPP TS 24.341 3GPP TS 23.204), between the SMSC/IP-SM-GW and HSS and MME/SGSN respectively.
- S13/S13’ (3GPP TS 29.272), between EIR and MME/SGSN.
- SLh and SLg for LTE Location Services (3GPP TS 29.273/272), between GMLC and HSS and MME respectively.
- SWm (3GPP TS 23.402), between the 3GPP AAA Server/Proxy and the ePDG.
- Zh (3GPP 29.109), between the Bootstrapping Server Function (BSF) and the HSS.
This repository is maintained and published as open source by PAiCore Technology.
For more information, visit https://paicore.tech.
- Java 11 (OpenJDK recommended)
- Maven 3.x
git clone https://github.com/paicoretech/jDiameter.git
cd jDiameter
mvn clean installThis project is licensed under the GNU General Public License v3.0 (GPL-3.0).
See the LICENSE file for details.