Configure SCCP and GTT

From Yate Documentation
(Difference between revisions)
Jump to: navigation, search
(Control)
 
(3 intermediate revisions by one user not shown)
Line 5: Line 5:
 
GTT (global title translation) examines the destination address and decides how to identify it in the SS7 network. More about GTT [http://en.wikipedia.org/wiki/Global_Title_Translation#Global_title_translation here].
 
GTT (global title translation) examines the destination address and decides how to identify it in the SS7 network. More about GTT [http://en.wikipedia.org/wiki/Global_Title_Translation#Global_title_translation here].
  
==SCCP and GTT in YATE==
+
==Configure SCCP and enable GTT support==
===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.
 
In ysigchan.conf define sccp and gtt objects.
 
  ; linkset to STP node
 
  ; linkset to STP node
Line 43: Line 40:
 
  sccp=sccp
 
  sccp=sccp
 
  debugname=GTT
 
  debugname=GTT
 +
 +
==Configure routing rules for GTT==
  
 
The actual global title translation logic is custom. You could implement it in javascript or another module.<br/>
 
The actual global title translation logic is custom. You could implement it in javascript or another module.<br/>
Line 63: Line 62:
 
  .*=echo GTT for \0 failed
 
  .*=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".<br/>
 
Ex: "status sig sccp", "status sig gtt"
 
 
===Control===
 
SCCP component control commands:
 
  
{|class="mediawiki" border="1"
 
|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:'''
 
'''See also:'''

Latest revision as of 11:22, 27 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.

[edit] Configure SCCP and enable GTT support

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

[edit] Configure routing rules for 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


See also:

Personal tools
Namespaces

Variants
Actions
Preface
Configuration
Administrators
Developers