# This file contains information for configuring the rt_busypeers extension.
# To find how to have freeDiameter load this extension, please refer to the freeDiameter documentation.
#
# The rt_busypeers extension has two purposes. 
# - when the local peer receives an error DIAMETER_TOO_BUSY from a peer, 
#   this extension catchs this error and attempts to retransmit the query to another peer if it makes sense, i.e.:
#      * the peer issuing the error is not the peer referenced in the Destination-Host AVP of the message,
#      * we have a direct link with the peer that issued the error (see parameter RetryDistantPeers below)
#
# - When a request is forwarded by the local peer, start a timer and if the corresponding answer/error has
#   not been received within RelayTimeout seconds, either send to another peer or return a DIAMETER_TOO_BUSY
#   error, depending on the RetryMaxPeers parameter.
#
# This extension is mainly useful for Diameter agents, for Diameter clients it is recommended to 
# implement this logic directly in the client application. 


# Parameter: SkipTooBusyErrors
# If defined, this parameter disables the handling of Diameter Errors message with a Result-Code set to DIAMETER_TOO_BUSY in this extension.
# When this parameter is defined, the parameter RetryDistantPeer has no effect.
# Default: parameter is not defined.
#SkipTooBusyErrors;


# Parameter: RetryDistantPeers
# By default, the extension only retries to send messages if the peer that issued the DIAMETER_TOO_BUSY error is directly connected to
# the local peer (not through a Diameter agent). This avoids the situation where the message is sent to a different relay that will deliver
# to the same busy peer afterwards. If the parameter is defined, then the extension will also retry sending messages for errors generated in
# distant peers. This should increase the chance that the message is delivered, but also can increase the load of the network unnecessarily.
# Default: parameter is not defined.
#RetryDistantPeers;


# Parameter: RetryMaxPeers
# This parameter specifies the limit on the number of times a request can be re-sent to a different peer, before the local relay gives up and 
# forwards the error to upstream.
# Default: 0, meaning all possible candidates are attempted before give up.
#RetryMaxPeers=0;


# Parameter: RelayTimeout
# If the value of this parameter is not 0, it specifies the number of milliseconds (1/1000 s) that the local relay waits for an answer to a 
# forwarded request before considering the remote peer is busy and taking corrective action (similar as if that relay had returned TOO_BUSY status).
# Note: this parameter does not apply for requests issued locally. In that case, the extension issuing the request should directly specify the timeout.
# Default: 0, meaning that there is no timeout parameter.
#RelayTimeout=0;

