SigtranApp

SIGTRAN Application Configuration

The SIGTRAN Application is responsible for communication with all external SIGTRAN (SUA or M3UA) end points.

A single SIGTRAN Application is capable of connecting to multiple end nodes (e.g. two STP nodes in a redundant pair). Each remote node may have multiple (redundant) endpoints.

It should only be necessary to configure multiple SIGTRAN Application instances if you wish a single N2SVCD to communicate with two separate environments - e.g. with a “Test” environment and with a “Pre-Production” environment.

Here is an M3UA configuration example, operating in connect (client) mode.

<?xml version="1.0" encoding="utf-8"?>
<n2svcd>
  ...
  <applications>
    ...
    <application name="SIGTRAN" module="SigtranApp">
      <include>
        <lib>../apps/sigtran/lib</lib>
      </include>
      <parameters>
        <parameter name="ossn" value="12"/>
        <parameter name="ogt_digits" value="6421600000"/>
        <parameter name="ogt_noa" value="4"/>
        <parameter name="ogt_np" value="1"/>
        <parameter name="ogt_tt" value="0"/>
        <parameter name="default_m3ua_na" value="10"/>
      </parameters>
      <config>
        <connections>
          <connection name="peer-2057" type="m3ua" mode="connect" role="asp" next_hop_pc="400">
            <remote_host>10.42.2.155,10.42.3.155</remote_host>
            <remote_port>14001</remote_port>
            <local_host>10.42.2.100</local_host>
            <local_port>15000</local_port>
          </connection>
        </connections>
        <routes>
          <route pc="2057" connection="peer-2057"/>
          <route mingt="6421600000" maxgt="6421699999" connection="peer-2057"/>
        </routes>
      </config>
    </application>
    ...
  </application>
  ...
</n2svcd>

The SIGTRAN Application can also be run in a “Loopback” mode which is ideal for quick testing of TCAP/INAP functionality without requiring SCTP. A Loopback example is as follows:

<?xml version="1.0" encoding="utf-8"?>
<n2svcd>
  ...
  <applications>
    ...
    <application name="SIGTRAN" module="SigtranApp">
      <include>
        <lib>../apps/sigtran/lib</lib>
      </include>
      <parameters>
        <parameter name="opc" value="4114"/>
        <parameter name="ossn" value="10"/>
      </parameters>
      <config>
        <connections>
          <connection name="Loopback" type="loopback"/>
        </connections>
        <routes>
          <route pc="4114" connection="Loopback"/>
        </routes>
        <handlers>
          <handler ssn="106" service_key="3000" application="IN Script Service"/>
          <handler tcap_ac="ati3" application="IN Script Service"/>
        </handlers>
      </config>
    </application>
    ...
  </application>
  ...
</n2svcd>

Configuration Details

The application element attributes for a SIGTRAN Application instance may include the below.

For details of the various parameter types used, refer to Common Configuration.

