N2SVCD Integration

N2SVCD Integration

The N2IWF requires on being integrated with other N2SVCD applications to operate fully.

Each of the following sections covers the required configuration to enable a particular function of the N2IWF. All required functions for your specific deployment should be configured.

For all details of how to configure each N2SVCD application, refer to that application’s specific documentation.

Inbound Messages

CAMEL/INAP Call Handling

To process CAMEL/INAP calls, both an N2SVCD SigtranApp and an N2SCP LhoScpApp must be configured.

The SigtranApp must be configured to hand appropriate traffic to the LhoScpApp, which must in turn be configured to pass that traffic to an N2IWF LogicApp instance, e.g.:

<application name="SIGTRAN" module="SigtranApp">
    ...
    <config>
        ...
        <handlers>
            <handler opcode="InitialDP" application="N2IWF-SCP"/>
        </handlers>
    </config>
</application>

<application name="N2IWF-SCP" module="LhoScpApp">
    ...
    <parameters>
        ...
        <parameter name="default_logic_app_name" value="N2IWF-Logic-SCP"/>
    </parameters>
    ...
</application>

<application name="N2IWF-Logic-SCP" module="LogicApp">
    ...
</application>

SIP Call Handling

To process SIP calls, an N2SIP LhoSipApp must be configured.

The LhoScpApp must be configured to pass traffic to an N2IWF LogicApp instance, e.g.:

<application name="N2IWF-SIP" module="LhoSipApp">
    ...
    <parameters>
        ...
        <parameter name="default_logic_app_name" value="N2IWF-Logic-SIP"/>
    </parameters>
    ...
</application>

<application name="N2IWF-Logic-SIP" module="LogicApp">
    ...
</application>

CAMEL SMS Handling

To process CAMEL SMS, an N2SVCD SigtranApp must be configured.

The SigtranApp must be configured to hand appropriate traffic to an N2IWF LogicApp instance, e.g.:

<application name="SIGTRAN" module="SigtranApp">
    ...
    <config>
        ...
        <handlers>
            <handler opcode="InitialDPSMS" application="N2IWF-Logic-CAPSMS"/>
        </handlers>
    </config>
</application>

<application name="N2IWF-Logic-CAPSMS" module="LogicApp">
    ...
</application>

Diameter Origin Integration

When the N2IWF is configured to receive and proxy Diameter messages as a Diameter -> Diameter IWF the N2SVCD configuration must include configuration to receive Diameter inbound requests and send them to the IWF. This can be done by configuring a separate DiameterApp instance to the outbound Diameter instance (see below), or by adding additional configuration to the outbound DiameterApp instance to handle inbound messages.

The core requirement is to include a <handlers> secetion in the DiameterApp configuration which will receive Diameter Request messages. The app_id of the configured handler allows different Diameter Application IDs to be handled by different N2SVCD applications.

Note that Application ID 4 is for Credit-Control.

<application name="Diameter" module="DiameterApp">
    ...
    <handlers>
        <handler app_id="4" application="Logic"/>
    </handlers>
</application>

When configuring the IWF logic app, include the default_diameter_app_name configuration so that the IWF Diameter -> Diameter IWF can send out the messages it receives and has processed.

<application name="Logic" module="LogicApp">
    ...<include>
        <lib>../apps/logic/lib</lib>
    </include>
    <parameters>
        ...
        <parameter name="default_diameter_app_name" value="Diameter"/>
    </parameters>
        <config>
            <services>
                <service module="DiameterApp::DiameterLuaService" libs="../apps/diameter/lib" script_dir="../../n2iwf/lua/svc/agent/">
                    ...
                </service>
            </service>
        </config>
    </config>
</application>

Outbound Messages

Diameter OCS Integration

For communication with an OCS, the N2IWF LogicApp must be configured to send Diameter messages to an N2SVCD SigtranApp using the N2SVCD Diameter Lua Agent.

