diff --git a/docs/diamagent.rst b/docs/diamagent.rst index 89b94b816..23e6b1e69 100644 --- a/docs/diamagent.rst +++ b/docs/diamagent.rst @@ -183,16 +183,16 @@ Config params Most of the parameters are explained in :ref:`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* \ No newline at end of file