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 SUA 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"/>
</parameters>
<config>
<connections>
<connection name="peer-2057" type="sua" mode="connect" role="as">
<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" application="IN Script Service"/>
</handlers>
</config>
</application>
...
</application>
...
</n2svcd>
Configuration Details
In addition to the common Application configuration parameters,
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 |
---|---|---|---|
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)
|
.inbound_affinity
|
yes /no /1 /0
|
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 transaction. If affinity is disabled then we will independently choose the prerred connection for outbound messages on that transaction according to the configured route selection rules (using priority and loadshare). This setting does not affect transactions where this SigtranApp sends TCAP BEGIN. (Values = 0 or 1 , 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_max and net.core.wmem_max on your platform.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 )
|
.tcap_begin_timer
|
Positive Integer | Attribute |
Default guard timer after sending outbound TCAP_BEGIN or receiving inbound TCAP_BEGIN .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 ..70 , Default = 12 ).
|
.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:
- “Own PC” (
opc
) and “Own SSN” (ossn
), or - “Own GT Digits” (
ogt_digits
)
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 .
|
mode
|
String | Attribute |
The SCTP socket mode, either connect or listen .(Default = connect )
|
sccp_connection_class
|
Integer | Attribute | Override the default SCCP Connection Class for this connection. |
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.
|
remote_port
|
Positive Integer | Element |
IPv4 Port Number. Mandatory for SCTP mode = connect .
|
remote_addresses
|
String | Element |
IPv4 Host Names or A.B.C.D IPv4 Addresses. Mandatory for mode = connect .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 .
|
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 .
|
reconnect_interval
|
Positive Integer | Attribute |
The SCTP-layer reconnection interval in seconds. (Default = 3 )
|
role
|
String | Attribute |
Our role in the relationship, either as or sg .This role affects the interpretation and relevance of other connection configuration. (Default = as )
|
sg_dpc
|
Integer | Attribute |
Signalling Gateway (next-hop) Destination Point Code. This is applicable only when role = as .(Range = 0 -16383 ITU, 0 -16777215 ANSI).
|
traffic_mode
|
Enumerated | Attribute |
The Traffic Mode Type to use. Possible values are:
2 , loadshare)
|
mtp3_ni
|
Enumerated | Attribute |
The MTP3 Network Indicator to use. Only relevant for m3ua connections. Possible values are:
2 , national)
|
rc
|
Integer | Attribute |
When role = as then this is the Routing Context to use
if the far-end SG does not provide it to us. If both configured on the AS and
provided by the SG then the two values must agree.When role = sg then this is the Routing Context to supply
to the far-end AS.
|
concerned_pcs
|
String | Attribute |
This is a comma-separated list of decimal point code values. Currently these are only supported for m3ua connections.When role = as then at connection activation time
we will send an M3UA DAUD (Destination Audit) request to the far end SG, requesting
that we be sent DUNA (Destination Unavailable) and DAVA (Destination Available)
SSN Management messages for these point codes.When role = sg then we will send unsolicited
(Destination Unavailable) and DAVA (Destination Available) SSN Management messages
for these point codes to the far-end AS.
|
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 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. |
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). Routes with a higher priority number will be preferred. If multiple suitable routes exist with equal highest priority, then transactions will be loadshared across all available equal highest priority routes. (Range = 1 -5 , 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 first matching rule in the list will be used.
SIGTRAN Handlers
Handler rules define which application is used to process an inbound TCAP BEGIN.
Each handler
Object in the config
.handlers
Array is configured as follows.
Parameter Name | Type | XML Type | Description |
---|---|---|---|
ssn
|
Integer | Attribute |
If specified, the handler applies only to a single destination (local) SSN. (Default = Match all SSNs) |
service_key
|
Integer | Attribute |
If defined, the handler applies only to TCAP_BEGIN containing an Invoke component with
operation code = 0 (InitialDP ), and whose InitialDPArg contains a
ServiceKey with this exact configured integer value.This service_key match is only valid for a handler which also specifies ssn .(Default = Match all TCAP_BEGIN, do not check Operation Code or Service Key) |
opcode
|
Integer | Attribute |
If defined, the handler applies only to TCAP_BEGIN containing an Invoke component where
the operation code matches this exact configured integer value.This opcode match is only valid for a handler which also specifies ssn .This opcode match is not valid for a handler which also specifies service_key .(Default = Match all TCAP_BEGIN, do not check Operation Code) |
application
|
String | Attribute |
The name of the application which should process matching TCAP BEGIN operations. This will normally refer to a ScriptApp instance. |
The handlers will be checked in order, and the first matching handler will be used.
Message Handling
In addition to the common Application management messages, the SigtranApp uses the following messages:
- TCAP Messages (TCAP-BEGIN inbound).
- TCAP Messages (TCAP-BEGIN outbound).