1

I am starting to play with Mobicents JSS7 - Sigtran... I am trying startup a sigtran association. I have: - started sctp - started m3ua

As I could understand, as soon M3UA is started the sigtran association should start the negotiation between server/client which the 1st step is the "INIT" and "INIT ACK" at SCTP/M3UA level. I could see the client sending the INIT, but the options parameters are not what I expected:

enter image description here

because comparing the INIT which another system which I have access I can see the INIT is:

enter image description here

as you can see, I'm missing to send the "IPv4 address parameter" in the JSS7 INIT... in this case, do you know if it's something configurable which I'm missing to configure in the same code that I have attached here?

Any help would be welcome.

Thanks.

This is the code which I am trying:

import org.mobicents.protocols.api.IpChannelType;
import org.mobicents.protocols.sctp.ManagementImpl;
import org.mobicents.protocols.ss7.m3ua.ExchangeType;
import org.mobicents.protocols.ss7.m3ua.Functionality;
import org.mobicents.protocols.ss7.m3ua.IPSPType;
import org.mobicents.protocols.ss7.m3ua.impl.AspImpl;
import org.mobicents.protocols.ss7.m3ua.impl.M3UAManagementImpl;
import org.mobicents.protocols.ss7.m3ua.impl.parameter.ParameterFactoryImpl;
import org.mobicents.protocols.ss7.m3ua.parameter.RoutingContext;
import org.mobicents.protocols.ss7.m3ua.parameter.TrafficModeType;

public class ClientSCTPM3UA2 {

        static String SERVER_NAME = "testserver";
        static String SERVER_IP = "192.168.1.127";
        static int SERVER_PORT = 2906;

        static String CLIENT_IP = "192.168.1.128";
        static int CLIENT_PORT = 2906;

        protected final static int CLIENT_SPC = 1;
        protected final static int SERVET_SPC = 2;

        static String SERVER_ASSOCIATION_NAME = "serverAssociation";
        protected final static String CLIENT_ASSOCIATION_NAME = "clientAsscoiation";

        private static M3UAManagementImpl clientM3UAMgmt;

        public static void main(String[] args) throws Exception {

                IpChannelType ipChannelType = IpChannelType.SCTP;

                ManagementImpl sctpManagement = new ManagementImpl("Client");
                sctpManagement.setSingleThread(true);
                sctpManagement.start();
                sctpManagement.removeAllResourses();
                sctpManagement.setConnectDelay(5000);


                // 1. Create SCTP Association
                sctpManagement.addAssociation(CLIENT_IP, CLIENT_PORT, SERVER_IP, SERVER_PORT, CLIENT_ASSOCIATION_NAME,
                                ipChannelType, null);

                System.out.println("Starting SCTP stack...");

                // mtp3UserPartListener = new Mtp3UserPartBaseImpl();


                clientM3UAMgmt = new M3UAManagementImpl("Client", null);
                //m3uaMgmt.setPersistDir("/tmp");
                clientM3UAMgmt.setTransportManagement(sctpManagement);
                clientM3UAMgmt.setDeliveryMessageThreadCount(2);
                clientM3UAMgmt.start();
                clientM3UAMgmt.removeAllResourses();

                ParameterFactoryImpl factory = new ParameterFactoryImpl();

                RoutingContext rc = factory.createRoutingContext(new long[] { 100l });
                TrafficModeType trafficModeType = factory.createTrafficModeType(TrafficModeType.Loadshare);

                clientM3UAMgmt.createAs("AS1", Functionality.AS, ExchangeType.SE, IPSPType.CLIENT, rc, trafficModeType, 0, null);


                clientM3UAMgmt.createAspFactory("ASP1", CLIENT_ASSOCIATION_NAME);

                AspImpl asp = clientM3UAMgmt.assignAspToAs("AS1", "ASP1");

                clientM3UAMgmt.addRoute(SERVET_SPC, -1, -1, "AS1");

                clientM3UAMgmt.startAsp("ASP1");

                Thread.sleep(60000);

        }

}
Helio Aymoto
  • 303
  • 2
  • 5
  • 16
  • Hi everyone.... I have updated the issue text description which more details and also the code which is somehow working, but it's not giving me what I would expect in terms of Sigtran/SCTP "INIT" and "INIT ACK" startup procedure. Any help would be welcome on this matter. – Helio Aymoto Sep 11 '18 at 12:56

2 Answers2

1

Are you have SCTP server running?

0

From what I have seen in SIGTRAN communications, the SCTP INIT should be sent and the SCTP layer should be connected by the time you send the ASP UP for the M3UA.

One note on that CLOSE state of the socket. There seems to be a bug in the Linux SCTP driver which hangs sockets on CLOSE state. Unfortunately, I have found only two solutions to that problem. Either wait till it times out and gets purged from the OS, or restart the OS itself. Whatever is faster, use that method.

Tharaka Devinda
  • 1,952
  • 21
  • 23