Quarkus JDiameter

The Diameter protocol is a computer networking protocol for Authentication, Authorisation and Accounting, as defined in RFC6733. It is extensively used in the 3GPP telecommunication industry.

JDiameter is an existing Java Diameter stack that supports the protocol. The original RestComm implementation (https://github.com/RestComm/jdiameter) is quite old, and its active support has stopped.

The Quarkus Diameter extension has updated the JDiameter implementation for both a Quarkus JVM and a Native application.

Installation

If you want to use this extension, you need to add the io.quarkiverse.jdiameter:quarkus-diameter extension first to your build file.

For instance, with Maven, add the following dependency to your POM file:

<properties>
    <quarkus.jdiameter.version>2.0.x</quarkus.jdiameter.version> <!-- Set to the latest version of Quarkus JDiamter -->
</properties>

<dependency>
    <groupId>io.quarkiverse.jdiameter</groupId>
    <artifactId>quarkus-jdiameter</artifactId>
    <version>${quarkus.jdiameter.version}</version>
</dependency>

Implementing a Diameter Service

To implement a Diameter service, a class must be defined and annotated with @DiameterService and optionally @DiameterServiceOptions.

The @DiameterServiceOption annotation is used, among other things, to specify the Diameter configuration profile to use for the service. If it is not specified, the service will use the default configuration profile.

The type of Diameter service is determined by the Diameter Application Session Listener interfaces implemented by the service.

The DiameterService interceptor will initialise all the configured services and start the Diameter stack (if it hasn’t already started).

Example

@DiameterService (1)
@DiameterServiceOption("client1") (2)
public class MyDiameterService implements ClientCCASessionListener (3)
{
    @Override public void doCreditControlAnswer(ClientCCASession session, JCreditControlRequest request, JCreditControlAnswer answer) throws InternalException
    {
    //...
    }
}
1 Marking the class as a diameter service
2 The optional configuration option to apply to the diameter service. If not defined, the <default> configuration will be used.
3 Implements the SessionListener associated with the Session Type. (See List below)

Application Session Types

The session listener determines the Diameter service session type it implements. The list below contains all the session types currently supported by the Diameter Service implementation.

Table 1. Supported Application Session type.
Session Type Server Session Interface Client Session Interface Application Reference

Acc

ServerAccSessionListener

ClientAccSessionListener

AccountingId[0:3]

RFC6733

Auth

ServerAuthSessionListener

ClientAuthSessionListener

Internal

RFC6733

CCA

ServerCCASessionListener

ClientCCASessionListener

AuthId[0:4]

RFC4006

Gx

ServerGxSessionListener

ClientGxSessionListener

-

-

Rx

ClientRxSessionListener

ClientRxSessionListener

-

-

S6a

ServerS6aSessionListener

ClientS6aSessionListener

-

-

Gq

ServerGqSessionListener

ClientGqSessionListener

-

-

Sh

ServerShSessionListener

ClientShSessionListener

-

-

CxDx

ServerCxDxSessionListener

ClientCxDxSessionListener

AuthId[13019:16777216] AuthId[10415:16777216]

TS.29228

S13

ServerS13SessionListener

ClientS13SessionListener

-

-

Ro

ServerRoSessionListener

ClientRoSessionListener

AuthId[10415:4]

TS.32240

Rf

ServerRfSessionListener

ClientRfSessionListener

AccountingId[10415:3]

TS.32240

Only one implementation of a session listener per diameter stack is allowed per application. If the build phase detected that the same session listener is implemented more than once for the same diameter stack a DiameterConfigException exception will be generated.
A Diameter service may implement more than one session listener.

Diameter Server mode

If a Diameter service implements any of the ServerXXXSessionListeners, the Diameter Service interceptor automatically creates a network listener for that Diameter service.

The interceptor will skip creating a listener if it detects that the Diameter Service has implemented the NetworkListener interface.
In most cases you do not need to implement your own NetworkListener and you can let the interceptor create one for you!

Injecting the Diameter stack

An application can inject the diameter stack and configuration for a given configuration profile.

Only one stack is created per enabled configuration profile.
The stack will only be active if there is a defined DiameterService for the stack.
@ApplicationScoped
public class Demo {
    @DiameterConfig (1)
    Stack stack;

    @DiameterConfig("test2") (2)
    Configuration test2Config;

    //...
}
1 Injecting the Diameter stack associated with the "<default>" configuration.
2 Injecting the Diameter configuration for the "test2" configuration.

Using Quarkus JDiameter in an high availability environment

The Quarkus JDiameter keeps track of each active session by storing the session information for each session. Quarkus JDiameter also sets various timers linked to these sessions. In a standalone mode, the session state is stored locally, and the timers are defined in the local JVM. To use the diameter stack in a high availability (HA) mode, where two or more nodes are used in a load balance or failover mode, the sessions cannot be stored in local RAM.

To use Quarkus JDiameter in an HA environment the HA extensions must be loaded. The HA extensions store the session state in an Infinispan Cache and use Infinispan timers to implement the diameter timers. The HA extensions store the session information in a remote cache called diameter.

The cache used can be changed by setting the quarkus.diameter.parameter.caching-name property

The Quarkus extension does not automatically include the HA extensions, and to use them, the following maven dependencies need to be added to the application pom file.

<dependency>
    <groupId>io.quarkiverse.diameter</groupId>
    <artifactId>jdiameter-ha-api</artifactId>
    <version>${quarkus.jdiameter.version}</version>
</dependency>
<dependency>
    <groupId>io.quarkiverse.diameter</groupId>
    <artifactId>jdiameter-ha-impl</artifactId>
    <version>${quarkus.jdiameter.version}</version>
</dependency>

To use the HA components, the configuration needs to be updated as follows:

quarkus.diameter.parameter.caching-name=drasessions  (1)
meter.extensions.session-datasource=org.jdiameter.impl.ha.data.CachedSessionDatasourceImpl
quarkus.diameter.extensions.timer-facility=org.jdiameter.impl.ha.timer.ReplicatedTimerFacilityImpl
1 This option changes the caching name from the default diameter to 'drasessions'.
The HA implementation depends on the Quarkus Infinispan client

Example Configuration

The example configuration defines two sets of client diameter config. One is the default config, and the other is named config and is called 'test1'.

quarkus.diameter.local-peer.uri=aaa://ocsclient:1812
quarkus.diameter.local-peer.ip-addresses=0.0.0.0, 127.0.0.1
quarkus.diameter.local-peer.realm=server.test.com
quarkus.diameter.local-peer.product-name=Diameter Test Client
quarkus.diameter.local-peer.firmware-revision=1
quarkus.diameter.local-peer.applications.0.auth-appl-id=4
quarkus.diameter.local-peer.applications.1.auth-appl-id=4
quarkus.diameter.local-peer.applications.1.vendor-id=10415

quarkus.diameter.parameter.use-virtual-threads=true

quarkus.diameter.network.peers.peer-uri=aaa://ocs.test.org:3868
quarkus.diameter.network.peers.ip=127.0.0.1
quarkus.diameter.network.peers.attempt-connect=true
quarkus.diameter.network.peers.rating=0

quarkus.diameter.network.realms."server.test.com".peers=192.168.241.1,localhost
quarkus.diameter.network.realms."server.test.com".local-action=local
quarkus.diameter.network.realms."server.test.com".dynamic=false
quarkus.diameter.network.realms."server.test.com".exp-time=1
quarkus.diameter.network.realms."server.test.com".application-id.auth-appl-id=4

quarkus.diameter.test1.local-peer.uri=aaa://ocsclient:1813
quarkus.diameter.test1.local-peer.ip-addresses[0]=0.0.0.0, 127.0.0.1
quarkus.diameter.test1.local-peer.realm=server.test.com
quarkus.diameter.test1.local-peer.product-name=Diameter Test Client
quarkus.diameter.test1.local-peer.firmware-revision=1
quarkus.diameter.test1.local-peer.applications.0.auth-appl-id=4

quarkus.diameter.test1.parameter.use-virtual-threads=true

quarkus.diameter.test1.network.peers.peer-uri=aaa://ocs.test.org:3868
quarkus.diameter.test1.network.peers.ip=127.0.0.1
quarkus.diameter.test1.network.peers.attempt-connect=true
quarkus.diameter.test1.network.peers.rating=0

quarkus.diameter.test1.network.realms."server.test.com".peers=192.168.241.1,localhost
quarkus.diameter.test1.network.realms."server.test.com".local-action=local
quarkus.diameter.test1.network.realms."server.test.com".dynamic=false
quarkus.diameter.test1.network.realms."server.test.com".exp-time=1
quarkus.diameter.test1.network.realms."server.test.com".application-id.auth-appl-id=4
For more information about the extension configuration, please refer to the Configuration Reference.

Configuration property fixed at build time - All other configuration properties are overridable at runtime

Configuration property

Type

Default

The localPeer element contains parameters that affect the local Diameter peer

Type

Default

quarkus.diameter.local-peer.uri

quarkus.diameter."named-config".local-peer.uri

Specifies the URI for the local peer. The URI has the following format: "aaa://FQDN:port".

Environment variable: QUARKUS_DIAMETER_LOCAL_PEER_URI

string

aaa://localhost:1812

quarkus.diameter.local-peer.tls-configuration-name

quarkus.diameter."named-config".local-peer.tls-configuration-name

The name of the TLS configuration to use.

If not set and the default TLS configuration is configured (quarkus.tls.*) then that will be used. If a name is configured, it uses the configuration from quarkus.tls.<name>.* If a name is configured, but no TLS configuration is found with that name then an error will be thrown.

If no TLS configuration is set, and quarkus.tls.* is not configured, then, no security will be used

Environment variable: QUARKUS_DIAMETER_LOCAL_PEER_TLS_CONFIGURATION_NAME

string

quarkus.diameter.local-peer.ip-addresses

quarkus.diameter."named-config".local-peer.ip-addresses

Contains one or more valid IP address for the local peer.`

Environment variable: QUARKUS_DIAMETER_LOCAL_PEER_IP_ADDRESSES

list of string

127.0.0.1

quarkus.diameter.local-peer.realm

quarkus.diameter."named-config".local-peer.realm

Specifies the realm of the local peer.

Environment variable: QUARKUS_DIAMETER_LOCAL_PEER_REALM

string

io.quarkiverse.diameter

quarkus.diameter.local-peer.product-name

quarkus.diameter."named-config".local-peer.product-name

Specifies the name of the local peer product

Environment variable: QUARKUS_DIAMETER_LOCAL_PEER_PRODUCT_NAME

string

Go Diameter

quarkus.diameter.local-peer.firmware-revision

quarkus.diameter."named-config".local-peer.firmware-revision

Specifies the version of the firmware.

Environment variable: QUARKUS_DIAMETER_LOCAL_PEER_FIRMWARE_REVISION

long

3

quarkus.diameter.local-peer.vendor-id

quarkus.diameter."named-config".local-peer.vendor-id

Specifies a numeric identifier that corresponds to the vendor ID allocated by IANA.

Environment variable: QUARKUS_DIAMETER_LOCAL_PEER_VENDOR_ID

long

0

Contains a list of default supported applications

Type

Default

quarkus.diameter.local-peer.applications.vendor-id

quarkus.diameter.local-peer.applications."applications".vendor-id

quarkus.diameter."named-config".local-peer.applications.vendor-id

quarkus.diameter."named-config".local-peer.applications."applications".vendor-id

Specifies the vendor ID for application definition.

Environment variable: QUARKUS_DIAMETER_LOCAL_PEER_APPLICATIONS_VENDOR_ID

long

0

quarkus.diameter.local-peer.applications.auth-appl-id

quarkus.diameter.local-peer.applications."applications".auth-appl-id

quarkus.diameter."named-config".local-peer.applications.auth-appl-id

quarkus.diameter."named-config".local-peer.applications."applications".auth-appl-id

The Authentication Application ID for application definition.

Environment variable: QUARKUS_DIAMETER_LOCAL_PEER_APPLICATIONS_AUTH_APPL_ID

long

0

quarkus.diameter.local-peer.applications.acct-appl-id

quarkus.diameter.local-peer.applications."applications".acct-appl-id

quarkus.diameter."named-config".local-peer.applications.acct-appl-id

quarkus.diameter."named-config".local-peer.applications."applications".acct-appl-id

The Account Application ID for application definition.

Environment variable: QUARKUS_DIAMETER_LOCAL_PEER_APPLICATIONS_ACCT_APPL_ID

long

0

Optional parent element containing child elements that specify settings relating to the Overload Monitor

Type

Default

quarkus.diameter.local-peer.overload-monitors."overload-monitors".index

quarkus.diameter."named-config".local-peer.overload-monitors."overload-monitors".index

Defines the index of this overload monitor, so priorities/orders can be specified.

Environment variable: QUARKUS_DIAMETER_LOCAL_PEER_OVERLOAD_MONITORS__OVERLOAD_MONITORS__INDEX

int

0

quarkus.diameter.local-peer.overload-monitors."overload-monitors".low-threshold

quarkus.diameter."named-config".local-peer.overload-monitors."overload-monitors".low-threshold

The low threshold for activation of the overload monitor.

Environment variable: QUARKUS_DIAMETER_LOCAL_PEER_OVERLOAD_MONITORS__OVERLOAD_MONITORS__LOW_THRESHOLD

double

0d

quarkus.diameter.local-peer.overload-monitors."overload-monitors".high-threshold

quarkus.diameter."named-config".local-peer.overload-monitors."overload-monitors".high-threshold

The high threshold for activation of the overload monitor.

Environment variable: QUARKUS_DIAMETER_LOCAL_PEER_OVERLOAD_MONITORS__OVERLOAD_MONITORS__HIGH_THRESHOLD

double

0d

quarkus.diameter.local-peer.overload-monitors."overload-monitors".application-id.vendor-id

quarkus.diameter."named-config".local-peer.overload-monitors."overload-monitors".application-id.vendor-id

Specifies the vendor ID for application definition.

Environment variable: QUARKUS_DIAMETER_LOCAL_PEER_OVERLOAD_MONITORS__OVERLOAD_MONITORS__APPLICATION_ID_VENDOR_ID

long

0

quarkus.diameter.local-peer.overload-monitors."overload-monitors".application-id.auth-appl-id

quarkus.diameter."named-config".local-peer.overload-monitors."overload-monitors".application-id.auth-appl-id

The Authentication Application ID for application definition.

Environment variable: QUARKUS_DIAMETER_LOCAL_PEER_OVERLOAD_MONITORS__OVERLOAD_MONITORS__APPLICATION_ID_AUTH_APPL_ID

long

0

quarkus.diameter.local-peer.overload-monitors."overload-monitors".application-id.acct-appl-id

quarkus.diameter."named-config".local-peer.overload-monitors."overload-monitors".application-id.acct-appl-id

The Account Application ID for application definition.

Environment variable: QUARKUS_DIAMETER_LOCAL_PEER_OVERLOAD_MONITORS__OVERLOAD_MONITORS__APPLICATION_ID_ACCT_APPL_ID

long

0

The Parameters element contains elements that specify parameters for the Diameter stack

Type

Default

quarkus.diameter.parameter.accept-undefined-peer

quarkus.diameter."named-config".parameter.accept-undefined-peer

Specifies whether the stack will accept connections from undefined peers. The default value is false

Environment variable: QUARKUS_DIAMETER_PARAMETER_ACCEPT_UNDEFINED_PEER

boolean

false

quarkus.diameter.parameter.duplicate-protection

quarkus.diameter."named-config".parameter.duplicate-protection

Specifies whether duplicate message protection is enabled. The default value is false.

Environment variable: QUARKUS_DIAMETER_PARAMETER_DUPLICATE_PROTECTION

boolean

false

quarkus.diameter.parameter.use-uri-as-fqdn

quarkus.diameter."named-config".parameter.use-uri-as-fqdn

Determines whether the URI should be used as FQDN. If it is set to true, the stack expects the destination/origin host to be in the format of "aaa://isdn.domain.com:3868" rather than the normal "isdn.domain.com". The default value is false.

Environment variable: QUARKUS_DIAMETER_PARAMETER_USE_URI_AS_FQDN

boolean

false

quarkus.diameter.parameter.use-virtual-threads

quarkus.diameter."named-config".parameter.use-virtual-threads

Specifies whether the stack should use virtual threads The default value is false

Environment variable: QUARKUS_DIAMETER_PARAMETER_USE_VIRTUAL_THREADS

boolean

false

quarkus.diameter.parameter.duplicate-timer

quarkus.diameter."named-config".parameter.duplicate-timer

Specifies the time each duplicate message is valid for (in extreme cases, it can live up to 2 * DuplicateTimer - 1 milliseconds). The default, minimum value is 240000 (4 minutes in milliseconds).

Environment variable: QUARKUS_DIAMETER_PARAMETER_DUPLICATE_TIMER

long

240000

quarkus.diameter.parameter.duplicate-size

quarkus.diameter."named-config".parameter.duplicate-size

Specifies the number of requests stored for duplicate protection. The default value is 5000.

Environment variable: QUARKUS_DIAMETER_PARAMETER_DUPLICATE_SIZE

int

5000

quarkus.diameter.parameter.queue-size

quarkus.diameter."named-config".parameter.queue-size

Determines how many tasks the peer state machine can have before rejecting the next task. This queue contains FSM events and messaging

Environment variable: QUARKUS_DIAMETER_PARAMETER_QUEUE_SIZE

int

quarkus.diameter.parameter.message-timeout

quarkus.diameter."named-config".parameter.message-timeout

Determines the timeout for messages other than protocol FSM messages. The delay is in milliseconds.

Environment variable: QUARKUS_DIAMETER_PARAMETER_MESSAGE_TIMEOUT

long

quarkus.diameter.parameter.stop-timeout

quarkus.diameter."named-config".parameter.stop-timeout

Determines how long the stack waits for all resources to stop. The delays are in milliseconds.

Environment variable: QUARKUS_DIAMETER_PARAMETER_STOP_TIMEOUT

long

quarkus.diameter.parameter.cea-timeout

quarkus.diameter."named-config".parameter.cea-timeout

Determines how long it takes for CER/CEA exchanges to timeout if there is no response. The delays are in milliseconds.

Environment variable: QUARKUS_DIAMETER_PARAMETER_CEA_TIMEOUT

long

quarkus.diameter.parameter.iac-timeout

quarkus.diameter."named-config".parameter.iac-timeout

Determines how long the stack waits to retry the communication with a peer that has stopped answering DWR messages. The delay is in milliseconds.

Environment variable: QUARKUS_DIAMETER_PARAMETER_IAC_TIMEOUT

long

quarkus.diameter.parameter.dwa-timeout

quarkus.diameter."named-config".parameter.dwa-timeout

Determines how long it takes for a DWR/DWA exchange to timeout if there is no response. The delay is in milliseconds.

Environment variable: QUARKUS_DIAMETER_PARAMETER_DWA_TIMEOUT

long

quarkus.diameter.parameter.dpa-timeout

quarkus.diameter."named-config".parameter.dpa-timeout

Determines how long it takes for a DPR/DPA exchange to timeout if there is no response. The delay is in milliseconds.

Environment variable: QUARKUS_DIAMETER_PARAMETER_DPA_TIMEOUT

long

quarkus.diameter.parameter.rec-timeout

quarkus.diameter."named-config".parameter.rec-timeout

Determines how long it takes for the reconnection procedure to timeout. The delay is in milliseconds.

Environment variable: QUARKUS_DIAMETER_PARAMETER_REC_TIMEOUT

long

quarkus.diameter.parameter.session-Timeout

quarkus.diameter."named-config".parameter.session-Timeout

Determines how long it takes for the session to timeout The delay is in milliseconds.

Environment variable: QUARKUS_DIAMETER_PARAMETER_SESSION_TIMEOUT

long

quarkus.diameter.parameter.peer-fsm-thread-count

quarkus.diameter."named-config".parameter.peer-fsm-thread-count

Determines the number of threads for handling events in the Peer FSM.

Environment variable: QUARKUS_DIAMETER_PARAMETER_PEER_FSM_THREAD_COUNT

int

quarkus.diameter.parameter.bind-delay

quarkus.diameter."named-config".parameter.bind-delay

Determines a delay before binding. The delay is in milliseconds.

Environment variable: QUARKUS_DIAMETER_PARAMETER_BIND_DELAY

long

quarkus.diameter.parameter.concurrent.thread-group

quarkus.diameter."named-config".parameter.concurrent.thread-group

Determines the maximum thread count in other entities.

Environment variable: QUARKUS_DIAMETER_PARAMETER_CONCURRENT_THREAD_GROUP

int

quarkus.diameter.parameter.concurrent.processing-message-timer

quarkus.diameter."named-config".parameter.concurrent.processing-message-timer

Determines the thread count for message processing tasks.

Environment variable: QUARKUS_DIAMETER_PARAMETER_CONCURRENT_PROCESSING_MESSAGE_TIMER

int

quarkus.diameter.parameter.concurrent.duplication-message-timer

quarkus.diameter."named-config".parameter.concurrent.duplication-message-timer

Specifies the thread pool for identifying duplicate messages.

Environment variable: QUARKUS_DIAMETER_PARAMETER_CONCURRENT_DUPLICATION_MESSAGE_TIMER

int

quarkus.diameter.parameter.concurrent.redirect-message-timer

quarkus.diameter."named-config".parameter.concurrent.redirect-message-timer

Specifies the thread pool for redirecting messages that do not need any further processing.

Environment variable: QUARKUS_DIAMETER_PARAMETER_CONCURRENT_REDIRECT_MESSAGE_TIMER

int

quarkus.diameter.parameter.concurrent.peer-overload-timer

quarkus.diameter."named-config".parameter.concurrent.peer-overload-timer

Determines the thread pool for managing the overload monitor.

Environment variable: QUARKUS_DIAMETER_PARAMETER_CONCURRENT_PEER_OVERLOAD_TIMER

int

quarkus.diameter.parameter.concurrent.connection-timer

quarkus.diameter."named-config".parameter.concurrent.connection-timer

Determines the thread pool for managing tasks regarding peer connection FSM.

Environment variable: QUARKUS_DIAMETER_PARAMETER_CONCURRENT_CONNECTION_TIMER

int

quarkus.diameter.parameter.concurrent.statistic-timer

quarkus.diameter."named-config".parameter.concurrent.statistic-timer

Determines the thread pool for statistic gathering tasks.

Environment variable: QUARKUS_DIAMETER_PARAMETER_CONCURRENT_STATISTIC_TIMER

int

quarkus.diameter.parameter.concurrent.application-session

quarkus.diameter."named-config".parameter.concurrent.application-session

Determines the thread pool for managing the invocation of application session FSMs, which will invoke listeners.

Environment variable: QUARKUS_DIAMETER_PARAMETER_CONCURRENT_APPLICATION_SESSION

int

quarkus.diameter.parameter.caching-name

quarkus.diameter."named-config".parameter.caching-name

The caching name to be used if HA datasource is used

Environment variable: QUARKUS_DIAMETER_PARAMETER_CACHING_NAME

string

diameter

The Network< element contains elements that specify parameters for external peers

Type

Default

List of external peers and the way they connect

Type

Default

quarkus.diameter.network.peers."peers".peer-uri

quarkus.diameter."named-config".network.peers."peers".peer-uri

Specifies the name of the peer in the form of a URI. The structure is "aaa://[fqdn|ip]:port" (for example, "aaa://192.168.1.1:3868").

Environment variable: QUARKUS_DIAMETER_NETWORK_PEERS__PEERS__PEER_URI

string

aaa://localhost:3868

quarkus.diameter.network.peers."peers".rating

quarkus.diameter."named-config".network.peers."peers".rating

Specifies the rating of this peer in order to achieve peer priorities/sorting.

Environment variable: QUARKUS_DIAMETER_NETWORK_PEERS__PEERS__RATING

int

1

quarkus.diameter.network.peers."peers".ip

quarkus.diameter."named-config".network.peers."peers".ip

Specifies the actual ip for the peer-uri, for example 192.168.1.1

Environment variable: QUARKUS_DIAMETER_NETWORK_PEERS__PEERS__IP

string

quarkus.diameter.network.peers."peers".port-range

quarkus.diameter."named-config".network.peers."peers".port-range

Specifies a port range to accept connection override the port number in peer-uri

Environment variable: QUARKUS_DIAMETER_NETWORK_PEERS__PEERS__PORT_RANGE

string

quarkus.diameter.network.peers."peers".attempt-connect

quarkus.diameter."named-config".network.peers."peers".attempt-connect

Determines if the stack should try to connect to this peer.

Environment variable: QUARKUS_DIAMETER_NETWORK_PEERS__PEERS__ATTEMPT_CONNECT

boolean

false

quarkus.diameter.network.peers."peers".tls-configuration-name

quarkus.diameter."named-config".network.peers."peers".tls-configuration-name

The name of the TLS configuration to use.

If not set and the default TLS configuration is configured (quarkus.tls.*) then that will be used. If a name is configured, it uses the configuration from quarkus.tls.<name>.* If a name is configured, but no TLS configuration is found with that name then an error will be thrown.

If no TLS configuration is set, and quarkus.tls.* is not configured, then, no security will be used

Environment variable: QUARKUS_DIAMETER_NETWORK_PEERS__PEERS__TLS_CONFIGURATION_NAME

string

List of all realms that connect into the Diameter network

Type

Default

quarkus.diameter.network.realms."realms".peers

quarkus.diameter."named-config".network.realms."realms".peers

Comma separated list of peers. Each peer is represented by an IP Address or FQDN.

Environment variable: QUARKUS_DIAMETER_NETWORK_REALMS__REALMS__PEERS

string

localhost

quarkus.diameter.network.realms."realms".local-action

quarkus.diameter."named-config".network.realms."realms".local-action

Determines the action the Local Peer will play on the specified realm: Act as a LOCAL peer.

Environment variable: QUARKUS_DIAMETER_NETWORK_REALMS__REALMS__LOCAL_ACTION

LocalAction

local

quarkus.diameter.network.realms."realms".dynamic

quarkus.diameter."named-config".network.realms."realms".dynamic

Specifies if this realm is dynamic. That is, peers that connect to peers with this realm name will be added to the realm peer list if not present already.

Environment variable: QUARKUS_DIAMETER_NETWORK_REALMS__REALMS__DYNAMIC

boolean

false

quarkus.diameter.network.realms."realms".exp-time

quarkus.diameter."named-config".network.realms."realms".exp-time

The time before a peer belonging to this realm is removed if no connection is available. The time is in seconds.

Environment variable: QUARKUS_DIAMETER_NETWORK_REALMS__REALMS__EXP_TIME

long

1

quarkus.diameter.network.realms."realms".application-id.vendor-id

quarkus.diameter."named-config".network.realms."realms".application-id.vendor-id

Specifies the vendor ID for application definition.

Environment variable: QUARKUS_DIAMETER_NETWORK_REALMS__REALMS__APPLICATION_ID_VENDOR_ID

long

0

quarkus.diameter.network.realms."realms".application-id.auth-appl-id

quarkus.diameter."named-config".network.realms."realms".application-id.auth-appl-id

The Authentication Application ID for application definition.

Environment variable: QUARKUS_DIAMETER_NETWORK_REALMS__REALMS__APPLICATION_ID_AUTH_APPL_ID

long

0

quarkus.diameter.network.realms."realms".application-id.acct-appl-id

quarkus.diameter."named-config".network.realms."realms".application-id.acct-appl-id

The Account Application ID for application definition.

Environment variable: QUARKUS_DIAMETER_NETWORK_REALMS__REALMS__APPLICATION_ID_ACCT_APPL_ID

long

0

quarkus.diameter.network.realms."realms".agent."properties"

quarkus.diameter."named-config".network.realms."realms".agent."properties"

Retrieves the properties of the agent configuration.

Environment variable: QUARKUS_DIAMETER_NETWORK_REALMS__REALMS__AGENT__PROPERTIES_

Map<String,String>

The extensions elements contains elements that override existing components in the Diameter stack

Type

Default

quarkus.diameter.extensions.metadata

quarkus.diameter."named-config".extensions.metadata

The MetaData extension

Environment variable: QUARKUS_DIAMETER_EXTENSIONS_METADATA

string

quarkus.diameter.extensions.message-parser

quarkus.diameter."named-config".extensions.message-parser

The MetaData extension

Environment variable: QUARKUS_DIAMETER_EXTENSIONS_MESSAGE_PARSER

string

quarkus.diameter.extensions.element-parser

quarkus.diameter."named-config".extensions.element-parser

The MetaData extension

Environment variable: QUARKUS_DIAMETER_EXTENSIONS_ELEMENT_PARSER

string

quarkus.diameter.extensions.router-engine

quarkus.diameter."named-config".extensions.router-engine

The MetaData extension

Environment variable: QUARKUS_DIAMETER_EXTENSIONS_ROUTER_ENGINE

string

quarkus.diameter.extensions.peer-controller

quarkus.diameter."named-config".extensions.peer-controller

The MetaData extension

Environment variable: QUARKUS_DIAMETER_EXTENSIONS_PEER_CONTROLLER

string

quarkus.diameter.extensions.realm-controller

quarkus.diameter."named-config".extensions.realm-controller

The Realm Controller extension

Environment variable: QUARKUS_DIAMETER_EXTENSIONS_REALM_CONTROLLER

string

quarkus.diameter.extensions.session-factory

quarkus.diameter."named-config".extensions.session-factory

The Session Factory extension

Environment variable: QUARKUS_DIAMETER_EXTENSIONS_SESSION_FACTORY

string

quarkus.diameter.extensions.transport-factory

quarkus.diameter."named-config".extensions.transport-factory

The Transport Factory extension

Environment variable: QUARKUS_DIAMETER_EXTENSIONS_TRANSPORT_FACTORY

string

quarkus.diameter.extensions.connection

quarkus.diameter."named-config".extensions.connection

The Connection extension

Environment variable: QUARKUS_DIAMETER_EXTENSIONS_CONNECTION

string

quarkus.diameter.extensions.network-guard

quarkus.diameter."named-config".extensions.network-guard

The Network Guard extension

Environment variable: QUARKUS_DIAMETER_EXTENSIONS_NETWORK_GUARD

string

quarkus.diameter.extensions.peer-fsm-factory

quarkus.diameter."named-config".extensions.peer-fsm-factory

The Peer Fsm Factory extension

Environment variable: QUARKUS_DIAMETER_EXTENSIONS_PEER_FSM_FACTORY

string

quarkus.diameter.extensions.statistic-factory

quarkus.diameter."named-config".extensions.statistic-factory

The Statistic Factory extension

Environment variable: QUARKUS_DIAMETER_EXTENSIONS_STATISTIC_FACTORY

string

quarkus.diameter.extensions.concurrent-factory

quarkus.diameter."named-config".extensions.concurrent-factory

The Concurrent Factory extension

Environment variable: QUARKUS_DIAMETER_EXTENSIONS_CONCURRENT_FACTORY

string

quarkus.diameter.extensions.concurrent-entity-factory

quarkus.diameter."named-config".extensions.concurrent-entity-factory

The Concurrent Entity Factory extension

Environment variable: QUARKUS_DIAMETER_EXTENSIONS_CONCURRENT_ENTITY_FACTORY

string

quarkus.diameter.extensions.statistic-processor

quarkus.diameter."named-config".extensions.statistic-processor

The Statistic Processor extension

Environment variable: QUARKUS_DIAMETER_EXTENSIONS_STATISTIC_PROCESSOR

string

quarkus.diameter.extensions.network

quarkus.diameter."named-config".extensions.network

The Network extension

Environment variable: QUARKUS_DIAMETER_EXTENSIONS_NETWORK

string

quarkus.diameter.extensions.session-datasource

quarkus.diameter."named-config".extensions.session-datasource

The Session Datasource extension

Environment variable: QUARKUS_DIAMETER_EXTENSIONS_SESSION_DATASOURCE

string

quarkus.diameter.extensions.timer-facility

quarkus.diameter."named-config".extensions.timer-facility

The Timer Facility extension

Environment variable: QUARKUS_DIAMETER_EXTENSIONS_TIMER_FACILITY

string

quarkus.diameter.extensions.agent-redirect

quarkus.diameter."named-config".extensions.agent-redirect

The Agent Redirect extension

Environment variable: QUARKUS_DIAMETER_EXTENSIONS_AGENT_REDIRECT

string

quarkus.diameter.extensions.agent-configuration

quarkus.diameter."named-config".extensions.agent-configuration

The Agent Configuration extension

Environment variable: QUARKUS_DIAMETER_EXTENSIONS_AGENT_CONFIGURATION

string

quarkus.diameter.extensions.agent-proxy

quarkus.diameter."named-config".extensions.agent-proxy

The Agent Proxy extension

Environment variable: QUARKUS_DIAMETER_EXTENSIONS_AGENT_PROXY

string

quarkus.diameter.extensions.overload-manager

quarkus.diameter."named-config".extensions.overload-manager

The Overload Manager extension

Environment variable: QUARKUS_DIAMETER_EXTENSIONS_OVERLOAD_MANAGER

string