Rule Template elements

Table 1 describes the information that can be contained in a Rule Template. Some of these elements appear only when adding, editing, or copying a Rule Template.

Rule Template elements
Element Description Data Input Notes

Settings: This section contains basic information for the Rule Template.

Rule Template Name

Name used to label this Rule Template in this application.

This field is required.

Format: a-z, A-Z, 0-9, -, ., @, and _ ("Unset" cannot be used as a Rule Template Name.)

Range: 1-255 characters

Message Support Type

Indicates the type of message processing that is supported by the Rule Template (Request, Answer, or both). The Message Support Type depends on the selected conditions and actions.

Format: Check marks

Range: Request, Answer, or both are checked.

Default: Both are checked

This field cannot be edited.

Conditions: This section defines a set of one to five matching expressions.

All conditions are supported by both requests and replies. Each condition is marked with a letter in the alphabetical order (A, B, C, D, E, etc.). The "Up" and "Down" buttons moved the Condition Set, however the letters that label the conditions stay in the alphabetical order.

Fast Search

If check marked, fast database lookups are used. Otherwise, the values of the specified field are checked one-by-one until the first match is found. See Fast Search.

Format: Check mark (Yes) or red circle with red line through it (No); not editable

Range: Yes sign or No sign

Default: Yes sign

All Conditions with the Fast Search option checked must precede the others to maintain the Fast Search.

When the Default value is Fixed, Fast Search is enabled regardless of the selected Operator and Right value type.

Name

The name for the Left value to display for a Condition on the Rule Set page.

This field is required.

Format: Text string

Range: 1 to 64 characters

Description The description that appears for a Condition on the Rule Sets page. If possible, provide information such as the format to be used (such as text string or telephone number format) and the range of values (such as 1 to 255 characters).

Format: descriptive text

Range: 1 to 255 characters string
Left value

The left-hand value in a Condition. The Left value typically refers to a regular or grouped AVP component (AVP header parts or value) or a Diameter Header component. The grouped AVP can be up to 6 levels deep. Grouped AVPs that have a depth of one are supported (one or more AVPs at the same level within an AVP).

This field is required.

The value can be defined using the Formatting Value Wizard.

Format: Text box

Range: See Formatting Value Wizard

Operator

The operator being used to compare Left value and Right value in a Condition.

"Exist" and "not exist" operators are used to check the presence of the specified Left-hand value.

"Is true" and "is not true" operators are used to verify whether the specified Left value is not 0 or equals 0 (is empty in the case of a string type).

Format: Pulldown list

Range: See Table 2

Default: equals (==)

Case Sensitive

Allows the comparison to be looked up considering case. Case-sensitive search is possible only together with Fast Search. Without Fast Search, the lookup is always case-insensitive.

The check box is enabled for the UTF8String Right value.

Format: Check box

Range: Checked or not checked

Default: Not checked (not case-sensitive)

Right value

The type of data that is compared to the field in the message (specified by the Left value) in a Condition to determine if there is a match and Mediation should be performed.

The Right value can be:
  • Empty; the Optional check box is checked (it can be left empty in the rule provisioning in a Rule Set), or the Right value is not used by the selected Operator (such as "exists").
  • One of the Right value types shown in the Range: list.

    Actual data of the specified type is entered in a rule in the Rule Set that is generated from the Rule Template, to use in the comparison.

  • An actual data value of the selected Right value type, provisioned in the Default value field of the Condition in the Rule Template.

Format: Pulldown list

Range: Right value types are:
  • Integer32
  • Integer64
  • Unsigned32
  • Unsigned64
  • Float32
  • Float64
  • Address (IPv4 or IPv6 IP address)
  • Time (number of seconds since 0h on 1 January 1900)
  • UTF8string
  • DiameterIdentity (FQDN or Realm)
  • DiameterURI
  • IP/Netmask (IPv4 or IPv6 Netmask)
  • Enumerated (available Enum values; prefaced by "enum:")
  • OctetString
  • xl-value (references to AVPs, LAVPs, or parts of the Diameter message)
  • Regular expression (Perl 5 regular expression)
  • Unsigned64Range enter two numbers (the lower and upper limit of the range inclusive) that fit into Unsigned64, separated by a dash "-".
  • Connection provisioned connection
  • Peer provisioned peer nodes

Default: Integer32

All previously provisioned Enumerated Types shall be listed prefixed with “enum:”. For example: “enum: xyz”.

Default value: An actual data value to display for the Right value of a Condition on the Rule Set page.

When the Default value is Fixed, Fast Search is enabled regardless of the selected Operator and Right value type.

Format: Text box

Range: Data value that is valid for selected Right value type.

When OctetString or UTF8String is selected, any human-readable character is valid.

