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:
InitialDP
.calledPartyNumber
(called_party
normalisation rules)InitialDP
.calledPartyBCDNumber
(called_party_bcd
normalisation rules)InitialDP
.callingPartyNumber
(calling_party
normalisation rules)InitialDP
.redirectingPartyID
(calling_party
normalisation rules)InitialDP
.originalCalledPartyID
(called_party
normalisation rules)
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):
EstablishTemporaryConnection
.assistingSSPIPRoutingAddress
(called_party
denormalisation rules)Connect
.destinationRoutingAddress
(called_party
denormalisation rules)Connect
.originalCalledPartyID
(called_party
denormalisation rules)Connect
.redirectingPartyID
(calling_party
denormalisation rules)Connect
.callingPartyNumber
(calling_party
denormalisation rules)
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 |