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:

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:

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.