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>