External Processing

External Processing

Prior to having their initial Diameter request constructed, calls may require external actions to occur in order to enrich the data available for or otherwise modify the call processing that will occur.

External processing rules can therefore be defined that allow other N2SVCD applications to be called as part of the pre-call handling. Rules are applied in the order listed and any match made is processed accordingly before proceeding with the remainder of the rule checking (if applicable).

If a rule does not specify any matching criteria, it will always match. Depending on the action called, this may impact performance of the system.

External processing occurs after number translation.

Configuration Details

Each rule can support the following attributes:

| Attribute | Type | Description | | :-------: | :--: | :---------- | | `process` | String | **[Required]** The [External Process Type](#external-process-types) to invoke 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 external process must complete successfully for the call to continue. If `false`, the call will be allowed to continue without the external processing completion. 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) or additional [External Process Type fields](#external-process-types). |

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

External Process Types

Each external processing allows the specification of a single action to take when a rule is matched.

Note that all external processing rules are only applicable prior to initial interrogation, i.e. when the call is first received.

Some rules may require or allow additional parameters than those listed above to be specified.

ATI Action

Specifying the external processing action ati causes a MAP Any Time Interrogation message to be sent to the network. Such a message will return the subscriber’s current location in E.164 format, which is normally the VLR number that the subscriber is served by.

The following parameters are available when sending an ATI.

Parameter Type Description
destination String [Required] The tag to store the returned subscriber location in.
msisdn_src Hex String [Conditional] The tag to read the subscriber MSISDN to query from. One and only one of msisdn and imsi must be provided.
imsi_src Hex String [Conditional] The tag to read the subscriber IMSI to query from. One and only one of msisdn and imsi must be provided.
dgt_digits Hex String [Conditional] The destination Global Title to route to. Must be provided if ri is 0.
(Default = none)
dgt_noa Integer The destination GT Nature of Address Indicator to use.
(Default = 0, unknown)
dgt_np Integer The destination GT Numbering Plan to use.
(Default = 0, unknown)
dgt_tt Integer The destination GT Translation Type to use.
(Default = 0, not used)
dpc Integer [Conditional] The destination Point Code to route to. Must be provided if ri is 1.
(Default = none)
dssn Integer [Conditional] The destination Subsystem Number to route to.
(Default = 7)
dri Integer The destination Routing Indicator to use. Possible values are:
  • 0 - route on GT
  • 1 - route on PC/SSN
(Default = 0)
ac String / Hex String The TCAP application context to use.
(Default = ati3)
sigtran_app String The N2SVCD application name of the SIGTRAN application to use for sending the message.
(Default = application that received the call attempt)
timer_secs Float The number of seconds to wait for a response from the network.
(Default = 1.0)