Friday, November 2, 2007

VOIP Introduction

The possibility of voice communications traveling over the Internet, rather than the PSTN, first became a reality in February 1995 when Vocaltec, Inc. introduced its Internet Phone software. Designed to run on a 486/33-MHz (or higher) personal computer (PC) equipped with a sound card, speakers, microphone, and modem (see Figure 1), the software compresses the voice signal and translates it into IP packets for transmission over the Internet. This PC-to-PC Internet telephony works, however, only if both parties are using Internet Phone software.

In the relatively short period of time since then, Internet telephony has advanced rapidly. Many software developers now offer PC telephony software but, more importantly, gateway servers are emerging to act as an interface between the Internet and the PSTN (see Figure 2). Equipped with voice-processing cards, these gateway servers enable users to communicate via standard telephones.



Wednesday, October 31, 2007

Message Transfer Part

Message Transfer Part

The Message Transfer Part (MTP) is divided into three levels:

MTP Level 1

The lowest level, MTP Level 1, is equivalent to the OSI Physical Layer. MTP Level 1 defines the physical, electrical, and functional characteristics of the digital signaling link. Physical interfaces defined include E-1 (2048 kb/s; 32 64 kb/s channels), DS-1 (1544 kb/s; 24 64 kp/s channels), V.35 (64 kb/s), DS-0 (64 kb/s), and DS-0A (56 kb/s).

MTP Level 2

MTP Level 2 ensures accurate end-to-end transmission of a message cross a signaling link. Level 2 implements flow control, message sequence validation, and error checking. When an error occurs on a signaling link, the message (or set of messages) is retransmitted. MTP Level 2 is equivalent to the OSI Data Link Layer.

An SS7 message is called a signal unit (SU). There are three kinds of signal units: Fill-In Signal Units (FISUs), Link Status Signal Units (LSSUs), and Message Signal Units (MSUs) (Fig. 4).



