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:
(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) |
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) |