REST GMLC (3G/4G)
Introduction
The N2SNS product includes a default-behavior Gateway Mobile Location Centre implementation with:
- REST (inbound)
- MAP AnyTimeInterrogation outbound, and/or
- Diameter Location-Info-Request outbound
This page describes the configuration of the default GMLC service Lua script. This script operates in conjunction with the various protocol interfaces. Specifically:
See the REST LogicApp Service documentation for details on the configuration for inbound REST request handling.
See the MAP LogicApp Agent documentation for details of how the MAP ATI message is constructed. The MAP LogicApp Agent does not require an application to be configured.
See the TCAP LogicApp Agent documentation for how the TCAP request is formed. Use of ATI for GMLC requires that a SigtranApp
application is defined and identified to the LogicApp using the default_sigtran_app_name
parameter.
See the SIGTRAN Application documentation for how to configure the SIGTRAN App to communicate via M3UA/SIGTRAN with the HLR.
See the Diameter LogicApp Agent documentation for how the Diameter request is constructed. Use of Diameter for GMLC requires that a DiameterApp
application is defined and identified to the LogicApp using the default_diameter_app_name
parameter.
See the Diameter Application documentation for how to configure the Diameter App to communicate via Diameter with the HSS.
Configuration
To configure the GMLC lookup service, define a logic app with the following configuration:
<application name="Logic-GMLC" module="LogicApp" admin_alloc="1m" user_alloc="128m">
<include>
<lib>../apps/logic/lib</lib>
</include>
<parameters>
<parameter name="edr_enabled" value="1"/>
<parameter name="trace_level" value="1"/>
<parameter name="lua_lib_path" value="../lua/lib/?.lua;../../n2svcd/lua/lib/3rdparty/?.lua;../../n2sns/lua/lib/?.lua;../../n2sns/lua/3rdparty/?.lua;../../n2sns/lua/svc/?.lua"/>
<parameter name="default_db_app_name" value="DB"/>
<parameter name="default_diameter_app_name" value="Diameter"/>
<parameter name="default_sigtran_app_name" value="SIGTRAN"/>
</parameters>
<config>
<services>
<service module="RestServerApp::RestLuaService" libs="../apps/rest_s/lib" script_dir="../../n2sns/lua/svc" cc_free_per_script="100">
<globals>
<global name="DB_LOOKUP" value="false" type="boolean"/>
<global name="USE_ATI" value="true" type="boolean"/>
<global name="USE_LIR" value="true" type="boolean"/>
<global name="PREFER" value="ati"/>
</globals>
<triggers>
<trigger script_key="gmlc"/>
</triggers>
</service>
</services>
<agents>
<agent module="DBApp::DBLuaAgent" libs="../apps/db/lib"/>
<agent module="SigtranApp::MapLuaAgent" libs="../apps/sigtran/lib"/>
<agent module="SigtranApp::TcapLuaAgent" libs="../apps/sigtran/lib">
<agent module="DiameterApp::DiameterLuaAgent" libs="../apps/diameter/lib"/>
</agents>
</config>
</application>
Script Global Variables
The GMLC Lua script is configured using LogicApp Global Variables.
Parameter Name | XML Type | Default | Description |
---|---|---|---|
DB_LOOKUP
|
Boolean |
false
|
Should we perform a subscriber lookup in the database at the start of processing. A subscriber with "Network Type" set as "3g" or "3G" in the database will use only MAP for location determination. A subscriber with "Network Type" set as "4g" or "$G" in the database will use only Diameter for location determination. A non-found subscriber will return with a 404 HTTP status code. |
USE_ATI
|
Boolean |
false
|
Is the platform permitted to use MAP AnyTimeInterrogration to perform a location query for a 3G subscriber. |
HLR_GT
|
String | none | The SCCP Global Title for the HLR. A configuration is required iff MAP is to be used. |
USE_LIR
|
Boolean |
false
|
Is the platform permitted to use Diameter Location-Info-Request to perform a location query for a 3G subscriber. |
PREFER
|
ati / lir
|
ati
|
In the case where DB_LOOKUP is not enabled, the platform will attempt to use ATI and/or LIR as is enabled.The PREFER flag indicates which alternative should be attempted first.If the preferred alternative fails with an "unknown subscriber" value, then other alternative will be tried (if enabled). |