Selective Update Examples
The following examples demonstrate selective update configuration values set when running the system configuration script create_config.py.
The examples below generally specify the MtxDiamRoMsg container. However, if an MDC exists that is based upon an MDC used in the diameter_dictionary_base.xml file, you have the option of specifying the custom MDC instead.
- If an MDC field is greater than 1, set it to 1
- If an MDC field in a list is greater than 1, set it to 1
- If an MDC field in an element in a list is greater than 1, set it to 1
- If a field in a list does not exist, copy another field from the top level to it
- If a field in a list in a list is 0, delete the element that the field is in
- Replace one instance of 61 in a string with 04
- Replace all instances of 61 in a string with 04
- Modify field values
- Delete the first 4 characters from a string
- Delete everything in a string before the first digit
- Escape a metacharacter
- Add an Element to UsedQuantityList
- Edit Data in ServiceInfo.DiamPsInfo.TgppSubscriberLocationInfo
- Separate a string formatted with multiple parts
- Extract a string from a delimited value
- Reference a custom field in a custom MultiServiceList MDC
- Identify an MDC field based on byte size and update it
- Identify a field with a regular expression
- Copy a decimal field to fields with different data types
- Specify the type of MDC with "add_if_not_found" method
- Pre-pend the callPartyAddr with CC from mscAddress when AddressType is Unknown
- Onboarding: Create Subscriber and Device (Multi-Request)
- Set a Bit If The Command Is Execute Mode
- Provisioning Request Without Multi-request And Setting Command Fields
- Copy a Field to Main from Three Levels Deep within an MDC
- Delete a Single Element in a List of Scalars
- Delete a Duplicate MSCC Element
If an MDC field is greater than 1, set it to 1
Do you want to define any selective-updates on the Diameter Gateway's output interface (y/n)?y
SelectiveUpdate:DiameterGateway:Output:What are the element IDs? 1001
SelectiveUpdate:DiameterGateway:Output:Element 1001:
Enter an optional description of what this element is doing?
No list:If ExternalServiceType is > 1, then set it to 1.
SelectiveUpdate:DiameterGateway:Output:Element 1001:What is the container's name?MtxDiamRoMsg
SelectiveUpdate:DiameterGateway:Output:Element 1001:What are the selection key IDs?1
SelectiveUpdate:DiameterGateway:Output:Element 1001:SelectionKey 1:What method do you want to perform?greater
SelectiveUpdate:DiameterGateway:Output:Element 1001:SelectionKey 1:What action do you want to take on a match?select
SelectiveUpdate:DiameterGateway:Output:Element 1001:SelectionKey 1:What is the list's name?
SelectiveUpdate:DiameterGateway:Output:Element 1001:SelectionKey 1:What is the field's name?main:ExternalServiceType
SelectiveUpdate:DiameterGateway:Output:Element 1001:SelectionKey 1:What is the field value?1
SelectiveUpdate:DiameterGateway:Output:Element 1001:SelectionKey 1:What is the field mask in hex?
SelectiveUpdate:DiameterGateway:Output:Element 1001:How many operations do you want to enter?1
SelectiveUpdate:DiameterGateway:Output:Element 1001:Operation 1:What operation do you want to perform?set_field
SelectiveUpdate:DiameterGateway:Output:Element 1001:Operation 1:SetField:What is the destination field's name?main:ExternalServiceType
SelectiveUpdate:DiameterGateway:Output:Element 1001:Operation 1:SetField:What is the new value?1
If an MDC field in a list is greater than 1, set it to 1
Do you want to define any selective-updates on the Diameter Gateway's output interface (y/n)?y
SelectiveUpdate:DiameterGateway:Output:What are the element IDs? 1002
SelectiveUpdate:DiameterGateway:Output:Element 1002:
SelectiveUpdate:DiameterGateway:Output:Element 1002:
Enter an optional description of what this element is doing?
Single list:If ServiceId is > 1, then set it to 1.
SelectiveUpdate:DiameterGateway:Output:Element 1002:What is the container's name?MtxDiamRoMsg
SelectiveUpdate:DiameterGateway:Output:Element 1002:What are the selection key IDs?1
SelectiveUpdate:DiameterGateway:Output:Element 1002:SelectionKey 1:What method do you want to perform?greater
SelectiveUpdate:DiameterGateway:Output:Element 1002:SelectionKey 1:What action do you want to take on a match?select
SelectiveUpdate:DiameterGateway:Output:Element 1002:SelectionKey 1:What is the list's name?main:MultiServiceList
SelectiveUpdate:DiameterGateway:Output:Element 1002:SelectionKey 1:What is the field's name?ServiceId
SelectiveUpdate:DiameterGateway:Output:Element 1002:SelectionKey 1:What is the field value?1
SelectiveUpdate:DiameterGateway:Output:Element 1002:SelectionKey 1:What is the field mask in hex?
SelectiveUpdate:DiameterGateway:Output:Element 1002:How many operations do you want to enter?1
SelectiveUpdate:DiameterGateway:Output:Element 1002:Operation 1:What operation do you want to perform?set_field
SelectiveUpdate:DiameterGateway:Output:Element 1002:Operation 1:SetField:What is the destination field's name?selected:ServiceId
SelectiveUpdate:DiameterGateway:Output:Element 1002:Operation 1:SetField:What is the new value?1
If an MDC field in an element in a list is greater than 1, set it to 1
Do you want to define any selective-updates on the Diameter Gateway's output interface (y/n)?y
SelectiveUpdate:DiameterGateway:Output:What are the element IDs? 1003
SelectiveUpdate:DiameterGateway:Output:Element 1003:
Enter an optional description of what this element is doing?
Multiple lists:If ActualDurationQuantity is > 1, then set it to 1.
SelectiveUpdate:DiameterGateway:Output:Element 1003:What is the container's name?MtxDiamRoMsg
SelectiveUpdate:DiameterGateway:Output:Element 1003:What are the selection key IDs?2
SelectiveUpdate:DiameterGateway:Output:Element 1003:SelectionKey 2:What method do you want to perform?all
SelectiveUpdate:DiameterGateway:Output:Element 1003:SelectionKey 2:What action do you want to take on a match?select
SelectiveUpdate:DiameterGateway:Output:Element 1003:SelectionKey 2:What is the list's name?main:MultiServiceList
SelectiveUpdate:DiameterGateway:Output:Element 1003:How many operations do you want to enter?1
SelectiveUpdate:DiameterGateway:Output:Element 1003:Operation 1:What operation do you want to perform?set_field
SelectiveUpdate:DiameterGateway:Output:Element 1003:Operation 1:SetField:What is the destination field's name?selected:ActualDurationQuantity
SelectiveUpdate:DiameterGateway:Output:Element 1003:Operation 1:SetField:What is the new value?1
If a field in a list does not exist, copy another field from the top level to it
ServiceId
field, the ExternalServiceType
field
is copied to the list and named ServiceId
.
Do you want to define any selective-updates on the Diameter Gateway's output interface (y/n)?y
SelectiveUpdate:DiameterGateway:Output:What are the element IDs? 1004
SelectiveUpdate:DiameterGateway:Output:Element 1004:
Enter an optional description of what this element is doing?
If MutiServiceList->ServiceId is not present, copy ExternalServiceType to it.
SelectiveUpdate:DiameterGateway:Output:Element 1004:What is the container's name?MtxDiamRoMsg
SelectiveUpdate:DiameterGateway:Output:Element 1004:What are the selection key IDs?1
SelectiveUpdate:DiameterGateway:Output:Element 1004:SelectionKey 1:What method do you want to perform?not_present
SelectiveUpdate:DiameterGateway:Output:Element 1004:SelectionKey 1:What is the list's name?main:MultiServiceList
SelectiveUpdate:DiameterGateway:Output:Element 1004:SelectionKey 1:What is the field's name?ServiceId
SelectiveUpdate:DiameterGateway:Output:Element 1004:How many operations do you want to enter?1
SelectiveUpdate:DiameterGateway:Output:Element 1004:Operation 1:What operation do you want to perform?copy_field
SelectiveUpdate:DiameterGateway:Output:Element 1004:Operation 1:CopyField:What is the destination field's name?selected:ServiceId
SelectiveUpdate:DiameterGateway:Output:Element 1004:Operation 1:CopyField:What is the source field's name?main:ExternalServiceType
If a field in a list in a list is 0, delete the element that the field is in
In this example, if the
ActualDurationQuantity
field in the
UsedQuantityList
element is zero, the element is deleted.
Do you want to define any selective-updates on the Diameter Gateway's output interface (y/n)?y
SelectiveUpdate:DiameterGateway:Output:What are the element IDs? 1005
SelectiveUpdate:DiameterGateway:Output:Element 1005:
Enter an optional description of what this element is doing?
If ActualDurationQuantity is zero in a UsedQuantityList element, delete the element.
SelectiveUpdate:DiameterGateway:Output:Element 1005:What is the container's name?MtxDiamRoMsg
SelectiveUpdate:DiameterGateway:Output:Element 1005:What are the selection key IDs?1;2
SelectiveUpdate:DiameterGateway:Output:Element 1005:SelectionKey 1:What method do you want to perform?all
SelectiveUpdate:DiameterGateway:Output:Element 1005:SelectionKey 1:What action do you want to take on a match?select
SelectiveUpdate:DiameterGateway:Output:Element 1005:SelectionKey 1:What is the list's name?main:MutliServiceList
SelectiveUpdate:DiameterGateway:Output:Element 1005:SelectionKey 2:What method do you want to perform?equal
SelectiveUpdate:DiameterGateway:Output:Element 1005:SelectionKey 2:What action do you want to take on a match?delete
SelectiveUpdate:DiameterGateway:Output:Element 1005:SelectionKey 2:What is the list's name?selected:UsedQuantityList
SelectiveUpdate:DiameterGateway:Output:Element 1005:SelectionKey 2:What is the field's name?ActualDurationQuantity
SelectiveUpdate:DiameterGateway:Output:Element 1005:SelectionKey 2:What is the field value?0
SelectiveUpdate:DiameterGateway:Output:Element 1005:SelectionKey 2:What is the field mask in hex?
SelectiveUpdate:DiameterGateway:Output:Element 1005:How many operations do you want to enter?0
Replace one instance of 61 in a string with 04
For example, 12461789 would become 12404789. Only one 61 is replaced.
SelectiveUpdate:DiameterGateway:Input:Element 1011:Operation 1:What operation do you want to perform?modify_field SelectiveUpdate:DiameterGateway:Input:Element 1011:Operation 1:ModifyField:What is the field's name?selected:BillingInfo SelectiveUpdate:DiameterGateway:Input:Element 1011:Operation 1:ModifyField:What is the matching string?(.+)61(.+) SelectiveUpdate:DiameterGateway:Input:Element 1011:Operation 1:ModifyField:What is the replacing string?${1}04${2} SelectiveUpdate:DiameterGateway:Input:Element 1011:Operation 1:ModifyField:What options do you want to use?match_default
Replace all instances of 61 in a string with 04
For example, 0161456102 becomes 01041450402.
SelectiveUpdate:DiameterGateway:Input:Element 1011:Operation 1:What operation do you want to perform?modify_field
SelectiveUpdate:DiameterGateway:Input:Element 1011:Operation 1:ModifyField:What is the field's name?selected:BillingInfo
SelectiveUpdate:DiameterGateway:Input:Element 1011:Operation 1:ModifyField:What is the matching string?61
SelectiveUpdate:DiameterGateway:Input:Element 1011:Operation 1:ModifyField:What is the replacing string?04
SelectiveUpdate:DiameterGateway:Input:Element 1011:Operation 1:ModifyField:What options do you want to use?match_default
Modify field values
In this example, if a string starts with
010, change it to 10. For example, the country code in the
CallingStationId
, 010746123461, is changed to 10 (10746123461).
SelectiveUpdate:DiameterGateway:Input:Element 1007:How many operations do you want to enter?1
SelectiveUpdate:DiameterGateway:Input:Element 1007:Operation 1:What operation do you want to perform?modify_field
SelectiveUpdate:DiameterGateway:Input:Element 1007:Operation 1:ModifyField:What is the field's name?main:CallingStationId
SelectiveUpdate:DiameterGateway:Input:Element 1007:Operation 1:ModifyField:What is the matching string?^010
SelectiveUpdate:DiameterGateway:Input:Element 1007:Operation 1:ModifyField:What is the replacing string?10
SelectiveUpdate:DiameterGateway:Input:Element 1007:Operation 1:ModifyField:What options do you want to use?match_default
Delete the first 4 characters from a string
SelectiveUpdate:DiameterGateway:Input:Element 2052:Operation 1:What operation do you want to perform?modify_field
SelectiveUpdate:DiameterGateway:Input:Element 2052:Operation 1:ModifyField:What is the field's name?main:ServiceInfo.DiamPsInfo.ChargingRuleBaseName
SelectiveUpdate:DiameterGateway:Input:Element 2052:Operation 1:ModifyField:What is the matching string?^....
SelectiveUpdate:DiameterGateway:Input:Element 2052:Operation 1:ModifyField:What is the replacing string?
SelectiveUpdate:DiameterGateway:Input:Element 2052:Operation 1:ModifyField:What options do you want to use?match_default
Delete everything in a string before the first digit
SelectiveUpdate:DiameterGateway:Input:Element 2053:Operation 1:What operation do you want to perform?modify_field
SelectiveUpdate:DiameterGateway:Input:Element 2053:Operation 1:ModifyField:What is the field's name?main:ServiceInfo.DiamPsInfo.ChargingRuleBaseName
SelectiveUpdate:DiameterGateway:Input:Element 2053:Operation 1:ModifyField:What is the matching string?^\D*
SelectiveUpdate:DiameterGateway:Input:Element 2053:Operation 1:ModifyField:What is the replacing string?
SelectiveUpdate:DiameterGateway:Input:Element 2053:Operation 1:ModifyField:What options do you want to use?match_default
Escape a metacharacter
In this example, if the
CalledStationId
starts with the metacharacter "+", it is
removed.
SelectiveUpdate:DiameterGateway:Input:Element 1008:Enter an optional description of what this element is doing?
If CalledStationId starts with a +, remove it.
SelectiveUpdate:DiameterGateway:Input:Element 1008:What is the container's name?MtxDiamRoMsg
SelectiveUpdate:DiameterGateway:Input:Element 1008:What are the selection key IDs?1
SelectiveUpdate:DiameterGateway:Input:Element 1008:SelectionKey 1:What method do you want to perform?is_present
SelectiveUpdate:DiameterGateway:Input:Element 1008:SelectionKey 1:What action do you want to take on a match?select
SelectiveUpdate:DiameterGateway:Input:Element 1008:SelectionKey 1:What is the list's name?
SelectiveUpdate:DiameterGateway:Input:Element 1008:SelectionKey 1:What is the field's name?main:CalledStationId
SelectiveUpdate:DiameterGateway:Input:Element 1008:How many operations do you want to enter?1
SelectiveUpdate:DiameterGateway:Input:Element 1008:Operation 1:What operation do you want to perform?modify_field
SelectiveUpdate:DiameterGateway:Input:Element 1008:Operation 1:ModifyField:What is the field's name?main:CalledStationId
SelectiveUpdate:DiameterGateway:Input:Element 1008:Operation 1:ModifyField:What is the matching string?^\+
SelectiveUpdate:DiameterGateway:Input:Element 1008:Operation 1:ModifyField:What is the replacing string?
SelectiveUpdate:DiameterGateway:Input:Element 1008:Operation 1:ModifyField:What options do you want to use?match_default
Add an Element to UsedQuantityList
In this example, an element is added to
UsedQuantityList
.
SelectiveUpdate:DiameterGateway:Input:Element 2103:Enter an optional description of what this element is doing?Add a UsedQuantityList element
SelectiveUpdate:DiameterGateway:Input:Element 2103:What is the container's name?MtxDiamRoMsg
SelectiveUpdate:DiameterGateway:Input:Element 2103:What are the selection key IDs?1;2
SelectiveUpdate:DiameterGateway:Input:Element 2103:SelectionKey 1:What method do you want to perform?all
SelectiveUpdate:DiameterGateway:Input:Element 2103:SelectionKey 1:What action do you want to take on a match?select
SelectiveUpdate:DiameterGateway:Input:Element 2103:SelectionKey 1:What is the list's name?main:MultiServiceList
SelectiveUpdate:DiameterGateway:Input:Element 2103:SelectionKey 2:What method do you want to perform?add_if_not_found
SelectiveUpdate:DiameterGateway:Input:Element 2103:SelectionKey 2:What action do you want to take on a match?select
SelectiveUpdate:DiameterGateway:Input:Element 2103:SelectionKey 2:What is the list's name?selected:UsedQuantityList
# Add a check that will be "not found". Look for a TariffChangeUsage of 9.
SelectiveUpdate:DiameterGateway:Input:Element 2103:SelectionKey 2:What is the field's name?TariffChangeUsage
SelectiveUpdate:DiameterGateway:Input:Element 2103:SelectionKey 2:What is the field value?9
SelectiveUpdate:DiameterGateway:Input:Element 2103:How many operations do you want to enter?2
SelectiveUpdate:DiameterGateway:Input:Element 2103:Operation 1:What operation do you want to perform?set_field
# First change TariffChangeUsage to a valid value. It was added with a value of 9 by the add_if_not_found.
SelectiveUpdate:DiameterGateway:Input:Element 2103:Operation 1:SetField:What is the destination field's name?selected:TariffChangeUsage
# UNIT_BEFORE_TARIFF_CHANGE 0
SelectiveUpdate:DiameterGateway:Input:Element 2103:Operation 1:SetField:What is the new value?0
# Set this element's fields to the desired values.
SelectiveUpdate:DiameterGateway:Input:Element 2103:Operation 2:What operation do you want to perform?set_field
SelectiveUpdate:DiameterGateway:Input:Element 2103:Operation 2:SetField:What is the destination field's name?selected:Quantity
SelectiveUpdate:DiameterGateway:Input:Element 2103:Operation 2:SetField:What is the new value?400
Edit Data in ServiceInfo.DiamPsInfo.TgppSubscriberLocationInfo
If the string is a 15 byte field, truncate the last 7 bytes so that it is an 8 byte field. Then, remove all non-digits from the start of a string.
SelectiveUpdate:DiameterGateway:Input:Element 1300:Enter an optional description of what this element is doing?Fix bad ULI data in ServiceInfo.DiamPsInfo.TgppSubscriberLocationInfo. For example, change from '001300142cf4f6a21300142cf465ff' to '001300142cf4f6a2'
SelectiveUpdate:DiameterGateway:Input:Element 1300:What is the container's name?MtxDiamRoMsg
SelectiveUpdate:DiameterGateway:Input:Element 1300:What are the selection key IDs?1
SelectiveUpdate:DiameterGateway:Input:Element 1300:SelectionKey 1:What method do you want to perform?equal
SelectiveUpdate:DiameterGateway:Input:Element 1300:SelectionKey 1:What is the sequence's name?
SelectiveUpdate:DiameterGateway:Input:Element 1300:SelectionKey 1:What is the field's name?main:ServiceInfo.DiamPsInfo.TgppSubscriberLocationInfo
SelectiveUpdate:DiameterGateway:Input:Element 1300:SelectionKey 1:What is the field value?00
SelectiveUpdate:DiameterGateway:Input:Element 1300:SelectionKey 1:What is the field mask in hex?00
SelectiveUpdate:DiameterGateway:Input:Element 1300:How many operations do you want to enter?2
SelectiveUpdate:DiameterGateway:Input:Element 1300:Operation 1:What operation do you want to perform?modify_field
SelectiveUpdate:DiameterGateway:Input:Element 1300:Operation 1:ModifyField:What is the field's name?main:ServiceInfo.DiamPsInfo.TgppSubscriberLocationInfo
SelectiveUpdate:DiameterGateway:Input:Element 1300:Operation 1:ModifyField:What is the matching string?(^........).......$
SelectiveUpdate:DiameterGateway:Input:Element 1300:Operation 1:ModifyField:What is the replacing string?\1
SelectiveUpdate:DiameterGateway:Input:Element 1300:Operation 1:ModifyField:What options do you want to use?match_default
#
# Now decode the ULI because it was not decoded when the data was too long.
SelectiveUpdate:DiameterGateway:Input:Element 1300:Operation 2:What operation do you want to perform?decode_3gpp_user_location_info
SelectiveUpdate:DiameterGateway:Input:Element 1300:Operation 2:Decode3gppUserLocationInfo:What is the field's name?main:ServiceInfo.DiamPsInfo.TgppSubscriberLocationInfo
#
SelectiveUpdate:DiameterGateway:Input:Element 1301:Enter an optional description of what this element is doing?Remove all non-digits from the start of a string.
SelectiveUpdate:DiameterGateway:Input:Element 1301:What is the container's name?MtxDiamRoMsg
SelectiveUpdate:DiameterGateway:Input:Element 1301:What are the selection key IDs?1
SelectiveUpdate:DiameterGateway:Input:Element 1301:SelectionKey 1:What method do you want to perform?is_present
SelectiveUpdate:DiameterGateway:Input:Element 1301:SelectionKey 1:What is the sequence's name?
SelectiveUpdate:DiameterGateway:Input:Element 1301:SelectionKey 1:What is the field's name?main:ServiceInfo.DiamPsInfo.CalledStationId
SelectiveUpdate:DiameterGateway:Input:Element 1301:How many operations do you want to enter?1
#
SelectiveUpdate:DiameterGateway:Input:Element 1301:Operation 1:What operation do you want to perform?modify_field
SelectiveUpdate:DiameterGateway:Input:Element 1301:Operation 1:ModifyField:What is the field's name?main:ServiceInfo.DiamPsInfo.CalledStationId
SelectiveUpdate:DiameterGateway:Input:Element 1301:Operation 1:ModifyField:What is the matching string?[^0-9]*(.*)
SelectiveUpdate:DiameterGateway:Input:Element 1301:Operation 1:ModifyField:What is the replacing string?\1
SelectiveUpdate:DiameterGateway:Input:Element 1301:Operation 1:ModifyField:What options do you want to use?match_default
Separate a string formatted with multiple parts
In this example, the selective update separates a string with the following format.
prefix, country code, routing code, number, extra
#
SelectiveUpdate:DiameterGateway:Input:Element 1302:Enter an optional description of what this element is doing?Separate string of the format prefix, country code, routing code, number, extra.
# For example: 00 49 D065 176 1234567890123. This is more than 15 digits. The country code is 1-3 digits, so cannot start at the beginning to strip things.
# There is however a pattern to it. We need to know if a selective update can be used to split a string into separate MDC fields as follows:
# 1) The first non-numeric digit is part of the routing code. That's always 4 characters.
# 2) We'd like to separate the above into everything before the first non-numeric, then the four characters including the numeric, and then everything else.
# a. The prefix is always 00, so we can split that easy enough to get the country code
# b. We can use prefix matching so we do not care about the extra characters
SelectiveUpdate:DiameterGateway:Input:Element 1302:What is the container's name?MtxDiamRoMsg
SelectiveUpdate:DiameterGateway:Input:Element 1302:What are the selection key IDs?1
SelectiveUpdate:DiameterGateway:Input:Element 1302:SelectionKey 1:What method do you want to perform?is_present
SelectiveUpdate:DiameterGateway:Input:Element 1302:SelectionKey 1:What is the sequence's name?
SelectiveUpdate:DiameterGateway:Input:Element 1302:SelectionKey 1:What is the field's name?main:CallingStationId
SelectiveUpdate:DiameterGateway:Input:Element 1302:How many operations do you want to enter?6
#
# Copy to MmeName, MmeRealm, PhysicalAccessId
SelectiveUpdate:DiameterGateway:Input:Element 1302:Operation 1:What operation do you want to perform?copy_field
SelectiveUpdate:DiameterGateway:Input:Element 1302:Operation 1:CopyField:What is the destination field's name?main:ServiceInfo.DiamPsInfo.MmeName
SelectiveUpdate:DiameterGateway:Input:Element 1302:Operation 1:CopyField:What is the source field's name?main:CallingStationId
#
SelectiveUpdate:DiameterGateway:Input:Element 1302:Operation 2:What operation do you want to perform?copy_field
SelectiveUpdate:DiameterGateway:Input:Element 1302:Operation 2:CopyField:What is the destination field's name?main:ServiceInfo.DiamPsInfo.MmeRealm
SelectiveUpdate:DiameterGateway:Input:Element 1302:Operation 2:CopyField:What is the source field's name?main:CallingStationId
#
SelectiveUpdate:DiameterGateway:Input:Element 1302:Operation 3:What operation do you want to perform?copy_field
SelectiveUpdate:DiameterGateway:Input:Element 1302:Operation 3:CopyField:What is the destination field's name?main:ServiceInfo.DiamPsInfo.PhysicalAccessId
SelectiveUpdate:DiameterGateway:Input:Element 1302:Operation 3:CopyField:What is the source field's name?main:CallingStationId
#
# Have MmeName contain everything up to the routing code
SelectiveUpdate:DiameterGateway:Input:Element 1302:Operation 4:What operation do you want to perform?modify_field
SelectiveUpdate:DiameterGateway:Input:Element 1302:Operation 4:ModifyField:What is the field's name?main:ServiceInfo.DiamPsInfo.MmeName
SelectiveUpdate:DiameterGateway:Input:Element 1302:Operation 4:ModifyField:What is the matching string?([0-9 ]*) ([A-Z][0-9]*) (.*)
SelectiveUpdate:DiameterGateway:Input:Element 1302:Operation 4:ModifyField:What is the replacing string?\1
SelectiveUpdate:DiameterGateway:Input:Element 1302:Operation 4:ModifyField:What options do you want to use?match_default
#
# Have MmeRealm contain everything the routing code
SelectiveUpdate:DiameterGateway:Input:Element 1302:Operation 5:What operation do you want to perform?modify_field
SelectiveUpdate:DiameterGateway:Input:Element 1302:Operation 5:ModifyField:What is the field's name?main:ServiceInfo.DiamPsInfo.MmeRealm
SelectiveUpdate:DiameterGateway:Input:Element 1302:Operation 5:ModifyField:What is the matching string?([0-9 ]*) ([A-Z][0-9]*) (.*)
SelectiveUpdate:DiameterGateway:Input:Element 1302:Operation 5:ModifyField:What is the replacing string?\2
SelectiveUpdate:DiameterGateway:Input:Element 1302:Operation 5:ModifyField:What options do you want to use?match_default
#
# Have PhysicalAccessId contain everything after the routing code
SelectiveUpdate:DiameterGateway:Input:Element 1302:Operation 6:What operation do you want to perform?modify_field
SelectiveUpdate:DiameterGateway:Input:Element 1302:Operation 6:ModifyField:What is the field's name?main:ServiceInfo.DiamPsInfo.PhysicalAccessId
SelectiveUpdate:DiameterGateway:Input:Element 1302:Operation 6:ModifyField:What is the matching string?([0-9 ]*) ([A-Z][0-9]*) (.*)
SelectiveUpdate:DiameterGateway:Input:Element 1302:Operation 6:ModifyField:What is the replacing string?\3
SelectiveUpdate:DiameterGateway:Input:Element 1302:Operation 6:ModifyField:What options do you want to use?match_default
>66 MmeName STRING 0 0 0 1 (size=6, data=00 49)
>67 MmeRealm STRING 0 0 0 1 (size=5, data=D065)
>75 PhysicalAccessId STRING 0 0 0 1 (size=18, data=176 1234567890123)
Extract a string from a delimited value
ServiceParameterInfoList
, which is a list of
MtxDiamServiceParameterInfoData
structs which contain two
fields: ServiceParameterType
and
ServiceParameterValue
, is parsed. The selective update looks
for the entries where ServiceParameterType
is 2. If found, it
removes all leading numeric digits up to and including a colon (":") in the
ServiceParameterValue
. For example, if the
ServiceParameterValue
has a value of "123:456", it will be
modified to contain "456".
SelectiveUpdate:DiameterGateway:Input:Element 9001:Enter an optional description of what this element is doing?Use modify_field on a blob in the ServiceParameterInfoList
SelectiveUpdate:DiameterGateway:Input:Element 9001:What is the container's name?MtxDiamRoMsg
SelectiveUpdate:DiameterGateway:Input:Element 9001:What are the selection key IDs?1
SelectiveUpdate:DiameterGateway:Input:Element 9001:SelectionKey 1:What method do you want to perform?equal
SelectiveUpdate:DiameterGateway:Input:Element 9001:SelectionKey 1:What is the sequence's name?main:ServiceParameterInfoList
SelectiveUpdate:DiameterGateway:Input:Element 9001:SelectionKey 1:What is the field's name?ServiceParameterType
SelectiveUpdate:DiameterGateway:Input:Element 9001:SelectionKey 1:What is the field value?2
SelectiveUpdate:DiameterGateway:Input:Element 9001:SelectionKey 1:What is the field mask in hex?ffffffff
SelectiveUpdate:DiameterGateway:Input:Element 9001:SelectionKey 1:What action do you want to take on a match?select
SelectiveUpdate:DiameterGateway:Input:Element 9001:How many operations do you want to enter?1
SelectiveUpdate:DiameterGateway:Input:Element 9001:Operation 1:What operation do you want to perform?modify_field
SelectiveUpdate:DiameterGateway:Input:Element 9001:Operation 1:ModifyField:What is the field's name?selected:ServiceParameterValue
SelectiveUpdate:DiameterGateway:Input:Element 9001:Operation 1:ModifyField:What is the matching string?[0-9]+:(.*)
SelectiveUpdate:DiameterGateway:Input:Element 9001:Operation 1:ModifyField:What is the replacing string?\1
SelectiveUpdate:DiameterGateway:Input:Element 9001:Operation 1:ModifyField:What options do you want to use?match_default
Reference a custom field in a custom MultiServiceList MDC
QuotaHoldingTime
to a custom MultiServiceList
MDC.
SelectiveUpdate:DiameterGateway:Output:Element 3007:Enter an optional description of what this element is doing?Set Holding-Time AVP
SelectiveUpdate:DiameterGateway:Output:Element 3007:What is the container's name?MtxDiamRoMsg
SelectiveUpdate:DiameterGateway:Output:Element 3007:What are the selection key IDs?1;2
SelectiveUpdate:DiameterGateway:Output:Element 3007:SelectionKey 1:What method do you want to perform?equal
SelectiveUpdate:DiameterGateway:Output:Element 3007:SelectionKey 1:What is the sequence's name?
SelectiveUpdate:DiameterGateway:Output:Element 3007:SelectionKey 1:What is the field's name?main:ServiceContextId
SelectiveUpdate:DiameterGateway:Output:Element 3007:SelectionKey 1:What is the field [email protected]
SelectiveUpdate:DiameterGateway:Output:Element 3007:SelectionKey 1:What is the field mask in hex?
SelectiveUpdate:DiameterGateway:Output:Element 3007:SelectionKey 2:What method do you want to perform?all
SelectiveUpdate:DiameterGateway:Output:Element 3007:SelectionKey 2:What is the sequence's name?main:MultiServiceList
SelectiveUpdate:DiameterGateway:Output:Element 3007:SelectionKey 2:What action do you want to take on a match?select
SelectiveUpdate:DiameterGateway:Output:Element 3007:How many operations do you want to enter?1
SelectiveUpdate:DiameterGateway:Output:Element 3007:Operation 1:What operation do you want to perform?copy_field
SelectiveUpdate:DiameterGateway:Output:Element 3007:Operation 1:CopyField:What is the destination field's name?selected:MtxMultiServiceData:HoldingTime
SelectiveUpdate:DiameterGateway:Output:Element 3007:Operation 1:CopyField:What is the source field's name?selected:QuotaHoldingTime
Identify an MDC field based on byte size and update it
CalledStationId
) is less than 4
bytes, add a prefix to it. This update requires two elements. This example uses a
field named TempString
in MyMtxDiamRoMsg that can be any unused
string field. The process is: - Copy
CalledStationId
toTempString
- Delete up to the first 4 characters
of
TempString
and add a prefix ofABC
. - Check if
TempString
=ABC
. - Add the prefix
001234
toCalledStationId
SelectiveUpdate:DiameterGateway:Input:Element 2080:Enter an optional description of what this element is doing?Test if a CalledStationId is less than 4 bytes.
SelectiveUpdate:DiameterGateway:Input:Element 2080:What is the container's name?MyMtxDiamRoMsg
SelectiveUpdate:DiameterGateway:Input:Element 2080:What are the selection key IDs?1
SelectiveUpdate:DiameterGateway:Input:Element 2080:SelectionKey 1:What method do you want to perform?is_present
SelectiveUpdate:DiameterGateway:Input:Element 2080:SelectionKey 1:What is the sequence's name?
SelectiveUpdate:DiameterGateway:Input:Element 2080:SelectionKey 1:What is the field's name?main:ServiceInfo.DiamPsInfo.CalledStationId
SelectiveUpdate:DiameterGateway:Input:Element 2080:How many operations do you want to enter?2
SelectiveUpdate:DiameterGateway:Input:Element 2080:Operation 1:What operation do you want to perform?copy_field
SelectiveUpdate:DiameterGateway:Input:Element 2080:Operation 1:CopyField:What is the destination field's name?main:TempString
SelectiveUpdate:DiameterGateway:Input:Element 2080:Operation 1:CopyField:What is the source field's name?main:ServiceInfo.DiamPsInfo.CalledStationId
SelectiveUpdate:DiameterGateway:Input:Element 2080:Operation 2:What operation do you want to perform?modify_field
SelectiveUpdate:DiameterGateway:Input:Element 2080:Operation 2:ModifyField:What is the field's name?main:TempString
SelectiveUpdate:DiameterGateway:Input:Element 2080:Operation 2:ModifyField:What is the matching string?^.{1,4}(.*)
SelectiveUpdate:DiameterGateway:Input:Element 2080:Operation 2:ModifyField:What is the replacing string?ABC${1}
SelectiveUpdate:DiameterGateway:Input:Element 2080:Operation 2:ModifyField:What options do you want to use?match_default #
SelectiveUpdate:DiameterGateway:Input:Element 2081:Enter an optional description of what this element is doing?Test if a TempString is "ABC" then add 001234 to CalledStationId
SelectiveUpdate:DiameterGateway:Input:Element 2081:What is the container's name?MyMtxDiamRoMsg
SelectiveUpdate:DiameterGateway:Input:Element 2081:What are the selection key IDs?1
SelectiveUpdate:DiameterGateway:Input:Element 2081:SelectionKey 1:What method do you want to perform?equal
SelectiveUpdate:DiameterGateway:Input:Element 2081:SelectionKey 1:What is the sequence's name?
SelectiveUpdate:DiameterGateway:Input:Element 2081:SelectionKey 1:What is the field's name?main:TempString
SelectiveUpdate:DiameterGateway:Input:Element 2081:SelectionKey 1:What is the field value?ABC
SelectiveUpdate:DiameterGateway:Input:Element 2081:SelectionKey 1:What is the field mask in hex?
SelectiveUpdate:DiameterGateway:Input:Element 2081:How many operations do you want to enter?1
SelectiveUpdate:DiameterGateway:Input:Element 2081:Operation 1:What operation do you want to perform?modify_field
SelectiveUpdate:DiameterGateway:Input:Element 2081:Operation 1:ModifyField:What is the field's name?main:ServiceInfo.DiamPsInfo.CalledStationId
SelectiveUpdate:DiameterGateway:Input:Element 2081:Operation 1:ModifyField:What is the matching string?(^.*)
SelectiveUpdate:DiameterGateway:Input:Element 2081:Operation 1:ModifyField:What is the replacing string?001234${1}
SelectiveUpdate:DiameterGateway:Input:Element 2081:Operation 1:ModifyField:What options do you want to use?match_default
Identify a field with a regular expression
main:FieldString
has a value of
"inputString", the regex search on "Str" will identify the
main:FieldString
and perform the operations.
SelectiveUpdate:DiameterGateway:Input:Element 1100150:Enter an optional description of what this element is doing?regex_search
SelectiveUpdate:DiameterGateway:Input:Element 1100150:What is the container's name?TestFieldType
SelectiveUpdate:DiameterGateway:Input:Element 1100150:What are the selection key IDs?1
SelectiveUpdate:DiameterGateway:Input:Element 1100150:SelectionKey 1:What method do you want to perform?regex_search
SelectiveUpdate:DiameterGateway:Input:Element 1100150:SelectionKey 1:What is the sequence's name?
SelectiveUpdate:DiameterGateway:Input:Element 1100150:SelectionKey 1:What is the field's name?main:FieldString
SelectiveUpdate:DiameterGateway:Input:Element 1100150:SelectionKey 1:What is the field value?Str
SelectiveUpdate:DiameterGateway:Input:Element 1100150:SelectionKey 1:What regular expression options do you want to use?match_default
SelectiveUpdate:DiameterGateway:Input:Element 1100150:How many operations do you want to enter?1
SelectiveUpdate:DiameterGateway:Input:Element 1100150:Operation 1:What operation do you want to perform?set_field
SelectiveUpdate:DiameterGateway:Input:Element 1100150:Operation 1:SetField:What is the destination field's name?main:FieldUInt16
SelectiveUpdate:DiameterGateway:Input:Element 1100150:Operation 1:SetField:What is the new value?1100150
Copy a decimal field to fields with different data types
- DECIMAL
- INT8
- INT16
- INT32
- INT64
- UINT8
- UINT16
- UINT32
- UINT64
SelectiveUpdate:DiameterGateway:Input:Element 2040060:How manyoperations do you want to enter?8
SelectiveUpdate:DiameterGateway:Input:Element 2040060:Operation1:What operation do you want to perform?copy_field
SelectiveUpdate:DiameterGateway:Input:Element 2040060:Operation1:CopyField:What is the destination field's name?main:FieldInt8
SelectiveUpdate:DiameterGateway:Input:Element 2040060:Operation1:CopyField:What is the source field's name?main:FieldDecimal
SelectiveUpdate:DiameterGateway:Input:Element 2040060:Operation2:What operation do you want to perform?copy_field
SelectiveUpdate:DiameterGateway:Input:Element 2040060:Operation2:CopyField:What is the destination field's name?main:FieldInt16
SelectiveUpdate:DiameterGateway:Input:Element 2040060:Operation2:CopyField:What is the source field's name?main:FieldDecimal
SelectiveUpdate:DiameterGateway:Input:Element 2040060:Operation3:What operation do you want to perform?copy_field
SelectiveUpdate:DiameterGateway:Input:Element 2040060:Operation3:CopyField:What is the destination field's name?main:FieldInt32
SelectiveUpdate:DiameterGateway:Input:Element 2040060:Operation3:CopyField:What is the source field's name?main:FieldDecimal
SelectiveUpdate:DiameterGateway:Input:Element 2040060:Operation4:What operation do you want to perform?copy_field
SelectiveUpdate:DiameterGateway:Input:Element 2040060:Operation4:CopyField:What is the destination field's name?main:FieldInt64
SelectiveUpdate:DiameterGateway:Input:Element 2040060:Operation4:CopyField:What is the source field's name?main:FieldDecimal
SelectiveUpdate:DiameterGateway:Input:Element 2040060:Operation5:What operation do you want to perform?copy_field
SelectiveUpdate:DiameterGateway:Input:Element 2040060:Operation5:CopyField:What is the destination field's name?main:FieldUInt8
SelectiveUpdate:DiameterGateway:Input:Element 2040060:Operation5:CopyField:What is the source field's name?main:FieldDecimal
SelectiveUpdate:DiameterGateway:Input:Element 2040060:Operation6:What operation do you want to perform?copy_field
SelectiveUpdate:DiameterGateway:Input:Element 2040060:Operation6:CopyField:What is the destination field's name?main:FieldUInt16
SelectiveUpdate:DiameterGateway:Input:Element 2040060:Operation6:CopyField:What is the source field's name?main:FieldDecimal
SelectiveUpdate:DiameterGateway:Input:Element 2040060:Operation7:What operation do you want to perform?copy_field
SelectiveUpdate:DiameterGateway:Input:Element 2040060:Operation7:CopyField:What is the destination field's name?main:FieldUInt32
SelectiveUpdate:DiameterGateway:Input:Element 2040060:Operation7:CopyField:What is the source field's name?main:FieldDecimal
SelectiveUpdate:DiameterGateway:Input:Element 2040060:Operation8:What operation do you want to perform?copy_field
SelectiveUpdate:DiameterGateway:Input:Element 2040060:Operation8:CopyField:What is the destination field's name?main:FieldUInt64
SelectiveUpdate:DiameterGateway:Input:Element 2040060:Operation8:CopyField:What is the source field's name?main:FieldDecimal
Specify the type of MDC with "add_if_not_found" method
- TestListOfFieldType
FieldKnownStructList
(list of structs namedTestSimpleData
)
- TestSimpleData
Type
(unsigned int32)Amount
(signed int64)
- TestDeviceData (based upon
TestSimpleData).
DeviceType
(unsigned int32)DeviceId
(unsigned int64)-
DeviceArray
(array of structs namedTestSimpleData
)
- TestSubContainer2 (based upon
TestDeviceData).
- Type (unsigned int32)
- amount (signed int64)
This selective update tests if the TestListOfFieldType
FieldKnownStructList
has an element with
TestSimpleData::Type == 3
. If it does not, then a new MDC,
TestSubContainer2, is appended to the list. This new element is initialized by
different operations so that it has a Type
of 3 and an
Amount
of 100.
TestSimpleData
. Because there is more than one MDC
available (TestDeviceData and TestSubContainer2), create_config.py asks the
question:
What MDC do you want to use for the new element?
In this example, "TestSubContainer2" is the MDC and that is the type that is added. After it is added, the operations set the fields in TestSubContainer2.
SelectiveUpdate:DiameterGateway:Input:Element 1033000:Enter an optional description of what this element is doing?Basic add_if_not_found but specifying the new element's MDC.
SelectiveUpdate:DiameterGateway:Input:Element 1033000:What is the container's name?TestListOfFieldType
SelectiveUpdate:DiameterGateway:Input:Element 1033000:What are the selection key IDs?1
SelectiveUpdate:DiameterGateway:Input:Element 1033000:SelectionKey 1:What method do you want to perform?add_if_not_found
SelectiveUpdate:DiameterGateway:Input:Element 1033000:SelectionKey 1:What is the sequence's name?main:FieldKnownStructList
SelectiveUpdate:DiameterGateway:Input:Element 1033000:SelectionKey 1:What is the field's name?Type
SelectiveUpdate:DiameterGateway:Input:Element 1033000:SelectionKey 1:What is the field value?3
SelectiveUpdate:DiameterGateway:Input:Element 1033000:SelectionKey 1:What MDC do you want to use for the new element?TestSubContainer2
SelectiveUpdate:DiameterGateway:Input:Element 1033000:SelectionKey 1:What action do you want to take on a match?select
SelectiveUpdate:DiameterGateway:Input:Element 1033000:How many operations do you want to enter?2
SelectiveUpdate:DiameterGateway:Input:Element 1033000:Operation 1:What operation do you want to perform?set_field
SelectiveUpdate:DiameterGateway:Input:Element 1033000:Operation 1:SetField:What is the destination field's name?selected:Type
SelectiveUpdate:DiameterGateway:Input:Element 1033000:Operation 1:SetField:What is the new value?3
SelectiveUpdate:DiameterGateway:Input:Element 1033000:Operation 2:What operation do you want to perform?set_field
SelectiveUpdate:DiameterGateway:Input:Element 1033000:Operation 2:SetField:What is the destination field's name?selected:Amount
SelectiveUpdate:DiameterGateway:Input:Element 1033000:Operation 2:SetField:What is the new value?100
Pre-pend the callPartyAddr with CC from mscAddress when AddressType is Unknown
In this example, if the NoA (TON) is unknown and the mscAddress
does not start with 965 (Kuwait), then copy either "1", or
"20, or "21.", or "22.", and so forth.
SelectiveUpdate:ChargingServer:CamelToRating:What are the element IDs?9999
SelectiveUpdate:ChargingServer:CamelToRating:Element 9999:Enter an optional description of what this element is doing?Pre-pend callPartyAddr with CC from mscAddress when AddressType is Unknown
SelectiveUpdate:ChargingServer:CamelToRating:Element 9999:What is the container's name?MtxTcapMsg
SelectiveUpdate:ChargingServer:CamelToRating:Element 9999:What are the selection key IDs?1;2
SelectiveUpdate:ChargingServer:CamelToRating:Element 9999:SelectionKey 1:What method do you want to perform?equal
SelectiveUpdate:ChargingServer:CamelToRating:Element 9999:SelectionKey 1:What is the sequence's name?
SelectiveUpdate:ChargingServer:CamelToRating:Element 9999:SelectionKey 1:What is the field's name?main:RatingMsg.ServiceInfo.VcsInfo.CalledIsupAddressType
SelectiveUpdate:ChargingServer:CamelToRating:Element 9999:SelectionKey 1:What is the field value?2
SelectiveUpdate:ChargingServer:CamelToRating:Element 9999:SelectionKey 1:What is the field mask in hex?
SelectiveUpdate:ChargingServer:CamelToRating:Element 9999:SelectionKey 2:What method do you want to perform?not_equal
SelectiveUpdate:ChargingServer:CamelToRating:Element 9999:SelectionKey 2:What is the sequence's name?
SelectiveUpdate:ChargingServer:CamelToRating:Element 9999:SelectionKey 2:What is the field's name?main:RatingMsg.ServiceInfo.VcsInfo.MscAddress
SelectiveUpdate:ChargingServer:CamelToRating:Element 9999:SelectionKey 2:What is the field value?965
SelectiveUpdate:ChargingServer:CamelToRating:Element 9999:SelectionKey 2:What is the field mask in hex?FFFFFF
SelectiveUpdate:ChargingServer:CamelToRating:Element 9999:How many operations do you want to enter?4
SelectiveUpdate:ChargingServer:CamelToRating:Element 9999:Operation 1:What operation do you want to perform?copy_field
SelectiveUpdate:ChargingServer:CamelToRating:Element 9999:Operation 1:CopyField:What is the destination field's name?main:RatingMsg.MyDiamRoMsg:iddCCNumber
SelectiveUpdate:ChargingServer:CamelToRating:Element 9999:Operation 1:CopyField:What is the source field's name?main:RatingMsg.MyDiamRoMsg:mscAddress
SelectiveUpdate:ChargingServer:CamelToRating:Element 9999:Operation 2:What operation do you want to perform?modify_field
SelectiveUpdate:ChargingServer:CamelToRating:Element 9999:Operation 2:ModifyField:What is the field's name?main:RatingMsg.MyDiamRoMsg:iddCCNumber
SelectiveUpdate:ChargingServer:CamelToRating:Element 9999:Operation 2:ModifyField:What is the matching string?(1|2[078]|2[^078].|3[578].|3[^578]|42.|4[^2]|5[09].|5[^09]|6[789]|6[^789].|7|8[0578].|8[^0578]|9[679].|9[^679]).*
SelectiveUpdate:ChargingServer:CamelToRating:Element 9999:Operation 2:ModifyField:What is the replacing string?\1
SelectiveUpdate:ChargingServer:CamelToRating:Element 9999:Operation 2:ModifyField:What options do you want to use?match_default
SelectiveUpdate:ChargingServer:CamelToRating:Element 9999:Operation 3:What operation do you want to perform?concat_field
SelectiveUpdate:ChargingServer:CamelToRating:Element 9999:Operation 3:ConcatField:What is the destination field's name?main:RatingMsg.MyDiamRoMsg:iddCCNumber
SelectiveUpdate:ChargingServer:CamelToRating:Element 9999:Operation 3:ConcatField:What is the source field's name?main:RatingMsg.CalledStationId
SelectiveUpdate:ChargingServer:CamelToRating:Element 9999:Operation 4:What operation do you want to perform?modify_field
SelectiveUpdate:ChargingServer:CamelToRating:Element 9999:Operation 4:ModifyField:What is the field's name?main:RatingMsg.CalledStationId
SelectiveUpdate:ChargingServer:CamelToRating:Element 9999:Operation 4:ModifyField:What is the matching string?^
SelectiveUpdate:ChargingServer:CamelToRating:Element 9999:Operation 4:ModifyField:What is the replacing string?00
SelectiveUpdate:ChargingServer:CamelToRating:Element 9999:Operation 4:ModifyField:What options do you want to use?match_default
Onboarding: Create Subscriber and Device (Multi-Request)
If a multi-request is received that contains a create command, then this is an onboarding scenario. Set a bit in the message and then use that bit to set other fields. Clear the bit at the end.
SelectiveUpdate:MdcGateway:Input:Element 1:Enter an optional description of what this element is doing?Set field if onboarding
SelectiveUpdate:MdcGateway:Input:Element 1:What is the container's name?MtxOpMsg
SelectiveUpdate:MdcGateway:Input:Element 1:What are the selection key IDs?1;2
SelectiveUpdate:MdcGateway:Input:Element 1:SelectionKey 1:What method do you want to perform?all
SelectiveUpdate:MdcGateway:Input:Element 1:SelectionKey 1:What action do you want to take on a match?save
SelectiveUpdate:MdcGateway:Input:Element 1:SelectionKey 1:What is the sequence's name?main:Request.MtxRequestMulti:RequestList
SelectiveUpdate:MdcGateway:Input:Element 1:SelectionKey 2:What method do you want to perform?is_present
SelectiveUpdate:MdcGateway:Input:Element 1:SelectionKey 2:What action do you want to take on a match?
SelectiveUpdate:MdcGateway:Input:Element 1:SelectionKey 2:What is the sequence's name?
SelectiveUpdate:MdcGateway:Input:Element 1:SelectionKey 2:What is the field's name?saved:MtxRequestSubscriberCreate:ExternalId
SelectiveUpdate:MdcGateway:Input:Element 1:How many operations do you want to enter?1
SelectiveUpdate:MdcGateway:Input:Element 1:Operation 1:What operation do you want to perform?set_field
SelectiveUpdate:MdcGateway:Input:Element 1:Operation 1:SetField:What is the destination field's name?main:TaskMsgRdmId
SelectiveUpdate:MdcGateway:Input:Element 1:Operation 1:SetField:What is the new value?1
SelectiveUpdate:MdcGateway:Input:Element 2:Enter an optional description of what this element is doing?If onboarding base plan then set preactive field
SelectiveUpdate:MdcGateway:Input:Element 2:What is the container's name?MtxOpMsg
SelectiveUpdate:MdcGateway:Input:Element 2:What are the selection key IDs?1;2;3;4
SelectiveUpdate:MdcGateway:Input:Element 2:SelectionKey 1:What method do you want to perform?equal
SelectiveUpdate:MdcGateway:Input:Element 2:SelectionKey 1:What action do you want to take on a match?
SelectiveUpdate:MdcGateway:Input:Element 2:SelectionKey 1:What is the sequence's name?
SelectiveUpdate:MdcGateway:Input:Element 2:SelectionKey 1:What is the field's name?main:TaskMsgRdmId
SelectiveUpdate:MdcGateway:Input:Element 2:SelectionKey 1:What is the field value?1
SelectiveUpdate:MdcGateway:Input:Element 2:SelectionKey 1:What is the field mask in hex?
SelectiveUpdate:MdcGateway:Input:Element 2:SelectionKey 2:What method do you want to perform?all
SelectiveUpdate:MdcGateway:Input:Element 2:SelectionKey 2:What action do you want to take on a match?save
SelectiveUpdate:MdcGateway:Input:Element 2:SelectionKey 2:What is the sequence's name?main:Request.MtxRequestMulti:RequestList
SelectiveUpdate:MdcGateway:Input:Element 2:SelectionKey 3:What method do you want to perform?all
SelectiveUpdate:MdcGateway:Input:Element 2:SelectionKey 3:What action do you want to take on a match?select
SelectiveUpdate:MdcGateway:Input:Element 2:SelectionKey 3:What is the sequence's name?saved:MtxRequestSubscriberPurchaseOffer:OfferRequestArray
SelectiveUpdate:MdcGateway:Input:Element 2:SelectionKey 4:What method do you want to perform?equal
SelectiveUpdate:MdcGateway:Input:Element 2:SelectionKey 4:What action do you want to take on a match?
SelectiveUpdate:MdcGateway:Input:Element 2:SelectionKey 4:What is the sequence's name?
SelectiveUpdate:MdcGateway:Input:Element 2:SelectionKey 4:What is the field's name?selected:ExternalId
SelectiveUpdate:MdcGateway:Input:Element 2:SelectionKey 4:What is the field value?BasePlan
SelectiveUpdate:MdcGateway:Input:Element 2:SelectionKey 4:What is the field mask in hex?ffffffffffffffff
SelectiveUpdate:MdcGateway:Input:Element 2:How many operations do you want to enter?1
SelectiveUpdate:MdcGateway:Input:Element 2:Operation 1:What operation do you want to perform?set_field
SelectiveUpdate:MdcGateway:Input:Element 2:Operation 1:SetField:What is the destination field's name?selected:PreActiveState
SelectiveUpdate:MdcGateway:Input:Element 2:Operation 1:SetField:What is the new value?1
In this part of this selective update, set onboarding items are cleared.
SelectiveUpdate:MdcGateway:Input:Element 5999:Enter an optional description of what this element is doing?Set field if onboarding
SelectiveUpdate:MdcGateway:Input:Element 5999:What is the container's name?MtxOpMsg
SelectiveUpdate:MdcGateway:Input:Element 5999:What are the selection key IDs?1;2
SelectiveUpdate:MdcGateway:Input:Element 5999:SelectionKey 1:What method do you want to perform?all
SelectiveUpdate:MdcGateway:Input:Element 5999:SelectionKey 1:What action do you want to take on a match?save
SelectiveUpdate:MdcGateway:Input:Element 5999:SelectionKey 1:What is the sequence's name?main:Request.MtxRequestMulti:RequestList
SelectiveUpdate:MdcGateway:Input:Element 5999:SelectionKey 2:What method do you want to perform?is_present
SelectiveUpdate:MdcGateway:Input:Element 5999:SelectionKey 2:What action do you want to take on a match?
SelectiveUpdate:MdcGateway:Input:Element 5999:SelectionKey 2:What is the sequence's name?
SelectiveUpdate:MdcGateway:Input:Element 5999:SelectionKey 2:What is the field's name?saved:MtxRequestSubscriberCreate:ExternalId
SelectiveUpdate:MdcGateway:Input:Element 5999:How many operations do you want to enter?1
SelectiveUpdate:MdcGateway:Input:Element 5999:Operation 1:What operation do you want to perform?delete_field
SelectiveUpdate:MdcGateway:Input:Element 5999:Operation 1:DeleteField:What is the field's name?main:TaskMsgRdmId
Set a Bit If The Command Is Execute Mode
Take special actions in each offer if in execute mode (the only way to manage pre-active offer AoC queries).
In this part, if there is an AoC, then set a field in the purchase offer to detect and take action on pre-active offers (which do not report recurring charges on AoC). This is a multi-request.
SelectiveUpdate:MdcGateway:Input:Element 51:Enter an optional description of what this element is doing?If AoC then set offer priority
SelectiveUpdate:MdcGateway:Input:Element 51:What is the container's name?MtxOpMsg
SelectiveUpdate:MdcGateway:Input:Element 51:What are the selection key IDs?1;2;3
SelectiveUpdate:MdcGateway:Input:Element 51:SelectionKey 1:What method do you want to perform?equal
SelectiveUpdate:MdcGateway:Input:Element 51:SelectionKey 1:What action do you want to take on a match?
SelectiveUpdate:MdcGateway:Input:Element 51:SelectionKey 1:What is the sequence's name?
SelectiveUpdate:MdcGateway:Input:Element 51:SelectionKey 1:What is the field's name?main:Request.ExecuteMode
SelectiveUpdate:MdcGateway:Input:Element 51:SelectionKey 1:What is the field value?2
SelectiveUpdate:MdcGateway:Input:Element 51:SelectionKey 1:What is the field mask in hex?
SelectiveUpdate:MdcGateway:Input:Element 51:SelectionKey 2:What method do you want to perform?all
SelectiveUpdate:MdcGateway:Input:Element 51:SelectionKey 2:What action do you want to take on a match?save
SelectiveUpdate:MdcGateway:Input:Element 51:SelectionKey 2:What is the sequence's name?main:Request.MtxRequestMulti:RequestList
SelectiveUpdate:MdcGateway:Input:Element 51:SelectionKey 3:What method do you want to perform?all
SelectiveUpdate:MdcGateway:Input:Element 51:SelectionKey 3:What action do you want to take on a match?select
SelectiveUpdate:MdcGateway:Input:Element 51:SelectionKey 3:What is the sequence's name?saved:MtxRequestSubscriberPurchaseOffer:OfferRequestArray
SelectiveUpdate:MdcGateway:Input:Element 51:How many operations do you want to enter?1
SelectiveUpdate:MdcGateway:Input:Element 51:Operation 1:What operation do you want to perform?set_field
SelectiveUpdate:MdcGateway:Input:Element 51:Operation 1:SetField:What is the destination field's name?selected:Attr.OkwPurchasedOfferExtension:Priority
SelectiveUpdate:MdcGateway:Input:Element 51:Operation 1:SetField:What is the new value?12345
SelectiveUpdate:MdcGateway:Input:Element 52:Enter an optional description of what this element is doing?If AoC then set offer priority
SelectiveUpdate:MdcGateway:Input:Element 52:What is the container's name?MtxOpMsg
SelectiveUpdate:MdcGateway:Input:Element 52:What are the selection key IDs?1;3
SelectiveUpdate:MdcGateway:Input:Element 52:SelectionKey 1:What method do you want to perform?equal
SelectiveUpdate:MdcGateway:Input:Element 52:SelectionKey 1:What action do you want to take on a match?
SelectiveUpdate:MdcGateway:Input:Element 52:SelectionKey 1:What is the sequence's name?
SelectiveUpdate:MdcGateway:Input:Element 52:SelectionKey 1:What is the field's name?main:Request.ExecuteMode
SelectiveUpdate:MdcGateway:Input:Element 52:SelectionKey 1:What is the field value?2
SelectiveUpdate:MdcGateway:Input:Element 52:SelectionKey 1:What is the field mask in hex?
SelectiveUpdate:MdcGateway:Input:Element 52:SelectionKey 3:What method do you want to perform?all
SelectiveUpdate:MdcGateway:Input:Element 52:SelectionKey 3:What action do you want to take on a match?select
SelectiveUpdate:MdcGateway:Input:Element 52:SelectionKey 3:What is the sequence's name?main:Request.MtxRequestSubscriberPurchaseOffer:OfferRequestArray
SelectiveUpdate:MdcGateway:Input:Element 52:How many operations do you want to enter?1
SelectiveUpdate:MdcGateway:Input:Element 52:Operation 1:What operation do you want to perform?set_field
SelectiveUpdate:MdcGateway:Input:Element 52:Operation 1:SetField:What is the destination field's name?selected:Attr.OkwPurchasedOfferExtension:Priority
SelectiveUpdate:MdcGateway:Input:Element 52:Operation 1:SetField:What is the new value?12345
Provisioning Request Without Multi-request And Setting Command Fields
SelectiveUpdate:MdcGateway:Input:Element 102:Enter an optional description of what this element is doing?If adding base plan then preactive fields (several)
SelectiveUpdate:MdcGateway:Input:Element 102:What is the container's name?MtxOpMsg
SelectiveUpdate:MdcGateway:Input:Element 102:What are the selection key IDs?3;4
SelectiveUpdate:MdcGateway:Input:Element 102:SelectionKey 3:What method do you want to perform?all
SelectiveUpdate:MdcGateway:Input:Element 102:SelectionKey 3:What action do you want to take on a match?select
SelectiveUpdate:MdcGateway:Input:Element 102:SelectionKey 3:What is the sequence's name?main:Request.MtxRequestSubscriberPurchaseOffer:OfferRequestArray
SelectiveUpdate:MdcGateway:Input:Element 102:SelectionKey 4:What method do you want to perform?equal
SelectiveUpdate:MdcGateway:Input:Element 102:SelectionKey 4:What action do you want to take on a match?
SelectiveUpdate:MdcGateway:Input:Element 102:SelectionKey 4:What is the sequence's name?
SelectiveUpdate:MdcGateway:Input:Element 102:SelectionKey 4:What is the field's name?selected:ExternalId
SelectiveUpdate:MdcGateway:Input:Element 102:SelectionKey 4:What is the field value?BasePlan
SelectiveUpdate:MdcGateway:Input:Element 102:SelectionKey 4:What is the field mask in hex?ffffffffffffffff
SelectiveUpdate:MdcGateway:Input:Element 102:How many operations do you want to enter?3
SelectiveUpdate:MdcGateway:Input:Element 102:Operation 1:What operation do you want to perform?set_field
SelectiveUpdate:MdcGateway:Input:Element 102:Operation 1:SetField:What is the destination field's name?selected:PreActiveState
SelectiveUpdate:MdcGateway:Input:Element 102:Operation 1:SetField:What is the new value?1
SelectiveUpdate:MdcGateway:Input:Element 102:Operation 2:What operation do you want to perform?set_field
SelectiveUpdate:MdcGateway:Input:Element 102:Operation 2:SetField:What is the destination field's name?selected:AutoActivationRelativeOffsetUnit
SelectiveUpdate:MdcGateway:Input:Element 102:Operation 2:SetField:What is the new value?8
SelectiveUpdate:MdcGateway:Input:Element 102:Operation 3:What operation do you want to perform?set_field
SelectiveUpdate:MdcGateway:Input:Element 102:Operation 3:SetField:What is the destination field's name?selected:AutoActivationRelativeOffset
SelectiveUpdate:MdcGateway:Input:Element 102:Operation 3:SetField:What is the new value?1
Copy a Field to Main from Three Levels Deep within an MDC
TriggerType
and
TriggerCategory
fields at the MultiUnitUsageArray
> UsedUnitContainerArray
> TriggerArray
level to the "main" TriggerType
and TriggerCategory
fields respectively using only the select action. You
can reuse the same action if you do not need to update anything other than “main”
and the last selected item. Note that is only necessary to save if you want to take
actions between fields at the "save" level and the selected
level.SelectiveUpdate:ChargingServer:Input:Element 2215:Enter an optional description of what this element is doing?Copy trigger data to custom field
SelectiveUpdate:ChargingServer:Input:Element 2215:What is the container's name?Cust5GMsg
SelectiveUpdate:ChargingServer:Input:Element 2215:What are the selection key IDs?1;2;3
SelectiveUpdate:ChargingServer:Input:Element 2215:SelectionKey 1:What method do you want to perform?all
SelectiveUpdate:ChargingServer:Input:Element 2215:SelectionKey 1:What action do you want to take on a match?select
SelectiveUpdate:ChargingServer:Input:Element 2215:SelectionKey 1:What is the sequence's name?main:Request.Mtx5GChargingDataRequest:MultiUnitUsageArray
SelectiveUpdate:ChargingServer:Input:Element 2215:SelectionKey 2:What method do you want to perform?all
SelectiveUpdate:ChargingServer:Input:Element 2215:SelectionKey 2:What action do you want to take on a match?select
SelectiveUpdate:ChargingServer:Input:Element 2215:SelectionKey 2:What is the sequence's name?selected:UsedUnitContainerArray
SelectiveUpdate:ChargingServer:Input:Element 2215:SelectionKey 3:What method do you want to perform?all
SelectiveUpdate:ChargingServer:Input:Element 2215:SelectionKey 3:What action do you want to take on a match?select
SelectiveUpdate:ChargingServer:Input:Element 2215:SelectionKey 3:What is the sequence's name?selected:TriggerArray
SelectiveUpdate:ChargingServer:Input:Element 2215:How many operations do you want to enter?2
SelectiveUpdate:ChargingServer:Input:Element 2215:Operation 1:What operation do you want to perform?copy_field
SelectiveUpdate:ChargingServer:Input:Element 2215:Operation 1:CopyField:What is the destination field's name?main:TriggerCategory
SelectiveUpdate:ChargingServer:Input:Element 2215:Operation 1:CopyField:What is the source field's name?selected:TriggerCategory
SelectiveUpdate:ChargingServer:Input:Element 2215:Operation 2:What operation do you want to perform?copy_field
SelectiveUpdate:ChargingServer:Input:Element 2215:Operation 2:CopyField:What is the destination field's name?main:TriggerType
SelectiveUpdate:ChargingServer:Input:Element 2215:Operation 2:CopyField:What is the source field's name?selected:TriggerType
Delete a Single Element in a List of Scalars
SelectiveUpdate:DiameterGateway:Input:Element 9018:Enter an optional description of what this element is doing?Delete SpecificAction CHARGING_CORRELATION_EXCHANGE
SelectiveUpdate:DiameterGateway:Input:Element 9018:What is the container's name?MtxDiamRxAAMsg
SelectiveUpdate:DiameterGateway:Input:Element 9018:What are the selection key IDs?1
SelectiveUpdate:DiameterGateway:Input:Element 9018:SelectionKey 1:What method do you want to perform?equal
SelectiveUpdate:DiameterGateway:Input:Element 9018:SelectionKey 1:What is the sequence's name?main:SpecificActionList
SelectiveUpdate:DiameterGateway:Input:Element 9018:SelectionKey 1:What is the field's name?
SelectiveUpdate:DiameterGateway:Input:Element 9018:SelectionKey 1:What is the field value?1
SelectiveUpdate:DiameterGateway:Input:Element 9018:SelectionKey 1:What is the field mask in hex?
SelectiveUpdate:DiameterGateway:Input:Element 9018:SelectionKey 1:What action do you want to take on a match?delete
SelectiveUpdate:DiameterGateway:Input:Element 9018:How many operations do you want to enter?0
Delete a Duplicate MSCC Element
- Choose an unused top-level field that is an unsigned integer. In this case
CallingTowerId
and if it is not present, set it to 0. - For each element in the
MultiServiceList
, add 1 toCallingTowerId
and then copy it to an unused field in the element (ResultDetail
). This provides each element with its index (one-relative). - For each element in the
MultiServiceList
, delete it ifResultDetail
> 1. - For each element in the
MultiServiceList
, delete the temporary fieldResultDetail
.
ServiceId
fields are the
same. It could be a problem if they are different because all elements except the
first would be deleted.SelectiveUpdate:DiameterGateway:Input:Element 2111:Enter an optional description of what this element is doing?Set CallingTowerId to 0
SelectiveUpdate:DiameterGateway:Input:Element 2111:What is the container's name?MtxDiamRoMsg
SelectiveUpdate:DiameterGateway:Input:Element 2111:What are the selection key IDs?1
SelectiveUpdate:DiameterGateway:Input:Element 2111:SelectionKey 1:What method do you want to perform?not_present
SelectiveUpdate:DiameterGateway:Input:Element 2111:SelectionKey 1:What is the sequence's name?
SelectiveUpdate:DiameterGateway:Input:Element 2111:SelectionKey 1:What is the field's name?main:CallingTowerId
SelectiveUpdate:DiameterGateway:Input:Element 2111:How many operations do you want to enter?1
SelectiveUpdate:DiameterGateway:Input:Element 2111:Operation 1:What operation do you want to perform?set_field
SelectiveUpdate:DiameterGateway:Input:Element 2111:Operation 1:SetField:What is the destination field's name?main:CallingTowerId
SelectiveUpdate:DiameterGateway:Input:Element 2111:Operation 1:SetField:What is the new value?0
#
SelectiveUpdate:DiameterGateway:Input:Element 2112:Enter an optional description of what this element is doing?Set ResultDetail in each element as the element's one-relative index.
SelectiveUpdate:DiameterGateway:Input:Element 2112:What is the container's name?MtxDiamRoMsg
SelectiveUpdate:DiameterGateway:Input:Element 2112:What are the selection key IDs?1
SelectiveUpdate:DiameterGateway:Input:Element 2112:SelectionKey 1:What method do you want to perform?all
SelectiveUpdate:DiameterGateway:Input:Element 2112:SelectionKey 1:What is the sequence's name?main:MultiServiceList
SelectiveUpdate:DiameterGateway:Input:Element 2112:SelectionKey 1:What action do you want to take on a match?select
SelectiveUpdate:DiameterGateway:Input:Element 2112:How many operations do you want to enter?2
SelectiveUpdate:DiameterGateway:Input:Element 2112:Operation 1:What operation do you want to perform?calculate_field
SelectiveUpdate:DiameterGateway:Input:Element 2112:Operation 1:CalculateField:What is the equation?main:CallingTowerId = main:CallingTowerId + 1
SelectiveUpdate:DiameterGateway:Input:Element 2112:Operation 2:What operation do you want to perform?copy_field
SelectiveUpdate:DiameterGateway:Input:Element 2112:Operation 2:CopyField:What is the destination field's name?selected:ResultDetail
SelectiveUpdate:DiameterGateway:Input:Element 2112:Operation 2:CopyField:What is the source field's name?main:CallingTowerId
#
SelectiveUpdate:DiameterGateway:Input:Element 2113:Enter an optional description of what this element is doing?For each element in the MultiServiceList, delete it if ResultDetail > 1
SelectiveUpdate:DiameterGateway:Input:Element 2113:What is the container's name?MtxDiamRoMsg
SelectiveUpdate:DiameterGateway:Input:Element 2113:What are the selection key IDs?1
SelectiveUpdate:DiameterGateway:Input:Element 2113:SelectionKey 1:What method do you want to perform?greater
SelectiveUpdate:DiameterGateway:Input:Element 2113:SelectionKey 1:What is the sequence's name?main:MultiServiceList
SelectiveUpdate:DiameterGateway:Input:Element 2113:SelectionKey 1:What is the field's name?ResultDetail
SelectiveUpdate:DiameterGateway:Input:Element 2113:SelectionKey 1:What is the field value?1
SelectiveUpdate:DiameterGateway:Input:Element 2113:SelectionKey 1:What is the field mask in hex?
SelectiveUpdate:DiameterGateway:Input:Element 2113:SelectionKey 1:What action do you want to take on a match?delete
SelectiveUpdate:DiameterGateway:Input:Element 2113:How many operations do you want to enter?0
#
SelectiveUpdate:DiameterGateway:Input:Element 2114:Enter an optional description of what this element is doing?Delete the temporary field ResultDetail
SelectiveUpdate:DiameterGateway:Input:Element 2114:What is the container's name?MtxDiamRoMsg
SelectiveUpdate:DiameterGateway:Input:Element 2114:What are the selection key IDs?1
SelectiveUpdate:DiameterGateway:Input:Element 2114:SelectionKey 1:What method do you want to perform?all
SelectiveUpdate:DiameterGateway:Input:Element 2114:SelectionKey 1:What is the sequence's name?main:MultiServiceList
SelectiveUpdate:DiameterGateway:Input:Element 2114:SelectionKey 1:What action do you want to take on a match?select
SelectiveUpdate:DiameterGateway:Input:Element 2114:How many operations do you want to enter?1
SelectiveUpdate:DiameterGateway:Input:Element 2114:Operation 1:What operation do you want to perform?delete_field
SelectiveUpdate:DiameterGateway:Input:Element 2114:Operation 1:DeleteField:What is the field's name?selected:ResultDetail