Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/redis/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java jss7没有';t发送GSM MAP消息_Java_Gsm_Restcomm_Ss7 - Fatal编程技术网

Java jss7没有';t发送GSM MAP消息

Java jss7没有';t发送GSM MAP消息,java,gsm,restcomm,ss7,Java,Gsm,Restcomm,Ss7,我通过maven使用这个版本的jSS7 <groupId>org.mobicents.protocols.ss7</groupId> <artifactId>restcomm-ss7</artifactId> <version>3.0.1335</version> Main.java import org.mobicents.protocols.api.IpChannelType; import org.mobicents

我通过maven使用这个版本的jSS7

<groupId>org.mobicents.protocols.ss7</groupId>
<artifactId>restcomm-ss7</artifactId>
<version>3.0.1335</version>
Main.java

import org.mobicents.protocols.api.IpChannelType;
import org.mobicents.protocols.api.Management;
import org.mobicents.protocols.sctp.ManagementImpl;
import org.mobicents.protocols.ss7.m3ua.*;
import org.mobicents.protocols.ss7.m3ua.impl.M3UAManagementImpl;
import org.mobicents.protocols.ss7.m3ua.parameter.RoutingContext;
import org.mobicents.protocols.ss7.m3ua.parameter.TrafficModeType;
import org.mobicents.protocols.ss7.map.MAPStackImpl;
import org.mobicents.protocols.ss7.map.api.MAPStack;
import org.mobicents.protocols.ss7.mtp.Mtp3UserPart;
import org.mobicents.protocols.ss7.sccp.SccpStack;
import org.mobicents.protocols.ss7.sccp.impl.SccpStackImpl;


import java.util.HashMap;
import java.util.Map;


public class Main {
    public static String local_ip = "XXXXXXXXX";
    public static int local_port = 2020;
    public static String signaling_gateway = "XXXXXXXXXX";
    public static int signaling_port = 2000;
    public static String gt1 = "XXXXXXXXXXX";
    public static String gt2 = "XXXXXXXXXXX";
    public static String target_gt = "XXXXXXXXXXX";
    public static int server_spc = XXXXXXX;
    public static int local_spc = 160;
    public static int ss7_mask_one = 16383;