Fill-In Signal Units (FISUs) are transmitted continuously on a signaling link in both directions unless other signal units (MSUs or LSSUs) are present. FISUs carry basic level 2 information only (e.g., acknowledgment of signal unit receipt by a remote signaling point). Because a CRC checksum is calculated for each FISU, signaling link quality is checked continuously by both signaling points at either end of the link. (Note: In the ITU-T Japan variant, signaling link quality is checked by the continuous transmission of flag octets (8-bit bytes) rather than FISUs; FISUs are sent only at predefined timer intervals (e.g., once every 150 milliseconds).

Link Status Signal Units (LSSUs) carry one or two octets (8-bit bytes) of link status information between signaling points at either end of a link. The link status is used to control link alignment and to indicate the status of a signaling point (e.g., local processor outage) to the remote signaling point.

Message Signal Units (MSUs) carry all call control, database query and response, network management, and network maintenance data in the signaling information field (SIF). MSUs have a routing label which allows an originating signaling point to send information to a destination signaling point across the network.

The value of the LI (Length Indicator) field determines the signal unit type:

LI Value
Signal Unit Type
0
Fill-In Signal Unit (FISU)
1..2
Link Status Signal Unit (LSSU)
3..63
Message Signal Unit (MSU)

Figure 5. Message Type Length Indicator Value(s)

The 6-bit LI can store values between zero and 63. If the number of octets which follow the LI and precede the CRC is less than 63, the LI contains this number. Otherwise, the LI is set to 63. An LI of 63 indicates that the message length is equal to or greater than 63 octets (up to a maximum of 273 octets). The maximum length of a signal unit is 279 octets: 273 octets (data) + 1 octet (flag) + 1 octet (BSN + BIB) + 1 octet (FSN + FIB) + 1 octet (LI + 2 bits spare) + 2 octets (CRC).

Flag
The flag indicates the beginning of a new signal unit and implies the end of the previous signal unit (if any). The binary value of the flag is 0111 1110. Before transmitting a signal unit, MTP Level 2 removes "false flags" by adding a zero-bit after any sequence of five one-bits. Upon receiving a signal unit and stripping the flag, MTP Level 2 removes any zero-bit following a sequence of five one-bits to restore the original contents of the message. Duplicate flags are removed between signal units.

BSN (Backward Sequence Number)
The BSN is used to acknowledge the receipt of signal units by the remote signaling point. The BSN contains the sequence number of the signal unit being acknowledged. (See description under FIB below.)

BIB (Backward Indicator Bit)
The BIB indicates a negative acknowledgment by the remote signaling point when toggled. (See description under FIB below.)

FSN (Forward Sequence Number)
The FSN contains the sequence number of the signal unit. (See description under FIB below.)

FIB (Forward Indicator Bit)
The FIB is used in error recovery like the BIB. When a signal unit is ready for transmission, the signaling point increments the FSN (forward sequence number) by 1 (FSN = 0..127). The CRC (cyclic redundancy check) checksum value is calculated and appended to the forward message. Upon receiving the message, the remote signaling point checks the CRC and copies the value of the FSN into the BSN of the next available message scheduled for transmission back to the initiating signaling point. If the CRC is correct, the backward message is transmitted. If the CRC is incorrect, the remote signaling point indicates negative acknowledgment by toggling the BIB prior to sending the backward message. When the originating signaling point receives a negative acknowledgment, it retransmits all forward messages, beginning with the corrupted message, with the FIB toggled.

Because the 7-bit FSN can store values between zero and 127, a signaling point can send up to 128 signal units before requiring acknowledgment from the remote signaling point. The BSN indicates the last in-sequence signal unit received correctly by the remote signaling point. The BSN acknowledges all previously received signal units as well. For example, if a signaling point receives a signal unit with BSN = 5 followed by another with BSN = 10 (and the BIB is not toggled), the latter BSN implies successful receipt of signal units 6 through 9 as well.

SIO (Service Information Octet)
The SIO field in an MSU contains the 4-bit subservice field followed by the 4-bit service indicator. FISUs and LSSUs do not contain an SIO.

The subservice field contains the network indicator (e.g., national or international) and the message priority (0..3 with 3 being the highest priority). Message priority is considered only under congestion conditions, not to control the order in which messages are transmitted. Low priority messages may be discarded during periods of congestion. Signaling link test messages receive a higher priority than call setup messages.

The service indicator specifies the MTP user (Fig. 6), thereby allowing the decoding of the information contained in the SIF.

Service Indicator
MTP User
0
Signaling Network Management Message (SNM)
1
Maintenance Regular Message (MTN)
2
Maintenance Special Message (MTNS)
3
Signaling Connection Control Part (SCCP)
4
Telephone User Part (TUP)
5
ISDN User Part (ISUP)
6
Data User Part (call and circuit-related messages)
7
Data User Part (facility registration/cancellation messages)

Figure 6. Service Indicator Values

SIF (Signaling Information Field)
The SIF in an MSU contains the routing label and signaling information (e.g., SCCP, TCAP, and ISUP message data). LSSUs and FISUs contain neither a routing label nor an SIO as they are sent between two directly connected signaling points. For more information about routing labels, refer to the description of MTP Level 3 below.

CRC (Cyclic Redundancy Check)
The CRC value is used to detect and correct data transmission errors. For more information, see the description for BIB above.

MTP Level 3

MTP Level 3 provides message routing between signaling points in the SS7 network. MTP Level 3 is equivalent in function to the OSI Network Layer.

MTP Level 3 routes messages based on the routing label in the signaling information field (SIF) of message signal units. The routing label is comprised of the destination point code (DPC), originating point code (OPC), and signaling link selection (SLS) field. Points codes are numeric addresses which uniquely identify each signaling point in the SS7 network. When the destination point code in a message indicates the receiving signaling point, the message is distributed to the appropriate user part (e.g., ISUP or SCCP) indicated by the service indicator in the SIO. Messages destined for other signaling points are transferred provided that the receiving signaling point has message transfer capabilities (like an STP). The selection of outgoing link is based on information in the DPC and SLS.

An ANSI routing label uses 7 octets; an ITU-T routing label uses 4 octets (Fig. 7).


NSI point codes use 24-bits (three octets); ITU-T point codes typically use 14-bits. For this reason, signaling information exchanged between ANSI and ITU-T networks must be routed through a gateway STP, protocol converter, or other signaling point which has both an ANSI and an ITU-T point code. (Note: China uses 24-bit ITU-T point codes which are incompatible with both ANSI and other ITU-T networks). Interaction between ANSI and ITU-T networks is further complicated by different implementations of higher level protocols and procedures.

An ANSI point code consists of network, cluster, and member octets (e.g., 245-16-0). An octet is an 8-bit byte which can contain any value between zero and 255. Telcos with large networks have unique network identifiers while smaller operators are assigned a unique cluster number within networks 1 through 4 (e.g., 1-123-9). Network number 0 is not used; network number 255 is reserved for future use.

ITU-T point codes are pure binary numbers which may be stated in terms of zone, area/network, and signaling point identification numbers. For example, the point code 5557 (decimal) may be stated as 2-182-5 (binary 010 10110110 101).

Signaling Link Selection (SLS)
The selection of outgoing link is based on information in the DPC and Signaling Link Selection field. The SLS is used to:

  • Ensure message sequencing. Any two messages sent with the same SLS will always arrive at the destination in the same order in which they were originally sent.
  • Allow equal load sharing of traffic among all available links. In theory, if a user part sends messages at regular intervals and assigns the SLS values in a round-robin fashion, the traffic level should be equal among all links (within the combined linkset) to that destination.

In ANSI networks, the size of the SLS field was originally 5 bits (32 values). In configurations with two links in each linkset of a combined linkset (totaling 4 links), 8 SLS values were assigned to each link to allow an equal balance of traffic.

A problem arose when growing networks provisioned linksets beyond 4 links. With a 5 bit SLS, a configuration with 5 links in each linkset of a combined linkset (totaling 10 links) results in an uneven assignment of 3 SLS values for 8 links and 4 SLS values for the remaining 2 links. To eliminate this problem, both ANSI and Bellcore moved to adopt an 8-bit SLS (256 values) to provide better loadsharing across signaling links.

In ITU-T implementations, the SLS is interpreted as the signaling link code in MTP messages. In ITU-T Telephone User Part message, a portion of the circuit identification code is stored in the SLS field.

MTP Level 3 re-routes traffic away from failed links and signaling points and controls traffic when congestion occurs. However, a detailed discussion of this topic is outside the scope of this tutorial.

MTP Levels 2 and 1 can be replaced by ATM (Asynchronous Transfer Mode), a simple broadband protocol which uses fixed-length 53 octet cells. MTP Level 3 interfaces to ATM using the Signaling ATM Adaptation Layer (SAAL). This interface is currently an area of ongoing study.




TCAP

Transaction Capabilities Application Part

TCAP enables the deployment of advanced intelligent network services by supporting non-circuit related information exchange between signaling points using the SCCP connectionless service. An SSP uses TCAP to query an SCP to determine the routing number(s) associated with a dialed 800, 888, or 900 number. The SCP uses TCAP to return a response containing the routing number(s) (or an error or reject component) back to the SSP. Calling card calls are also validated using TCAP query and response messages. When a mobile subscriber roams into a new mobile switching center (MSC) area, the integrated visitor location register requests service profile information from the subscriber's home location register (HLR) using mobile application part (MAP) information carried within TCAP messages.

TCAP messages are contained within the SCCP portion of an MSU. A TCAP message is comprised of a transaction portion and a component portion.


Transaction Portion

The transaction portion contains the package type identifier. There are seven package types:

  • Unidirectional: Transfers component(s) in one direction only (no reply expected).
  • Query with Permission: Initiates a TCAP transaction (e.g., a 1-800 query). The destination node may end the transaction.
  • Query without Permission: Initiates a TCAP transaction. The destination node may not end the transaction.
  • Response: Ends the TCAP transaction. A response to an 1-800 query with permission may contain the routing number(s) associated with the 800 number.
  • Conversation with Permission: Continues a TCAP transaction. The destination node may end the transaction.
  • Conversation without Permission: Continues a TCAP transaction. The destination node may not end the transaction.
  • Abort: Terminates a transaction due to an abnormal situation.

The transaction portion also contains the Originating Transaction ID and Responding Transaction ID fields which associate the TCAP transaction with a specific application at the originating and destination signaling points respectively.

Component Portion

The component portion contains components. There are six kinds of components:

  • Invoke (Last): Invokes an operation. For example, a Query with Permission transaction may include an Invoke (Last) component to request SCP translation of a dialed 800 number. The component is the "last" component in the query.
  • Invoke (Not Last): Similar to the Invoke (Last) component except that the component is followed by one or more components.
  • Return Result (Last): Returns the result of an invoked operation. The component is the "last" component in the response.
  • Return Result (Not Last): Similar to the Return Result (Last) component except that the component is followed by one or more components.
  • Return Error: Reports the unsuccessful completion of an invoked operation.
  • Reject: Indicates that an incorrect package type or component was received.

Components include parameters which contain application-specific data carried unexamined by TCAP.