Signalling Gateway Globals
Signalling Gateway Globals
Most configuration of the behaviour of the N2IWF platform when configured as a signalling gateway for voice call control is done using LogicApp global variables.
These are set at N2SVCD startup and may not be altered at runtime.
Most N2IWF globals are N2SVCD rule engine
selector rule sets,
with the remainder being either
simple or complex
definitions. Note that N2IWF further classifies rules that require an action
parameter as
“action rules”.
The available N2IWF globals are:
- N2SVCD rule engine variables
- Notification definitions
- Destination translations
- Various N2IWF action rules
In addition, there is extensive configuration for Diameter message handling during a rating session, as well as configuration specifically for each type of input traffic supported:
A simplified example configuration for CAMEL call control might be:
<application name="N2IWF-Logic" module="LogicApp">
...
<config>
<services>
<service ...>
<globals>
<global name="DIAMETER_SEND_IMSI" value="1"/>
<global name="DESTINATION_HOST_FROM_CCA" value="1"/>
<global name="ANNOUNCEMENTS" type="array">
<announcement name="ann1" srf_name="OnSwitch" announcement_id="1"/>
<announcement name="ann2" srf_name="OnSwitch" announcement_id="2"/>
</global>
<global name="VARIABLES" type="array">
<var name="direction" mandatory="1">
<rules type="array">
<rule forwarding="0" terminating="0" literal="orig" />
<rule forwarding="0" literal="term" />
<rule literal="fwd" />
</rules>
</var>
...
</global>
<global name="RESULT_CODES" type="array">
<rule code="4012" forwarding="0" terminating="0" service.at_update="0" service.at_terminate="0" action="continue" announcement="ann1"/>
...
</global>
<global name="READ_AVPS" type="array">
<avp name="Multiple-Services-Credit-Control">
<value type="array">
<avp name="Cost-Information">
<value type="array">
<avp name="Unit-Value">
<value type="array">
<avp name="Value-Digits" to_bal_units="cost" to_var="cost_value" edr="cost_value" />
<avp name="Exponent" to_bal_exponent="cost" to_var="cost_exp" edr="cost_exp" />
</value>
</avp>
</value>
</avp>
</value>
</avp>
...
</globals>
...
</service>
</services>
...
</config>
</application>
Selector Rules Extensions
The N2IWF provides some extensions to the standard N2SVCD selector rule attributes.
An example Result-Code rule array for CAMEL calls might include this rule:
<global name="RESULT_CODES" type="array">
...
<rule code="2002" service.loop_number="0" service.at_update="0" service.at_terminate="0" action="divert" divert_to="234" loop="1" />
...
</global>
This rule would apply when:
- a Result-Code of
2002
was returned by the OCS… - … only at an initial interrogation…
- … on the first loop.
It would then divert the call and request a loop be performed afterward.
Core IWF Actions
When processing action rules, the N2IWF supports core actions that apply to all input protocol.
Action | Valid At | Description |
---|---|---|
continue |
(all) | Continue the session normally with rating interaction where applicable. |
release |
(all) | End the session immediately. |
Each input protocol, along with protocol-specific actions, may also specify additional parameters for core actions.
Core IWF Action Rule Directives
When processing action rules, additional directives may be used to apply N2IWF features.
Directive | Type | Description |
---|---|---|
loop |
Integer | If set to a truthy value, looping will be requested and apply after post-rating. If set to a non-truthy value, any current looping request will be cancelled. |
notification |
String | Causes a notification to be sent. |
Note that these directives are ignored for non-action rules used for source selection, e.g. requested time rules.
Each input protocol may also specify additional directives for action rules.
Additional Selectors
In addition to the standard N2SVCD rule engine selector rule fields, N2IWF has additional selectors that may be used.
Selector | Type | Description |
---|---|---|
service.rc_last |
Integer | The last effective Result-Code returned from the OCS. |
service.rc_last_class |
Boolean | The class of the last effective Result-Code. |
service.at_initial |
Boolean | Whether the rule applies at initial interrogation of the OCS. |
service.at_update |
Boolean | Whether the rule applies at interim interrogation of the OCS. |
service.at_terminate |
Boolean | Whether the rule applies at final interrogation of the OCS. |
service.loop_number |
Boolean | The current loop number. |
service.loop_requested |
Boolean | Whether looping has been requested. |
service.destination_ocs |
String | The destination intended to be sent to the OCS, if configured. |
service.destination_net |
String | The destination intended to be sent to the network, if applicable. |
In addition, if an N2CUG external action has been performed, the field
service.cug
will contain the results of the
N2CUG lookup.
These selectors are available for all rules, including action rules.
Each input protocol may also specify additional selectors for rules.