Skip to content

SCCP (Signaling Connection Control Part)

The Signaling Connection Control Part (SCCP) provides extended routing, flow control, segmentation, connection-oriented service, and error correction facilities in SS7 networks.

Features

Addressing Capabilities

  • Point Code (PC)
  • Subsystem Number (SSN)
  • Global Title (GT)
  • Global Title Translation (GTT)

Service Types

  • Connection-oriented (Class 2, 3)
  • Connectionless (Class 0, 1)
  • Message handling
  • Flow control

Implementation

Basic Setup

import { SCCPClient } from '@telco-api/ss7/sccp';

const client = new SCCPClient({
  localPointCode: '1-1-1',
  remotePointCode: '2-2-2',
  subsystemNumber: 7,  // MAP SSN
  networkIndicator: 'international',
  routingIndicator: 'gt',
  globalTitle: {
    tt: 0,
    np: 1,
    nai: 4,
    address: '12345'
  }
});

Global Title Translation

const gtTranslation = {
  incomingGT: {
    tt: 0,
    np: 1,
    nai: 4,
    address: '1234567890'
  },
  outgoingPC: '3-3-3',
  outgoingSSN: 8,
  outgoingGT: {
    tt: 0,
    np: 1,
    nai: 4,
    address: '0987654321'
  }
};

await client.addGTTRule(gtTranslation);

Message Types

Connection-Oriented Messages

  • Connection Request (CR)
  • Connection Confirm (CC)
  • Connection Refused (CREF)
  • Released (RLSD)
  • Release Complete (RLC)

Connectionless Messages

  • Unitdata (UDT)
  • Extended Unitdata (XUDT)
  • Unitdata Service (UDTS)
  • Extended Unitdata Service (XUDTS)

Protocol Classes

Class 0

  • Basic connectionless service
  • No flow control
  • No sequencing
  • No error recovery

Class 1

  • Connectionless service
  • Sequence control
  • Return on error

Class 2

  • Basic connection-oriented service
  • Flow control
  • Sequencing
  • Error recovery

Class 3

  • Flow control
  • Sequencing
  • Error recovery
  • Expedited data

Error Handling

Error Types

  • Routing failure
  • Connection establishment failure
  • Connection release failure
  • Message type errors
  • Protocol class errors

Error Response

try {
  await client.sendMessage({
    messageType: 'UDT',
    calledParty: {
      pointCode: '2-2-2',
      subsystemNumber: 7,
      globalTitle: {
        tt: 0,
        np: 1,
        nai: 4,
        address: '1234567890'
      }
    },
    userData: Buffer.from('Hello World')
  });
} catch (error) {
  if (error instanceof SCCPError) {
    console.error(`SCCP Error: ${error.code} - ${error.message}`);
    // Handle specific error types
    switch (error.code) {
      case 'ROUTING_FAILURE':
        // Handle routing failure
        break;
      case 'SUBSYSTEM_FAILURE':
        // Handle subsystem failure
        break;
      // ... handle other error types
    }
  }
}

Management Functions

Subsystem Management

  • Subsystem Allowed (SSA)
  • Subsystem Prohibited (SSP)
  • Subsystem Status Test (SST)
  • Subsystem Out of Service Request (SOR)
  • Subsystem Out of Service Grant (SOG)

Example: Subsystem Status Management

// Monitor subsystem status
client.on('subsystemStatus', (status) => {
  console.log(`Subsystem ${status.ssn} status changed to ${status.state}`);
});

// Test subsystem availability
await client.testSubsystem({
  pointCode: '2-2-2',
  subsystemNumber: 7
});

Performance Optimization

Connection Pooling

const pool = new SCCPConnectionPool({
  min: 5,
  max: 20,
  idleTimeoutMillis: 30000,
  connectionTimeoutMillis: 3000
});

Load Balancing

const loadBalancer = new SCCPLoadBalancer({
  nodes: [
    { pointCode: '2-2-2', weight: 1 },
    { pointCode: '3-3-3', weight: 1 }
  ],
  algorithm: 'round-robin'
});

Monitoring

Metrics Collection

const metrics = await client.getMetrics();
console.log({
  messagesSent: metrics.messagesSent,
  messagesReceived: metrics.messagesReceived,
  errors: metrics.errors,
  activeConnections: metrics.activeConnections
});

Health Checks

const health = await client.checkHealth();
console.log({
  status: health.status,
  connectionState: health.connectionState,
  lastError: health.lastError,
  uptime: health.uptime
});

Reference

Standards

  • ITU-T Q.711: Functional description of the SCCP
  • ITU-T Q.712: Definition and function of SCCP messages
  • ITU-T Q.713: SCCP formats and codes
  • ITU-T Q.714: SCCP procedures