When the "xl-value" type is selected, all Default value entries must be xl-values.

Optional: The Optional check box can be checked so that the Right value data could be deleted or left empty in the Rule Set rule, or unchecked indicating that the Right value data must be entered and can be changed in the Rule Set rule.

Format: Check box

Range: Check mark or no check mark

Default: Checked

Fixed: Indicates that the Right value data that is entered in the Default value in the Rule Template Condition is actual data, and cannot be changed in the Rule Set rule.

Format: Check box

Range: Check mark or no check mark

Default: Not checked

Condition Set: This section specifies whether the conditions are logically ANDed, ORed or they form a Complex Expression.

Condition Set

The defined matching expressions are combined in one logical expression to set up multiple Rule Templates with ANDed, ORed or Complex Expression operators, so the set matches on the message if all the expressions are true.

If no matching expression is defined, the message unconditionally matches.

Note: The complex expression to achieve the fast-search lookups.

Format: Radio buttons

Range: ANDed, ORed or Complex Expression.

     

Actions: This section specifies the possible settings for each action to be taken for this Rule Template.

All conditions are supported by both requests and replies.

New Action Add a new Action to the list that is applied when the conditions of the Rule Template match on the message.

Format: Pulldown list

Range: Actions listed in this section of this table.

Actions performed on the Diameter Header
Modify Diameter Header Parts

Allows modifying or overwriting of the Version, Command Code, and Application ID components of the Diameter Header.

Note: Modifying values in the Diameter Header can result in incompatibility with the standard defined in IETF RFC3588bis (draft-ietf_dime_rfc3588bix-26.txt) Diameter Base Protocol.

Header Part - the component to modify

Format: Pulldown list

Range: Version, Command Code, Application ID

Default: Version

Overwrite to - the new value of the component

Format: Integer

Range: New value; 8-bit, 24-bit, or 32-bit unsigned integer

Optional

Indicates that the action is optional, the Rule Set Administrator can leave the values empty.

Format: Checkbox

Range: Check mark or no check mark

Set Command Flags
Allows modifying of one or more Command Flags in the processed message, including the reserved flags:
  • Set Command Flag
  • Clear Command Flag
  • Keep Original value
Flags R, P, E, and T are supported; r4, r5, r6, and r7 are reserved for future use:
  • R - Request; shows whether the message is a Request or a Response.
  • P - Proxiable; shows if the message can be proxied, relayed, or redirected, or it must be locally processed.
  • E - Error; shows if the message contains protocol or semantic errors.
  • T - Shows that a message can potentially be a retransmitted message after a link fail-over, or is used to aid removal of duplicate messages.

Set Command Flag :

Clear Command Flag:

Keep original:

Default: Keep original

Format: Radio buttons

Range: R, P, E, T, r4, r5, r6, r7

Optional is not available for this Action, however it has no impact on the message if Keep original is selected for all the flags .

Actions performed on the Diameter Payload (AVPs)

Most of these actions can be applied to a regular AVP, to a Grouped AVP, or to an AVP within the Grouped AVP.

To perform the action on a regular or Grouped AVP, the supported AVP definition from the dictionary and the instance number or value must be specified. The value is valid only for some of the actions.

For actions that are performed on an AVP within a Grouped AVP, the parent AVP and its instance number must be specified.

If an AVP is not present in the dictionary, it is unknown by the Mediation feature and must be defined in the dictionary before the specified action can be performed.

Many of the actions allow xl-values, which can be defined using the Formatting Value Wizard.

Add AVP

Add an AVP to the message.

This action can support up to 6 levels deep AVPs.
Note: The action will fail, if the specified instance of the parent AVP is also added but the previous instances of this AVP do not exist in the message.

The Flags and the Value must be set for the new AVP.

For Grouped AVPs,
  • If the AVP is added within a Grouped AVP, the Parent AVP and its Instance must be specified.
  • A Parent AVP can be added if it not present in the message; Flags for the added Parent AVP must be set.
  • If the Parent AVP is not found in the message and is not added to the message, the action will fail.
Flags V, M and P are supported; r3, r4, r5, r6 and r7 are reserved for future use.
  • V - Vendor-Specific; indicates whether the optional Vendor-ID field is present in the AVP header. When set, the AVP Code belongs to the specific vendor code address space.
  • M - Mandatory; indicates whether support of the AVP is required. If an AVP with the M bit set is received by a Diameter client, server, proxy, or translation agent and either the AVP or its value is unrecognized, the message MUST be rejected. Diameter Relay and Redirect Agents MUST NOT reject messages with unrecognized AVPx. AVPs with the M bit cleared are informational only. A receiver of a message with an AVP that is not supported, or whose value is not supported, can simply ignore the AVP.
  • P - Indicates the need for encryption for end-to-end security. Diameter base protocol specifies which AVPs must be protected by end-to-end security measures (encryption) if the message is to pass through a Diameter agent. If a message includes any of those AVPs, the message must not be sent unless there is end-to-end security between the originator and the recipient of the message.

Parent AVP:

Format: Pulldown list

Range: Available AVPs

Specify which AVP to add to the message. Click on Add to select it. To add an AVP to the grouped AVP, specify all necessary parent AVPs.

Instance:

Format: Pulldown list

Range: First, Second, Third, Fourth, Fifth, all internal variables of Integer32, Integer64, Unsigned32, Unsigned64 type.

Add new AVP:

Format: Pulldown list

Range: Available AVPs

Set Flags:

Format: Check box for each flag

Range: V, M, P, r3, r4, r5, r6, r7

Set Value:

Format: Text box and link to Formatting Value Wizard, or pulldown list and link to Formatting Value Wizard

Range:

Add parent AVP if it is not present

Format: Check box

Range: Checked or unchecked

Optional

Indicates that the action is optional, the Rule Set Administrator can leave the values empty.

Format: Checkbox

Range: Check mark or no check mark

Set / Add AVP

The action allows changing the value of an AVP if it is found in the message or adding an AVP if it is not found in the message

This action can support up to 6 levels deep AVPs.

It searches for the specific instance of an AVP in the message, overwriting its value when this AVP is found or appending this AVP (adding it as a last instance) when it's not present.

The AVP can be looked up in the message either by the instance number or by the value.

If the AVP is not found in the message it can be appended, which requires setting the Flags and specifying the Value of the AVP that is to be added.

If a non existing AVP that was looked up in the message by the specific instance number is about to be added to the message with the different instance number, the action will fail.

AVP:

Format: Pulldown list

Range: Available AVPs

Click on Set/Add to set/add an AVP to the grouped AVP, specify all necessary parent AVPs.

The Default value is either:
  • The first AVP definition that belongs to the selected grouped AVP, if a grouped AVP has been previously added.
  • The first AVP definition from the dictionary, if no grouped AVP has been previously added
The List includes:
  • AVP definitions that belong to the selected grouped AVP, if a grouped AVP has been previously added.
  • All AVP definitions from the dictionary, if no grouped AVP has been previously added.

Instance - The instance number of the AVP within the buffer of the transaction.

Format: Pulldown list

Range: First, Second, Third, Fourth, Fifth, all internal variables of Integer32, Integer64, Unsigned32, Unsigned64 type.

Default: First

Set Flags - (see Flag definitions in Add AVP)
  • If the flag must be set, the flag is checked and disabled.
  • If the flag must not be set, the flag is unchecked and disabled.
  • If the flag can be set, the check box is available to be changed.

Format: Check boxes for the flags

Range: V, M, P, r3, r4, r5, r6, r7

If the AVP is found set its value (all specified flags will be ignored)

Format: Radio Button