    public static  void main(String[] args) throws Exception{
        Management sctpManagement;
        sctpManagement = new ManagementImpl("Client");
        sctpManagement.setSingleThread(true);
        sctpManagement.setPersistDir("/root/");
        sctpManagement.start();
        sctpManagement.addAssociation(local_ip, local_port, signaling_gateway, signaling_port, "ss7cli",
                IpChannelType.getInstance("SCTP"), null);
        M3UAManagementImpl m3uaManagement = null;
        m3uaManagement = new M3UAManagementImpl("Client", null);
        m3uaManagement.setTransportManagement(sctpManagement);
        m3uaManagement.start();

        //setup ASP
        org.mobicents.protocols.ss7.m3ua.impl.parameter.ParameterFactoryImpl parameterFactory =
                new org.mobicents.protocols.ss7.m3ua.impl.parameter.ParameterFactoryImpl();
        RoutingContext routingContext = parameterFactory.createRoutingContext(new long[] {100l});
        TrafficModeType trafficModeType = parameterFactory.createTrafficModeType(TrafficModeType.Loadshare);
        m3uaManagement.createAs("AS1", Functionality.AS, ExchangeType.SE, IPSPType.CLIENT, routingContext, trafficModeType, 0, null);
        m3uaManagement.createAspFactory("ASP1", "ss7cli");
        m3uaManagement.assignAspToAs("AS1", "ASP1");
        m3uaManagement.addRoute(server_spc, -1, -1, "AS1");
        m3uaManagement.startAsp("ASP1");

        //setup SCCP
        SccpStack sccpStack;
        sccpStack = new SccpStackImpl("MapLoadClientSccpStack");
        Map<Integer, Mtp3UserPart> mtp3map = new HashMap<Integer, Mtp3UserPart>();
        mtp3map.put(1, m3uaManagement);
        sccpStack.setMtp3UserParts(mtp3map);
        sccpStack.start();
        //initialize SCCP with remote and local SPCs
        sccpStack.getSccpResource().addRemoteSpc(1, server_spc, 0, 0);
        sccpStack.getSccpResource().addRemoteSsn(1, server_spc, 5, 0, false);
        sccpStack.getRouter().addMtp3ServiceAccessPoint(1, 1, local_spc, 3, 1);
        sccpStack.getRouter().addMtp3Destination(1, 1, server_spc, server_spc, 0, 255, 255);

        MAPStack mapStack = new MAPStackImpl("MAPClient", sccpStack.getSccpProvider(), 5);
        MAPClient mapClient = new MAPClient(mapStack, gt1, gt2);

        //send test map request
        mapClient.sendSRI(target_gt);
    }
}
import org.mobicents.protocols.api.IpChannelType;
导入org.mobicents.protocols.api.Management;
导入org.mobicents.protocols.sctp.ManagementImpl;
导入org.mobicents.protocols.ss7.m3ua.*;
导入org.mobicents.protocols.ss7.m3ua.impl.M3UAManagementImpl;
导入org.mobicents.protocols.ss7.m3ua.parameter.RoutingContext;
导入org.mobicents.protocols.ss7.m3ua.parameter.TrafficModeType;
导入org.mobicents.protocols.ss7.map.MAPStackImpl;
导入org.mobicents.protocols.ss7.map.api.MAPStack;
导入org.mobicents.protocols.ss7.mtp.Mtp3UserPart;
导入org.mobicents.protocols.ss7.sccp.SccpStack;
导入org.mobicents.protocols.ss7.sccp.impl.SccpStackImpl;
导入java.util.HashMap;
导入java.util.Map;
公共班机{
公共静态字符串local_ip=“XXXXXXXXX”;
公共静态int本地_端口=2020;
公共静态字符串信令\u gateway=“xxxxxxxxx”;
公共静态int信令_端口=2000;
公共静态字符串gt1=“xxxxxxxxxx”;
公共静态字符串gt2=“xxxxxxxxxx”;
公共静态字符串目标\u gt=“xxxxxxxxxx”;
公共静态int服务器\u spc=XXXXXXX;
公共静态int local_spc=160;
公共静态int ss7_掩码_one=16383;
公共静态void main(字符串[]args)引发异常{
管理SCTPM管理;
sctpManagement=新管理实施(“客户”);
sctpManagement.setSingleThread(true);
sctpManagement.setPersistDir(“/root/”);
sctpManagement.start();
sctpManagement.addAssociation(本地ip、本地端口、信令网关、信令端口,“ss7cli”,
IpChannelType.getInstance(“SCTP”),null);
M3UAManagementImpl m3uaManagement=null;
m3uaManagement=新的M3UAManagementImpl(“客户端”,空);
m3uaManagement.setTransportManagement(SCTPM管理);
m3uaManagement.start();
//安装ASP
org.mobicents.protocols.ss7.m3ua.impl.parameter.ParameterFactoryImpl parameterFactory=
新org.mobicents.protocols.ss7.m3ua.impl.parameter.ParameterFactoryImpl();
RoutingContext RoutingContext=parameterFactory.createRoutingContext(新长[]{100l});
TrafficModeType TrafficModeType=参数工厂.createTrafficModeType(TrafficModeType.Loadshare);
m3uaManagement.createAs(“AS1”,Functionality.AS,ExchangeType.SE,IPSPType.CLIENT,routingContext,trafficModeType,0,null);
m3uaManagement.createAspFactory(“ASP1”、“ss7cli”);
M3ua管理。转让ASPTOAS(“AS1”、“ASP1”);
m3uaManagement.addRoute(server_spc,-1,-1,“AS1”);
m3uaManagement.startAsp(“ASP1”);
//设置SCCP
短链氯化石蜡短链氯化石蜡;
sccpStack=新的SccpStackImpl(“MapLoadClientSccpStack”);
Map mtp3map=newhashmap();
mtp3map.put(1,m3ua管理);
短链氯化石蜡.设置MTP3用户部件(mtp3map);
sccpStack.start();
//使用远程和本地SPC初始化SCCP
sccpStack.getSccpResource().addRemoteSpc(1,服务器\u spc,0,0);
sccpStack.getSccpResource().addRemoteSsn(1,server_spc,5,0,false);
sccpStack.getRouter().addMtp3ServiceAccessPoint(1,1,local_spc,3,1);
sccpStack.getRouter().addMtp3Destination(1,1,server\u spc,server\u spc,0,255,255);
MAPStack MAPStack=newmapstackimpl(“MAPClient”,sccpStack.getSccpProvider(),5);
MAPClient MAPClient=新的MAPClient(mapStack,gt1,gt2);
//发送测试映射请求
mapClient.sendSRI(target_gt);
}
}

