Tag Configuration
Tag Configuration
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
network
that may have the value ofhome
ornational_roaming
with an appropriate VLR prefix or will otherwise be marked asroaming
. - The tags
msc
andvlr
set with a value as per the received field from the network. The tagmsc
must be able to be set or the call will be rejected. - The tags
location
andlogical
to 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
bearer
that examines the Information Transfer Capability of the call and sets its value tovoice
,video
, orother
accordingly.
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:
...|NETWORK=roaming|TIME_REQUEST=60|...
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).
Configuration Details
The config
→ diameter
→ tags
configuration block holds the rules that are applied to perform initial assignment
of tag values. The available element attributes and children are:
Attribute | Type | Description |
---|---|---|
tag
|
Array | A single tag definition to apply to received calls. |
name
|
String | [Required] A unique name for this tag. |
mandatory
|
Boolean |
Whether the tag is required to be populated or not. If no suitable value can be found for a tag marked as
mandatory , the call will be released as per the
error handling rules.(Default = 0 , tag is not mandatory).
|
suppress
|
Boolean |
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. (Default = 0 , tag is written to EDRs).
|
rerun_after_external
|
Boolean |
Whether or not a tag value selection should be re-run after each External Action
has been processed. (Default = 0 , don't re-run selection).
|
.rule
|
Object | [Required] Provisions a Selector Rule for setting a tag's value. |