Configure MTP3
MTP3 is associated to the Signalling Link Functional Level in MTP. It is used to route transport signalling messages between the SS7 endpoints in a SS7 network. It also provides network management and controls traffic when congestion occurs. When a MTP2 data link is no longer available it establishes alternative links and re-routes traffic away from failed links and signaling points and propagates information about route availability through the network.
Each network element in a SS7 network is uniquely identified by a Point Code (PC). The routing of the messages is performed according to the point code.
There are 2 types of nodes:
- Signaling End Point (SEP) - uses MTP to communicate with other SEPs (telecom switches)
- Signaling Transfer Point (STP) - only performs MTP message routing functionalities
Contents |
Usage
MTP3 can be used over the following data links:
- M2PA
- MTP2
- M2UA
- Cisco SLT
Example for MTP3 configuration having two data links: a M2PA and a MTP2 link.
Protocol in YATE
Implementation
MTP3 implementation in YATE is located in ysig library. The methods declaration is in libs/ysig/yatesig.h and the implementation in libs/ysig/layer3.cpp. Class name is SS7MTP3.
Interconnection
MTP3 can be used over MTP2, M2PA, M2UA and Cisco SLT.
Configuration
Example ysigchan.conf
[mtp3] type=ss7-mtp3 netind2pctype=ITU netindicator=national local=ITU,0-0-6 adjacent=ITU,0-0-5 link=m2pa link=mtp2 ; [m2pa] type=ss7-m2pa sig=sctp-m2pa [mtp2] type=ss7-mtp2 autostart=yes emergency=yes autoemergency=yes sig=wanpipe1 filllink=no
Note: According to standards filllink should be 'yes'. We usually set it to 'no' because most of the times the underlying layers don't have support for it (unless when support was added in the hardware and then it's ok to configure filllink='yes').
In wpcard.conf
[wanpipe1] type=E1 siggroup=w1g1 voicegroup=w1g2
And in sigtransport.conf we define the referenced transport sctp-m2pa:
[sctp-m2pa] type=sctp stream=false local=192.168.168.156:5050 remote=192.168.168.200:6999
From sample ysigchan.conf file:
; Example of a SS7 MTP3 network (linkset) ;[linkset1] ; type: keyword: Specify the linkset type ; Allowed values: ; ss7-mtp3: SS7 Message Transfer Part - Layer 3 ;type=ss7-mtp3 ; ; netind2pctype: string: Comma separated list of point code types used to map an ; incoming network indicator to a specific point code type ; This option is required and is used to configure a SS7 MTP3 network ; The list must contain either a singe type or 4 values indicating the point ; code type for International, SpareInternational, National and ReservedNational ; network indicators ; If only a single type is specified it will be used to configure all types of ; network indicators ; See the ISUP pointcodetype option for allowed values ; NOTE: An incoming packet with an unconfigured network indicator will be dropped ; Examples: ; netind2pctype=ITU ; netind2pctype=ITU,ANSI,ITU,ITU ; netind2pctype=ANSI8,ITU,ANSI,ITU ;netind2pctype= ; ; netindicator: keyword: Default value of Network Indicator bits ; Allowed values: international, spareinternational, national, reservednational ;netindicator=national ; ; route: string: Build a destination route for the SS7 network ; The format of this option is pointcodetype,label,priority,shift,size ; This parameter can be repeated to build multiple destination routes ; The network will notify the router about its destination(s) and priority ; ; If not specified the priority is 100. A zero priority creates an adjacent route ; ; Shift SLS right shift when selecting linkset. ; For example for 2 links shift = 1. ; A value of 8 or higher disables load balancing. ; ; Size represents the maximum MSU size that can be transported on this route. ; The default vaue is 272 -> maximum MSU size on TDM. ; If the route can transport more data, a value up to 4000 should be set to ; avoid SCCP message fragmentation. ; ; Example: route=ITU,2-2-2,100,1,272 ;route= ; adjacent: string: Build an adjacent route for the SS7 network (A, E and F links) ; The format of this option is pointcodetype,label,size ; This parameter can be repeated to declare multiple adjacent routers ; The network will notify the router about its destination(s) and priority ; ; The priority is always zero so an adjacent route will always match first. ; ; Size represents the maximum MSU size that can be transported on this route. ; The default vaue is 272 -> maximum MSU size on TDM. ; If the route can transport more data, a value up to 4000 should be set to ; avoid SCCP message fragmentation ; ; Example: adjacent=ANSI,40-50-60,272 ;adjacent= ; ; local: string: Declare a local pointcode for the SS7 network ; The format of this option is pointcodetype,label ; This parameter can be repeated to declare a local point codes per type ; To be standards compliant at least one local pointcode must be declared ; Example: local=ITU,2-2-4 ;local= ; ; allowed: string: List of point codes explicitely allowed from this SS7 network ; An empty or missing list will allow access to all known routes ; Example: allowed=ITU,2-2-2,2-2-3,1001,2001,2002 ;allowed= ; ; router: string: Name of the SS7 Router to attach to ; A boolean false value disables attaching a router (unlikely) ; If no router is attached only a single User Part can be connected ;router=ss7router ; ; link: string: Name of a SS7 Layer 2 link to create in the linkset ; This parameter can be repeated to add more links to the linkset ; An explicit SLS can be provided after a comma ; Example: link=mtp2_to_hq,3 ;link= ; ; slcshift: bool: Shift right once SLS to obtain desired SLC ; This may be desirable for ISUP traffic when controlling only odd or even CICs ;slcshift=false ; ; autostart: bool: Automatically enable the linkset at startup ; This should be enabled (default) for normal operation ;autostart=yes ; ; checklinks: boolean: Check that the links answer to maintenance messages ; (SLTM/SLTA) before placing them into service (normal behavior) ;checklinks=true ; ; forcealign: boolean: Realign links that are no longer responding to SLTM ;forcealign=true ; ; checkfails: integer: Interval in msec for resending SLTM messages (Q.707 T1) ; A value of zero disables link fail else the value is clamped between 4s - 12s ;checkfails=5000 ; ; maintenance: integer: Interval in msec for sending SLTM messages (Q.707 T2) ; A value of zero disables periodic SLTM else it is clamped to range 30s - 5m ;maintenance=60000 ; ; layer3dump: string: Filename to dump MTP3 packets to ;layer3dump=
Status
To find the status of a MTPS linkset you can run the command "status sig linksetname" from rmanager.
Example: "status sig ls_stp" (for linkset configured above)
Control
MTP3 linkset control commands:
Show | control MTP3_LINKSET_NAME show | Show linkset status |
Pause | control MTP3_LINKSET_NAME pause | Pause message delivery for linkset |
Resume | control MTP3_LINKSET_NAME resume | Resume message delivery for linkset |
Restart | control MTP3_LINKSET_NAME restart |
MTP3 SEP configuration
Let's assume that SEP 1 uses MTP3 linksets.
In ysipchan.conf
Example ysigchan.conf
[mtp3_ls1] type=ss7-mtp3 netind2pctype=ITU netindicator=national local=ITU,5 adjacent=ITU,1 ; state that this linkset can be used to route to node with PC=100 route=100 link=m2pa_1 [mtp3_ls2] type=ss7-mtp3 netind2pctype=ITU netindicator=national local=ITU,5 adjacent=ITU,2 ; state that this linkset can be used to route to node with PC=100 route=100 link=m2pa_2 [m2pa_1] type=ss7-m2pa sig=sctp-m2pa_1 [m2pa_2] type=ss7-m2pa sig=sctp-m2pa_2
And in sigtransport.conf we define the referenced transport sctp-m2pa_1 and sctp-m2pa_2:
[sctp-m2pa_1] type=sctp stream=false local=10.0.0.3:5050 remote=10.0.0.1:6999 [sctp-m2pa_2] type=sctp stream=false local=10.0.0.3:5051 remote=10.0.0.2:6999