Error Handling Rules

Error Handling Rules

If a call cannot be handled normally due to an error (e.g. failure to find a value for a mandatory tag), the application can be configured to behave differently depending on the available information for the call. Rules are applied in the order listed until a match is made.

Once matched, various actions can be taken: release the call, play an announcement, etc. If a rule does not specify any matching criteria, it will always match; this should only be used as a catch-all.

Configuration Details

Each rule can support the following attributes:

Attribute Type Description
action String [Required] The action to take when this rule is matched. Possible values are shown under Error Handling Rule Actions.
tag String [Conditional] The tag 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 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)
at_initial Boolean Whether this rule applies at the initial OCS interrogation, i.e. the Diameter CC-Request-Type is 1 (INITIAL_REQUEST).
(Default: true)
at_update Boolean Whether this rule applies at interim OCS interrogations, i.e. the Diameter CC-Request-Type is 2 (UPDATE_REQUEST). Note that some actions are not applicable at interim interrogation.
(Default: as for Error Handling Rule Actions → Valid At)
at_terminate Boolean Whether this rule applies at the final OCS interrogation, i.e. the Diameter CC-Request-Type is 3 (TERMINATE_REQUEST). Note that some actions are not applicable at final interrogation.
(Default: as for Error Handling Rule Actions → Valid At))
cause Integer The release cause to send to the network if the action releases the call.
(Default: 31)
announcement_id Integer [Required with action = announcement_release or announcement_connect] The announcement ID to play to the caller, if appropriate to the action.
announcement_source String The tag to use as the announcement ID to play to the caller, if appropriate to the action. If no value or a non-numeric value is found, announcement_id will be used instead.
srf_name String [Required with action = announcement_release or announcement_connect] The SRF name (as configured in the ScpApp) to use to play an announcement to the caller, if appropriate to the action.
srf_source String The tag to use as the SRF name to use to play an announcement to the caller, if appropriate to the action. If no value or a non-numeric value is found, srf_name will be used instead.
divert_to String [Required with action = connect or announcement_connect] The normalised destination digits to connect the call to, if approrpiate to the action.
notification String A notification message name to send when this rule applies.
fci or sci String An FCI or SCI message name to send when this rule applies. Only available for certain actions.
(other available fields) (various) Any number of selector rule available fields.

Error Handling Rule Actions

Each error handling rule allows the specification of a single action to take when an error condition is encountered during processing.

Note that if the calling party is no longer present in the call (i.e. they have hung up or been disconnected), no action will be able to be applied.

The following actions are available:

Action Required
Parameters
Optional
Parameters
FCI/SCI? Valid At Description
release - cause No (all) Release the call immediately with the given cause.
connect divert_to - Yes initial Terminate the call to the provided divert_to with no further rating interaction.
announcement_release announcement_id
srf_name
announcement_source
srf_source
cause
No (all) Play announcement ID announcement_id on the resource srf_name (as configured under SRF Endpoints) and then apply handling as for release.
announcement_connect announcement_id
srf_name
divert_to
announcement_source
srf_source
Yes initial Play announcement ID announcement_id on the resource srf_name (as configured under SRF Endpoints) and then apply handling as for connect.
abort - - No (all) Send a TC_ABORT to end the call immediately.

Default Error Handling Actions

The below default rules are always applied after all configured error handling action rules to act as a fallback. They may not be disabled, but earlier rules will be used in preference (including rules with no selectors which will always be chosen as fallbacks):

<error_handling>
    <rule action="release" />
</error_handling>