M3UA is lower layer of SS7 SIGTRAN Protocol stack which replaces MTP1, MTP2, MTP3 in SS7. The advantages of using M3UA is that there is no need of additional costly SS7 Hardware as M3UA works on existing Ethernet network and requires only existing IP network.
Open Sigtran M3UA stack comes in two applications bundle M3UA and SCTP both the applications share common configuration file. Open Sigtran M3UA is fully compatible with Dialog SS7 stack and replaces costly Dialogic SS7 M3UA protocol binary.
Open Sigtran M3UA stack has two modules listed below:
SCTP module uses SCTP development package in linux which includes in build SCTP stack. The main function of SCTP module is to create SCTP links and send/receive data to and from SCTP sockets.
M3UA module implements M3UA as defined in RFC 3332. The main function of M3UA module is to initialte M3UA links and take care of procedures as defined in the RFC.
Please have a look at the following flow diagram :
As shown in the flow diagram when the SCTP and M3UA modules start, The initial Stage is OS_SCTP_DOWN. For each link configured in the configuration file, SCTP module tries to initiate the SCTP link. when an SCTP connection is made and is ready for data to be received or sent, SCTP module sends OS_IPC_SCTP_UP message to M3UA module. After reception of the message, M3UA module sends ASP_UP message and waits for its acknowledgement. When the acknowledgement is received, it sends ASP_ACTIVE message. ASP_ACTIVE_ACK message is received in response of ASP_ACTIVE. At this stage the M3UA link is UP. Each M3UA end can send M3UA HEARTBEAT message after a pre-configured interval and the other end acknowledges the message by sending M3UA_HEARTBEAT_ACK message. When a PAYLOAD message is received from SCTP, it is decoded and important values like OPC, DPC, SI, SLS are extracted. Based on the SI, the message is transferred to the Dialogic Stack SCCP queue or ISUP queue. Similarly when a message is received from Dialogic Stack, it is encoded in the form of Payload Data and sent to SCTP module.
When ever an SCTP link gets down due to network failure or any other issue(e.g. Heart Beat not received for some interval), SCTP send OS_IPC_SCTP_DOWN message to M3UA. At this time, the link is down and all message received from SS7 Dialogic stack are discarded. When ever the peer is accessible and SCTP link is up, SCTP sends OS_IPC_SCTP_UP message to M3UA. Upon reception of the message, M3UA re initiates the process of making M3UA link up by sending ASP_UP and then ASP_ACTIVE messages. When the response of ASP_ACTIVE message is received, M3UA link becomes Up and normal M3UA messages can be exchanged.
SCTP and M3UA module share a common configuration file.
The file is shown below with description in comments: