Internet DRAFT - draft-glaude-ss7-gw

draft-glaude-ss7-gw



Internet Engineering Task Force                                 Authors
INTERNET DRAFT                                           Normand Glaude
Transport Working Group                                       Tom Blain
November 27 1998                                              Reg Cable
Expires: June 1999                     MicroLegend Telecom Systems Inc.



           SS7 to IP Signaling Gateway Transport Architecture
                    <draft-glaude-ss7-gw-00.txt>


Status of this Memo

This document is an Internet-Draft. 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."

To view the entire list of current Internet-Drafts, please check 
the "1id-abstracts.txt" listing contained in the Internet-Drafts 
Shadow Directories on ftp.is.co.za (Africa), ftp.nordu.net 
(Northern Europe), ftp.nis.garr.it (Southern Europe), 
munnari.oz.au (Pacific Rim), ftp.ietf.org (US East Coast), or 
ftp.isi.edu (US West Coast). 
  
  
Abstract
  
This memo defines an architectural framework for transporting SS7 
signaling information over Internet Protocol networks. It describes a 
Signaling Gateway which acts as a bridge between the SS7 and IP 
networks. The Signaling Gateway can be configured as an SS7 end-node
or as a Signal Transfer Point (STP) deployed singly or in a mated pair
configuration. An application program interface (API) allows multiple
remote devices, such as Media Gateways and Media Gateway Controllers, 
to register with the Signaling Gateway using TCP or UDP. The API 
consists of MTP and SCCP primitives which remote devices can use to
send and receive ISUP and TCAP messages to effect PSTN call control and
access Intelligent Network databases. The MTP and SCCP primitives 
ensure that application states (available, unavailable or congested)
are propagated into the SS7 network.

This memo also identifies some functional and performance requirements
for SS7 signaling transport to IP-based application processes residing
on one or more client hosts.

   



Glaude, Cable, Blain                                           [Page 1]
Internet draft         SS7/IP Signaling Gateway       November 27, 1998


Table of Contents                                                  Page
1.0     INTRODUCTION................................................. 4
1.1     Overview..................................................... 4
2.0     Signaling Gateway Architecture............................... 7
3.0     TCP/IP Socket Connection Performance......................... 8
3.1     Delaying of packets.......................................... 8
3.2     Non-Blocking Interface....................................... 8
3.3     Detection of IP Network Failure.............................. 9
3.4     Fragmentation of Messages.................................... 9
3.5     Signaling Gateway Message Header............................. 9
3.5.1   Message Header Formatting.................................... 9
3.5.2   Header Processing and Procedures............................ 10
4.0     MTP INTERFACE............................................... 11
4.1     Signaling Gateway MTP Message Format........................ 11
4.2     MTP Primitives.............................................. 14
4.2.1   MTP-TRANSFER................................................ 14
4.2.2   MTP-PAUSE................................................... 15
4.2.3   MTP-RESUME.................................................. 15
4.2.4   MTP-STATUS.................................................. 16
4.3     Signaling Gateway MTP User Part Management.................. 17
4.3.1   SG-REGISTER-UP.............................................. 18
4.3.2   SG-REGISTER-UP-ACK.......................................... 19
4.3.3   SG-DEREGISTER-UP............................................ 19
4.3.4   SG-DEREGISTER-UP-ACK........................................ 19
4.3.5   SG-MTP-LOCAL-STATUS......................................... 20
4.4     Configuring the MTP Interface............................... 21
5.0     SCCP INTERFACE.............................................. 21
5.1     Signaling Gateway SCCP Message Format....................... 22
5.2     SCCP Primitives............................................. 24
5.2.1   N-UNITDATA.................................................. 25
5.2.2   N-NOTICE.................................................... 26
5.2.3   N-COORD..................................................... 26
5.2.4   N-STATE..................................................... 27
5.2.5   N-PCSTATE................................................... 27
5.3     Signaling Gateway SCCP User Part Management................. 27
5.3.1   N-REGISTER.................................................. 28
5.3.2   N-DEREGISTER-SSN............................................ 28
5.4     SCCP Parameters............................................. 29
5.4.1   SCCP-CALLED-ADDR............................................ 29
5.4.2   SCCP-CALLING-ADDR........................................... 29
5.4.3   SCCP-QUALITY-OF-SERV........................................ 30
5.4.4   SCCP-USER-DATA.............................................. 30
5.4.5   SCCP-REASON-FOR-RET......................................... 30
5.4.6   SCCP-AFFECTED-USER.......................................... 30
5.4.7   SCCP-CONFIRM-STATUS......................................... 31
5.4.8   SCCP-SS-MULTI-IND........................................... 31
5.4.9   SCCP-USER-STATUS............................................ 31
5.4.10  SCCP-AFFECTED-DPC........................................... 31
5.4.11  SCCP-SP-STATUS.............................................. 32
5.4.12  SCCP-REGISTER-USER.......................................... 32
5.4.13  SCCP-REGISTER-USER-ACK...................................... 33
5.4.14  SCCP-DEREGISTER-USER........................................ 33




Glaude, Cable, Blain                                           [Page 2]
Internet draft         SS7/IP Signaling Gateway       November 27, 1998


Table of Contents (cont.)                                          Page
5.4.15  SCCP-DEREGISTER-USER-ACK.................................... 33
5.4.16  SCCP-ROUTING-LABEL.......................................... 34
5.5     Configuring the SCCP Interface.............................. 35
6.0     SAMPLE APPLICATION.......................................... 38
6.1     Setup....................................................... 38
6.2     Operation................................................... 38
6.3     Shutdown.................................................... 38 
7.0     Future Enhancements......................................... 39
8.0     Authors Addresses........................................... 39

List of Figures                                                    Page
1.0     SS7 End Node - Signaling Gateway Functional Model............ 5
2.0     SS7 STP - Signaling Gateway Functional Model................. 6
3.0     Signaling Gateway Architecture............................... 7

List of Tables                                                     Page
1       SG Message Header Format.................................... 10
2       SG Message Header Commands.................................. 10
3       SG MTP Message Format....................................... 12
4       SG MTP Message Types........................................ 13
5       SG MTP Message Cause Values................................. 13
6       MTP Primitives.............................................. 14
7       MTP-Transfer Parameters..................................... 15
8       MTP-Pause Parameters........................................ 15
9       MTP-Resume Parameters....................................... 16
10      MTP-Status Parameters....................................... 16
11      MTP-Status Causes........................................... 17
12      SG MTP User Part Management messages........................ 18
13      SG-REGISTER-UP Parameters................................... 18
14      SG-REGISTER-UP-ACK Parameters............................... 19
15      SG-DEREGISTER-UP Parameters................................. 19
16      SG-DEREGISTER-UP-ACK Parameters............................. 20
17      SG-MTP-LOCAL-STATUS......................................... 20
18      SG SCCP Message Format...................................... 22
19      Signaling Gateway SCCP Message Type......................... 23
20      SCCP Parameter Identifier Values............................ 24
21      SCCP Primitives............................................. 25
22      N-UNITDATA Parameters....................................... 25
23      N-NOTICE Parameters......................................... 26
24      N-COORD Parameters.......................................... 26
25      N-STATE Parameters.......................................... 27
26      N-PCSTATE Parameters........................................ 27
27      Signaling Gateway SCCP User Part Management Primitives...... 27
28      N-REGISTER Parameters....................................... 28
29      N-DEREGISTER Parameters..................................... 28
30      SCCP-CALLED-ADDR Format..................................... 29
31      SCCP-QUALITY-OF-SERV Format................................. 30
32      SCCP-AFFECTED-USER Format................................... 30
33      SCCP-AFFECTED-DPC Format.................................... 31
34      SCCP-SP-STATUS Value........................................ 32
35      SCCP-REGISTERED-USER Format................................. 32




Glaude, Cable, Blain                                           [Page 3]
Internet draft          SS7/IP Signaling Gateway      November 27, 1998


1.0 Introduction

This document describes an SS7 to TCP/IP interface architecture for 
transport of signaling messages between PSTN and IP based networks.

1.1 Overview

The Signaling Gateway (SG) architecture allows remote devices, such 
as Media Gateway Controllers and Media Gateways, to exchange messages
with an SS7 network via an application program interface over TCP or 
UDP. The interface between remote device applications and the Signaling
Gateway consists of messages and procedures that are described in this
draft document.

The messages are based on MTP primitives defined in GR-246 T1.111.1,
and on SCCP primitives defined in GR-246 T1.112.1. The messages allow
the user to take advantage of the flexibility offered by a Signaling 
Gateway that can be configured as an SS7 End Node or as a Signal 
Transfer Point (STP).

The Signaling Gateway can be configured as an end node with 'A' links 
to a pair of STPs. It also has the capability to be deployed as an STP,
based on the model proposed in GR-82-CORE Bellcore recommendation.
It can be deployed singly or in a mated pair configuration, using
SS7 network capabilities to support load sharing and redundancy.
Global Title Translation and Gateway Screening applications may also
be provided in an Signaling Gateway STP configuration. 
  
 



























Glaude, Cable, Blain                                           [Page 4]
Internet draft          SS7/IP Signaling Gateway      November 27, 1998
  
 
             End-Node                              End-Node          
         Signaling Gateway                   Signaling Gateway (opt)
         +---------------+                      +--------------+
         |               |    SG-SG transport   |              |
  PSTN<-------->[SG]  <--+---------O------------+--> [SG]      |
  signal |       |       |                      |     |        |    
         +-------|-------+                      +-----|--------+
                 |                                    |
                 O                                    O
                 |                                    |
         +-------|-------+                      +-----|--------+
         |       |       |    MC-MC signaling   |     |        |
         |      [SA] <---+--------O-------------+--> [SA]      |  
         |      [MC]     |                      |    [MC]      | 
         |       |       |                      |     |        |
         +-------|-------+                      +-----|--------+
         Gateway | controller                 Gateway |Controller (opt)
                 O                                    O   
                 |                                    |          
         +-------|-------+                      +-----|--------+
         |       |       |                      |     |        |
  <-IMT--+---->[MG]  <---+-----RTP stream-------+-> [MG]  <----+-IMT-->
         |               |                      |              |
         +---------------+                      +--------------+
          Media gateway                           Media gateway 
   
          Figure 1: SS7 End Node - Signaling Gateway Functional Model

  Notes:
  - IMT stands for Inter-Machine Trunk


























Glaude, Cable, Blain                                           [Page 5]
Internet draft          SS7/IP Signaling Gateway      November 27, 1998


           PSTN STP PAIR                   PSTN STP PAIR (opt)
       +-------+   +-------+             +-------+   +-------+
       |     / |   |     / |             |     / |   |     / |
       |   /   +---+   /   |             |   /   +---+   /   |
       | /     |   | /     |             | /     |   | /     | 
       +--+--+-+   +-+--+--+             +--+--+-+   +-+--+--+
          |   \     /   |                   |   \     /   |  
          |    \   /    |  QUAD             |    \   /    |  
          |     \ /     |  SS7              |     \ /     |  
          |      X      |  "B" LINKS        |      X      |  
          |     / \     |                   |     / \     |  
          |    /   \    |                   |    /   \    |  
          |   /     \   |                   |   /     \   |  
       +--+--+-+   +-+--+--+             +-+---+-+   +-+--+--+
       |[SG] / |   |     / | STP -       |     / |   |     / |
       |   /   |   |   /   | Signaling   |   /   |   |   /   |
       | /[STP]|   | /     | Gateway     | /     |   | /     | 
       +-----|-+   +--|----+ Pairs       +-----|-+   +--|----+
             |        |                        |        |
             |        | Dual                   |        |
             O        O TCP/IP                 O        O
             |        | Socket                 |        |
             |        | Connections            |        |
           +-|--------|--+                   +-|--------|---+
           |  \      /   |  MC-MC signaling  |  \      /    |
           |    [SA] <---+--------O----------+--> [SA]      |  
           |    [MC]     |                   |    [MC]      | 
           |     |       |                   |     |        |
           +-----|-------+                   +-----|--------+
         Gateway | controller              Gateway | Controller (opt)
                 O                                 O   
                 |                                 |          
         +-------|-------+                   +-----|--------+
         |       |       |                   |     |        |
  <-IMT--+---->[MG]  <---+----RTP stream-----+-> [MG]  <----+-IMT----->
         |               |                   |              |
         +---------------+                   +--------------+
         Media gateway                        Media gateway 
    
            Figure 2: SS7 STP - Signaling Gateway Functional Model


The Signaling Gateway should support a point code aliasing feature 
called "virtual point code emulation". To the network, a virtual point 
code appears, and is used in the same way as, the alias point code 
of an STP pair. The Signaling Gateway virtual point codes concept 
supports all level 4 applications such as trunk signaling and SCCP. 









Glaude, Cable, Blain                                           [Page 6]
Internet draft          SS7/IP Signaling Gateway      November 27, 1998


2.0 Signaling Gateway Architecture

The Signaling Gateway contains a complete SS7 protocol stack up to the 
SCCP layer. It may use BSD sockets over TCP to communicate with 
applications registered as users of the SCCP layer and of the MTP 
layer.

Since the MTP and the SCCP layers are implemented as separate tasks on
the Signaling Gateway, the API interfaces use different ports to 
discriminate between the MTP and the SCCP modules. 

Figure 3 describes the Signaling Gateway architecture and a simple 
application to both layers.

  
            +---------------+                 +----------------+
            |               |                 |                |
            |    MTP USER   |                 |    SCCP USER   |
            |  APPLICATION  |                 |   APPLICATION  |
            |               |                 |                |    
            +-------|-------+                 +-------|--------+
                    |  TCP/IP                         |  TCP/IP
                    O  SOCKETS                        O  SOCKETS
                    |                                 |
         +----------|---------------------------------|-------------+
         |          |                                 |             |
         |          |                     +---+-------|----+---+    |
         |          |                     |   | SCCP PORTS |   |    |   
         |          |                     |   +------------+   |    |
         |          |                     |   SS7 SCCP LAYER   |    |
         |          |                     +-----------|--------+    |   
         |          |                                 |             |
         |  +---+---|---------------------------------|----+---+    |
         |  |   |                MTP PORTS                 |   |    |  
         |  |   +------------------------------------------+   |    |
         |  |                  SS7 MTP LAYER                   |    |
         |  +--------------------------------------------------+    |  
         |                                                          | 
         |                   Signaling Gateway                      |
         +----------------------------------------------------------+
  
     Figure 3 -  Signaling Gateway Architecture

Multiple applications can register onto the same socket for both MTP
and SCCP ports. Applications can establish one or more socket 
connections to both MTP and SCCP layers. 

Registered applications must be unique within the Signaling Gateway. 
For example, registration parameters for the MTP layer are the point 
code and the SIO. Only one application can register with the MTP layer
for a given combination of point code and SIO. For SCCP users, only one
application can register with the SCCP layer for a given combination of
point code and subsystem number.



Glaude, Cable, Blain                                           [Page 7]
Internet draft          SS7/IP Signaling Gateway      November 27, 1998


3.0 TCP/IP Socket Connection Performance 

In establishing a socket connection to the Signaling Gateway, there are
a number of considerations about the intent TCP/IP and its usability in
a near real-time context. This section examines a few concerns and 
exposes the solutions that can be used to provide a higher quality of 
service.

3.1 Delaying of packets

TCP/IP was originally designed for supporting multiple user sessions
over a slow network. In order to optimize network utilization, the 
Nagle algorithm was introduced for keyboard input users. Essentially, 
this algorithm delays the transmission of a packet until a sufficiently
large transmit buffer is accumulated or until a certain period of time
(usually around 200 milliseconds) elapses.

Due to the real-time nature of SS7 traffic, it best advised to disable
the Nagle algorithm for socket communication with the Signaling 
Gateway.  Not disabling this feature would introduce unnecessary delay
in the flow of SS7 messages.

On most UNIX based platforms, the Nagle algorithm can be disable by
issuing the following system call on the socket's file descriptor:

Example 1

   Setting the TCP_NODELAY Option

   /* set the TCP No-delay flag (disable Nagle algorithm) */
   int flag = 1;
   setsockopt(fd, IPPROTO_TCP, TCP_NODELAY, &flag, sizeof(flag));

Most other languages and platforms have a similar feature to disable 
the Nagle algorithm, usually known as the TCP_NODELAY option.

3.2 Non-Blocking Interface

By default, most operating systems provide a blocking interface for 
TCP/IP sockets. Although it may allow for an improved error recovery
scheme, it has an impact on the performance of the communication 
channel. Essentially, a system call such as send() with blocking 
interface never returns until the operating system confirms that the
message was successfully stored in the transmit buffer.

It may be desirable for user parts of the Signaling Gateway to use a 
non-blocking interface in order to improve performance and to support 
asynchronous events using the select() function call on a UNIX based 
architecture. A non-blocking socket interface can be setup by using 
the following call on the newly created socket.






Glaude, Cable, Blain                                           [Page 8]
Internet draft          SS7/IP Signaling Gateway      November 27, 1998


Example 2       
   Setting the O_NONBLOCK Option

   /* set the socket to non blocking */
   fcntl( fd, F_SETFL, O_NONBLOCK );

Most other languages and platform have a similar feature.

3.3 Detection of IP Network Failure

As mentioned previously, the original goal of TCP/IP was to provide a 
reliable connection-oriented session between to remote computers across
a slow and unreliable network. In trying to achieve this, an elaborate 
retransmission scheme was designed and implemented, allowing for 
network failures to be undetected under a no load situation, and a 
retry period of up to 10 minutes when awaiting acknowledgment for a 
transmitted message. It proved to be quite valuable for most 
applications (like http and ftp), but insufficient for near real-time
applications such as SS7 over TCP/IP.

The most common way of detecting network failures is to use an probing
message that forces the remote system to provide an immediate answer.
Such 'is alive' message has been implemented in Signaling Gateway 
message suite and is further explained in Section 3.5 of this document.

3.4 Fragmentation of Messages

The nature of the sliding window acknowledgment scheme that IP uses 
creates a possibility of fragmentation of messages at the TCP/IP level.
For example, one system may send 48 octets at once, and the other one 
may receive 16 octets, and then in a subsequent system call would 
receive the remaining 32 octets. On the other hand, a system may send 
two messages of 48 octets each by issuing two separate system calls, 
yet the receiving end would receive a single 96-octet message.

In order to separate messages, every message sent between the Signaling
Gateway and the User Parts over TCP/IP is prefixed with a four-octet
header that contains the type and the length of the message to follow. 
The following section describes the formatting and the procedures 
involved with this header.

3.5 Signaling Gateway Message Header

As a prefix to every message between the Signaling Gateway and the User
Part, a four-octet header is introduced, describing the nature and the
size of the content of the message to follow. This message header is
necessary to reassemble fragmented messages.

3.5.1 Message Header Formatting

The format of the Signaling Gateway Message Header is as described in 
the table below. The offsets are indicated in number of bytes from the 
beginning of the message.



Glaude, Cable, Blain                                           [Page 9]
Internet draft          SS7/IP Signaling Gateway      November 27, 1998


Table 1. Signaling Gateway Message Header Format

----------+-----+------+-----------------------------------------------
Field Name|     |Offset| Notes
==========+=====+======+===============================================
msgClass  |     |   0  | Message class, always coded as 0x00 (not used)
----------+-----+------+-----------------------------------------------
msgCmd    |     |   1  | Message command
---------+-----+------+------------------------------------------------
msgLength |(MSB)|   2  | The length of the message excluding the 
          |(LSB)|   3  | Signaling Gateway Message Header and fields. 
          |     |      | Stored as a binary number, with a maximum  
          |     |      | value of 4095.
----------+-----+------+-----------------------------------------------

The parameters are described as follows:

msgClass:
  This parameter is reserved for future use.

msgCmd:
  This parameter contains commands pertaining to the connection. They 
  can be sent in either direction. They are listed as follows:


Table 2. Signaling Gateway Message Header Commands


