REST GMLC (3G/4G)

Introduction

The N2SNS product includes a default-behavior Gateway Mobile Location Centre implementation with:

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).