Parameter Name Type XML Type Description
See: Common Application configuration
module String Attribute [Required] SigtranApp
include.lib String Attribute [Required] ../apps/sigtran/lib
parameters Array Element [Required] As per Common Configuration Application parameters.
"edr_enabled" - - This value is ignored; the SIGTRAN Application does not support writing EDRs.
"correlation_id_len" Integer Attribute The number of digits for each CorrelationID in the ID Pool.
Needed for SCP nodes only. Default is not to create a CorrelationID pool.
(Range = 0, 2-8, Default = 0)
"correlation_id_min" Integer Attribute The minimum value of CorrelationID in the ID Pool.
This is only required when running an SCP with multiple SIGTRAN apps that are both using same CorrelationID Length (to avoid range conflict).
(Range = 0-[all-9s], Default = 0)
"correlation_id_max" Integer Attribute The maximum value of CorrelationID in the ID Pool.
This is only required when running an SCP with multiple SIGTRAN apps that are both using same CorrelationID Length (to avoid range conflict).
(Range = 0-[all-9s], Default = [all-9s])
"ori" Integer Attribute The SCCP "Own Routing Indicator" for outbound TCAP BEGIN messages.
(Default = 1 if opc and ossn are specified, otherwise 0)
"ossn" Positive Integer Attribute The SCCP "Own Sub-System Number" for outbound TCAP BEGIN messages (in Decimal format).
(Range = 1-255)
"sccp_suppress_ossn" Integer Attribute Suppress the SCCP OSSN for outbound TCAP BEGIN messages. (Range = 0-1, Default = 0)
"opc" Integer Attribute The SCCP "Own Point Code" for outbound TCAP BEGIN messages. (Range = 0-16383 ITU, 0-16777215 ANSI).
"sccp_suppress_opc" Integer Attribute Suppress the SCCP OPC for outbound TCAP BEGIN messages. (Range = 0-1, Default = 0)
"ogt_digits" Hex String Attribute The SCCP "Own Global Title Digits" for outbound TCAP BEGIN messages.
"ogt_noa" Integer Attribute The SCCP "Own Global Title Nature of Address" for outbound TCAP BEGIN messages.
(Range = 0-127)
"ogt_np" Integer Attribute The SCCP "Own Global Title Numbering Plan" for outbound TCAP BEGIN messages.
(Range = 0-7)
"ogt_tt" Integer Attribute The SCCP "Own Global Title Translation Type" for outbound TCAP BEGIN messages.
(Range = 0-255)
"tcap_pv" Integer Attribute Specify 1 to enable the specification of TCAP Protocol Version to all outbound TCAP messages which include an Application Context.
(Values = 0 or 1, Default = 0, do not enable)
"default_m3ua_na" Integer Attribute Specify the default value of the Network Appearance parameter which will be set by default on all outbound M3UA DATA messages on M3UA Connections. Received inbound M3UA DATA messages with a network appearance not matching this value will be discarded (with warning).
Setting an explicit value of the empty string here means that Network Appearance should not be set on outgoing M3UA DATA messages and that inbound received M3UA DATA network appearance should not be checked.
This value may be overridden on a per-connection basis.
(Default = 2)
"inbound_affinity" Boolean Attribute When an inbound TCAP_BEGIN is received over a SIGTRAN connection, should we use that same connection as the preferred connection for all outbound TCAP messages on that dialog.
If affinity is disabled, the preferred connection for outbound messages on that dialog will be chosen according to the configured route selection rules (using priority and loadshare).
This setting does not affect transactions where SigtranApp sends TCAP BEGIN.
(Default = 1, inbound affinity is enabled)
"sccp_connection_class" Integer Attribute Specify the SCCP Connection Class to use for outbound messages.
This may be further over-ridden on a per-Connection basis.
(Values = 0 or 1, Default = 0)
"sndrcv_buffer" Integer Attribute Override the system default SCTP Send/Receive buffers size (in bytes).
The default SCTP buffers will likely be insufficient for sustained load testing or high throughput. Under sustained loads, a value of at least 1048576 bytes (or higher) is recommended.
You will very likely also need to increment the sysctl values for net.core.rmem_* and net.core.wmem_* on your platform, as detailed in the post-install steps.
This may be further over-ridden on a per-Connection basis.
(Default = Use System Socket Defaults)
"sinit_num_ostreams" Integer Attribute Override the system default SCTP sinit_num_ostreams.
This may be further over-ridden on a per-Connection basis.
(Default = Use End-Point Default)
"sinit_max_instreams" Integer Attribute Override the system default SCTP sinit_max_instreams.
This may be further over-ridden on a per-Connection basis.
(Default = Use End-Point Default)
"sinit_max_attempts" Integer Attribute Override the system default SCTP sinit_max_attempts.
This may be further over-ridden on a per-Connection basis.
(Default = Use End-Point Default, typically Max.Init.Retransmit)
"sinit_max_init_timeo" Integer Attribute Override the system default SCTP sinit_max_init_timeo.
This may be further over-ridden on a per-Connection basis.
(Default = Use End-Point Default, typically RTO.Max)
"sctp_sack_immediately" Boolean Attribute By default when sending messages over SCTP connections, whether the I-Bit should be set in the DATA Chunk flags to request that this message receives an immediate SACK
Setting this flag will use additional IP packets, but will significantly improve the TCAP message delivery latency during the Slow-Start period of the SCTP connection.
This may be further over-ridden on a per-Connection basis.
(Default = connection does set the I-Bit for sent messages, immediate SACK is requested)
"default_tcap_inbound_begin_timer" Positive Integer Attribute Default guard timer after receiving inbound TCAP_BEGIN.
If the SigtranApp does not receive any response from the handling application to this transaction within the indicated guard timeout, then it will send TCAP_ABORT on-the-wire and mark the transaction as closed. The handling application will not be notified.
This timer value may be further over-ridden on a per-Handler basis.
(Range = (1..70, Default = 6).
"default_tcap_outbound_begin_timer" Positive Integer Attribute Default guard timer after sending outbound TCAP_BEGIN.
If the SigtranApp does not receive any further on-the-wire response to this transaction within the indicated guard timeout, then it will abandon the transaction and treat it as closed.
No on-the-wire message will be sent. The originating application will not be notified.
(Range = (1..70, Default = 8).
"default_tcap_continue_timer" Positive Integer Attribute Default guard timer after sending outbound TCAP_CONTINUE or receiving inbound TCAP_CONTINUE.
If the SigtranApp does not see any further activity on this transaction within the indicated guard timeout, then it will perform a TCAP-TXNCHECK-REQUEST and (if not checked OK) perform TCAP_ABORT (where possible).
This timer value may be further over-ridden on a per-Handler basis.
(Range = (1..86410, Default = 310).
config Object Element Container for extended configuration for this Application instance.
.connections Array Element Array of connection elements defining SIGTRAN communication paths.
.routes Array Element Array of route elements for selecting connections for outbound delivery.
.handlers Array Element Array of handler elements for selecting the owning Application for inbound TCAP BEGIN messages.

Own Address Parameters

Every SIGTRAN Application instance must have a configured “Own Address”, even if it only uses “Loopback” connections. Specifically, it must have configured at least:

It is possible that a SIGTRAN Application instance may have all three parameters defined, although this would be unusual. If all three parameters are present, then you may wish to explicitly define the “Own Routing Indicator” (ori) parameter.

If the “Own GT Digits” (ogt_digits) are present, then ogt_noa, ogt_np and ogt_tt may also be specified if required.

SIGTRAN Connections

SUA or M3UA Connections

Each SIGTRAN connection is defined by a connection element within the config.connections Array. Multiple connection entries may be defined. The attributes of each connection element are as follows.

Parameter Name Type XML Type Description
name String Attribute [Required] A unique name for this connection.
type String Attribute [Required] The SIGTRAN protocol to use, either sua or m3ua.
role String Attribute Specify the local endpoint role in the connection as asp, sgp, ipsp-de, ipsp-se-p, or ipsp-se-r.
For IPSP roles you must choose the appropriate sub-role to define the state maintenance process – either Double Exchange, Single Exchange (Proactive), or Single Exchange (Reactive).
This role affects the interpretation and relevance of other connection configuration parameters.
(Default = asp)
disabled Boolean Attribute This flag can be used to request that the connection not be brought up automatically after start/restart.
(Default = connection is not disabled, i.e. is enabled)
inactive Boolean Attribute This flag can be used to request that the ASP not be made active after start/restart.
This flag is not applicable for role = sgp or ipsp-se-r.
(Default = ASP is not inactive, i.e. is active)
mode String Attribute The SCTP socket mode, either connect or listen.
(Default = connect)
local_port Positive Integer Element IPv4 Port Number. Mandatory for SCTP mode = listen.
local_addresses String Element IPv4 Host Name or A.B.C.D IPv4 Address. Mandatory for mode = listen.
May be a single address for the end-point, or a comma-separated multi-homed list.
local_host String Element An alternative attribute name for local_addresses.
remote_port Positive Integer Element IPv4 Port Number. Mandatory for SCTP mode = connect. For mode = listen, this configuration is optional. If present it will be used to validate the initiating SCTP port for any inbound connection attempt.
remote_addresses String Element IPv4 Host Names or A.B.C.D IPv4 Addresses. Mandatory for mode = connect.
For mode = listen, this configuration is optional. If present it will be used to validate the primary initiating IP address for any inbound connection, which must be one of the listed addresses.
May be a single address for the end-point, or a comma-separated multi-homed list.
remote_host String Element An alternative attribute name for remote_addresses.
sndrcv_buffer Integer Attribute Override the default SCTP Send/Receive buffers size for this connection.
sinit_num_ostreams Integer Attribute Override the default SCTP INIT sinit_num_ostreams for this connection.
sinit_max_instreams Integer Attribute Override the default SCTP INIT sinit_max_instreams for this connection.
sinit_max_attempts Integer Attribute Override the default SCTP INIT sinit_max_attempts for this connection.
sinit_max_init_timeo Integer Attribute Override the default SCTP INIT sinit_max_init_timeo for this connection.
"sctp_sack_immediately" Boolean Attribute Override the default SCTP I-Bit sctp_sack_immediately for this connection.
reconnect_interval Positive Integer Attribute The SCTP-layer reconnection interval in seconds when mode = connect.
Does not apply for mode = listen which will re-listen immediately.
(Default = 10)
sccp_connection_class Integer Attribute Override the default SCCP Connection Class for this connection.
mgmt_errs_fatal Boolean Attribute Whether the management message error codes in the mgmt_err_codes_hex list are fatal, i.e. should tear down the connection and restart it anew as per its configuration.
If true, all listed error codes in mgmt_err_codes_hex will be treated as fatal errors, with errors not in the list treated as non-fatal.
If false, all listed error codes in mgmt_err_codes_hex will be treated as non-fatal, with errors not in the list treated as fatal.
Relevant to all roles.
(Default = true, listed management message error codes are fatal and all others are non-fatal)
mgmt_err_codes_hex String Attribute A comma-separated list of hexadecimal M3UA or SUA management message error codes.
If mgmt_errs_fatal is true, all listed error codes will be treated as fatal errors, with errors not in the list treated as non-fatal.
If mgmt_errs_fatal is false, all listed error codes will be treated as non-fatal, with errors not in the list treated as fatal.
Relevant to all roles.
(Default = no management message error codes listed)
static_rcs String Attribute This is a comma-separated list of explicit Routing Context (RC) values.
These are the RC values provided in the ASPAC messages to identify the Application Services which our ASP/IPSP implements.
Relevant to all roles except role = sgp.
(Default = do not specify, require the SGP to supply them to us)
default_rcs String Attribute This is a comma-separated list of Routing Context (RC) values.
These are the RC values which we assign by default to the far-end ASP/IPSP, in the case where it does not provide RC values explicitly in the ASPAC.
Relevant to all roles except role = asp.
(Default = must be provide by the ASP/IPSP in the ASPAC)
rc String Attribute When role = asp this is an alternate name for static_rcs.
When role = sgp this is an alternate name for default_rcs.
audit_apcs String Attribute This is a comma-separated list of decimal point code values.
After becoming ACTIVE, the ASP will use a DAUD message to request an audit of these Affected Point Codes (APCs) from the SGP.
Only relevant for role = asp.
(Default = The ASP does not request an audit of APCs)
push_apcs String Attribute This is a comma-separated list of decimal point code values.
After the far-end ASP becomes ACTIVE, the SGP will use DUNA/DAVA to push information regarding the availability of these Affected Point Codes (APCs) to the ASP even if they are not requested via DAUD.
Only relevant for role = sgp.
(Default = The SGP does not push APC availability information to the ASP)
asp_id Integer Attribute Application ID to include when sending the ASPUP message.
Only relevant for role = asp, ipsp-de, ipsp-se-p.
(Default = do not send Application ID)
next_hop_pc Integer Attribute Next-Hop Point Code to use when sending User Data.
For SUA this is optional and applies only for role = asp.
For M3UA this is mandatory for all roles.
(Range = 0-16383 ITU, 0-16777215 ANSI).
sg_dpc Integer Attribute Deprecated alias for next_hop_pc.
traffic_mode Enumerated Attribute The Traffic Mode Type to include when sending the ASPAC message. Possible values are:
  • 1 = override
  • 2 = loadshare
  • 3 = broadcast
Only relevant for role = asp, ipsp-de, ipsp-se-p.
(Default = 2, loadshare)
mtp3_ni Enumerated Attribute The MTP3 Network Indicator to use. Only relevant for type = m3ua. Possible values are:
  • 0 = international
  • 2 = national
(Default = 2, national)
m3ua_na Integer Attribute Specify the default value of the Network Appearance parameter which will be set on all outbound M3UA DATA messages on this M3UA Connection. Received inbound M3UA DATA messages with a network appearance not matching this value will be discarded (with warning).
Setting an explicit value of the empty string here means that Network Appearance should not be set on outgoing M3UA DATA messages and that inbound received M3UA DATA network appearance should not be checked.
(Default = use the application default_m3ua_na parameter setting)

Note that you may have more than once listen connection associated with a single local_host. However, some constraints apply in this case:

Loopback Connections

In some testing scenarios, you may wish to connect the Test Application directly to the local Script Application. In such cases you can use configure SIGTRAN with a loopback connection. All messages routed to this SCCP connection will be returned back into the service daemon.

Parameter Name Type XML Type Description
name String Attribute [Required] A unique name for this connection.
type String Attribute [Required] loopback

SIGTRAN/Loopback Routes

Routing rules define which connection is used to deliver any given message. Each route Object in the config.routes Array is configured as follows.

Parameter Name Type XML Type Description
connection String Attribute [Required] The name of the Connection to deliver matching messages.
rc Integer Attribute The Routing Context we assign when initiating a new transaction or unidirectional message.
This is relevant only when SigtranApp initiates a TCAP BEGIN/QUERY/UNIDIRECTIONAL message, as when continuing, ending, or aborting an existing transaction, SigtranApp will always copy the original inbound Routing Context into the outbound message.
An rc is optional when using M3UA or Loopback.
An rc must be specified when using SUA to send an outbound TCAP BEGIN.
(Default = do not set RC for outbound BEGIN/QUERY/UNIDIRECTIONAL on this route)
global Integer Attribute Specify 1 to indicate that this route can be used for all destinations.
(Default = 0)
pc Integer Attribute A single Point Code to route.
(Range = 0-16383 ITU, 0-16777215 ANSI).
minpc Integer Attribute Start (inclusive) of a Point Code range to route.
(Range = 0-16383 ITU, 0-16777215 ANSI).
maxpc Integer Attribute End (inclusive) of a Point Code range to route.
(Range = 0-16383 ITU, 0-16777215 ANSI).
gt String Attribute A single Global Title to route.
mingt String Attribute Start (inclusive) of a Global Title range to route.
maxgt String Attribute End (inclusive) of a Global Title range to route.
priority Integer Attribute Specify the priority for using this route (if route is active).
Priority 1 is the highest priority.
Larger numbers denote a lower priority.
If multiple suitable routes exist with equal highest priority, then transactions will be loadshared across all available equal highest priority routes.
(Range = 1-99, Default = 1)

Specify exactly one of pc OR minpc/maxpc OR gt OR mingt/maxgt. Point Code ranges are a numeric range. Global Title ranges are checked by string comparison.

You may have any number of routing rules pointing to a connection. In the case of overlapping routing rules, the SIGTRAN application will round robin between matched rules in the list with the same priority.

SIGTRAN Handlers

Handler rules apply to messages received on an Application Server (AS) Connection, i.e. a Connection where role = as. Handler rules are never applied to TCAP messages received on a Signalling Gateway (SG) Connection. TCAP messages received via a Connection where role = sg can only be relayed out on another Connection.

Any inbound TCAP messages received from an AS Connection must be configured as handled by a locally resident application. I.e. the inbound TCAP BEGIN for the transaction must match one of the Handler rules configured here.

Any subsequent TCAP CONTINUE, END, or ABORT received inbound from an AS must be associated with a TCAP Transaction ID for a previously-handled TCAP BEGIN.

Each handler Object in the config.handlers Array is configured as follows.

Parameter Name Type XML Type Description
tcap_ac String Attribute If specified, the handler applies only to a single TCAP Application Context.
Must be a well-known TCAP alias or a free-form hex string, e.g 04000101010003.
(Default = Match all/none TCAP Application Context)
ssn Integer Attribute If specified, the handler applies only to a single destination (local) SSN in the range 0-255.
(Default = Match all SSNs)
gt_prefix Hex String Attribute If specified, the handler applies only to TCAP BEGIN with SCCP Destination GT Digits beginning with the specified prefix.
(Default = Match all Destination GTs)
service_key Integer Attribute If defined, the handler applies only to TCAP_BEGIN containing an Invoke component with operation code = 0 (InitialDP)/60 (InitialDPSMS), and whose InitialDPArg/InitialDPSMSArg contains a ServiceKey with this exact configured integer value.
(Default = Do not check for Service Key)
opcode Integer Attribute If defined as an integer, the handler applies only to TCAP_BEGIN containing an Invoke component where the operation code matches this exact configured integer value.
Alternately, an opcode alias may be used. (Default = Do not check Invoke component operation code)
application String Attribute [Required] The name of the application which should process matching TCAP BEGIN operations for this handler.
This may be a virtual or repeated application, in which case standard load-sharing rules apply.
tcap_begin_timer 1 - 70 Attribute The time (in seconds) within which the handling application must respond to a TCAP BEGIN before we consider that processing has failed.
(Default = 6)
tcap_continue_timer 1 - 86410 Attribute The time (in seconds) within which the handling application must respond to a TCAP BEGIN before we consider that processing has failed.
(Default = 310)

The handlers will be checked in order, and the first matching handler will be used.

Opcode Aliases

When specifying a handler opcode, the following case-insensitive alias values may be used instead of specifying an integer.

Opcode Alias Protocol Value
InitialDP INAP 0
InitialDPSMS INAP 60
updateLocation MAP 2
cancelLocation MAP 3
provideRoamingNumber MAP 4
noteSubscriberDataModified MAP 5
resumeCallHandling MAP 6
insertSubscriberData MAP 7
deleteSubscriberData MAP 8
registerSS MAP 10
eraseSS MAP 11
activateSS MAP 12
deactivateSS MAP 13
interrogateSS MAP 14
authenticationFailureReport MAP 15
registerPassword MAP 17
getPassword MAP 18
releaseResources MAP 20
mt-ForwardSM-VGCS MAP 21
sendRoutingInfo MAP 22
updateGprsLocation MAP 23
sendRoutingInfoForGprs MAP 24
failureReport MAP 25
noteMsPresentForGprs MAP 26
sendEndSignal MAP 29
processAccessSignalling MAP 33
forwardAccessSignalling MAP 34
reset MAP 37
forwardCheckSS-Indication MAP 38
checkIMEI MAP 43
mt-ForwardSM MAP 44
sendRoutingInfoForSM MAP 45
mo-ForwardSM MAP 46
reportSM-DeliveryStatus MAP 47
activateTraceMode MAP 50
deactivateTraceMode MAP 51
sendIdentification MAP 55
sendAuthenticationInfo MAP 56
restoreData MAP 57
sendIMSI MAP 58
processUnstructuredSS-Request MAP 59
unstructuredSS-Request MAP 60
unstructuredSS-Notify MAP 61
anyTimeSubscriptionInterrogation MAP 62
informServiceCentre MAP 63
alertServiceCentre MAP 64
anyTimeModification MAP 65
readyForSM MAP 66
purgeMS MAP 67
prepareHandover MAP 68
prepareSubsequentHandover MAP 69
provideSubscriberInfo MAP 70
anyTimeInterrogation MAP 71
setReportingState MAP 73
statusReport MAP 74
remoteUserFree MAP 75
provideSubscriberLocation MAP 83
noteMM-Event MAP 89

Message Handling

In addition to the common Application management messages, the SigtranApp uses the following messages: