Number Translation

Number Translation

Prior to having their initial Diameter request constructed, number translation may need to be applied for both billing and call connection.

Number translation may be applied to various fields in the received call trigger. Rules are applied in the order listed and the first match made is processed. When a rule matches: 1. The translated number is sent in place of the source number to the OCS, as appropriate, and 2. Should the call be allowed to proceed by the OCS (or by other DSG functionalities), the translated number is sent in a Connect operation to the network.

If a rule does not specify any matching criteria, it will always match. This would be an unusual use of number translation, however.

Number translation occurs after tag assignment and billing bypass handling.

Configuration Details

Each rule can support the following attributes:

| Attribute | Type | Description | | :-------: | :--: | :---------- | | `source` | String | **[Required]** The [number source](#number-sources) to translate when this rule is matched. | | `from` | String | **[Required]** The source number value to match against. | | `to` | String | **[Required]** The translated number to replace the `source` with when this rule is matched. | | `tag` | String | **[Conditional]** The [tag](/config/dsg_scp/diameter/tags.html) name to match the value for If `tag` is present, `value` must also be present. | | `tag_x` | String | **[Conditional]** As for `tag`, but with `x` representing a unique pairing, e.g. `tag_1` or `tag_a`. A matching `value_x` must also be present. | | `value` | (various) | **[Conditional]** The string or integer value to match against during rule selection. Required when `tag` is present. | | `value_x` | (various) | **[Conditional]** As for `value`, but with `x` representing a unique pairing, e.g. `value_1` or `value_a`. A matching `tag_x` must also be present. | | `originating` | Boolean | Whether this rule applies for [MO calls](/applications/dsg_scp.html#traffic-type-determination).
(Default: `true`) | | `forwarding` | Boolean | Whether this rule applies for [MF calls](/applications/dsg_scp.html#traffic-type-determination).
(Default: `true`) | | `terminating` | Boolean | Whether this rule applies for [MT calls](/applications/dsg_scp.html#traffic-type-determination).
(Default: `true`) | | `mandatory` | Boolean | Whether this translation must complete successfully for the call to continue. If `false`, the call will be allowed to continue if the translation fails (e.g. due to a missing source value). If `true`, [Error Handling Rules](/config/dsg_scp/diameter/error_handling.html) will be used to end the call.
*(Default = `false`, continue on failure)* | | (other available fields) | (various) | Any number of selector rule [available fields](/config/dsg_scp/diameter/selector_rules.html#available-fields). |

Note that, unlike other selector rules, the call state selectors at_initial, at_update, and at_terminate are not used, as number translation can only occur at the start of a call.

Number Sources

The following number sources are available to attempt number translation on:

Attribute Source Description
calling String The normalised InitialDPcallingPartyNumber decoded digits.
called String The normalised InitialDPcalledPartyNumber decoded digits, if available. Otherwise, the normalised InitialDPcalledPartyBCDNumber decoded digits.
redirecting String The normalised InitialDPredirectingPartyID decoded digits.
(tag name) String A configured tag name.