App Config (Normalisation)

Overview

Some applications allow for number normalisation based on generic configuration. These may have normalisation and denormalisation specifications within their config configuration block, e.g.:

 <application ...>
     ...
     <config>
         ...
         <normalisation>
             <common>
                 <rule .../>
             </common>
             <xxx>
                 <rule .../>
             </xxx>
         </normalisation>
         <denormalisation>
             <common>
                 <rule .../>
             </common>
             <xxx>
                 <rule .../>
             </xxx>
         </denormalisation>
     </config>
 </application>

Each application will define what configuration blocks are available for which input and output fields, i.e. replacing the xxx shown above.

Configuration may also be placed within a common block in order to apply after any other specific rules.

Normalisation rules are applied to fields that are received from the network. In such rules, the number nature is removed and only the normalised form of the number is used within processing.

Denormalisation rules are applied to fields that are sent to the network, and supply the denormalised number as well as the number nature to use.

In all cases, rules are checked in order of definition, with rules in the common block applied last. Once a rule is matched, no further rules are checked.

Configuration Details

The rule elements within both the normalisation and denormalisation blocks and all sub-blocks share similar configuration elements.

A rule is matched successfully when:

Attribute Type Description
leading String A prefix match string containing none or more characters, possibly restricted by the number type. An empty string always matches. The match is case-insensitive and is affected by match inversion.
(Default: "", match all strings)
nature Integer,
String
The nature of the candidate string (for normalisation rules) or the nature of the denormalised string (for denormalisation rules). If specified as an integer, is used directly. May also be specified as a generic number nature string. Normalisation rules may specify multiple natures separated by commas, and if none are specified, all natures will match. Denormalisation rules must provide a nature.
min_len Integer The minimum length (inclusive) of the candidate string.
(Default: 0)
max_len Integer The maximum length (inclusive) of the candidate string.
(Default: (none), any length)
trim Integer The number of characters to remove from the front of the candidate string if a match is made.
(Default: 0)
prepend String Characters to put at the start of the candidate string if a match is made. Applied after trim.
(Default: "", an empty string)

Match Inversion

When matching on the leading parameter in a normalisation or denormalisation rule, the match may be made inverted by prefixing the match to be made with !.

If the string to be matched starts with an exclamation mark, add an additional !, i.e. !! for a normal match and !!! for an inverted match.

Some examples of using and not using inversion:

Number Natures

When specifying a nature in a normalisation or denormalisation rule, generic natures may be specified as text. These generic natures are translated to the appropriate number for each number type.

The following generic natures are available:

Sentinel Replacement

Some applications may allow for specification of sentinel strings within the prepend definition that are replaced with dynamic data at runtime. In such cases, any occurrences of these strings will result in the dynamic data being inserted, replacing the sentinel.

If the specified dynamic data is not available for replacement, the rule will fail to match.

Sentinel strings are always surrounded by % (e.g. %vlr%) and are not case-sensitive. To have a literal % in a prepend string, prefix it with a ! (e.g. !%vlr!% will become %vlr% and will not be treated as a sentinel).

Applications have these sentinel characters and their associated dynamic data internally set and are not changeable. Refer to the specific application documentation for sentinel definition and behaviour.

Number Types

Different number types are available, depending on the protocol used by the application and the field to which normalisation rules are applied.

Applications have these number type assignations internally set and they are not changeable.

Map Address Strings

MAP address strings are used for all CAMEL, INAP, and MAP ASN.1 types derived from AddressString, including but not limited to:

This includes, but is not limited to, the following information elements:

MAP address strings have their number natures taken as the Nature of Address from MAP (3GPP 29.002 / ETSI TS 129 002).

Generic Nature Specific Nature
unknown 0
international 1
national 2
network 3
subscriber 4
abbreviated 6

MAP address strings are limited to the following characters:

 0 1 2 3 4 5 6 7 8 9 a b c * #

GSM Called Party BCD Numbers

GSM called party BCD numbers are used for all CAMEL and INAP CalledPartyBCDNumber information elements, including but not limited to:

GSM called party BCD numbers have their number natures taken as the Type of Number from 3GPP TS 24.008 / ETSI TS 124 008.

Generic Nature Specific Nature
unknown 0
international 1
national 2
network 3
dedicated 4

GSM called party BCD numbers are limited to the following characters:

 0 1 2 3 4 5 6 7 8 9 a b c * #

ISUP Numbers

ISUP numbers are generally used for all CAMEL and INAP ASN.1 types defined in ISUP (ITU-T REC Q.763 / ETSI EN 300 356-1), including but not limited to:

This includes (but is not limited to) the following ASN.1 types and the corresponding information elements:

ISUP numbers have their number natures taken as the Nature of Address from 3GPP TS 24.008 / ETSI TS 124 008.

Generic Nature Specific Nature
subscriber 1
unknown 2
national 3
international 4
network 5

ISUP numbers are limited to the following characters:

 0 1 2 3 4 5 6 7 8 9 a b c d e f

SMPP Address

SMPP addresses have their number natures taken as the Type of number from SMPP Protocol Specification v3.4/v5.0.

Generic Nature Specific Nature
unknown 0
international 1
national 2
network 3
subscriber 4
alphanumeric 5
abbreviated 6

SMPP addresses have no character restrictions.