由于SS7堆栈要求仔细配置,很难说清楚所有阻止消息流形成的原因

我可以说:您没有配置任何SCCP规则/主地址。此外,它需要所有的SS7堆栈设置适合对等堆栈设置,我不能检查它

为了了解发生了什么,我建议您检查来自SS7堆栈的日志消息,它可以通知您根本原因

您还可以将此示例作为原型(在看到messagefow后,您可以根据所需的messageflow调整示例):

import org.mobicents.protocols.api.IpChannelType;
import org.mobicents.protocols.api.Management;
import org.mobicents.protocols.sctp.ManagementImpl;
import org.mobicents.protocols.ss7.m3ua.*;
import org.mobicents.protocols.ss7.m3ua.impl.M3UAManagementImpl;
import org.mobicents.protocols.ss7.m3ua.parameter.RoutingContext;
import org.mobicents.protocols.ss7.m3ua.parameter.TrafficModeType;
import org.mobicents.protocols.ss7.map.MAPStackImpl;
import org.mobicents.protocols.ss7.map.api.MAPStack;
import org.mobicents.protocols.ss7.mtp.Mtp3UserPart;
import org.mobicents.protocols.ss7.sccp.SccpStack;
import org.mobicents.protocols.ss7.sccp.impl.SccpStackImpl;


import java.util.HashMap;
import java.util.Map;


public class Main {
    public static String local_ip = "XXXXXXXXX";
    public static int local_port = 2020;
    public static String signaling_gateway = "XXXXXXXXXX";
    public static int signaling_port = 2000;
    public static String gt1 = "XXXXXXXXXXX";
    public static String gt2 = "XXXXXXXXXXX";
    public static String target_gt = "XXXXXXXXXXX";
    public static int server_spc = XXXXXXX;
    public static int local_spc = 160;
    public static int ss7_mask_one = 16383;

    public static  void main(String[] args) throws Exception{
        Management sctpManagement;
        sctpManagement = new ManagementImpl("Client");
        sctpManagement.setSingleThread(true);
        sctpManagement.setPersistDir("/root/");
        sctpManagement.start();
        sctpManagement.addAssociation(local_ip, local_port, signaling_gateway, signaling_port, "ss7cli",
                IpChannelType.getInstance("SCTP"), null);
        M3UAManagementImpl m3uaManagement = null;
        m3uaManagement = new M3UAManagementImpl("Client", null);
        m3uaManagement.setTransportManagement(sctpManagement);
        m3uaManagement.start();

        //setup ASP
        org.mobicents.protocols.ss7.m3ua.impl.parameter.ParameterFactoryImpl parameterFactory =
                new org.mobicents.protocols.ss7.m3ua.impl.parameter.ParameterFactoryImpl();
        RoutingContext routingContext = parameterFactory.createRoutingContext(new long[] {100l});
        TrafficModeType trafficModeType = parameterFactory.createTrafficModeType(TrafficModeType.Loadshare);
        m3uaManagement.createAs("AS1", Functionality.AS, ExchangeType.SE, IPSPType.CLIENT, routingContext, trafficModeType, 0, null);
        m3uaManagement.createAspFactory("ASP1", "ss7cli");
        m3uaManagement.assignAspToAs("AS1", "ASP1");
        m3uaManagement.addRoute(server_spc, -1, -1, "AS1");
        m3uaManagement.startAsp("ASP1");

        //setup SCCP
        SccpStack sccpStack;
        sccpStack = new SccpStackImpl("MapLoadClientSccpStack");
        Map<Integer, Mtp3UserPart> mtp3map = new HashMap<Integer, Mtp3UserPart>();
        mtp3map.put(1, m3uaManagement);
        sccpStack.setMtp3UserParts(mtp3map);
        sccpStack.start();
        //initialize SCCP with remote and local SPCs
        sccpStack.getSccpResource().addRemoteSpc(1, server_spc, 0, 0);
        sccpStack.getSccpResource().addRemoteSsn(1, server_spc, 5, 0, false);
        sccpStack.getRouter().addMtp3ServiceAccessPoint(1, 1, local_spc, 3, 1);
        sccpStack.getRouter().addMtp3Destination(1, 1, server_spc, server_spc, 0, 255, 255);

        MAPStack mapStack = new MAPStackImpl("MAPClient", sccpStack.getSccpProvider(), 5);
        MAPClient mapClient = new MAPClient(mapStack, gt1, gt2);

        //send test map request
        mapClient.sendSRI(target_gt);
    }
}