Range: Search by the instance and Search by the value (Specify the right AVP which value is to be set based on the specified value.

Else append the AVP to the message (all specified flags will be considered.)

Add parent AVP if it is not present .

Format: Check box

Range: Checked or unchecked

Set/Add Value

Format: Value entered

Range: Search by the value (Specify the right AVP which value is to be set based on the specified value.
Note: If "Diameter identity", "DiameterURI", "UTF8String" or "OctetString" value contains +, -, (,) and it is not an xl-value, it has to be quoted manually.

Optional

Indicates that the action is optional, the Rule Set Administrator can leave the values empty.

Format: Checkbox

Range: Check mark or no check mark

Delete AVP

Delete a specified AVP in the message.

This action can support up to 6 levels deep AVPs.

If the Instance of the specified AVP is All, the action is applied to all instances of the AVP or Grouped AVP in the message.

If the specified AVP is within a Grouped AVP, the Parent AVP and its Instance must be specified.

If the specified AVP is the last AVP within the Grouped AVP, the action can be defined to also delete the Parent AVP.

If the specified AVP is a Grouped AVP, the Grouped AVP and all of the AVPs within the group are deleted.

If the deleted AVP has been the last AVP within the Grouped AVP, then Delete parent AVP if it is empty can be checked to delete the Parent AVP as well.

If the specified AVP is not found in the message, the Delete AVP action is considered to be successful.

Parent AVP:

Format: Pulldown list

Range: Available AVPs

Instance:

Format: Pulldown list

Range: First, Second, Third, Fourth, Fifth, all internal variables of Integer32, Integer64, Unsigned32, Unsigned64 type.

Delete AVP:

Format: Radio button for Instance with pulldown list; radio button for With the value with text box or pulldown list and link to Formatting Value Wizard

Range:

Instance: First, Second, Third, Fourth, Fifth, All

With the value: Text, or pulldown list values that vary with selected AVP to delete (see Formatting Value Wizard)

Delete parent AVP if it is empty

Format: Check box

Range: Checked or unchecked; default is checked

Optional

Indicates that the action is optional, the Rule Set Administrator can leave the values empty.

Format: Checkbox

Range: Check mark or no check mark

Save AVP

Store a specified top-level AVP from the message into the buffer associated with the transaction. A saved AVP is stored in the buffer as long as the transaction exists.

Saved AVPs can be accessed through the Formatting Value Wizard as corresponding Linking-AVPs with the same AVP and instance number.

If the Instance of the specified AVP is All, the action saves all instances of the AVP in the message.

Note: A grouped AVP can be saved and restored, but sub-AVPs within the stored or restored grouped AVP cannot be retrieved (such as with @msg.avp["name"][index].avp["name"][index]), modified, or removed.

If the same AVP is saved multiple times (the action is applied multiple times), the saved value is overwritten each time the AVP is saved.

If the specified AVP is not found in the message, the Save AVP action is considered to have failed.

Save AVP:

Format: Pulldown list; radio button for Instance with pulldown list; radio button for With the value with text box or pulldown list and link to Formatting Value Wizard

Range:

Pulldown list: Available AVPs

Instance:First, Second, Third, Fourth, Fifth, All, all internal variables of integer32, integer64, unsigned32, unsigned64 type.

With the value: Text, or pulldown list values that vary with selected AVP to delete (see Formatting Value Wizard)

Optional

Indicates that the action is optional, the Rule Set Administrator can leave the values empty.

Format: Checkbox

Range: Check mark or no check mark

Restore AVP

Restore a top-level AVP that has been previously stored. AVPs can be restored in the message by either appending each AVP to the message or by replacing all of the same existing AVPs.

The instance number of the saved AVP must be specified, to find the appropriate Linking-AVP (LAVP) that was stored.

Note: A Grouped AVP can be saved and restored, but sub-AVPs within the stored or restored Grouped AVP cannot be retrieved (such as with @msg.avp["name"][index].avp["name"][index]), modified, or removed.

Restore AVP:

Format: Pulldown list

Range: Available AVPs

Instance:

Format: Pulldown list

Range: First, Second, Third, Fourth, Fifth, All, all internal variables of integer32, integer64, unsigned32, unsigned64 type.

Delete before restore:

Format: Check box

Range: Checked, unchecked; default is unchecked.

Optional

Indicates that the action is optional, the Rule Set Administrator can leave the values empty.

Format: Checkbox

Range: Check mark or no check mark

Set LAVP

Allows constructing a top-level non-Grouped AVP by setting the Flags and specifying the value, and placing it into the buffer associated with the Diameter transaction. The AVP can be accessed as a Linking-AVP through the Formatting Value Wizard.

The value is stored in the buffer as long as the transaction exists. The LAVP can be used for the Restore AVP action.

  • Instance - Specify the instance number of the AVP within the buffer of the transaction. The new AVP specification always overwrites the existing if there is already one with the same instance number.
  • Set Value
    • The Input field is available when the selected LAVP has a data format other than "Enumerated".
    • The Pulldown list is available when the selected LAVP has the data format "Enumerated".
    • An error message appears if the entered value of the Input field is not an x1-value and does not correspond to the data format required by the selected AVP.
  • Delete: Click to delete an existing Linking-AVP.

Set LAVP - Specifies the LAVP to be set into the buffer associated with the transaction.

Format: Pulldown list

Range: All non-Grouped AVPs from the dictionary

Default: First non-Grouped AVP definition from the dictionary

Instance - The instance number of the AVP within the buffer of the transaction.

Format: Pulldown list

Range: First, Second, Third, Fourth, Fifth, all internal variables of integer32, integer64, unsigned32, unsigned64 type.

Default: First

Set Flags - (see Flag definitions in Add AVP)
  • If the flag must be set, the flag is checked and disabled.
  • If the flag must not be set, the flag is unchecked and disabled.
  • If the flag can be set, the check box is available to be changed.

Format: Check boxes for the flags

Range: V, M, P, r3, r4, r5, r6, r7

Default: From the dictionary

Set Value - Specifies the value of the LAVP.

Input field

Format: Value entered through the Formatting Value Wizard page (click the Wizard link).

Range: Values available in the Formatting Value Wizard.

Optional

Indicates that the action is optional, the Rule Set Administrator can leave the values empty.

Format: Checkbox

Range: Check mark or no check mark

Actions that allow modifying an AVP

If the specified AVP is not found in the message, the action is considered to have failed.

Change AVP Code

Replace an AVP definition with a new one, keeping the original AVP value and flag that are not strictly defined in the dictionary (that can be set).

This action can support up to 6 levels deep AVPs.

Allows changing the Code of the specified AVP and modifying its Flags.

Parent AVP:

Format: Pulldown list

Range: Available AVPs

Instance:

Format: Pulldown list

Range: First, Second, Third, Fourth, Fifth, all internal variables of integer32, integer64, unsigned32, unsigned64 type.

Old AVP:

Format: Pulldown list; radio button for Instance with pulldown list; radio button for With the value with text box or pulldown list and link to Formatting Value Wizard

Range:

Pulldown list: Available AVPs

Instance: First, Second, Third, Fourth, Fifth

With the value: Text, or pulldown list values that vary with selected AVP (see Formatting Value Wizard)

New AVP

Format: Pulldown list

Range: Available AVPs

Optional

Indicates that the action is optional, the Rule Set Administrator can leave the values empty.

Format: Checkbox

Range: Check mark or no check mark

Change AVP Flags

Allows setting, clearing, and keeping the original value of AVP flags.

This action can support up to 6 levels deep AVPs.

Flags V, M and P are supported; r3, r4, r5, r6 and r7 are reserved for future use.
  • V - Vendor-Specific; indicates whether the optional Vendor-ID field is present in the AVP header. When set, the AVP Code belongs to the specific vendor code address space.
  • M - Mandatory; indicates whether support of the AVP is required. If an AVP with the M bit set is received by a Diameter client, server, proxy, or translation agent and either the ABP or its value is unrecognized, the message MUST be rejected. Diameter Relay and Redirect Agents MUST NOT reject messages with unrecognized AVPx. AVPs with the M bit cleared are informational only. A receiver of a message with an AVP that is not supported, or whose value is not supported, can simply ignore the AVP.
  • P - Indicates the need for encryption for end-to-end security. Diameter base protocol specifies which AVPs must be protected by end-to-end security measures (encryption) if the message is to pass through a Diameter agent. If a message includes any of those AVPs, the message must not be sent unless there is end-to-end security between the originator and the recipient of the message.

Parent AVP

Format: Pulldown list

Range: Available AVPs

Instance - Specify the right AVP, which flags are to be modified based on the instance number. Specify the instance number fo the AVP counted from the top of the message.

Range: First, Second, Third, Fourth, Fifth, all internal variables of integer32, integer64, unsigned32, unsigned64 type.

With the value: Text, or pulldown list values that vary with selected AVP (see Formatting Value Wizard)

AVP

Format: Pulldown list; radio button for Instance with pulldown list; radio button for With the value with text box or pulldown list and link to Formatting Value Wizard; Set Flag, Clear Flag, and Keep original radio buttons for flags.

Range:

Pulldown list: Available AVPs

Flags: V, M, P, r3, r4, r5, r6, r7

Optional

Indicates that the action is optional, the Rule Set Administrator can leave the values empty.

Format: Checkbox

Range: Check mark or no check mark

Set AVP Value Allows overwriting of the value of an AVP.

This action can support up to 6 levels deep AVPs.

Parent AVP:

Format: Pulldown list

Range: Available AVPs

Instance:

Format: Pulldown list

Range: First, Second, Third, Fourth, Fifth, all internal variables of integer32, integer64, unsigned32, unsigned64 type.

AVP:

Format: Pulldown list; radio button for Instance with pulldown list; radio button for With the value with text box or pulldown list and link to Formatting Value Wizard

Range:

Instance: First, Second, Third, Fourth, Fifth

With the value: Text, or pulldown list values that vary with selected AVP (see Formatting Value Wizard)

Set Value:

Format: Text box or pulldown list and link to Formatting Value Wizard

Range: Text, or pulldown list values that vary with selected AVP (see Formatting Value Wizard)

Optional

Indicates that the action is optional, the Rule Set Administrator can leave the values empty.

Format: Checkbox

Range: Check mark or no check mark

Strip from AVP Value Strips the defined number of characters from either the beginning or the ending of the AVP value. This action can be used in combination with the Prefix/Suffix to AVP Value action.

This action can support up to 6 levels deep AVPs.

Parent AVP:

Format: Pulldown list

Range: Available AVPs

Instance:

Format: Pulldown list

Range: First, Second, Third, Fourth, Fifth

AVP:

Format: Pulldown list; radio button for Instance with pulldown list; radio button for With the value with text box and link to Formatting Value Wizard

Range:

Pulldown list: Available AVPs

Instance: First, Second, Third, Fourth, Fifth, all internal variables of integer32, integer64, unsigned32, unsigned64 type.

With the value: Text (see Formatting Value Wizard)

Format: Checkbox

Strip from:

Format: Radio buttons, text box

Range: Radio button for Beginning of the value; radio button for End of the value; text - number of characters to strip

Optional

Indicates that the action is optional, the Rule Set Administrator can leave the values empty.

Format: Checkbox

Range: Check mark or no check mark

Prefix/Suffix to AVP Value Add the defined data as a prefix or suffix to the AVP value. This action can be used in combination with the Strip for AVP Value action.

This action can support up to 6 levels deep AVPs.

Parent AVP:

Format: Pulldown list

Range: Available AVPs

Instance:

Format: Pulldown list

Range: First, Second, Third Fourth, Fifth

AVP:

Format: Pulldown list; radio button for Instance with pulldown list; radio button for With the value with text box and link to Formatting Value Wizard; radio buttons for Prefix or Suffix; text box for prefix or suffix with link to Formatting Value Wizard

Range:

Pulldown list: Available AVPs

Instance: First, Second, Third, Fourth, Fifth, all internal variables of integer32, integer64, unsigned32, unsigned64 type.

With the value: Text box (see Formatting Value Wizard)

Format: Checkbox

Radio buttons: Prefix to the value, Suffix to the value

Prefix to the value or Suffix to the value: Text box (see Formatting Value Wizard)

Optional

Indicates that the action is optional, the Rule Set Administrator can leave the values empty.

Format: Checkbox

Range: Check mark or no check mark

Substitute in AVP Value Use a defined pattern to locate a field in the AVP value, and replace the data in the field with the specified new data.

This action can support up to 6 levels deep AVPs.

Parent AVP:

Format: Pulldown list

Range: Available AVPs

Instance:

Format: Pulldown list

Range: First, Second, Third Fourth, Fifth

AVP:

Format: Pulldown list; radio button for Instance with pulldown list; radio button for With the value with text box and link to Formatting Value Wizard

Range:

Pulldown list: Available AVPs

Instance: First, Second, Third, Fourth, Fifth, all internal variables of integer32, integer64, unsigned32, unsigned64 type.

With the value: Text box (see Formatting Value Wizard)

Format: Checkbox

Pattern:

Format: Text box

Range: Patten to locate the field

Replacement:

Format: Text box

Range: Text of the replacement data (see Formatting Value Wizard)

Optional

Indicates that the action is optional, the Rule Set Administrator can leave the values empty.

Format: Checkbox

Range: Check mark or no check mark

Bit Set / Reset

Allows setting/resetting the specified bit of the AVP. This action can support up to 6 levels deep AVPs.

Instance:

Format: Pulldown list

Range: First, Second, Third Fourth, Fifth and all internal variables of integer32, integer64, unsigned32, unsigned64 type.

Default: First non-Grouped AVP definition from the dictionary

Bit Position:

Note: Disabled unless the AVP is selected.

Format: Pulldown

Range: Bit indexes between 0-31 or 0-63 depending on the format of an AVP.

Default: First non-Grouped AVP definition from the dictionary

Range: First, Second, Third Fourth, Fifth and all internal variables of integer32, integer64, unsigned32, unsigned64 type.

Set/Reset Value:

Note: Disabled unless the AVP is selected.

Format: Pulldown

Range: 1 or 0 with the default a 1,

Note: If the name of the selected AVP is too long and does not fit on the screen, the hint message is available; it displays the entire name.

Optional

Indicates that the action is optional, the Rule Set Administrator can leave the values empty.

Format: Checkbox

Range: Check mark or no check mark

Set internal variable

Allows setting the value for an internal variable that is valid for the entire duration of a transaction.

Internal variable

Format: Pulldown

Range: Available configured Internal Variables.

Set Value - Specifies the value see Formatting Value Wizard) .

Optional

Indicates that the action is optional, the Rule Set Administrator can leave the values empty.

Format: Checkbox

Range: Check mark or no check mark

Message Copy Trigger Diameter Message Copy for the message, based on the values in the Message Copy Configuration Set that is specified for the Action. See Configuration in the DSR Diameter User’s Guide.

Select Message Copy Configuration Set

Format: Pulldown list

Range: Default; configured Message Copy Configuration Sets

Default: "-Select-"

Optional

Indicates that the action is optional, the Rule Set Administrator can leave the values empty.

Format: Checkbox

Range: Check mark or no check mark

Set Request Priority

Allows setting the Priority of a Request to 0,1 or 2, which can then be used by the congestion control subsystem if needed. The action is applicable only at "Diameter request message received from connection" trigger point and is ignored at all other trigger points. If the request priority has been previously set to 3, the action will be ignored.

Set Request Priority

Format: Pulldown

Range: No change, 0,1,2

Note: Set Request Priority is mutually exclusive with this action.

Optional

Indicates that the action is optional, the Rule Set Administrator can leave the values empty.

Format: Checkbox

Range: Check mark or no check mark

Set Route List

Allows setting the Route List thereby bypassing the PRT. This is used when the Request has to be routed based on AVPs that are beyond the ones accessible via the Peer Route Tables. The action can also enforce skipping the Application Route Tables matching. The action is applicable only at "Diameter request message received from connection" trigger point and is ignored at all other trigger points.

Note: If the ART is not skipped, it is possible that an application can specify a PRT which can then result in the overwriting of the Route List specified by mediation.

Set Route List

Format: Pulldown

Range: Check mark or no check mark

Skip Application Route tables

Format: Check box

Range: Specify whether the Application Route Tables matching are skipped.

Note: Abandon Message and Send Answer are mutually exclusive with this action.

Optional

Indicates that the action is optional, the Rule Set Administrator can leave the values empty.

Format: Checkbox

Range: Check mark or no check mark

Send Answer

Allows answering the request with a configurable Result-Code. The action enables specifying the Result-Code or Experimental-Result-Code and Vendor-Id.

The action is supported by Requests only

Answer Result-Code Value

Format: Radio buttons

Range: A pulldown list of all available result-code or a text box ( Specify the value to be placed in the Result-Code AVP of the answer message).
Note: Disabled unless the radio button is selected.

Hint: Specify the value to be placed in the Result-Code AVP of the answer message.

Vendor-Id - Specify the vendor-id for placing the Answer Result-Code value into Experimental-Result-Code AVP.

Format: Text box

Range: 1 - 4294967295

Answer Error Message - Specify the string to be placed in the Error-Message AVP of the Answer message. Range = 0 to 64 characters.

Format: Text box

Range: N/A, no Error-Message AVP in Answer message.

Automatically adds Exit from Execution Trigger, which bypasses any subsequent Rule Template in it.

Note: Abandon Message and Send Answer are mutually exclusive with this action.

Optional is not available for this Action.

Abandon Message

Allows to silently drop the request. The action is supported by Requests and Answers at the DCL trigger points. The DRL answer triggers (ATP1, ATP4, ATP6 and ATP10 ignore this action

Format: Blank

Range: Blank

Note: Send Answer and Set Route List are mutually exclusive with these actions.

Automatically adds Exit from Execution Trigger, which bypasses any subsequent Rule Template in it.

Optional is not available for this Action.

Set Destination-Realm

This action populates Destination-Realm AVP based on the IMSI value present in the Request. The Set Destination-Realm action retrieves the IMSI value from the following AVPs in the request:
  1. Subscription-Id(Subscription-Id-Type=1) (defined in RFC 4006)
  2. User-Name (defined in RFC 6733)

The first instance is used, if more than one instance of the AVP is present.

The order shown above is used to find the first one that contains an IMSI, if more than one of the AVPs mentioned before is present.

If the AVP is found, the action tries to add/populate the Destination-Realm AVP with the realm that corresponds to the longest prefix match for "MCC+MNC+(optionally) MSIN prefix digits" combination provisioned on the GUI screen "Main Menu: DSR Common -> Network Identifiers -> MCCMNC Mapping".

If no realm is specified for the "MCC+MNC+(optionally) MSIN prefix digits" combination, the Destination-Realm AVP shall be populated by default in 3GPP format "epc.mnc<MNC>.mcc<MCC>.3gppnetwork.org", where "<MNC>" and "<MCC>" fields correspond to the MNC and MCC values extracted from the AVP containing the IMSI present in the Request.

If the Destination-Realm AVP is not present in the message, the action shall add it.

Note: In case no IMSI is found in the message, the action shall fail.
Note: The MCC and MNC can not be extracted from the IMSI if there is no match found on the "Main Menu: DSR Common -> Network Identifiers -> MCCMNC" screen.

The action is supported by Requests only.

Format: Blank

Range: Blank

Automatically adds Exit from Execution Trigger, which bypasses any subsequent Rule Template in it.

Optional is not available for this Action.

Execute Rule template
Note: The value needs to be set at the time the new Rule Template is defined.

Only Rule Templates in "Test" or "Active" state are listed in the pulldown list.

This field is displayed on Diameter Mediation Rule Template Insert and Edit pages, but not on the View page.

Format: Pulldown list

Range: Available Rule Templates in "Test" and "Active" states

Default: First Rule Template Name in the list

Optional is not available for this Action.

Exit from Execution Trigger Exits from the Execution Trigger, bypassing any subsequent Rule Set associated with it.

Optional is not available for this Action.

Table 2 describes the Operators that can be used between the Left Value and the Right value in a Rule Template Condition.

The value can be an AVP, another part of a Diameter message, a constant, or an internal variable.

Rule Template Condition Operators
Operator Operator Type Returns true when...
Example of use
equals (==) Generic Value exists AND equals...
@msg.command.code==316
does not equal (!=) Generic Value does not exist OR does not equal...
@msg.command.code!=316
begins with (longest match) (=^^) String Value exists AND begins with (longest match)...
@msg.avp["Destination-Realm"]=^^test
begins with (=^) String Value exists AND begins with...
@msg.avp["Destination-Realm"]=^testlb
does not begin with (!=^) String Value does not exist OR does not begin with...
@msg.avp["Destination-Realm"]!=^testlb
ends with (=$) String Value exists AND ends with...
@msg.avp["Origin-Host"][1]=$entity.com
does not end with (!=$) String Value does not exist OR does not end with...
@msg.avp["Origin-Host"][1]!=$entity.com
regular expression match (=~) String Value exists AND matches the regular expression...
@msg.avp[Session-Id]!=~.*\.example\..*
regular expression does not match (!=~) String Value does not exist OR does not match the regular expression...
@msg.avp["Session-Id"]!=~.*\example\..*
less than (<) Numeric Value exists AND is less than...
@msg.avp["Validity-Time"]<30
greater than (>) Numeric Value exists AND is greater than...
@msg.avp["Validity-Time"]>30
less than or equal to (<=) Numeric Value exists AND is less than or equal to...
@msg.avp["Validity-Time"]<=30
greater than or equal to (>=) Numeric Value exists AND is greater than or equal to...
@msg.avp["Validity-Time"]>=30
is within Subnet Value exists AND is within...
@msg.avp["Served-Party-IP-Address] is within 192.168.0.0/24
is not within Subnet Value does not exist OR is not within...
@msg.avp["Served-Party-IP-Address] is not within 192.168.0.0/24
exists   AVP specified as Left value exists...
@msg.avp["Vendor-Specific-Application"] exists
does not exist   AVP specified as Left value does not exist...
@msg.avp["Vendor-Specific-Application"] does not exist
is true   AVP specified as Left value exists AND it is not empty/non-zero...
@msg.avp["Disconnect-Cause"] is true
is false   AVP specified as Left value does not exist OR it is empty/0...
@msg.avp["Disconnect-Cause"] is false

"is true" and "is false" work only on numbers (Integer32, Integer32, Unsigned32, Unsigned64, Float32, Float64, Enumerated, Time) and strings (OctetString, UTF8String, DiameterIdentity, DiameterURI).

For an IP Address, "is true" always succeeds; the address can be converted to a string that is never empty.

If the condition cannot be evaluated (for example, the AVP does not exist or the xl-value is incompatible), then "is true" will fail and "is false" will succeed.

Based on the type of operator selected, the Left value and the Right value are converted according to the rules in Table 3.

Rule Template Condition Conversion Rules
Left value Type Operator Type Right value Type Conversion
- String - Convert Left value and Right value to strings.
- Numeric - Convert Left value and Right value to numbers.
- Subnet -

Convert Left value to an IP address.

Convert Right value to a subnet

String Generic String No conversion is needed.
Numeric Generic Numeric No conversion is needed.
IP address Generic IP address No conversion is needed.
String Generic Numeric

Convert Left value to a number.

Numeric Generic String Convert Right value to a number.
IP address Generic String Convert Right value to an IP address.
String Generic IP address Convert Left value to an IP address.
None of these cases Conversion cannot be done.
Operators by Type (see also Table 2)
String =~, !=~, =^, =^^, !=^, =$, !=$
Numeric <, >, <=, >=
Subset is within, is not within
Generic ==, !=

The conversion fails if the input value is reasonably not convertible to the new format (such as the numeric input cannot be converted to an IP Address).

If the conversion is impossible or fails, the condition is evaluated to false unless the operator is negated (begins with !, or "is not within").

For float to string conversion, the double argument is rounded and converted to decimal notation in the style [-]ddd.dddddd, with 6 characters of precision. If the conversion does not fit into 21 characters, then it will fail.

For IPv6 to string conversion, the following rules apply:
  • Leading zeros are ignored (01->1)
  • Lowercase to uppercase (ffff->FFFF)
  • 1:0:0:0:0:0:0:0->1:0:0:0:0:0:0:0
  • 1::2->1:0:0:0:0:0:0:2
  • ::ffff->0:0:0:0:0:0:0:FFFF
  • ffff::->FFFF:0:0:0:0:0:0:
  • ::->0:0:0:0:0:0:0:0