Normalisation and Denormalisation

Overview

Normalisation and denormalisation rules may be defined for any N2SCP application. These rules exist within the config block, e.g.:

<?xml version="1.0" encoding="utf-8"?>
<n2svcd>
  ...
  <applications>
    ...
    <application name="<application name>" module="DsgScpApp">
      ...
      <config>
        ...
        <normalisation>
          <!-- Normalisation rules -->
        </normalisation>
        <denormalisation>
          <!-- Denormalisation rules -->
        </denormalisation>
      </config>
    </application>
    ...
  </application>
  ...
</n2svcd>

Configuration Details

Within each block, normalisation rules may be configured within specific sub-sections:

Attribute Type Description
.normalisation Object Container for called and called party number normalisation rules for inbound InitialDP messages.
.called_party Array Array of normalisation rules for InitialDP.calledPartyNumber from Digits and NoA to digits-only.
.rule Object Provisions a called party normalisation rule.
.called_party_bcd Array Array of normalisation rules for InitialDP.calledPartyBCDNumber from Digits and NoA to digits-only.
.rule Object Provisions a called party BCD normalisation rule.
.calling_party Array Array of normalisation rules for InitialDP.callingPartyNumber from Digits and NoA to digits-only.
.rule Object Provisions a calling party normalisation rule.
.denormalisation Object Container for called and called party number denormalisation rules for outbound Connect.
.called_party Array Array of denormalisation rules for translating from digits-only to Digits and NoA. Applies to destinationRoutingAddress and originalCalledPartyID in Connect message.
.rule Object Provisions a called party denormalisation rule.
.calling_party Array Array of denormalisation rules for translating from digits-only to Digits and NoA. Applies to callingPartyNumber/genericNumber and redirectingPartyID in Connect messages and assistingSSPIPRoutingAddress in EstablishTemporaryConnection messages.
.rule Object Provisions a calling party denormalisation rule.

Normalisation Rule

Each Normalisation Rule defines a rule for the normalisation of an inbound number. For each inbound InitialDP the relevant normalisation list is traversed until a matching rule is found. That rule is then applied and no other rule will apply. The following inbound numbers are normalised:

Each rule Object in the config.normalisation.called_party and config.normalisation.calling_party Array lists has the following structure.

Attribute Type Description
leading Hex Digits A prefix match string containing zero or more characters. An empty string matches all digits. The match is case-insensitive.
For called_party_bcd rules, the permitted characters are [0-9][a-c], *, and #.
For all other rules, the permitted characters are [0-9][a-f].
A rule matches if leading, noa, originating, forwarding, and terminating all match. (Default = empty string).
noa 0-127 A numeric Nature of Address (NoA) to match against the input address. Note that the values for this parameter may differ for called_party_bcd rules, as described in Nature of Address and Type of Number, although the configuration parameter is still named noa.
A rule matches if leading, noa, originating, forwarding, and terminating all match. (Default = 2 for calling_party and called_party).
(Default = 0 for called_party_bcd).
originating Boolean Whether this rule applies for originating calls.
(Default = true).
forwarding Boolean Whether this rule applies for forwarding calls.
(Default = true).
terminating Boolean Whether this rule applies for terminating calls.
(Default = true).
min_len Integer The minimum length of the digit string which this rule will match.
(Default = same as the length of leading).
max_len Integer The maximum length of the digit string which this rule will match.
(Default = no maximum length, match all digit strings).
trim Integer The number of leading digits to trim when normalising.
(Default = 0, do not trim).
prepend Hex Digits The digit string to prepend (after trimming) when normalising. None or more characters from [0-9][a-f].
For the called_party_bcd rules the permitted characters are [0-9][a-c] plus * and #.
May also be prefixed with either v or m to indicate that the E.164 country code of the VLR number or MSC address, respectively, should be used. Note that in this case the rule will not match if the relevant field is not present in the `InitialDP`.
(Default = do not prepend).

Denormalisation Rule

Each Denormalisation Rule defines a rule for the denormalisation of an outbound calling or calling number. For each outbound Connect the relevant denormalisation list is traversed until a matching rule is found. That rule is applied. No other rule will apply. The following outbound addresses are denormalised (when not taken directly from InitialDP fields):

Note that the originalCalledPartyID, redirectingPartyID, and callingPartyNumber fields are not always present in the outbound Connect. These are present only when expressly requested by the service logic.

Each rule Object in the config.denormalisation.called_party and config.denormalisation.calling_party Array lists has the following structure.

Attribute Type Description
leading Hex Digits [Required] A prefix match string containing none or more characters from [0-9][a-f].
An empty string matches all digits. The match is case-insensitive.
A rule matches if leading matches.
originating Boolean Whether this rule applies for originating calls.
(Default = true).
forwarding Boolean Whether this rule applies for forwarding calls.
(Default = true).
terminating Boolean Whether this rule applies for terminating calls.
(Default = true).
min_len Integer The minimum length of the digit string which this rule will match.
(Default = same as the length of leading).
max_len Integer The maximum length of the digit string which this rule will match.
(Default = no maximum length, match all digit strings).
noa 0-127 A numeric Nature of Address (NoA) to set for the output address. This is always a Nature of Address value.
(Default = 2).
trim Integer The number of leading digits to trim when denormalising.
(Default = 0, do not trim).
prepend Hex Digits The digit string to prepend (after trimming) when denormalising.
(Default = do not prepend).

Nature of Address and Type of Number

The values for noa differ between the called_party_bcd and other normalisation/denormalisation rules.

Type of Number

When defining the noa value for called_party_bcd rules, the values align to Type of Number, as set out in ETSI TS 124 008 / 3GPP 24.008. The most commonly-used values for this enumeration are:

Type of Number Description
0 Unknown
1 International
2 National
3 Network
4 Subscriber

Nature of Address

For calling_party and called_party rules, the noa values align to Nature of Address, as defined in ITU-T Rec. Q.763. The most commonly-used values for this enumeration are:

Nature of Address Description
1 Subscriber
2 Unknown
3 National
4 International
5 Network