Doc - diameter field path and type

This commit is contained in:
DanB
2020-01-21 17:48:16 +01:00
parent a172934371
commit beae155bf1

View File

@@ -183,16 +183,16 @@ Config params
Most of the parameters are explained in :ref:`configuration <engine_configuration>`, hence we mention here only the ones where additional info is necessary or there will be particular implementation for *DiameterAgent*.
listen_net
**listen_net**
The network the *DiameterAgent* will bind to. CGRateS supports both **tcp** and **sctp** specified in Diameter_ standard.
concurrent_requests
**concurrent_requests**
The maximum number of active requests processed at one time by the *DiameterAgent*. When this number is reached, new inbound requests will be rejected with *DiameterError* code until the concurrent number drops bellow again. The default value of *-1* imposes no limits.
asr_template
**asr_template**
The template (out of templates config section) used to build the AbortSession message. If not specified the ASR message is never sent out.
templates
**templates**
Group fields based on their usability. Can be used in both processor templates as well as hardcoded within CGRateS functionality (ie *\*err* or *\*asr*). The IDs are unique, defining the same id in multiple configuration places/files will result into overwrite.
*\*err*: is a hardcoded template used when *DiameterAgent* cannot parse the incoming message. Aside from logging the error via internal logger the message defined via *\*err* template will be sent out.
@@ -201,7 +201,7 @@ templates
*\*cca*: defined for convenience to follow the standard for the fields used in *Diameter* *CCA* messages.
request_processors
**request_processors**
List of processor profiles applied on request/replies.
Once a request processor will be matched (it's *filters* should match), the *request_fields* will be used to craft a request object and the flags will decide what sort of procesing logic will be applied to the crafted request.
@@ -212,8 +212,8 @@ request_processors
Once the *reply_fields* are finished, the object converted and returned to the *DiameterClient*, unless *continue* flag is enabled in the processor, which makes the next request processor to be considered.
filters
Will specify a list of filter rules which need to match in order for the processor to run. These are also available within fields.
processor or field **filters**
Will specify a list of filter rules which need to match in order for the processor to run (or field to be applied).
For the dynamic content (prefixed with *~*) following special variables are available:
@@ -246,7 +246,7 @@ filters
* **\*cgrareq**
Active request in relation to CGRateS side. It can be used in both *request_fields*, referring to CGRRequest object being built, or in *reply_fields*, referring to CGRReply object.
flags
processor **flags**
Special tags enforcing the actions/verbs done on a request. There are two types of flags: **main** and **auxiliary**.
There can be any number of flags or combination of those specified in the list however the flags have priority one against another and only some simultaneous combinations of *main* flags are possible.
@@ -301,4 +301,50 @@ flags
Build a CDR out of the request on CGRateS side. Can be used simultaneously with other flags (except *\*dry_run)
field **path**
Specifies the path where the value will be written. Possible values:
* **\*cgreq**
Write the value in the request object which will be sent to CGRateS side.
* **\*req**
Write the value to request built by *DiameterAgent* to be sent out on *Diameter* side.
* **\*rep**
Write the value to reply going out on *Diameter* side.
field **type**
Specifies the logic type to be used when writing the value of the field. Possible values:
* **\*none**
Pass
* **\*filler**
Fills the values with an empty string
* **\*constant**
Writes out a constant
* **\*remote_host**
Writes out the Address of the remote *DiameterClient* sending us the request
* **\*variable**
Writes out the variable value, overwriting previous one set
* **\*composed**
Writes out the variable value, postpending to previous value set
* **\*usage_difference**
Calculates the usage difference between two arguments passed in the *value*. Requires 2 arguments: *$stopTime;$startTime*
* **\*cc_usage**
Calculates the usage out of *CallControl* message. Requires 3 arguments: *$reqNumber;$usedCCTime;$debitInterval*
* **\*sum**
Calculates the sum of all arguments passed within *value*. It supports summing up duration, time, float, int autodetecting them in this order.
* **\*difference**
Calculates the difference between all arguments passed within *value*. Possible value types are (in this order): duration, time, float, int.
* **\*value_exponent**
Calculates the exponent of a value. It requires two values: *$val;$exp*