----------+-----------+----------------------------------------------
Name      | Values    | Description
==========+===========+==============================================
NO_CMD    |     0     | No command (message only)
----------+-----------+----------------------------------------------
IS_ALIVE  |     1     | Request Acknowledgment (are you alive?)
----------+-----------+----------------------------------------------
ACK_ALIVE |     2     | Acknowledgment (I'm alive.) 
----------+-----------+----------------------------------------------
n/a       |   OTHER   | Reserved for future use. 
----------+-----------+----------------------------------------------


msgLength:
  This parameter contains the length of the message to follow. A length
  of zero indicates that no message follows. Although the Signaling 
  Gateway can receive messages of up 4096 octets in length, any MSU 
  with a total encoded length greater that 273 octets will be rejected.

3.5.2 Header Processing and Procedures:

Following is an explanation of the procedures associated with the 
Signaling Gateway Message Header:





Glaude, Cable, Blain                                          [Page 10]
Internet draft          SS7/IP Signaling Gateway      November 27, 1998


* If the msgLength parameter has a non-zero value, a message of size
  <msgLength> follows, and it should be passed on to the user part. If
  msgLength has a zero value, no message is following.

* Receiving a NO_CMD invokes no procedures.

* Upon reception of an IS_ALIVE command both Signaling Gateway and 
  User Part are required to respond immediately with an ACK_ALIVE. 
  Failure to do so may cause the user to close the TCP/IP socket.

* If a user part does not receive an ACK_ALIVE after a predetermined 
  period of time and/or a number of retries, it may conclude that a 
  network failure occurred and try to reestablish its connection to the
  Signaling Gateway at a later time.

4.0 MTP Interface

The MTP socket interface consists of an exchange of messages between
the MTP layer that resides on the Signaling Gateway and the User Part,
as defined by the third party software developer. These messages are of
one of two categories: MTP Primitives, and Signaling Gateway User Part
Management. 

First, the generic format of the messages is explained. An explanation
of message types and their parameters follow.

4.1 Signaling Gateway MTP Message Format

The MTP Messages are exchanged using the Signaling Gateway Message
Header format as described in the previous section. The messages
exchanged between the user parts and the MTP layer use network bit 
ordering. All MTP primitives and MTP user part management messages 
use this following format. All parameters are present for all types 
of messages, although some of them are not used in all cases.






















Glaude, Cable, Blain                                          [Page 11]
Internet draft          SS7/IP Signaling Gateway      November 27, 1998


Table 3. SG MTP Message Format

--------------+------+-----------------------------------------------
Field Name    |Offset| Notes
==============+======+===============================================
SGMsgHeader   |  0   | The Signaling Gateway Message Header is 
              |  1   | encoded as specified in section 3.5.1.
              |  2   | 
              |  3   | 
--------------+------+-----------------------------------------------
msgType       |  4   | The message type.
--------------+------+-----------------------------------------------
cause         |  5   | The message cause.
--------------+------+-----------------------------------------------
n/a           |  6   | This field is reserved, and is coded as 0x00.
--------------+------+-----------------------------------------------
    (network) |  7   | The destination, affected or registration 
dpc (cluster) |  8   | point code of the message, depending on the 
    (member)  |  9   | message type.
--------------+------+-----------------------------------------------
n/a           |  10  | This field is reserved, and is coded as 0x00.
--------------+------+-----------------------------------------------
    (network) |  11  | The oringination point code of the message, 
opc (cluster) |  12  | it uses the same encoding scheme as the  
    (member)  |  13  | destination point code.
--------------+------+-----------------------------------------------
sio           |  14  | The service indicator octet.
--------------+------+-----------------------------------------------
sls           |  15  | The signaling link selection field.
--------------+------+-----------------------------------------------
userDataLen   |  16  | (MSB) The length of the userData field to 
              |  17  | (LSB) follow coded in binary. If the userData 
              |      |       field is not present, the length will 
              |      |       be coded as zero.
--------------+------+-----------------------------------------------
userData      |  18  | The user data field will usually contain 
              |  19  | the signaling information of the message.
              |   :  |       
              |   n  | 
--------------+------+-----------------------------------------------

An explanation of some of the parameters follows.

SGMsgHeader:
  The Signaling Gateway Message Header is encoded as explained in 
  Section 3.5.

msgType:
  The message type indicates the nature of the message being conveyed. 
  The following table indicates their type and their values. The 
  message type is a mandatory parameter in all messages.





Glaude, Cable, Blain                                          [Page 12]
Internet draft          SS7/IP Signaling Gateway      November 27, 1998

Table 4. SG MTP Message Types

---------------------+--------------+-------------------------------
Message Type         |  Category    |  Value 
=====================+==============+===============================
MTP-TRANSFER         |  Primitive   |  0 
---------------------+--------------+-------------------------------
MTP-PAUSE            |  Primitive   |  1 
---------------------+--------------+-------------------------------
MTP-RESUME           |  Primitive   |  2 
---------------------+--------------+-------------------------------
MTP-STATUS           |  Primitive   |  3 
---------------------+--------------+-------------------------------
SG-REGISTER-UP       |  Management  |  4 
---------------------+--------------+-------------------------------
SG-REGISTER-UP-ACK   |  Management  |  5 
---------------------+--------------+-------------------------------
SG-DEREGISTER-UP     |  Management  |  6 
---------------------+--------------+-------------------------------
SG-DEREGISTER-UP-ACK |  Management  |  7 
---------------------+--------------+-------------------------------
SG-MTP-LOCAL-STATUS  |  Management  |  8 
---------------------+--------------+-------------------------------

cause:
  The cause indicates a reason for some of the message types listed 
  above. They are explained further.

Table 5. SG MTP Cause Values

---------------------+-------------------------------
Message Type         | Value 
=====================+===============================
DPC-CONG-LEVEL0      |  0 
---------------------+-------------------------------
DPC-CONG-LEVEL1      |  1 
---------------------+-------------------------------
DPC-CONG-LEVEL2      |  2 
---------------------+-------------------------------
DPC-CONG-LEVEL3      |  3 
---------------------+-------------------------------
UPU-UNKNOWN          |  4 
---------------------+-------------------------------
UPU-UNEQUIPPED-USER  |  5 
---------------------+-------------------------------
UPU-INACCESSIBLE     |  6 
---------------------+-------------------------------
MTP-AVAILABLE        |  7 
---------------------+-------------------------------
MTP-UNAVAILABLE      |  8 
---------------------+-------------------------------
MTP-SUCCESS          |  254 
---------------------+-------------------------------
MTP-ERROR            |  255 
---------------------+-------------------------------


Glaude, Cable, Blain                                          [Page 13]
Internet draft          SS7/IP Signaling Gateway      November 27, 1998


4.2 MTP Primitives

MTP Primitives are used as defined in ANSI T1.111.1, as well as 
defined in ITU-T Q.701. Following is a list of MTP primitives, 
as well as the parameters that they use in the Signaling Gateway 
MTP message. Requests are sent to the Signaling Gateway and 
indications are sent from the Signaling Gateway (SG) and received by 
user parts.


Table 6.  MTP Primitives

----------------+--------------+------------------------------------
Primitive Name  |  Type        |  Description
================+==============+====================================
MTP-TRANSFER    | Request or   | An indication or request of the 
                | Indication   | transfer of an MSU.
----------------+--------------+------------------------------------
MTP-PAUSE       | Indication   | An indication to pause the 
                |              | transfer of MSUs to a specific
                |              | destination.
----------------+--------------+------------------------------------
MTP-RESUME      | Indication   | An indication to resume the 
                |              | transfer of MSUs to a specific 
                |              | destination.
----------------+--------------+------------------------------------
MTP-STATUS      | Indication   | An indication of the change of 
                |              | status of a specific destination
----------------+--------------+------------------------------------

4.2.1 MTP-TRANSFER

The MTP-TRANSFER primitive is the means by which data is transmitted 
to and from other MTP User Parts on the SS7 network. It contains all 
parameters of the routing label along with the user data.





















Glaude, Cable, Blain                                          [Page 14]
Internet draft          SS7/IP Signaling Gateway      November 27, 1998


Table 7. MTP-Tranfser Parameters

---------------------+-------------------------------------------------
Primitive Name       |  Description
=====================+=================================================
 cause               |  n/a - set to 0
---------------------+-------------------------------------------------
 DPC                 |  Destination Point Code of the MSU to be 
                     |  transmitted or received.  
---------------------+-------------------------------------------------
 OPC                 |  Origination Point Code of the MSU to be 
                     |  transmitted or received. 
---------------------+-------------------------------------------------
 SIO                 |  Service Indicator Octet, part of the routing 
                     |  label.             
---------------------+-------------------------------------------------
 SLS                 |  Signaling Link Selection, part of the routing 
                     |  label.             
---------------------+-------------------------------------------------
 UserDataLen         |  The length of the user data field, must be 
                     |  greater than zero. 
---------------------+-------------------------------------------------
 UserData            |  Contains the signaling information following 
                     |  the routing label. 
---------------------+-------------------------------------------------


4.2.2 MTP-PAUSE

The primitive MTP-PAUSE indicates to the user part the total inability 
to provide the MTP service to the specified destination. This 
primitive is invoked when the MTP detects the inaccessibility of a 
signaling point through link failures, transfer prohibited messages 
or a combination of both.

Table 8. MTP-PAUSE Parameters

---------------+-----------------------------------------------------
Parameter      | Description     
===============+=====================================================
DPC            | Point Code of the affected destination
---------------+-----------------------------------------------------


4.2.3 MTP-RESUME

The primitive MTP-PAUSE indicates to the user the ability to provide 
the MTP service to the specified destination. This primitive is 
invoked when the MTP detects the accessibility of a signaling point 
through link recovery and controlled rerouting procedures.






Glaude, Cable, Blain                                          [Page 15]
Internet draft          SS7/IP Signaling Gateway      November 27, 1998


Table 9. MTP-RESUME Parameters

---------------+-----------------------------------------------------
Parameter      | Description     
===============+=====================================================
DPC            | Point Code of the affected destination
---------------+-----------------------------------------------------

4.2.4 MTP-STATUS

This primitive indicates to the user the partial inability to provide 
MTP service to the specified destination. Possible causes for this 
state are congestion and remote user unavailability, as per the 
following list:

Table 10. MTP-STATUS Parameters

---------------+-----------------------------------------------------
Parameter      | Description     
===============+=====================================================
DPC            | Point Code of the affected destination
---------------+-----------------------------------------------------
Cause          | The cause of the status change indication
---------------+-----------------------------------------------------


The possible cause values and their explanations are listed in the 
following table. The associated cause values are listed in Table 5 
on page 10.



























Glaude, Cable, Blain                                          [Page 16]
Internet draft          SS7/IP Signaling Gateway      November 27, 1998


Table 11.  MTP-STATUS Causes

--------------------+--------------------------------------------------
Cause               | Description
====================+==================================================
DPC-CONG-LEVEL0     | No congestion exists at the affected destination. 
                    | This cause will be sent to user parts in order to
                    | clear a previous higher congestion level.
--------------------+--------------------------------------------------
DPC-CONG-LEVEL1     | Congestion level 1 exists at the affected 
                    | destination. This message is sent to the user
                    | parts when MTP Level 3 receives a TFC with
                    | congestion level 1. 
--------------------+--------------------------------------------------
DPC-CONG-LEVEL2     | Congestion level 2 exists at the affected 
                    | destination. This message is sent to the user 
                    | parts when MTP level 3 receives a TFC with 
                    | congestion level 2.
--------------------+--------------------------------------------------
DPC-CONG-LEVEL3     | Congestion level 3 exists at the affected
                    | destination. This message is sent to the user
                    | parts when MTP level 3 receives a TFC with
                    | congestion level 3.
--------------------+--------------------------------------------------
UPU-UNKNOWN         | User Part Unavailable for reasons unknown. (a)
--------------------+--------------------------------------------------
UPU-UNEQUIPPED-USER | User Part Unavailable because of a remote 
                    | unequipped user. (a)
--------------------+--------------------------------------------------
UPU-INACCESSIBLE    | User Part Unavailable because of the      
                    | inaccessibility of resources. (a) 
--------------------+--------------------------------------------------

(a) These messages are sent to the user parts when MTP Level 3 receives
UPU messages. Since UPU messages are not used in most networks, these 
causes will most likely never be received.


4.3 Signaling Gateway MTP User Part Management

The primitives defined in this section are required to support the 
enhanced SS7 services offered by the Signaling Gateway MTP layer. 
These primitives use the "SG" prefix which stands for "Signaling 
Gateway".












Glaude, Cable, Blain                                          [Page 17]
Internet draft          SS7/IP Signaling Gateway      November 27, 1998

Table 12. SG MTP User Part Management Messages

---------------------+--------------+-------------------------------
Primitive Name       |  Type        |  Description 
=====================+==============+===============================
SG-REGISTER-UP       |  Request     |  A request by the user to 
                     |              |  register a user part.
---------------------+--------------+-------------------------------
SG-REGISTER-UP-ACK   |  Response    |  Response to SG-REGISTER-UP 
---------------------+--------------+-------------------------------
SG-DEREGISTER-UP     |  Request     |  Deregistration of User Parts. 
---------------------+--------------+-------------------------------
SG-DEREGISTER-UP-ACK |  Response    |  Response to SG-DEREGISTER-UP 
---------------------+--------------+-------------------------------
SG-MTP-LOCAL-STATUS  |  Indication  |  An indication of the change 
                     |              |  of the local status of the
                     |              |  signaling point.
---------------------+--------------+-------------------------------

4.3.1 SG-REGISTER-UP

This user part management message is used to register a user part 
with the MTP layer of the Signaling Gateway. The user specifies 
the point code and the service indicator of the application that 
is registering. The Signaling Gateway then ensures proper delivery 
of MSUs to the proper registered application on a point code and 
service indicator basis. Up to 256 applications can register with 
the Signaling Gateway on a single socket interface. Once an 
application successfully registers, the proper MTP procedures are 
initiated to broadcast the availability of the user part.

Table 13.  SG-REGISTER-UP Parameters

----------------+----------------------------------------------------
Parameter       | Description 
================+====================================================
DPC             | The Point Code of the user part to register.
                | When the Signaling Gateway is deployed as an End 
                | Node, this parameter must contain the local point
                | code. When the Signaling Gateway is deployed
                | with virtual node capability, this parameter may
                | also contain one of the virtual point codes.
----------------+----------------------------------------------------
SIO             | The Service Indicator of the user part to register.
                | User parts 0 (SNM), 1 (STMR) and 2 (STMS) cannot be
                | registered since they are part of MTP Level 3.
----------------+----------------------------------------------------
UserDataLen     | The length of the user data field.
----------------+----------------------------------------------------
UserData        | The application name. This name, stored as an ASCII
                | printable string, is used for loging and reporting
                | purposes only. It is not mandatory.
----------------+----------------------------------------------------




Glaude, Cable, Blain                                          [Page 18]
Internet draft          SS7/IP Signaling Gateway      November 27, 1998

4.3.2   SG-REGISTER-UP-ACK

This message will be returned to the user part in response to the 
registration request. The success of the registration procedure is 
noted in the cause field, which may have a value of MTP-SUCCESS or 
MTP-ERROR. Causes for error include invalid parameters and 
duplication of user part.

Table 14. SG-REGISTER-UP-ACK Parameters

----------------+----------------------------------------------------
Parameter       | Description 
================+====================================================
DPC             | The Point Code of the user part as provided in
                | When the Signaling Gateway is deployed as an End 
                | the Signaling Gateway-REGISTER-UP message.
----------------+----------------------------------------------------
SIO             | The Service Indicator of the user part as provided
                | in the Signaling Gateway-REGISTER-UP message.
----------------+----------------------------------------------------
Cause           | The status indication of the registration. The
                | cause will either be MTP-SUCCESS or MTP-ERROR.
----------------+---------------------------------------------------- 


4.3.3 Signaling Gateway-DEREGISTER-UP

This user part management message is used to de-register a user 
part from the MTP layer. Upon de-registration, the proper MTP 
procedures are initiated to broadcast the status change of the 
point code if necessary.

Table 15. Signaling Gateway-DEREGISTER-UP Parameters

----------------+----------------------------------------------------
Parameter       | Description 
================+====================================================
DPC             | The Point Code of the user part to deregister.
----------------+----------------------------------------------------
SIO             | The Service Indicator of the user part to 
                | deregister.
----------------+---------------------------------------------------- 


4.3.4 Signaling Gateway-DEREGISTER-UP-ACK

This message will be returned to the user part in response to the 
deregistration request. The success of the registration procedure 
is noted in the cause field, which may have a value of MTP-SUCCESS 
or MTP-ERROR. Causes for error include previously unregistered 
user parts.






Glaude, Cable, Blain                                          [Page 19]
Internet draft          SS7/IP Signaling Gateway      November 27, 1998


Table 16. Signaling Gateway-DEREGISTER-UP-ACK Parameters

----------------+----------------------------------------------------
Parameter       | Description 
================+====================================================
DPC             | The Point Code of the user part as provided in 
                | When the Signaling Gateway is deployed as an End 
                | the Signaling Gateway-DEREGISTER-UP message.
----------------+----------------------------------------------------
SIO             | The Service Indicator of the user part as provided
                | in the Signaling Gateway-DEREGISTER-UP message. 
----------------+---------------------------------------------------- 
Cause           | The status indication of the deregistration. The 
                | cause will either be MTP-SUCCESS or MTP-ERROR.
----------------+---------------------------------------------------- 

4.3.5 Signaling Gateway-MTP-LOCAL-STATUS

This user part management message is used to inform all user parts 
of the status of the local SS7 node. The status of the Signaling 
Gateway is stored in the cause field and may have a value of 
MTP-AVAILABLE or MTP-UNAVAILABLE.

Table 17. Signaling Gateway-MTP-LOCAL-STATUS Parameters

---------------+--------------------------------------------------
Paramter       |  Description   
===============+==================================================
DPC            |  The local point code of the MTP Level 3
---------------+--------------------------------------------------
Cause          |  The status indication of the local MTP Level 3. 
               |  The cause will either be MTP-AVAILABLE or 
               |  MTP-UNAVAILABLE.
---------------+--------------------------------------------------

MTP-AVAILABLE:
  This state indicates the availability of MTP Level 3 to transfer MSUs
  to the SS7 Network. MTP Level 3 is available whenever it has active 
  connectivity to the network.

MTP-UNAVAILABLE:
  This state indicates the unavailability of MTP Level 3 to transfer 
  MSUs to the SS7 Network. MTP Level 3 is unavailable whenever it has 
  no active connectivity to the network.

When the user part receives a MTP-UNAVAILABLE indication, it must clear
all tables related to the accessibility and congestion status of remote
signaling points. All previously received MTP-PAUSE and MTP-STATUS
messages no longer have significance. Once the SS7 connectivity is re-
established, a MTP-AVAILABLE local status message will be sent to user
parts, and MTP-PAUSE and MTP-STATUS messages will be resent to the user
parts in reflecting the current status of the network.




Glaude, Cable, Blain                                          [Page 20]
Internet draft          SS7/IP Signaling Gateway      November 27, 1998


4.4 Configuring the MTP Interface

The configuration of the MTP interface is done through the use of the 
MTP provisioning user interface provided with the Signaling Gateway. 
Aside from configuring the linkset and routeset tables, the 
provisioning user interface can also be used to configure the L4 API 
Feature parameters. The specifics of the MTP provisioning user 
interface are left to the vendor.

The parameters that are of concern to the MTP Interface are the 
following:

External Application Feature:
  This boolean field enables or disables the socket interface. The 
  Signaling Gateway may require rebooting in order for changes to this 
  parameter to take effect.

External Application Port:
  This numeric field specifies on which port the MTP is listening for 
  external applications to connect and register. The Signaling Gateway 
  may require rebooting in order for changes to this parameter to take
  effect.

Virtual Node Definitions:
  If the Signaling Gateway is deployed in a mated pair configuration 
  for enhanced reliability reasons, applications may register to 
  virtual nodes (equivalent to alias point codes). These virtual nodes
  must be defined through the MTP provisioning user interface.

5.0 SCCP Interface

The SCCP socket interface comprises of an exchange of messages between
the SCCP layer that resides on the Signaling Gateway and the User Part,
as defined by the third party software developer. These messages are of
one of two categories: SCCP Primitives, and Signaling Gateway User Part
Management.

SCCP provides additional network services to MTP to transfer signaling
information and other type of information between exchanges and
specialized centers in telecommunication networks. It makes routing of
messages more flexible and thus creates opportunities in enhancing
network functionality. SCCP also provides management services to
communication networks.

The Signaling gateway SCCP is based on GR-246-CORE (Revision 2 12/94) 
and ITU-T Q.713(03/93). Both specifications specify two services: 
connection oriented service and connectionless service. It supports 
most functions of connectionless service with a few minor omissions. 
The traffic mix information, which is optional, is not supported, and 
LUDT and XUDT related messages used for segmentation, are not supported
either.




Glaude, Cable, Blain                                          [Page 21]
Internet draft          SS7/IP Signaling Gateway      November 27, 1998


The SCCP interface is built on the MTP interface as described in the 
previous section. It dynamically registers to the MTP layer as SCCP 
users become available.

5.1   Signaling Gateway SCCP Message Format

The messages exchanged between the user parts and the SCCP layer use 
network bit ordering. It uses the following format:

Table 18. Signaling Gateway SCCP Message Format

-------------------+------+--------------------------------------------
Field Name         |Offset| Notes
===================+======+============================================
                   |  0   | The Signaling Gateway Message Header is 
                   |  1   | encoded as specified in section 3.5.1.
SGMsgHeader        |  2   | 
                   |  3   | 
-------------------+------+--------------------------------------------
sccpMsgType        |  4   | The primitive identifier, as specified in 
                   |  5   | the previous section.
-------------------+------+--------------------------------------------
parameterID (1)    |  6   | An identifier for the parameter to follow.
                   |  7   | 
-------------------+------+--------------------------------------------
parameterLength (1)|  8   | The length of the parameter to follow.
                   |  9   |  
-------------------+------+--------------------------------------------
parameterValue (1) |  10  | The parameter value.
                   |  :   | The offset n is equal to 
                   |  n   | 10+(parameterLength-1).
-------------------+------+--------------------------------------------
parameterID (2)    |  n+1 | An additional identifier for the parameter
                   |  n+2 | to follow, if necessary.
-------------------+------+--------------------------------------------
parameterLength (2)|  n+3 | The length of the additional parameter to 
                   |  n+4 | follow.
-----------------+------+----------------------------------------------
parameterValue (2) |  n+5 | The additional parameter value.
                   |  :   |  
                   |  m   |  
-------------------+------+--------------------------------------------
                      :
             More Parameters, if necessary
                      :
-------------------+------+--------------------------------------------



Signaling GatewayMsgHeader:
  The Signaling Gateway Message Header is encoded as explained in 
  Section 3.5.




Glaude, Cable, Blain                                          [Page 22]
Internet draft          SS7/IP Signaling Gateway      November 27, 1998


sccpMsgType:
  The SCCP message type indicates the nature of the message being 
  conveyed. The following table indicates the types and their 
  respective values. The SCCP message type is a mandatory parameter for
  all messages.

Table 19. Signaling Gateway SCCP Message Type

---------------------+--------------+-------------------------------
SCCP Message Type    |  Category    |  Value 
=====================+==============+===============================
N-UNIDATA-REQ        |  Primitive   |  0 
---------------------+--------------+-------------------------------
N-UNIDATA-IND        |  Primitive   |  1 
---------------------+--------------+-------------------------------
N-NOTICE-IND         |  Primitive   |  2 
---------------------+--------------+-------------------------------
N-COORD-REQ          |  Primitive   |  3 
---------------------+--------------+-------------------------------
N-COORD-RSP          |  Primitive   |  4 
---------------------+--------------+-------------------------------
N-COORD-IND          |  Primitive   |  5 
---------------------+--------------+-------------------------------
N-COORD-CNF          |  Primitive   |  6 
---------------------+--------------+-------------------------------
N-STATE-REQ          |  Primitive   |  7 
---------------------+--------------+-------------------------------
N-STATE-IND          |  Primitive   |  8 
---------------------+--------------+-------------------------------
N-PCSTATE-IND        |  Primitive   |  9 
---------------------+--------------+-------------------------------
N-REGISTER-REQ       |  Management  |  10 
---------------------+--------------+-------------------------------
N-REGISTER-RSP       |  Management  |  11
---------------------+--------------+-------------------------------
N-DEREGISTER-REQ     |  Management  |  12 
---------------------+--------------+-------------------------------
N-DEREGISTER-RSP     |  Management  |  13 
---------------------+--------------+-------------------------------

parameterID:
  The SCCP parameter identifier provides an indication of the value to 
  follow. A list of all parameter identifiers and their values follows.













Glaude, Cable, Blain                                          [Page 23]
Internet draft          SS7/IP Signaling Gateway      November 27, 1998


Table 20.    SCCP Parameter Identifier Values

----------------------------+------+--------------------------------
Parameter                   |Value | Section
============================+======+================================
SCCP-CALLED-ADDR            |  0   | 
----------------------------+------+--------------------------------
SCCP-CALLING-ADDR           |  1   | 
----------------------------+------+--------------------------------
SCCP-QUALITY-OF-SERV        |  2   | 
----------------------------+------+--------------------------------
SCCP-USER-DATA              |  3   | 
----------------------------+------+--------------------------------
SCCP-REASON-FOR-RETURN      |  4   | 
----------------------------+------+--------------------------------
SCCP-AFFECTED-USER          |  5   | 
----------------------------+------+--------------------------------
SCCP-CONFIRM-STATUS         |  6   | 
----------------------------+------+--------------------------------
SCCP-SS-MULTI-IND           |  7   | 
----------------------------+------+--------------------------------
SCCP-USER-STATUS            |  8   | 
----------------------------+------+--------------------------------
SCCP-AFFECTED-DPC           |  9   | 
----------------------------+------+--------------------------------
SCCP-SP-STATUS              |  10  | 
----------------------------+------+--------------------------------
SCCP-REGISTER-USER          |  11  | 
----------------------------+------+--------------------------------
SCCP-REGISTER-USER-ACK      |  12  | 
----------------------------+------+--------------------------------
SCCP-DEREGISTER-USER        |  13  | 
----------------------------+------+--------------------------------
SCCP-DEREGISTER-USER-ACK    |  14  | 
----------------------------+------+--------------------------------
SCCP-ROUTING-LABEL          |  15  | 
----------------------------+------+--------------------------------

5.2  SCCP Primitives

Table 21 lists the SCCP connectionless primitives supported by the
Signaling Gateway.















Glaude, Cable, Blain                                          [Page 24]
Internet draft          SS7/IP Signaling Gateway      November 27, 1998


Table 21.   SCCP Primitives

-----------------+--------------+--------------------------------------
Primitive Name   |  Type        | Description
=================+==============+======================================
N-UNITDATA       | Request      | Used to transfer UnitData messages, 
                 | Indication   | usually containing a TCAP message.
-----------------+--------------+--------------------------------------
N-NOTICE         | Indication   | Used to indicate the failure of the   
                 |              | transfer of a UnitData message. 
-----------------+--------------+--------------------------------------
N-COORD          | Request      | Used to coordinate the transfer of  
                 | Indication   | traffic between replicated systems.
                 | Response     |  
                 | Confirmation |  
-----------------+--------------+--------------------------------------
N-STATE          | Request      | Used to inform about the status of a 
                 | Indication   | local or remote subsystem.
-----------------+--------------+--------------------------------------
N-PCSTATE        | Indication   | Used to inform about the status of 
                 |              | a remote point code. 
-----------------+--------------+--------------------------------------

  
5.2.1 N-UNITDATA

The N-UNITDATA primitive is the means by which data is transmitted to 
and from other SCCP User Parts on the SS7 network. It contains a 
destination, an origination, a quality of service identifier and the 
user data to be sent or received.

Table 22.    N-UNITDATA parameters

---------------------+-----+-----+----------------------------------
Parameter            | REQ | IND | Description
=====================+=====+=====+==================================
SCCP-ROUTING-LABEL   |  X  |     | MTP Routing lable to be put into 
                     |     |     | outgoing message
---------------------+-----+-----+----------------------------------
SCCP-CALLED-ADDR     |  X  |  X  | Called Address
---------------------+-----+-----+----------------------------------
SCCP-CALLING-ADDR    |  X  |  X  | Calling Address
---------------------+-----+-----+----------------------------------
SCCP-QUALITY-OF-SERV |  X  |     | Quality of Service
---------------------+-----+-----+----------------------------------
SCCP-USER-DATA       |  X  |  X  | User Data ususally consisting of 
                     |     |     | a TCAP message
---------------------+-----+-----+----------------------------------








Glaude, Cable, Blain                                          [Page 25]
Internet draft          SS7/IP Signaling Gateway      November 27, 1998


5.2.2 N-NOTICE

In the event of a failure to reach the final destination using a 
N-UNITDATA, the SCCP layer sends a N_NOTICE back to the originator 
of the message, stating the cause of the failure.


Table 23.   N-NOTICE parameters

---------------------+-----+----------------------------------
Parameter            | IND | Description
=====================+=====+==================================
SCCP-CALLED-ADDR     |  X  | Called Address
---------------------+-----+----------------------------------
SCCP-CALLING-ADDR    |  X  | Calling Address
---------------------+-----+----------------------------------
SCCP-REASON-FOR-RET  |  X  | Reason for Return
---------------------+-----+----------------------------------
SCCP-USER-DATA       |  X  | User Data ususally consisting of 
                     |     | a TCAP message
---------------------+-----+----------------------------------


5.2.3 N-COORD

This primitive is used to coordinate the transfer of traffic 
between replicated systems in the event of failures.

Table 24.   N-COORD parameters

---------------------+-----+-----+-----+-----+-----------------------
Parameter            | REQ | IND | REQ | IND |Description
=====================+=====+=====+=====+=====+=======================
SCCP-AFFECTED-USER   |  X  |  X  |  X  |  X  | Affected User(PC-SSN)
---------------------+-----+-----+-----+-----+-----------------------
SCCP-USER-STATUS     |     |     |     |  X  | Status
---------------------+-----+-----+-----+-----+-----------------------
SCCP-SS-MULTI-IND    |     |  X  |     |  X  | Subsystem multiplicity
                     |     |     |     |     | indicator
------------------ --+-----+-----+-----+-----+-----------------------
















Glaude, Cable, Blain                                          [Page 26]
Internet draft          SS7/IP Signaling Gateway      November 27, 1998


5.2.4 N-STATE

This primitive is used to inform the SCCP layer and the user about 
the status of a local or a remote affected user.

Table 25.     N-STATE parameters

---------------------+-----+-----+----------------------------------
Parameter            | REQ | IND | Description
=====================+=====+=====+==================================
SCCP-AFFECTED-USER   |  X  |  X  | Affected user (PC-SSN) 
---------------------+-----+-----+----------------------------------
SCCP-USER-STATUS     |  X  |  X  | Status
---------------------+-----+-----+----------------------------------
SCCP-SS-MULTI-IND    |     |  X  | Subsystem multiplicity indicator
---------------------+-----+-----+----------------------------------


5.2.5 N-PCSTATE

This primitive is used to inform a local user about the status of a 
signaling point.

Table 26.      N-PCSTATE parameters


---------------------+-----+----------------------------------
Parameter            | IND | Description
=====================+=====+==================================
SCCP-AFFECTED-DPC    |  X  | Affected user (PC)
---------------------+-----+----------------------------------
SCCP-SP-STATUS       |  X  | Status
---------------------+-----+----------------------------------


5.3 Signaling Gateway SCCP User Part Management

The primitives defined in this section are required to support the 
enhanced SS7 services offered by the Signaling Gateway SCCP Management 
layer.

Table 27. Signaling Gateway SCCP User Part Management Primitives

---------------------+--------------+-------------------------------
Primitive Name       |  Type        |  Description 
=====================+==============+===============================
N-REGISTER           |  Request     |  Registration of User Parts 
                     |  Response    |   
---------------------+--------------+-------------------------------
N-DEREGISTER         |  Request     |  Deregistration of User Parts 
                     |  Response    |   
---------------------+--------------+-------------------------------




Glaude, Cable, Blain                                          [Page 27]
Internet draft          SS7/IP Signaling Gateway      November 27, 1998


5.3.1 N-REGISTER

This primitive is used to register a user part with the SCCP layer of 
the Signaling Gateway. The user specifies the point code and the 
subsystem associated with the application that is registering. The 
Signaling Gateway then ensures proper delivery of UDT messages to the 
proper registered application on a point code and subsystem basis. Up 
to 256 applications can register with the Signaling Gateway on a single
socket interface. Once an application successfully registers, the 
proper SCCP procedures are initiated to broadcast the availability of 
the SSN.


Table 28.  N-REGISTER Parameters

-----------------------+-----+-----+----------------------------------
Parameter              | REQ | RSP | Description
=======================+=====+=====+==================================
SCCP-REGISTER-USER     |  X  |     | User point code and subsystem 
-----------------------+-----+-----+----------------------------------
SCCP-REGISTER-USER-ACK |     |  X  | User point code, subsystem and
                       |     |     | status
-----------------------+-----+-----+----------------------------------


5.3.2  N-DEREGISTER-SSN

This primitive is used to de-register a user part from the SCCP layer. 
Upon de-registration, the proper SCCP procedures are initiated to 
broadcast the status change of the SSN.


Table 29.  N-DEREGISTER Parameters

-------------------------+-----+-----+---------------------------------
Parameter                | REQ | RSP | Description
=========================+=====+=====+=================================
SCCP-DEREGISTER-USER     |  X  |     | User point code and subsystem 
-------------------------+-----+-----+---------------------------------
SCCP-DEREGISTER-USER-ACK |     |  X  | User point code, subsystem and
                         |     |     | status
-------------------------+-----+-----+---------------------------------














Glaude, Cable, Blain                                          [Page 28]
Internet draft          SS7/IP Signaling Gateway      November 27, 1998


5.4  SCCP Parameters

This section describes the parameter formats used with the SCCP layer.

5.4.1 SCCP-CALLED-ADDR

The SCCP called address is encoded as follows.


Table 30.   SCCP-CALLED-ADDR Format

-----------------+------+---------------------------------------------
Field Name       |Offset| Notes
=================+======+=============================================
addressIndicator |  0   | The address indicator format is shown below.
-----------------+------+---------------------------------------------
subsystemNumber  |  1   | The subsystem number. 
-----------------+------+---------------------------------------------
n/a              |  2   | This field is reserved, and coded as 0x00.
-----------------+------+---------------------------------------------
        (network)|  3   | The destination point code. 
dpc     (cluster)|  4   |  
        (member) |  5   | 
-----------------+------+---------------------------------------------
gttLength        |  6   | A single octet length indicator fopr the GTT
                 |      | parameter to follow.
-----------------+------+---------------------------------------------
globalTitle      |  7   | The global title information whose length
                 |  :   | is defined by the gttLength parameter. 
                 |  7+n | 
-----------------+------+---------------------------------------------

The address indicator octet is further broken down into the following 
sub-fields:

Bit 8:     Network Indicator, 0 - international and 1 - national
Bit 7:     Routing Indicator, 0 - route on GTT, 1 - route on DPC/SSN
Bits 6-3:  Global Title Type
Bit 2:     SSN Present in ITU, PC Present in ANSI when set to 1.
Bit 1:     PC Present in ITU, SSN Present in ITU when set to 1.


5.4.2 SCCP-CALLING-ADDR

The SCCP calling address is encoded in the same manner as the called 
address.










Glaude, Cable, Blain                                          [Page 29]
Internet draft          SS7/IP Signaling Gateway      November 27, 1998


5.4.3 SCCP-QUALITY-OF-SERV

The quality of service parameter is encoded as follows:


Table 31.   SCCP-QUALITY-OF-SERV Format

-----------------+------+---------------------------------------------
Field Name       |Offset| Notes
=================+======+=============================================
sequenceControl  |  0   | 0 - sequence guaranteed
                 |      | 1 - sequence not guaranteed
-----------------+------+---------------------------------------------
returnOption     |  1   | 0 - return on error
                 |      | 1 - discard on error
-----------------+------+---------------------------------------------
priority         |  2   | 0,1 or 2. Not used in ITU, and should be set
                 |      | to zero.
-----------------+------+---------------------------------------------

5.4.4 SCCP-USER-DATA

The user data parameter contains the stream of octets transferred. 
It usually contains an encoded TCAP message.

5.4.5 SCCP-REASON-FOR-RET

The SCCP reason for return is a single octet parameter and is encoded 
as specified in GR-246-CORE, T1.112.3 Section 3.12 when used in ANSI 
mode. For ITU, the format of the reason for return is specified in 
Q.713 Section 3.12.

5.4.6 SCCP-AFFECTED-USER

This parameter contains the identification of an affected SCCP user. 
Its encoding is as follows.


Table 32.    SCCP-AFFECTED-USER Format

-----------------+------+---------------------------------------------
Field Name       |Offset| Notes
=================+======+=============================================
subsystemNumber  |  0   | The subsystem number. 
-----------------+------+---------------------------------------------
n/a              |  1   | This field is reserved, and coded as 0x00.
-----------------+------+---------------------------------------------
        (network)|  2   | The affected point code. 
apc     (cluster)|  3   |  
        (member) |  4   | 
-----------------+------+---------------------------------------------





Glaude, Cable, Blain                                          [Page 30]
Internet draft          SS7/IP Signaling Gateway      November 27, 1998


5.4.7 SCCP-CONFIRM-STATUS

The confirmation status indicates whether the out-of-service request 
was granted or denied. A value of 0 indicates acceptance, and 1 
indicates a denial.

5.4.8 SCCP-SS-MULTI-IND

This parameter contains the subsystem multiplicity indicator. 0 is 
unknown, 1 indicates solitary and 2 indicates a replicated subsystem.

5.4.9 SCCP-USER-STATUS

This parameter contains the status of an SCCP user. 0 indicates that 
the user is out of service. 1 indicates that the user is in service.

5.4.10 SCCP-AFFECTED-DPC

This parameter contains the point code of an affected destination. It 
is encoded as follows.

Table 33. SCCP-AFFECTED-DPC format

-----------------+------+---------------------------------------------
Field Name       |Offset| Notes
=================+======+=============================================
n/a              |  0   | This field is reserved, and coded as 0x00.
-----------------+------+---------------------------------------------
        (network)|  1   | The affected point code. 
apc     (cluster)|  2   |  
        (member) |  3   | 
-----------------+------+---------------------------------------------
























Glaude, Cable, Blain                                          [Page 31]
Internet draft          SS7/IP Signaling Gateway      November 27, 1998


5.4.11  SCCP-SP-STATUS

This single octet parameter contains the status of a destination 
encoded as follows.

Table 34        SCCP-SP-STATUS Values


------+---------------------+---------------------
Value | ANSI                | ITU-T
======+=====================+=====================
   0  | No Congestion       | No Congestion
------+---------------------+---------------------
   1  | Congestion Level 1  | Congestion
------+---------------------+---------------------
   2  | Congestion Level 2  | n/a
------+---------------------+---------------------
   3  | Congestion Level 3  | n/a
------+---------------------+---------------------
  254 | Accessible          | Accessible
------+---------------------+---------------------
  255 | Inaccessible        |Inaccessible
------+---------------------+---------------------

5.4.12 SCCP-REGISTER-USER

This parameter contains the identity of a registered user. Its format 
is as follows.

Table 35.  SCCP-REGISTERED-USER Format

-----------------+------+---------------------------------------------
Field Name       |Offset| Notes
=================+======+=============================================
subsystemNumber  |  0   | The subsystem number. 
-----------------+------+---------------------------------------------
n/a              |  1   | This field is reserved, and coded as 0x00.
-----------------+------+---------------------------------------------
        (network)|  2   | The point code. 
pc      (cluster)|  3   |  
        (member) |  4   | 
-----------------+------+--------------------------------------------- 














Glaude, Cable, Blain                                          [Page 32]
Internet draft          SS7/IP Signaling Gateway      November 27, 1998


5.4.13 SCCP-REGISTER-USER-ACK

This parameter contains the identity of a registered user and the 
status of the registration request. Its format is as follows.

Table 36.  SCCP-REGISTERED-USER-ACK Format

-----------------+------+---------------------------------------------
Field Name       |Offset| Notes
=================+======+=============================================
subsystemNumber  |  0   | The subsystem number. 
-----------------+------+---------------------------------------------
n/a              |  1   | This field is reserved, and coded as 0x00.
-----------------+------+---------------------------------------------
        (network)|  2   | The point code. 
pc      (cluster)|  3   |  
        (member) |  4   | 
-----------------+------+---------------------------------------------
status           |  5   | 0 - failure, 1 - success
-----------------+------+---------------------------------------------


5.4.14 SCCP-DEREGISTER-USER

The format of this parameter is the same as SCCP-REGISTER-USER.

5.4.15 SCCP-DEREGISTER-USER-ACK

The format of this parameter is the same as SCCP-REGISTER-USER-ACK.



























Glaude, Cable, Blain                                          [Page 33]
Internet draft          SS7/IP Signaling Gateway      November 27, 1998


5.4.16 SCCP-ROUTING-LABEL

This parameter contains the MTP level 3 routing label. Its format is as
follows.

Table 37.  SCCP-ROUTING-LABEL Format

-----------------+------+---------------------------------------------
Field Name       |Offset| Notes
=================+======+=============================================
sio              |  0   | The service indicator octet. 
-----------------+------+---------------------------------------------
n/a              |  1   | This field is reserved, and coded as 0x00.
-----------------+------+---------------------------------------------
        (network)|  2   | The destination, affected or registration 
dpc     (cluster)|  3   | point code of the message, depending on the
        (member) |  4   | message type.
-----------------+------+---------------------------------------------
n/a              |  5   | This field is reserved, and coded as 0x00.
-----------------+------+---------------------------------------------
        (network)|  6   | The origination point code of the message.
opc     (cluster)|  7   | It has the same encoding scheme as the dpc
        (member) |  8   | field.
-----------------+------+---------------------------------------------
sls              |  9   | The signaling link selection field.
-----------------+------+---------------------------------------------






























Glaude, Cable, Blain                                          [Page 34]
Internet draft          SS7/IP Signaling Gateway      November 27, 1998


5.5  Configuring the SCCP Interface

The configuration of the SCCP Interface can be done through the 
modification of an ASCII configuration file.  The specifics of the SCCP
interface configuration is left to the vendor.

A sample configuration file and explanation of the parameters follows.

Example 3       Sample SCCP Configuration File

########## SCCP node
$SCCPNODE  
LPC=100.100.100 
DEBUGLEVEL=4
MAJORFLAVOR=SCCP_ANSI_FLVR  
MINORFLAVOR=SCCP_ITU_FLVR
CONNDELAY=30000                 # milliseconds
SSTDELAY=30000                  # milliseconds
IGNOREDELAY=30000               # milliseconds
COORDDELAY=30000                # milliseconds
OPMODE=USERONLY
DESC="SCCP" 
MONPORT=6789  
MTPPORT=6230

########## Replicated subsystem

$RSSGROUP  GID=1  RSCOUNT=3  MODE=DOMINANT
$RSS  GID=1  RPC=51.68.85  SSN=7  PRIORITY=1
$RSS  GID=1  RPC=68.85.102  SSN=7  PRIORITY=2
$RSS  GID=1  RPC=85.102.119  SSN=6  PRIORITY=3

$RSSGROUP  GID=2  RSCOUNT=1  MODE=LOADSHARE
$RSS  GID=2  RPC=18.52.86  SSN=1  PRIORITY=1

Lines that start with pound sign "#" are comments. Everything appearing
after the # and to the end of the line is ignored by SCCP. To have 
multiple line comments, each line has to be proceded with #. The dollar
sign ($) serves as an identifier of a Tag, followed by Tag name, 
identifying a configurable object. The rest of the file are variable 
and value pairs. 

The following table explains the parameters used in the configuration
of an $SCCPNODE object.

The SCCPNODE is the "top" object that represents the SCCP entity. 
All parameters listed under the SCCPNODE object can be considered as 
global values for the SCCP task.








Glaude, Cable, Blain                                          [Page 35]
Internet draft          SS7/IP Signaling Gateway      November 27, 1998

Table 38        $SCCPNODE Parameters
-----------------+----------------------------------------------------
Parameter        | Notes
=================+====================================================
LPC              | The local point code of the SCCP layer.
-----------------+----------------------------------------------------
DEBUGLEVEL       | The Debug Level Parameter indicates the nature of
                 | the information to be sent to the Signaling
                 | Gateway Debug Log used during troubleshooting.
                 | Ranges from 0 (no debug) to 4 (verbose).
-----------------+----------------------------------------------------
MAJORFLAVOR      | The major flavor identifies which version of  
                 | SS7 the MTP is using. Valid values are    
                 | SCCP_ANSI_FLVR, SCCP_ITU_FLVR and SCCP_CHINA_FLVR.
-----------------+----------------------------------------------------
MINORFLAVOR      | The minor flavor identifies what version of SS7 the
                 | SCCP must use when the address indicator bit 8 is  
                 | set to zero in the called and the calling party 
                 | address. Valid values are SCCP_ANSI_FLVR,
                 | SCCP_ITU_FLVR and SCCP_CHINA_FLVR.
-----------------+----------------------------------------------------
CONNDELAY        | The delay between connection attempts to the MTP.
                 | The value is stored in milliseconds.
-----------------+----------------------------------------------------
SSTDELAY         | T(stat. info.) Delay between requests for sub-
                 | system status  information. The value is stored in 
                 | milliseconds.               
-----------------+----------------------------------------------------
IGNOREDELAY      | T(ignore SST) Delay for sub-system between
                 | receiving grant to go out of service and actually 
                 | going out of service. The value is stored in
                 | milliseconds.              
-----------------+----------------------------------------------------
COORDDELAY       | T(coord. chg.) Waiting for grant for sub-system
                 | to go out of service. The value is stored in
                 | milliseconds.              
-----------------+----------------------------------------------------
OPMODE           | The operation mode of the SCCP layer. Valid values 
                 | are USERONLY, GTTONLY and USERGTT. 
-----------------+----------------------------------------------------
DESC             | This a description field, and is used as the  
                 | identifier in the Signaling Gateway system and
                 | debug logs.
-----------------+----------------------------------------------------
USRPORT          | This is the port to which the SCCP is listening,
                 | waiting for SCCP user connections.
-----------------+----------------------------------------------------
GTTPORT          | This is the port to which the SCCP listens for GTT
                 | applications.
-----------------+----------------------------------------------------
MTPPORT          | This is the port which the SCCP uses for connecting 
                 | with the MTP. This value should match the External 
                 | Application Port parameter found in the MTP
                 | Provisioning Interface.
-----------------+----------------------------------------------------


Glaude, Cable, Blain                                        [Page 36]
Internet draft          SS7/IP Signaling Gateway      November 27, 1998


This next table explains the parameters of the $RSSGROUP object, which 
represents a group of replicated subsystems.

Table 39.  $RSSGROUP Parameters

-----------------+----------------------------------------------------
Parameter        | Notes
=================+====================================================
GID              | This numeric parameter is used to uniquely identify
                 | a group of replicated subsystems.
-----------------+----------------------------------------------------
RSCOUNT          | The count of replicated subsystems in the     
                 | replicated system group.
-----------------+----------------------------------------------------
MODE             | The mode in which the replicated systems operate. 
                 | Valide values are DOMINANT and LOADSHARE.
-----------------+----------------------------------------------------
   

The next table lists the parameters associated with the $RSS object, 
which represents an entry in the table of a replicated subsystem.

Table 40.  $RSS Parameters

-----------------+----------------------------------------------------
Parameter        | Notes
=================+====================================================
GID              | This numeric parameter is used to correlate this 
                 | entry with a unique group of replicated subsystems.
-----------------+----------------------------------------------------
RPC              | The remote point code servicing the replicated 
                 | subsystem.
-----------------+----------------------------------------------------
SSN              | The remote subsystem number.
                 | Valide values are DOMINANT and LOADSHARE.
-----------------+----------------------------------------------------
PRIORITY         | The priority of the subsystem among its replicates.
                 | The range is from 0 to 99.
-----------------+----------------------------------------------------

















Glaude, Cable, Blain                                          [Page 37]
Internet draft          SS7/IP Signaling Gateway      November 27, 1998

6.0 Sample Application

A typical application would use the following sequence of operations.

6.1 Setup

(1) Connect to the Signaling Gateway.

Using BSD socket library calls, an application would connect to a 
socket on the Signaling Gateway.

(2) Receive local status

The first thing that the Signaling Gateway sends is the status of the 
local system.

(3) Register with the Signaling Gateway

The application then sends a registration request to the Signaling 
Gateway, specifying a point code and a subsystem number for the SCCP 
interface, and a point code and a service indicator for the MTP 
interface.

(4) Receive registration acknowledgment

The Signaling Gateway will return a message indicating the status of 
the registered user part.

6.2 Operation

(5) Send and Receive messages

The application can the send and receive UDT or MTP messages to the SS7
network. Standard BSD library functions will provide a non-blocking 
interface to the TCP/IP LAN servicing the application platform and 
the Signaling Gateway.

6.3 Shutdown

(6) De-register from the Signaling Gateway

At any given time, a user part may de-register itself from the 
Signaling Gateway. A sudden closure of the TCP/IP socket would have the
same effect.

(7) Receive de-registration acknowledgement

The Signaling Gateway will return a message indicating the status of 
the de-registered user part.

(8) Close the connection to the Signaling Gateway

Properly closing the connection to the Signaling Gateway is necessary 
in order to ensure maximum performance of the Signaling Gateway.



Glaude, Cable, Blain                                          [Page 38]
Internet draft          SS7/IP Signaling Gateway      November 27, 1998


7 Future Enhancements

Enhancements to the Signaling Gateway API would include the ability to
allow applications to register with the MTP layer of the SS7 protocol 
stack and request to send and receive ISUP messages for a specified 
range of circuit identification codes (CICs). This would permit 
multiple application processes such as Media Gateway Controllers to 
register with the Signaling Gateways utilizing the same point code and 
load-share the call processing traffic load by only registering for 
control over a specified range of PSTN Trunk circuits.

A similar type of registration could be provided at the SCCP level. 
Application processes would register with the SCCP layer of the SS7 
protocol stack and request to send and receive TCAP messages for a 
specified range of Transaction Identifiers for a shared point code and 
subsystem number. 


8 Authors

Normand Glaude
MicroLegend Telecom Systems Inc.
150 Metcalfe Street, Suite 2201
Ottawa, Ontario, Canada
K2P 1P1
Email: nglaude@microlegend.com

Tom Blain
MicroLegend Telecom Systems Inc.
150 Metcalfe Street, Suite 2201
Ottawa, Ontario, Canada
K2P 1P1
Email: tblain@microlegend.com

Reg Cable
MicroLegend Telecom Systems Inc.
150 Metcalfe Street, Suite 2201
Ottawa, Ontario, Canada
K2P 1P1
Email: rcable@microlegend.com

INTERNET DRAFT
Transport SS7 Signalling Over IP
<draft-glaude-ss7-gw-00.txt>
Date:November 27, 1998
Expires: June 1999










Glaude, Cable, Blain                                          [Page 39]