| draft-benedyk-sigtran-tali-00Description: Request For CommentsYou can download source copies of the file as follows:
Listed below is the contents of file draft-benedyk-sigtran-tali-00.txt.
Internet Engineering Task Force Tekelec
INTERNET DRAFT David Sprague
<draft-benedyk-sigtran-tali-00.txt> Robby Benedyk
Category: Informational Dan Brendes
Expires: November 28, 1999 John Mason
Transport Adapter Layer Interface
David Sprague, Dan Brendes, Robby Benedyk, John Mason, Tekelec
May 28, 1999
Status of this document
This document is an Internet-Draft and is in full conformance with all
provisions of Section 10 of RFC2026. Internet-Drafts are working
documents of the Internet Engineering Task Force (IETF), its areas, and
its working groups. Note that other groups may also distribute working
documents as Internet-Drafts.
Internet-Drafts are draft documents valid for a maximum of six months
and may be updated, replaced, or obsoleted by other documents at any
time. It is inappropriate to use Internet- Drafts as reference
material or to cite them other than as "work in progress."
The list of current Internet-Drafts can be accessed at
http://www.ietf.org/ietf/1id-abstracts.txt
The list of Internet-Draft Shadow Directories can be accessed at
http://www.ietf.org/shadow.html
ABSTRACT
This document proposes the interfaces of a Signaling Gateway, which
provides interworking between the Switched Circuit Network (SCN) and an
IP network. Since the Gateway is the central point of signaling
information, not only does it provide transportation of signaling from
one network to another, but can also provide additional functions such
as protocol translation, security screening, routing information, and
seamless access to Intelligent Network(IN) services on both networks.
The Transport Adapter Layer Interface (TALI) is the proposed interface,
which provides TCAP, ISUP, and MTP messaging over TCP/IP. In addition,
TALI provides SCCP Management (SCMG), MTP Primitives, dynamic
registration of circuits, and routing of call control messages based on
circuit location.
Table of Contents
1 Introduction 3
2 Architecture 4
3 TALI 5
3.1 TALI Payload 7
3.2 Message Components 8
3.2.1 Point Code Substructure 8
3.2.2 Test 8
3.2.3 Allow Socket 8
3.2.4 Prohibit Socket 9
3.2.5 Prohibit Socket Acknowledge 9
3.2.6 Monitor 9
3.2.7 Monitor Acknowledge 9
3.2.8 SCCP 10
3.2.9 ISUP 10
3.2.10 MTP3 10
3.2.11 MTP Primitives 11
3.2.12 SCCP Primitives 11
3.2.13 Routing Key Registration 12
3.2.14 Routing Key Deregistration 12
3.2.15 Routing Key Substructure 13
3.2.16 Special 13
4 Message Transport 13
4.1 SCCP 13
4.2 ISUP 14
4.3 MTP3 14
4.4 MTP Primitives 15
4.4.1 MTP-PAUSE-INDICATION 15
4.4.2 MTP-RESUME-INDICATION 15
4.4.3 MTP-STATUS-INDICATION 15
4.4.4 MTP-STATUS-REQUEST 15
4.5 SCCP Primitives 16
4.6 Routing Key Registration 16
4.6.1 Registering CICs 16
4.6.2 Registering Subsystems 16
4.7 Routing Key Deregistration 17
4.8 Special Service Message 17
4.9 Socket Management Messages 17
5 Event Handling and State Machine 18
5.1 SS7 Message Handling Events 26
5.1.1 Implementation Dependent Event 26
5.2 Management Events 27
5.2.1 Management Open Socket 27
5.2.2 Management Close Socket 27
5.2.3 Management Allow Traffic 27
5.2.4 Management Prohibit Traffic 27
5.3 Peer Events 27
5.3.1 Received Test Message 27
5.3.2 Received Allow Message 27
5.3.3 Received Prohibit Message 27
5.3.4 Received Prohibit Acknowledge Message 27
5.3.5 Received Monitor Message 27
5.3.6 Received Monitor Acknowledge Message 28
5.4 General Protocol Rules 28
5.5 Graceful Socket Shutdown 28
6 Abbreviations 29
7 Acknowledgements 30
8 Author Information 30
Page 3
1 INTRODUCTION
This document is organized into the following 4 sections:
- Introduction to the document
- Architecture
- Protocol - TALI
- Message Transport
- Event Handling, and State Machine
The following terms are used throughout this document.
Intelligent Network (IN):
A network that allows functionality to be distributed flexibly at a
variety of nodes on and off the network and allows the architecture to
be modified to control the services.
Media Gateway (MG):
A MG terminates SCN media streams, packetizes the media data,, if it
is not already packetized, and delivers packetized traffic to the
packet network. It performs these functions in reverse order for media
streams flowing from the packet network to the SCN.
Media Gateway Controller (MGC):
An MGC handles the registration and management of resources at the MG.
The MGC may have the ability to authorize resource usage based on local
policy. For signaling transport purposes, the MGC serves as a possible
termination and origination point for SCN application protocols, such
as SS7 ISDN User Part and Q.931/DSS1.
Signaling Gateway (SG):
An SG is a signaling agent that receives/sends SCN native signaling at
the edge of the IP network. The SG function may relay, translate or
terminate SS7 signaling in an SS7-Internet Gateway. The SG function may
also be co-resident with the MG function to process SCN signaling
associated with line or trunk terminations controlled by the MG (e.g.,
signaling backhaul).
Switched Circuit Network (SCN):
The term SCN is used to refer to a network that carries traffic within
channelized bearers of pre-defined sizes. Examples include Public
Switched Telephone Networks (PSTNs) and Public Land Mobile Networks
(PLMNs). Examples of signaling protocols used in SCN include Q.931,
SS7 MTP Level 3 and SS7 Application/User parts.
Page 4
2 ARCHITECTURE
The Signaling Gateway provides an interface to the SCN, other Signaling
Gateways, and Intelligent Network (IN) services on the SCN network; and
to Media Gateway Controllers and IN Services on an IP network.
Signaling Gateways are deployed in pairs for redundancy and
reliability. Multiple MGCs are served by both Signaling Gateways and
operate either in a load sharing or "hot standby" configuration. TALI
provides for signaling transport and the appropriate signaling
management functions for the MGCs under load sharing and communication
failure cases. TALI is not limited to MGCs, but may also provide
signaling to IP based SCPs, and other devices equipped with an IP
interface. See Figure 2.
+-------+ /---------/
| | | |
| | SS7 Link | SCP |
+------IP Network-+--------| SG |----------| |
| | | | +---------+
| | | |-----------------+-------+
| | +-------+ | |
| | | SSP |
| | | |
+------+ +-----+ +-------+
| | | | || ||
|IP-SCP| | MGC | || ||
| | | | || ||
+------+ +-----+ || ||
| || ||
+-----+ || ||
| | || ||
| MG | PRI or CAS || ||
| |-------------------------------+| ||
+-----+--------------------------------+ ||
|| ||
|+---------------------------------------+|
+-----------------------------------------+
ISUP Trunk
SG=Signaling Gateway PRI=Primary Rate Interface (ISDN)
MGC=Media Gateway Controller CAS=Circuit Associated Signaling
MG=Media Gateway ISUP=ISDN User Part
SCP=Service Control Point
SSP=Signaling Switching Point
Figure 1.
Page 5
+-------+
| |
| |
+------IP Network-+----+---| SG |
| | | | |
| | | | | SS7 Link +-------+
| | | +-------+-----------------| |
| | | | | SSP |
| | +---+-------+-----------------| |
| | | | SS7 Link | |
+------+ +-----+ | | +-------+
| | | | | |
|IP-SCP| | MGC | | SG |
| | | | | |
+------+ +-----+ +-------+
Figure 2.
3 TALI
TALI is an adapter layer protocol used to support reliable
communication between the SS7 Signaling Network and applications
residing within the IP network.
TALI provides:
Client / Server relationship between the user and the application
Standard Berkeley sockets based connection oriented service
Management control of the sockets
Controlled flow of data across the socket
Encapsulation of SCCP, TCAP and ISUP data within service
messages
Identification of particular SCN protocol being carried
Test and watchdog maintenance messages
Graceful shutdown of socket
Transport of multiple protocol types within a single underlying
Session
This version of TALI provides 3 SS7 signaling transport methods. It
should be noted TALI can be extended. This version provides
functionality for MTP over TCP/IP ('mtp3'), SCCP/TCAP over TCP/IP
('sccp'), and ISUP over TCP/IP ('isot'). These three methods comprise
the Service Messages.
- SCCP/TCAP Service Message ('sccp')
Provides delivery of SCCP/TCAP messages in a TCP/IP packet. Subsystem
Management of the SCPs is provided via normal SCCP Management(SCMG)
contained within UNITDATA messages.
- MTP3 Service Message ('mtp3')
Provides delivery of MTP3 and User Data in a TCP/IP packet.
- ISUP Service Message ('isot')
Provides delivery of ISUP messages in a TCP/IP packet.
Page 6
Additional functions provided by TALI are socket management, socket
test procedures, traffic management, and mechanisms for
registration/deregistration of circuits. These are outlined below:
- Socket Test ('test')
A periodic test message for service message availability. Either a
'proh' or an 'allo' should be returned.
- Allow/Prohibit Service Messages ('allo'/'proh')
Allow/Disallow service messages to flow across this socket.
- Prohibit Service Acknowledgment Message ('proa')
Acknowledges the Prohibit Service Message ('proh').
- Monitor/Monitor Acknowledge Socket ('moni'/'mona')
These messages provide a test of round-trip delay on a socket. The
'mona' is sent in response to a 'moni'. Either side can initiate a
'moni' to measure round trip delay on a congested socket.
- MTP Primitives ('mtpp')
This message delivers signaling management messages for events such as
Signaling Point Availability/Unavailability and Signaling Point
congestion status.
- SCCP Primitives ('scpp')
This message provides another mechanism for Subsystem Management of an
SCP, via seven (7) SCMG messages.
- Routing Key Registration/Deregistration ('rkrg'/'rkdr')
It may be necessary for the Signaling Gateway to route signaling
traffic based on Circuit Identification Code (CIC). These message
allows dynamic registration/deregistration of MG terminated circuits or
CICs. This message also allows registration of SCCP Subsystems.
- Special ('spcl')
Intended for transport of other data formats not specified within TALI.
Page 7
3.1 TALI Payload
The TALI payload follows:
==================================================================
OCTET| DESCRIPTION | TYPE | ASCII
=====|==========================================|========| =======
1 | SYNC | OCTETS | 'TALI'
------------------------------------------------------------------
5 | OPCODE | OCTETS |
| Test Service on this Socket | | 'test'
| Allow Service messages on this socket | | 'allo'
| Prohibit Service messages on this socket| | 'proh'
| Prohibit Service messages Ack | | 'proa'
| Monitor Socket message on this socket | | 'moni'
| Monitor Socket message Ack | | 'mona'
| SCCP Service message | | 'sccp'
| ISUP Service message | | 'isot'
| MTP3 Service message | | 'mtp3'
| MTP Primitives | | 'mtpp'
| SCCP Primitives | | 'scpp'
| Routing Key Registration | | 'rkrg'
| Routing Key De-Registration | | 'rkdr'
| Special Service Message | | 'spcl'
-------------------------------------------------------------------
9 | LENGTH (least significant byte first) | OCTETS |
| Non zero if message contains Service | |
| or Monitor Socket message | |
-------------------------------------------------------------------
11 | SERVICE MESSAGE DATA | |
| | |
===================================================================
Page 8
3.2 Message Components
3.2.1 Point Code Substructure
======================================================================
OCTETS | FIELD NAME | DESCRIPTION
| |
=======================|==============================================
0-3 | Point Code | 4 octets
| | Octet 0: Encoding
| | 0=ANSI
| | 1=NULL (Octets 1-3 are undefined)
| | 2=ITU National
| | 3=ITU
| | If ANSI:
| | Octet 1=Network
| | Octet 2=Cluster
| | Octet 3=Member
| | If ITU National:
| | Octet 1=Zone
| | Octet 2=Area
| | Octet 3=Id
| | If ITU:
| | Octet 1-3=Number
----------------------------------------------------------------------
3. 2.2 Test ('test')
======================================================================
OCTETS | FIELD NAME | DESCRIPTION
| |
======================================================================
0-3 | SYNC | 'TALI'
----------------------------------------------------------------------
4-7 | OPCODE | 'test'
----------------------------------------------------------------------
8-9 | Length | 00
----------------------------------------------------------------------
3.2.3 Allow Socket ('allo')
======================================================================
OCTETS | FIELD NAME | DESCRIPTION
| |
======================================================================
0-3 | SYNC | 'TALI'
----------------------------------------------------------------------
4-7 | OPCODE | 'allo'
----------------------------------------------------------------------
8-9 | Length | 00
----------------------------------------------------------------------
Page 9
3.2.4 Prohibit Socket ('proh')
======================================================================
OCTETS | FIELD NAME | DESCRIPTION
| |
=======|===============|==============================================
0-3 | SYNC | 'TALI'
----------------------------------------------------------------------
4-7 | OPCODE | 'proh'
----------------------------------------------------------------------
8-9 | Length | 00
----------------------------------------------------------------------
3.2.5 Prohibit Socket Acknowledge ('proa')
======================================================================
OCTETS | FIELD NAME | DESCRIPTION
| |
=======|===============|==============================================
0-3 | SYNC | 'TALI'
----------------------------------------------------------------------
4-7 | OPCODE | 'proa'
----------------------------------------------------------------------
8-9 | Length | 00
----------------------------------------------------------------------
3.2.6 Monitor ('moni')
======================================================================
OCTETS | FIELD NAME | DESCRIPTION
| |
======================================================================
0-3 | SYNC | 'TALI'
----------------------------------------------------------------------
4-7 | OPCODE | 'moni'
----------------------------------------------------------------------
8-9 | Length | 0-200
----------------------------------------------------------------------
10-x | Data | Variable Length
----------------------------------------------------------------------
3.2.7 Monitor Acknowledge ('mona')
======================================================================
OCTETS | FIELD NAME | DESCRIPTION
| |
======================================================================
0-3 | SYNC | 'TALI'
----------------------------------------------------------------------
4-7 | OPCODE | 'mona'
----------------------------------------------------------------------
8-9 | Length | 0-200
----------------------------------------------------------------------
10-x | Data | Data must match corresponding 'moni'
----------------------------------------------------------------------
Page 10
3.2.8 SCCP ('sccp')
======================================================================
OCTETS | FIELD NAME | DESCRIPTION
| |
======================================================================
0-3 | SYNC | 'TALI'
----------------------------------------------------------------------
4-7 | OPCODE | 'sccp'
----------------------------------------------------------------------
8-9 | Length | variable
----------------------------------------------------------------------
10-x | Data | SCCP and TCAP Data starting at the SCCP
| | message type
| |
----------------------------------------------------------------------
3.2.9 ISUP Data ('isot')
======================================================================
OCTETS | FIELD NAME | DESCRIPTION
| |
======================================================================
0-3 | SYNC | 'TALI'
----------------------------------------------------------------------
4-7 | OPCODE | 'isot'
----------------------------------------------------------------------
8-9 | Length | variable
----------------------------------------------------------------------
10-x | Data | ISUP message starting at the SIO in the
| | MTP3 header.
| |
----------------------------------------------------------------------
3.2.10 MTP3 ('mtp3')
======================================================================
OCTETS | FIELD NAME | DESCRIPTION
| |
======================================================================
0-3 | SYNC | 'TALI'
----------------------------------------------------------------------
4-7 | OPCODE | 'mtp3'
----------------------------------------------------------------------
8-9 | Length | variable
----------------------------------------------------------------------
10-x | Data | MTP3 and User Data starting at the SIO in the
| | MTP3 header
| |
----------------------------------------------------------------------
Page 11
3.2.11 MTP Primitives ('mtpp')
======================================================================
OCTETS | FIELD NAME | DESCRIPTION
| |
======================================================================
0-3 | SYNC | 'TALI'
----------------------------------------------------------------------
4-7 | OPCODE | 'mtpp'
----------------------------------------------------------------------
8-9 | Length | 0012
----------------------------------------------------------------------
10-13 | Primitive | 0=Pause Indication
| | 1=Resume Indication
| | 2=Status Indication
| | 3=Status Request
----------------------------------------------------------------------
14-17 | Concerned | Point Code Substructure
| Point Code |
-----------------------------------------------------------------------
| |
18-21 | Cause | Used to carry congestion level status
| Code | (Primitives 2&3 Only)
| |
----------------------------------------------------------------------
3.2.12 SCCP Primitives ('scpp')
======================================================================
OCTETS | FIELD NAME | DESCRIPTION
| |
======================================================================
0-3 | SYNC | 'TALI'
----------------------------------------------------------------------
4-7 | OPCODE | 'scpp'
----------------------------------------------------------------------
8-9 | Length | 0016
----------------------------------------------------------------------
10-13 | Primitive | 0=Subsystem Allowed
| | 1=Subsystem Prohibited
| | 2=Subsystem Test
| | 3=Subsystem Out of Service Request
| | 4=Subsystem Out of Service Grant
| | 5=Susbystem Backup Routing
| | 6=Subsystem Normal Routing
----------------------------------------------------------------------
14-17 | Affected | Point Code Substructure
| Point Code |
----------------------------------------------------------------------
18-21 | Affected |
| Subsystem | Affected Subsystem = 0-255
| |
----------------------------------------------------------------------
22-25 | Subsystem |
| Multiplicity | 0-3
| Indicator |
----------------------------------------------------------------------
Page 12
3.2.13 Routing Key Registration ('rkrg')
======================================================================
OCTETS | FIELD NAME | DESCRIPTION
| |
======================================================================
0-3 | SYNC | 'TALI'
----------------------------------------------------------------------
4-7 | OPCODE | 'rkrg'
----------------------------------------------------------------------
8-9 | Length | 2 + 24(Key Count)
----------------------------------------------------------------------
10-11 | Key Count | Number of Keys in the message, maximum 50
----------------------------------------------------------------------
12-x | Routing Key | Set of routing key sub-structures
| Sub-Structure|
----------------------------------------------------------------------
3.2.14 Routing Key Deregistration ('rkdr')
======================================================================
OCTETS | FIELD NAME | DESCRIPTION
| |
======================================================================
0-3 | SYNC | 'TALI'
----------------------------------------------------------------------
4-7 | OPCODE | 'rkdr'
----------------------------------------------------------------------
8-9 | Length | 2 + 24(Key Count)
----------------------------------------------------------------------
10-11 | Key Count | Number of Keys in the message, maximum 50
----------------------------------------------------------------------
12-x | Routing Key | Set of routing key sub-structures
| Sub-Structure|
----------------------------------------------------------------------
Page 13
3.2.15 Routing Key Sub-structure
======================================================================
OCTETS | FIELD NAME | DESCRIPTION
======================================================================
0-3 | Type | 0=SCCP-REQ
| | 1=ISUP-REQ
| | 2=SCCP-IND
| | 3=ISUP-IND
----------------------------------------------------------------------
4-7 | OPC | Point Code Substructure
| |
----------------------------------------------------------------------
8-11 | DPC | Point Code Substructure
| |
----------------------------------------------------------------------
12-15 | SSN | Subsystem Number (Valid for types 0 and 2)
----------------------------------------------------------------------
16-17 | CIC Low | CIC low end of range (Valid for types 1 and 3)
----------------------------------------------------------------------
18-19 | CIC High | CIC high end of range(Valid for types 1 and 3)
----------------------------------------------------------------------
20-23 | Indication | Indication - Valid for Indications Only
| Code | 0=Success
| | 1=Fail
======================================================================
3.2.16 Special ('spcl')
======================================================================
OCTETS | FIELD NAME | DESCRIPTION
| |
======================================================================
0-3 | SYNC | 'TALI'
----------------------------------------------------------------------
4-7 | OPCODE | 'spcl'
----------------------------------------------------------------------
8-9 | Length | Variable
----------------------------------------------------------------------
10-x | Data | Non-TALI specific data
----------------------------------------------------------------------
4 Message Transport
4.1 SCCP
On a SCCP MSU message arriving from the SS7 Network the Signaling
Gateway takes the SS7 MSU:
+ discards the MTP Layer 2 information, CRC and flags
+ places the DPC from MTP Layer 3 into the Called Party Address field
of the SCCP layer; the Called Party Point Code is added to the Called
Party Address if it does not exist,
+ places the OPC from MTP Layer 3 into the Calling Party Address field
of the SCCP layer if there is no Calling Party Point Code,
+ places the modified SCCP and unchanged TCAP data in the service
payload area of the TALI packet,
+ The OPCODE is set to 'sccp',
+ The LENGTH is set to the number of octets in the SERVICE field.
Page 14
Since the routing information from MTP Layer 3 is placed in the SCCP
part of the outgoing message, no routing information needs to be saved
by the Signaling Gateway
On a data message arriving from the IP Network the Signaling Gateway:
+ validates the TALI header,
+ Regenerate the SIO with the Sub-Service Field set to National
Network, priority of zero (0), Service Indicator set to SCCP
+ extracts the SCCP/TCAP data from the SERVICE area and places it in
the new SS7 message,
+ sets the DPC to the SCCP Called Party Point Code,
+ sets the OPC to the SCCP Calling Party Point Code,
+ randomly generates the SLS
+ The Layer 2 data is properly formatted and the message is routed out
of the Signaling Gateway.
4.2 ISUP
On an ISUP MSU message arriving from the SS7 Network the Signaling
Gateway takes the SS7 MSU:
+ discards the MTP Layer 2 information, CRC and flags
+ places SIO, Routing Label, and ISUP data into the
SERVICE payload area of the TALI packet,
+ The OPCODE is set to 'isot'
+ The LENGTH is set to the number of octets in the SERVICE field.
Since the routing information is placed in the TALI Packet, no routing
information needs to be saved by the Signaling Gateway.
On a data message arriving from the IP Network the Signaling Gateway
takes:
+ validates the TALI header,
+ extracts the MTP Layer 3 data from the SERVICE area and places it in
the new SS7 message,
+ The Layer 2 data is properly formatted and the message is routed out
of the Signaling Gateway.
4.3 MTP3
On a MTP3 MSU message arriving from the SS7 Network the Signaling
Gateway takes the SS7 MSU:
+ discards the MTP Layer 2 information, CRC and flags
+ places SIO, Routing Label, and User Data into the
SERVICE payload area of the TALI packet,
+ The OPCODE is set to "mtp3",
+ The LENGTH is set to the number of octets in the SERVICE field.
Since the routing information is placed in the TALI Packet, no routing
information needs to be saved by the Signaling Gateway.
On a data message arriving from the IP Network the Signaling Gateway
takes:
+ validates the TALI header,
+ extracts the MTP Layer 3 data from the SERVICE area and places it in
the new SS7 message,
+ The Layer 2 data is properly formatted and the message is routed out
of the Signaling Gateway.
Page 15
4.4 MTP Primitives
4.4.1 MTP-PAUSE-INDICATION
The MTP-PAUSE-INDICATION is sent from the Signaling Gateway for the
following events:
1) On isolation of an SS7 Network Element
2) In response to a message bound for an isolated Network Element
3) In response to a MTP-STATUS request concerning an unavailable node
On any of these three events, the Signaling Gateway performs the
following:
+ The OPCODE is set to "mtpp",
+ The primitive is set to MTP-PAUSE-INDICATION,
+ The Concerned Point Code is placed in the Message Parameters field
+ The LENGTH is set to the number of octets in the Message Parameters
field.
4.4.2 MTP-RESUME-INDICATION
The MTP-RESUME-INDICATION is sent from the Signaling Gateway for the
following events:
1) On new availability of an SS7 Network Element
2) In response to a MTP-STATUS request concerning an available node
On any of these two events, the Signaling Gateway performs the
following:
+ The OPCODE is set to "mtpp",
+ The primitive is set to MTP-RESUME-INDICATION,
+ The Concerned Point Code is placed in the Message Parameters
field
+ The LENGTH is set to the number of octets in the Message Parameters
field.
4.4.3 MTP-STATUS-INDICATION
On a transition of congestion level of an SS7 Network Element, the
Signaling Gateway does the following:
+ The OPCODE is set to "mtpp",
+ The primitive is set to MTP-STATUS-INDICATION,
+ The Concerned Point Code and Cause Code are placed in the Message
Parameters field
+ The LENGTH is set to the number of octets in the Message Parameters
field.
4.4.4 MTP-STATUS-REQUEST
The MTP-STATUS-REQUEST is sent to query the status of a concerned point
code.
+ The OPCODE is set to "mtpp",
+ The primitive is set to MTP-STATUS-REQUEST,
+ The Concerned Point Code is placed in the Message Parameters
field
+ The LENGTH is set to the number of octets in the Message Parameters
field.
Page 16
4.5 SCCP Primitives
SCCP Subsystem Management (SCMG) is provided through a set of SCCP
primitives passed between the Signaling Gateway and the IP-SCP. To
send an SCCP primitive, the Signaling Gateway does the following:
+ The OPCODE is set to "scpp",
+ The primitive is set to either:
00000000 - Subsystem Allowed
00000001 - Subsystem Prohibited
00000002 - Subsystem Test
00000003 - Subsystem Out of Service Request
00000004 - Subsystem Out of Service Grant
00000005 - Subsystem Backup Routing
00000006 - Subsystem Normal Routing
+ The Concerned Point Code, Subsystem, and Subsystem Multiplicity
Indicator (SMI) are placed in the Message Parameters field
+ The LENGTH is set to the number of octets in the Message Parameters
field.
4.6 Routing Key Registration
The Routing Key Registration ('rkrg') message is sent to the Signaling
Gateway to dynamically register Circuit Identification Codes (CIC)
which are available for call processing, or SCCP Subsystems available
for TCAP transactions. The routing key sub-structure contains the type
"ISUP-REQ" for registering CICs or "SCCP-REQ" for registering
subsystems.
4.6.1 Registering CICs
The registration message substructure contains the OPC, DPC, and range
of CICs available. All subsequent ISUP messages, which contain the
specified range of CICs, are routed via the socket from which the
'rkrg' was received. A registration message can register 50 CIC
ranges. The CICs must be deregistered before use by another socket.
The Signaling Gateway indicates registration success by returning the
'rkrg' with the type field set to 'ISUP-IND' in the registration sub-
structure, and the Indication Code set to success. If the CICs can not
be registered, a fail code is placed in the Indication Code.
4.6.2 Registering SCCP Subsystems
The registration message substructure contains the Subsystem and Point
Code available. All subsequent TCAP queries, which contain the
specified Subsystem, are routed via the socket from which the 'rkrg'
was received. Multiple registration messages can be sent to register
multiple Subsystems.
The Signaling Gateway indicates registration success by returning the
'rkrg' with the type field set to 'SCCP-IND' in the registration sub-
structure, and the Indication Code set to success. If the Subsystem
can not be registered, a fail cause code is placed in the Indication
Code.
Page 17
4.7 Routing Key Deregistration
The Routing Key Deregistration 'rkdr' message is sent to the Signaling
Gateway to indicate that the specified range of CICs or the specified
Subsystems are no longer available for call processing or transaction
capability. The deregistration message contains the OPC, DPC, and
range of CICs/Subsystems to be deregistered. The type field is set to
either ISUP-REQ or SCCP-REQ.
The Signaling Gateway indicates deregistration success by returning the
'rkdr' with the type field set to 'ISUP-IND' or 'SCCP-IND' in the
registration sub-structure, and the Indication Code set to success. If
the Subsystem or CICs can not be deregistered, a fail code is placed in
the Indication Code.
4.8 Special Service Message
The Special Service Message is available for transmission of any raw
data between the Signaling Gateway and connected network element. To
send a special service message:
+ The OPCODE is set to "spcl",
+ The LENGTH is set to the number of octets in the Special Service
Message,
4.9 Socket Management Messages
The socket management messages are addressed in section 5 and include
'test', 'allo', 'proh', 'proa', 'moni', and 'mona'.
Page 18
5 Event Handling and State Machine
The TALI State Machine and Event Handling:
+============+ +============+
| | |---------| |------------------| | |
| User | | Service | | Mgmt. Open | | MANAGEMENT |
| Part |<-->| Message | | Mgmt. Close |<-->| |
| | | | | Mgmt. Proh. | | |
| | |---------| | Mgmt. Allow | +============+
+============+ ^ |------------------|
| ^
| |
v v
+====================================================================+
| TALI State Machine |
| |
+====================================================================+
^ ^ ^ ^
| | | |
| | | |
| | | |
v | | |
--------- ----------------- ------------ ------------------
| Received| | | | | | |
| 'test' | | Connection est. | | Protocol | | T1 Timer Expired |
| 'allo' | | Connection lost | | Violation | | T2 Timer Expired |
| 'proh' | | | | | | T3 Timer Expired |
| 'proa' | ----------------- ----------- | T4 Timer Expired |
| 'moni' | ^ ------------------
| 'mona' | | ^
| or | | |
| Service | | |
| Message | | |
| | | |
--------- | |
^ | |
| +=================================================+
| | |
| | IMPLEMENTATION |
| | DEPENDENT |
| +=================================================+
v
+============+
| PEER |
| |
+============+
Page 19
TALI STATES
======================================================================
Name | Description
======================================================================
OOS | NE prohibited - FE prohibited, socket is Out of
| Service
----------------------------------------------------------------------
Connecting | NE prohibited - FE prohibited, Socket is attempting
| to connect. Servers are 'accepting', Clients are
| 'connecting'
----------------------------------------------------------------------
NEP-FEP | Both sides are not ready to use the socket for
| service PDUs
----------------------------------------------------------------------
NEP-FEA | NE is not ready to use the socket for service PDUs
| FE is ready to use the socket for service PDUs
----------------------------------------------------------------------
NEA-FEP | FE is not ready to use the socket for service PDUs
| NE is ready to use the socket for service PDUs
----------------------------------------------------------------------
NEA-FEA | Both side are ready to use the socket for service
| PDUs. This is the only state where normal bi-
| directional data transfer occurs.
======================================================================
TALI TIMERS
======================================================================
NAME | MIN | MAX | DEFAULT | DESCRIPTION
======================================================================
T1 | 100ms | 60 sec | 3 sec | Send test PDU timer
----------------------------------------------------------------------
T2 | 100ms | 60 sec | 2 sec | Response timer for a 'allo' or
| | | | 'proh' response to test message
----------------------------------------------------------------------
T3 | 100ms | 60 sec | 5 sec | Timer controls how long to process
| | | | rcvd service data after an NE
| | | | transition from NEA to NEP. System
| | | | is waiting for a 'proa' response to
| | | | the first 'proh' sent when NE
| | | | transitions from NEA to NEP.
----------------------------------------------------------------------
T4 | 100ms | 60 sec | 60 sec | Send 'moni' PDU timer
======================================================================
*T1 must be greater than T2
Page 20
Out of Service State
=====================================================================
| | STATE |
| EVENT | Out of Service |
| | | OOS |
| V | |
+----------------------+---------------------------------------------+
| T1 Timer Expired | |
+----------------------+---------------------------------------------+
| T2 Timer Expired | |
+----------------------+---------------------------------------------+
| T3 Timer Expired | |
+----------------------+---------------------------------------------+
| Received 'test' | |
+----------------------+---------------------------------------------+
| Received 'allo' | |
+----------------------+---------------------------------------------+
| Received 'proh' | |
+----------------------+---------------------------------------------+
| Received 'proa' | |
+----------------------+---------------------------------------------+
| Received 'moni' | |
+----------------------+---------------------------------------------+
| Received 'mona' | |
+----------------------+---------------------------------------------+
| Received 'isot', | |
| 'sccp', or 'mtp3' | |
+----------------------+---------------------------------------------+
|Connection Established| |
+----------------------+---------------------------------------------+
| Connection Lost | |
+----------------------+---------------------------------------------+
| Protocol Violation | |
+----------------------+---------------------------------------------+
| Mgmt. Open Socket | Open the Socket, New State=Connecting |
+----------------------+---------------------------------------------+
| Mgmt. Close Socket | |
+----------------------+---------------------------------------------+
| Mgmt. Prohibit Socket| sock_allowed=FALSE |
+----------------------+---------------------------------------------+
| Mgmt. Allow Socket | sock_allowed=TRUE |
+----------------------+---------------------------------------------+
| SCCP, ISUP, MTP3 | Reject data |
+----------------------+---------------------------------------------+
Page 21
Connecting State
=====================================================================
| | STATE |
| EVENT | Connecting |
| | | |
| V | |
+----------------------+---------------------------------------------+
| T1 Timer Expired | |
+----------------------+---------------------------------------------+
| T2 Timer Expired | |
+----------------------+---------------------------------------------+
| T3 Timer Expired | |
+----------------------+---------------------------------------------+
| Received 'test' | |
+----------------------+---------------------------------------------+
| Received 'allo' | |
+----------------------+---------------------------------------------+
| Received 'proh' | |
+----------------------+---------------------------------------------+
| Received 'proa' | |
+----------------------+---------------------------------------------+
| Received 'moni' | |
+----------------------+---------------------------------------------+
| Received 'mona' | |
+----------------------+---------------------------------------------+
| Received 'isot', | |
| 'sccp', or 'mtp3' | |
+----------------------+---------------------------------------------+
|Connection Established| start T1, start T2, |
| | If sock_allowed |
| | send 'allo', send 'test' |
| | New State=NEA-FEP |
| | Else |
| | send 'proh', send 'test' |
| | New State=NEP-FEP
+----------------------+---------------------------------------------+
| Connection Lost | |
+----------------------+---------------------------------------------+
| Protocol Violation | |
+----------------------+---------------------------------------------+
| Mgmt. Open Socket | |
+----------------------+---------------------------------------------+
| Mgmt. Close Socket | Close socket, New State=OOS |
+----------------------+---------------------------------------------+
| Mgmt. Prohibit Socket| sock_allowed=FALSE |
+----------------------+---------------------------------------------+
| Mgmt. Allow Socket | sock_allowed=TRUE |
+----------------------+---------------------------------------------+
| SCCP, ISUP, MTP3 | reject data |
+----------------------+---------------------------------------------+
Page 22
Near End Prohibited-Far End Prohibited
=====================================================================
| | STATE |
| EVENT | NEP-FEP |
| | | |
| V | |
+----------------------+---------------------------------------------+
| T1 Timer Expired | send test, start T1, start T2 |
+----------------------+---------------------------------------------+
| T2 Timer Expired | Protocol Violation |
+----------------------+---------------------------------------------+
| T3 Timer Expired | Protocol Violation |
+----------------------+---------------------------------------------+
| Received 'test' | Send 'proh' |
+----------------------+---------------------------------------------+
| Received 'allo' | Stop T2, New State=NEP-FEA |
+----------------------+---------------------------------------------+
| Received 'proh' | Stop T2, Send 'proa' |
+----------------------+---------------------------------------------+
| Received 'proa' | Stop T3 |
+----------------------+---------------------------------------------+
| Received 'moni' | Convert 'moni' to 'mona', send 'mona' |
+----------------------+---------------------------------------------+
| Received 'mona' | Implementation dependent |
+----------------------+---------------------------------------------+
| Received 'isot', | Protocol Violation |
| 'sccp', or 'mtp3' | |
+----------------------+---------------------------------------------+
|Connection Established| |
+----------------------+---------------------------------------------+
| Connection Lost | Protocol Violation |
+----------------------+---------------------------------------------+
| Protocol Violation | Stop all timers, Close the socket |
| | New State=connecting |
+----------------------+---------------------------------------------+
| Mgmt. Open Socket | |
+----------------------+---------------------------------------------+
| Mgmt. Close Socket | Stop all timers, Close the socket |
| | New state=OOS |
+----------------------+---------------------------------------------+
| Mgmt. Prohibit Socket| sock_allowed=FALSE |
+----------------------+---------------------------------------------+
| Mgmt. Allow Socket | sock_allowed=TRUE, send 'allo' |
| | New state=NEA-FEP |
+----------------------+---------------------------------------------+
| SCCP, ISUP, MTP3 | reject data |
+----------------------+---------------------------------------------+
Page 23
Near End Prohibited-Far End Allowed
=====================================================================
| | STATE |
| EVENT | NEP-FEA |
| | | |
| V | |
+----------------------+---------------------------------------------+
| T1 Timer Expired | Send 'test', start T1, start T2 |
+----------------------+---------------------------------------------+
| T2 Timer Expired | Protocol Violation |
+----------------------+---------------------------------------------+
| T3 Timer Expired | Protocol Violation |
+----------------------+---------------------------------------------+
| Received 'test' | Send 'proh' |
+----------------------+---------------------------------------------+
| Received 'allo' | Stop T2 |
+----------------------+---------------------------------------------+
| Received 'proh' | Stop T2, send 'proa', New State=NEP-FEP |
+----------------------+---------------------------------------------+
| Received 'proa' | Stop T3 |
+----------------------+---------------------------------------------+
| Received 'moni' | Convert 'moni' to 'mona', send 'mona' |
+----------------------+---------------------------------------------+
| Received 'mona' | Implementation dependent |
+----------------------+---------------------------------------------+
| Received 'isot', | If T3 running, Process Data |
| 'sccp', or 'mtp3' | Else Protocol Violation |
+----------------------+---------------------------------------------+
|Connection Established| |
+----------------------+---------------------------------------------+
| Connection Lost | Protocol Violation |
+----------------------+---------------------------------------------+
| Protocol Violation | Stop all timers, Close the socket |
| | New State=connecting |
+----------------------+---------------------------------------------+
| Mgmt. Open Socket | |
+----------------------+---------------------------------------------+
| Mgmt. Close Socket | Stop all timers, Close the socket |
| | New state=OOS |
+----------------------+---------------------------------------------+
| Mgmt. Prohibit Socket| sock_allowed=FALSE |
+----------------------+---------------------------------------------+
| Mgmt. Allow Socket | sock_allowed=TRUE, send 'allo' |
| | New state=NEA-FEA |
+----------------------+---------------------------------------------+
| SCCP, ISUP, MTP3 | Reject Data |
+----------------------+---------------------------------------------+
Page 24
Near End Allowed-Far End Prohibited
=====================================================================
| | STATE |
| EVENT | NEA-FEP |
| | | |
| V | |
+----------------------+---------------------------------------------+
| T1 Timer Expired | Send 'test', start T1, start T2 |
+----------------------+---------------------------------------------+
| T2 Timer Expired | Protocol Violation |
+----------------------+---------------------------------------------+
| T3 Timer Expired | |
+----------------------+---------------------------------------------+
| Received 'test' | send 'allo' |
+----------------------+---------------------------------------------+
| Received 'allo' | Stop T2, New State=NEA-FEA |
+----------------------+---------------------------------------------+
| Received 'proh' | Stop T2, send 'proa' |
+----------------------+---------------------------------------------+
| Received 'proa' | |
+----------------------+---------------------------------------------+
| Received 'moni' | convert 'moni' to 'mona', send 'mona' |
+----------------------+---------------------------------------------+
| Received 'mona' | Implementation dependent |
+----------------------+---------------------------------------------+
| Received 'isot', | Protocol Violation |
| 'sccp', or 'mtp3' | |
+----------------------+---------------------------------------------+
|Connection Established| |
+----------------------+---------------------------------------------+
| Connection Lost | Protocol Violation |
+----------------------+---------------------------------------------+
| Protocol Violation | Stop all timers, Close the socket |
| | New State=connecting |
+----------------------+---------------------------------------------+
| Mgmt. Open Socket | |
+----------------------+---------------------------------------------+
| Mgmt. Close Socket | Stop all timers, Close the socket |
| | New state=OOS |
+----------------------+---------------------------------------------+
| Mgmt. Prohibit Socket| sock_allowed=FALSE, send 'proh', start T3 |
| | New State=NEP-FEP |
+----------------------+---------------------------------------------+
| Mgmt. Allow Socket | sock_allowed=TRUE |
+----------------------+---------------------------------------------+
| SCCP, ISUP, MTP3 | reject data |
+----------------------+---------------------------------------------+
Page 25
Near End Allowed-Far End Allowed
=====================================================================
| | STATE |
| EVENT | NEA-FEA |
| | | |
| V | |
+----------------------+---------------------------------------------+
| T1 Timer Expired | Send 'test', start T1, start T2 |
+----------------------+---------------------------------------------+
| T2 Timer Expired | Protocol Violation |
+----------------------+---------------------------------------------+
| T3 Timer Expired | |
+----------------------+---------------------------------------------+
| Received 'test' | send 'allo' |
+----------------------+---------------------------------------------+
| Received 'allo' | stop T2 |
+----------------------+---------------------------------------------+
| Received 'proh' | stop T2, flush or reroute data, send 'proa' |
| | New State=NEA-FEP |
+----------------------+---------------------------------------------+
| Received 'proa' | |
+----------------------+---------------------------------------------+
| Received 'moni' | Convert 'moni' to 'mona', send 'mona' |
+----------------------+---------------------------------------------+
| Received 'mona' | Implementation dependent |
+----------------------+---------------------------------------------+
| Received 'isot', | Process data |
| 'sccp', or 'mtp3' | |
+----------------------+---------------------------------------------+
|Connection Established| |
+----------------------+---------------------------------------------+
| Connection Lost | Protocol Violation |
+----------------------+---------------------------------------------+
| Protocol Violation | Stop all timers, Close the socket |
| | New State=connecting |
+----------------------+---------------------------------------------+
| Mgmt. Open Socket | |
+----------------------+---------------------------------------------+
| Mgmt. Close Socket | Stop all timers, Close the socket |
| | New state=OOS |
+----------------------+---------------------------------------------+
| Mgmt. Prohibit Socket| sock_allowed=FALSE, send 'proh', start T3 |
| | New state=NEP-FEA |
+----------------------+---------------------------------------------+
| Mgmt. Allow Socket | sock_allowed=TRUE |
+----------------------+---------------------------------------------+
| SCCP, ISUP, MTP3 | Send data |
+----------------------+---------------------------------------------+
Page 26
5.1 SS7 Message Handling Events
These events are the actual SS7 messages to be transported using TALI.
The SS7 message handling part of the application provides an interface
to the state machine interfaces to give the state machine data and
accept data from the state machine.
The state machine rejects new SS7 messages from the Message Handling
process unless both the near and far end are allowed
5.1.1 Implementation Dependent Event
5.1.1.1 Connection Established Socket Event
The Connection Established Event occurs when an application (either
client or server) has detected a successful connection to a peer.
5.1.1.2 Connection Lost Socket Event
The Connection Lost Event occurs when an application (either client or
server) has detected that its connection to a peer has been lost.
5.1.1.3 T1 Timer Expired Event
The T1 Timer Expired Event occurs when a T1 timer has expired. The T1
timer represents the interval between the origination of Test Messages
'test'.
5.1.1.4 T2 Timer Expired Event
The T2 Timer Expired Event occurs when a T2 timer has expired. A T2
timer represents the amount of that the Peer has to return an Allow
Message 'allo' message or a Prohibit Message 'proh' from the Far End
in response to a Test Message 'test'.
5.1.1.5 T3 Timer Expired Event
The T3 Timer Expired Event occurs when a T3 timer has expired. A T3
timer controls how long to continue to process Service Data after a
Management Prohibit Traffic Event has occurred.
5.1.1.6 T4 Timer Expired Event
The T4 Timer Expired Event occurs when a T4 timer has expired. A T4
timer represents the interval between the origination of Monitor
Messages 'moni'.
5.1.1.7 Protocol Violation Event
A Protocol Violation Event occurs when the TALI detects an exceptional
condition. Protocol violations include:
- Invalid sync code in a received message
- Invalid length field in a received message
- Not receiving a Allow Message 'allo', or Prohibit Message 'proh', in
response to the origination of a Test Message 'test' , before the T2
timer expires
- Receiving Service messages on a prohibited socket.
- Socket errors
Page 27
5.2 Management Events
5.2.1 Management Open Socket Event
The client is responsible for initiating the socket connection. The
server must be listening for connections for the connection to be
completed. Normally, the client would create a new socket instance and
issue a connect. The server would have already performed a bind,
listen and accept.
5.2.2 Management Close Socket Event
The client can close the socket by issuing a close to the socket. All
outstanding messages are lost.
5.2.3 Management Allow Traffic Event
Management can allow the flow of traffic on the open socket by issuing
the Management Allow Event ('allo'). This changes the state of the near
end to allowed.
5.2.4 Management Prohibit Traffic Event
Management can prohibit the flow of traffic on the open socket by
issuing the Management Prohibit Event ('proh'). This changes the state
of the near end to prohibited.
5.3 Peer Events
5.3.1 Received Test Message ('test') Event
The Received Test Message Event occurs when a Test Message 'test' has
been received from the far end. The Near End sends a 'test' to inquire
the State of the Far End Socket. The response to a 'test' is either a
Prohibit Message ('proh') or an Allowed Message ('allo').
5.3.2 Received Allow Message ('allo') Event
The Received Allow Message Event occurs when an Allow Message 'allo'
has been received from the far end. The reception of the 'allo'
indicates the Far End is ready to receive Service messages.
5.3.3 Received Prohibit Message ('proh') Event
The Received Prohibit Message Event occurs when a Prohibit Message
'proh' has been received from the far end. The reception of the 'proh'
indicates the Far End no longer wishes to receive Service messages.
5.3.4 Received Prohibit Acknowledge Message ('proa') Event
The Received Prohibit Allow Message Event occurs when a Prohibit Allow
Message 'proa' has been received from the far end. The 'proa' message
is sent immediately upon reception of a Prohibit Message 'proh'.
5.3.5 Received Monitor Message ('moni') Event
The Received Monitor Message Event occurs when a Monitor Message 'moni'
has been received from the far end. The objective of the Monitor 'moni'
message is to measure and derive performance measurements on a Socket.
Either end may send this message on a Socket in order to measure the
round trip time on the socket.
Page 28
5.3.6 Received Monitor Acknowledge Message ('mona') Event
The Received Monitor Acknowledgment Message Event occurs when a Monitor
Acknowledgment Message 'mona' has been received from the far end.
Either End may send the Monitor Acknowledgment 'mona' message in
response to a Monitor. The Data Contents must be the contents of the
Monitor Message.
5.3.7 Received Service Message ('sccp','isot','mtp3') Event
The Received Service Message Event occurs when a Service Message has
been received from the far end.
5.4 General Protocol Rules
1) Neither side can send user PDUs unless both sides are allowed.
2) Each side initializes to the prohibit state for both near end and
far end.
3) State changes are signaled with either an 'allo' or 'proh'.
4) Each side can poll the far end's state with a test. Upon sending
test, T1 and T2 should always be restarted.
5) Each side polls the far end with a test every N (T1) seconds.
6) The reply to a test is based on the state of the near end only.
7) The reply to a test is either 'allo' or 'proh'.
8) A far end signals the last user PDU has been transmitted with
either a 'proh' or a 'proa'.
9) Upon receiving a 'proh', the receiver must always reply with
'proa'.
10) The NE cannot gracefully close a socket unless a 'proh' is sent and
'proa' is received.
11) On the transition to NEP, after sending a proh, the near end must
continue to process received service PDUs until a proa is received
or until a T3 timer expires.
5.5 Graceful Socket Shutdown
The state table treats a management request to close the socket as a
'hard' shutdown. That is, it will close the socket immediately
regardless of the current state. Therefore, the correct steps to
ensure a graceful shutdown of a socket (from the NEA_FEP or NEA_FEA
states) is:
1) Management issues a Management Prohibit Traffic Event on the
socket.
2) Management will wait for T3 to expire.
3) Management can then issue a Close Socket Event on the socket.
Page 29
6 Abbreviations:
CAS Circuit Associated Signaling
DB Database
FE Far-End
IN Intelligent Network
ISUP ISDN User Part
MG Media Gateway
MGC Media Gateway Controller
MTP Message Transfer Part
NE Near-End
PRI Primary Rate Interface
SCMG SCCP Subsystem Management
SCN Switched Circuit Network
SCP Service Control Point
SG Signaling Gateway
SS7 Signaling System 7
SSP Service Switching Point
TALI Transport Adapter Layer Protocol
TCAP Transmission Capabilities Application Part
TCP/IP Transmission Control Protocol/Internet Protocol
Page 30
7. Acknowledgements
The authors would like to thank the following people for their comments and
contributions to the document.
Ike Elliot -Level 3
Anita Marsh - Tellabs
Rich Garrett -USWest
Terry Thio -Cisco
Philip W. Shryock -Compaq
Rahul Chopra -3Com
Fu Lin Wu -Telcordia
Prakash Iyer - Lucent
8. Author Information
David Sprague Dan Brendes
Tekelec Tekelec
5151 McCrimmon Pkwy. 5151 McCrimmon Pkwy.
Suite 216 Suite 216
Morrisville, NC 27560 Morrisville, NC 27560
+1 919-460-5563 +1 919-460-2162
Robby Benedyk John Mason
Tekelec Tekelec
5151 McCrimmon Pkwy. 5151 McCrimmon Pkwy.
Suite 216 Suite 216
Morrisville, NC 27560 Morrisville, NC 27560
+1 919-460-5533 +1 919-388-1306
| ||||||||||||||||
| Last modified: Thu, 12 Dec 2024 09:03:53 GMT Copyright © 2014 OpenSS7 Corporation All Rights Reserved. | |||||||||||||||||