The DSG-SCP can store values in “tags” for later use. Tags are referred to by a freeform name, and can hold string or integer values, either read from received messages from the network or configured as literals.
Tags may be used by other configuration rules within the DSG-SCP to control call and rating behaviour.
This section’s tagging configuration is applied only at the start of a call. Other configuration (e.g. result code mapping) may add tags or change existing tag values, as defined in that section’s own configuration.
The initial setting of tag values uses Selector Rules to select the rule to apply for each tag. Each tag may be given a maximum of one value from its list of rules; as soon as a match is found, the remaining rules for that tag are not used.
A sample Diameter request tagging configuration might be:
<application name="<application instance name>" module="DsgScpApp"> ... <config> ... <diameter> <tags> <tag name="network"> <rule vlrNumber_prefix="6421" literal="home"/> <rule vlrNumber_prefix="64" literal="national_roaming" /> <rule literal="roaming" /> </tag> <tag name="msc" mandatory="1"> <rule idp="mscAddress_digits" /> </tag> <tag name="vlr"> <rule idp="vlrNumber_digits" /> </tag> <tag name="location"> <rule originating="true" idp="vlrNumber_digits" /> <rule forwarding="true" idp="mscAddress_digits" /> <rule terminating="true" idp="vlrNumber_digits" /> </tag> <tag name="logical"> <rule originating="true" idp="callingPartyNumber_digits_n" /> <rule forwarding="true" idp="redirectingPartyID_digits_n" /> <rule terminating="true" idp="calledPartyNumber_digits_n" /> </tag> <tag name="bearer"> <rule bearerCap_itc="0" literal="voice"/> <rule bearerCap_itc="8" literal="video"/> <rule literal="other" /> </tag> </tags> ... </diameter> ... </config> ...
This tag configuration sets the following tags:
- A tag
networkthat may have the value of
national_roamingwith an appropriate VLR prefix or will otherwise be marked as
- The tags
vlrset with a value as per the received field from the network. The tag
mscmust be able to be set or the call will be rejected.
- The tags
logicalto set the call location string and the logical party, respectively. The value for these fields is dependent on the type of the call.
- The tag
bearerthat examines the Information Transfer Capability of the call and sets its value to
Tags are assigned their values in the order configured. Later tag rules may therefore refer to previous tag values if required, e.g.:
... <tag name="network"> <rule vlrNumber_prefix="6421" literal="home"/> <rule vlrNumber_prefix="64" literal="national_roaming" /> <rule literal="roaming" /> </tag> <tag name="time_request"> <rule tag="network" value="roaming" literal="60"/> <rule literal="300"/> </tag> ...
In this configuration, the
time_request tag’s value is set differently for roaming calls.
Tag names and their values are also written to EDRs automatically, e.g. for the previous configuration the EDR may contain:
All tags defined must have a
name parameter applied, and must contain at least one
rule. Note that no catch-all rule
is required for tags; if no rule applies no value will be given to the tag (and it will not be created).
tags configuration block holds the rules that are applied to perform initial assignment
of tag values. The available element attributes and children are:
||Array||A single tag definition to apply to received calls.|
||String||[Required] A unique name for this tag.|
Whether the tag is required to be populated or not. If no suitable value can be found for a tag marked as
Whether the tag value should be written to EDRs produced for this call or not. If enabled, the suppressed tag
will not appear in EDRs written, but its value will still be used for call processing rule selection.
Whether or not a tag value selection should be re-run after each External Action
has been processed.
||Object||[Required] Provisions a Selector Rule for setting a tag's value.|