|
|
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== | + | ==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=== | | ===Example=== |
Line 63: |
Line 61: |
| .*=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:''' |
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.
In ysigchan.conf define sccp and gtt objects.
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: