Configure SCCP and GTT

From Yate Documentation
(Difference between revisions)
Jump to: navigation, search
(Control)
(Control)
Line 220: Line 220:
 
*[[SEP SCCP configuration]]
 
*[[SEP SCCP configuration]]
 
*[[SCCP_address_translation | SCCP address translatation]]
 
*[[SCCP_address_translation | SCCP address translatation]]
 +
*[[SCCP Introduction]]

Revision as of 16:57, 26 October 2017

The SCCP protocol provides extended routing, flow control, segmentation, connection-orientation, and error correction facilities in SS7 networks. It relies on MTP for basic routing and error detection.

A GT (global title) is an address used in SCCP for routing signaling messages in SS7 networks. It's unique and identifies a single destination in the SS7 network.

GTT (global title translation) examines the destination address and decides how to identify it in the SS7 network. More about GTT here.

Contents

 [hide

SCCP and GTT in YATE

Implementation

SCCP implementation in Yate is located in ysig library. The methods declaration is in libs/ysig/yatesig.h and the implementation in libs/ysig/sccp.cpp. Classes name are SS7SCCP, GTT.

Example

In ysigchan.conf define sccp and gtt objects.

; linkset to STP node
[ls_stp]
;enable=no
type=ss7-mtp3
netind2pctype=ANSI
netindicator=national
local=ANSI,0-0-3
adjacent=ANSI,0-0-1
link=stp

[stp]
type=ss7-m2pa

[sccp]
type=ss7-sccp
pointcodetype=ANSI
netindicator=national
localpointcode=3
management=sccp-mgm
ignore-unknown-digits=no
extended-monitoring=true
extended-debug=true
print-messages=no

[sccp-mgm]
type=ss7-sccp-ansi-mgm
print-messages=true

[gtt]
type=ss7-gtt
sccp=sccp
debugname=GTT

The actual global title translation logic is custom. You could implement it in javascript or another module.
Here is a basic example in regexroute.conf:

[extra]
; install handler for sccp.route message
sccp.route=110,gt,gtt

[gtt]
.*=echo GTT for: \0
; for local node
^8820003$=local;RemotePC=3;route=gt
^88200000=local-e214;RemotePC=3;route=gt 
^00101=local-e212;RemotePC=3;route=gt
^00190=local-e212;RemotePC=3;route=gt
^31337=local-e212;RemotePC=3;route=gt
; send all else to STP node
^882000.$=stp;RemotePC=1;route=gt
.*=echo GTT for \0 failed

Configuration

From sample ysigchan.conf:

; Example of a SS7 SCCP
;[sccp]

; type: keyword: identifies the component as a SS7 SCCP
;type=ss7-sccp

; pointcodetype: string: SS7 point code type (required)
; Allowed values:
;  ITU    ITU-T Q.704
;  ANSI   ANSI T1.111.4
;pointcodetype=

; localpointcode: string: Local point code to accept as destination (required)
; The format is network-cluster-member or number
;localpointcode=

; router: string: Name of the SS7 Router to attach to
; A boolean false value disables attaching a router (unlikely)
;router=ss7router

; network: string: Name of linkset to attach to if router is disabled
; This allows direct connection without MTP management (unlikely)
;network=

; management: string: Name of the SS7 management to use
;management=sccp-mgm

; hopcounter: integer: Default value for hop-counter
; This value indicates the maximum number of gt translations that can be
;  made before the message reach it's destination
;hopcounter=15

; ludt-support: boolean: True to allow sccp to send Long UnitData messages
;ludt-support=false

; segmentation-timeout: integer: Time in milliseconds before a segmented
;  message is expired
; Values: 5000-20000 ms
;segmentation-timeout=5000

; extended-monitoring: boolean: Compute an extended monitoring of sccp messages
;extended-monitoring=no

; print-messages: boolean: Print decoded protocol data units to output
; This option is applied on reload
; Defaults to no
;print-messages=no

; extended-debug: boolean: Print extended debug data (such as raw hex data)
;  to output
; This option is applied on reload
; Defaults to no
;extended-debug=no

; endpoint: boolean: Force message processing if we are an endpoint
; This option will allow sccp to process failed gt translations messages
;  if a ssn is pressent
;endpoint=true;

; local-dpc-only: boolean: Process only messages whose DPC equals localpointcode
; If turned off it will process (and possibly GTT) messages with any DPC
; This option is applied on reload
; Defaults to yes
;local-dpc-only=true

; Example of SS7 Sccp Management
;[sccp-mgm]

; type: keyword: identifies the component as a SS7 SCCP Management
; Values : ss7-sccp-itu-mgm
; Must correspond with the pointcode type of the sccp
;type=

; test-timer: integer: Initial time in milliseconds for Subsystem Status
;  Test to be generated
; Values : 5000-10000
; Note! This timer will increase exponentially until reaches 20000 if no
;  corresponding message is received from the test initiator
;test-timer=5000

; print-messages: boolean: True to print sccp management messages
;print-messages=false

; remote: struct: Remote SCCP witch present interest for GTT
;  (Global Title Translator)
; This parameter allow us to monitor remote sccp's state
; This option can be repeated to monitor multiple remote sccp's
; Format: remote=pc(integer):ssn1,ssn2,....
; pc : integer: Remote sccp pointcode
; ssn1 - ssnn: integer; Remote sccp subsystems witch we are monitoring
; Note! Ssn list may be empty if the remote sccp is a stp with GTT
;remote=2057:1,2,3,4

; concerned: struct: List of remote sccp's witch are concerned about local state
; This parameter allow us to inform remote sccp's when local status has changed
; This option can be repeated to inform multiple remote sccp's
; Format: remote=pc(integer):ssn1,ssn2,....
; pc : integer: Remote sccp pointcode
; ssn1 - ssnn: integer; List of local subsystems witch are of interest for the
;  remote sccp
; Note! Ssn list may be empty if the remote sccp is concerned only if local
;  sccp is available or not
;concerned=2057:1,2,3,4

; local-subsystems: string: Coma separated list of local subsystems
; The subsystems present in this list will be monitored by this sccp management
;local-subsystems=1,2,3,4,5,..

; auto-monitor: boolean: True to auto monitor remote sccp's.
; This flag enables remote sccp auto monitoring. When a message failed to be
;  send to a remote sccp, the sccp management will automaticaly append the
;  destination to the monitored remote sccp destinations
;  to prevent sccp routing failure.
; NOTE! Do not use this option if your GTT (Global Title Translator)
;  can route to a large number of remote addresses
;  because a lot of memory and cpu power will be used!
;auto-monitor=false

; Example of GTT (Global Title Translator)
;[gtt]

; type: keyword: Identifies this component as a GTT
; NOTE! This type of gtt is based on yate messages system.
;type=ss7-gtt

; sccp: string: The name of the sccp to attach to this GTT
;sccp=sccp

Status

To check status of compotent use "status sip component_name".
Ex: "status sig sccp", "status sig gtt"

Control

SCCP component control commands:

status control SCCP_NAME status Show status
full-status control SCCP_NAME full-status
enable-extended-monitoring control SCCP_NAME enable-extended-monitoring
disable-extended-monitoring control MTP3_LINKSET_NAME disable-extended-monitoring
enable-print-messages control SCCP_NAME enable-print-messages
disable-print-messages control SCCP_NAME disable-print-messages

See also:

Personal tools
Namespaces

Variants
Actions
Preface
Configuration
Administrators
Developers