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.
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:
|
Format: Pulldown list Range: Right value types are:
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:
Flags R, P, E, and T are supported; r4, r5, r6, and r7 are reserved for future use:
|
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,
Flags V, M and P are supported; r3, r4, r5, r6 and r7 are reserved for future use.
|
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 List includes:
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)
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 ValueFormat: 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.
|
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)
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.
|
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:
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.
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.
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.