<application name="N2IWF-Logic" module="LogicApp">
    ...<include>
        <lib>../apps/logic/lib</lib>
    </include>
    <parameters>
        ...
        <parameter name="default_diameter_app_name" value="Diameter"/>
    </parameters>
    <config>
        ...
        <agents>
            <agent module="DiameterApp::DiameterLuaAgent" libs="../apps/diameter/lib"/>
        </agents>
    </config>
</application>

<application name="Diameter" module="DiameterApp">
    ...
</application>

MAP Integration for ATI and USSD

If MAP ATI external actions or USSD notifications are to be used, the N2IWF LogicApp must be configured to send MAP messages over TCAP to an N2SVCD SigtranApp using the N2SVCD MAP Lua Agent and the N2SVCD TCAP Lua Agent.

<application name="N2IWF-Logic" module="LogicApp">
    ...<include>
        <lib>../apps/logic/lib</lib>
    </include>
    <parameters>
        ...
        <parameter name="default_tcap_app_name" value="SIGTRAN"/>
    </parameters>
    <config>
        ...
        <agents>
            <agent module="SigtranApp::MapLuaAgent" libs="../apps/sigtran/lib"/>
            <agent module="SigtranApp::TcapLuaAgent" libs="../apps/sigtran/lib"/>
        </agents>
    </config>
</application>

<application name="SIGTRAN" module="SigtranApp">
    ...
    <config>
        ...
        <connections>
            <connection name="connection1" next_hop_pc="1234">
                ...
            </connection>
        </connections>
        <routes>
            <route pc="1234" connection="connection1"/>
        </routes>
    </config>
</application>

N2CUG Integration

If N2CUG external actions are to be used, the N2IWF LogicApp must be configured to access the N2CUG database using an N2SVCD DBApp using the N2SVCD DB Lua Agent.

<application name="N2IWF-Logic" module="LogicApp">
    ...<include>
        <lib>../apps/logic/lib</lib>
    </include>
    <parameters>
        ...
        <parameter name="default_db_app_name" value="N2CUG-DB"/>
    </parameters>
    <config>
        ...
        <agents>
            <agent module="DBApp::DBLuaAgent" libs="../apps/db/lib"/>
        </agents>
    </config>
</application>


<application name="N2CUG-DB" module="DBApp">
    ...
</application>

SMPP Integration

If SMPP notifications are to be used, the N2IWF LogicApp must be configured to send these using an N2SVCD SMPPApp using the N2SVCD SMPP Lua Agent.

<application name="N2IWF-Logic" module="LogicApp">
    ...
    <parameters>
        ...
        <parameter name="default_smpp_app_name" value="SMPP"/>
    </parameters>
    <config>
        ...
        <agents>
            ...
            <agent module="SMPPApp::SMPPLuaAgent" libs="../apps/smpp/lib"/>
        </agents>
    </config>
</application>

<application name="SMPP" module="SMPPApp">
    ...
</application>

USSD Integration

If USSD notifications are to be used, the N2IWF LogicApp must be configured to send these using an N2SVCD SigtranApp using the N2TTG USSD Notify Lua Agent.

Note that the SIGTRAN application must have an outbound route available for the destination MSISDN as a destination global title.

<application name="N2IWF-Logic" module="LogicApp">
    ...
    <parameters>
        ...
        <parameter name="default_lua_lib_path"         value="...;../../n2ttg/lua/lib/?.lua"/>
        <parameter name="default_ussd_notify_app_name" value="SIGTRAN"/>
    </parameters>
    <config>
        ...
        <agents>
            ...
            <agent module="SMPPApp::SMPPLuaAgent" libs="../apps/smpp/lib"/>
        </agents>
    </config>
</application>

<application name="SIGTRAN" module="SigtranApp">
    ...
    <config>
        ...
        <connections>
            ...
            <connection name="connection_1" .../>
        </connections>
        <routes>
            ...
            <route gt="xxx" connection="connection_1"/>
        </routes>
</application>