使用RestComm Jdiameter

时间:2016-01-15 13:49:27

标签: lte restcomm diameter-protocol

我是Diameter的新手,我需要一个测试应用来模仿HSS行为并在s6a接口上向MME发送一些直径请求。

我已经检查过海鸥工具,但它有一些问题,因为海鸥假设客户端总是发起请求。但就我而言,MME始终会发起CER请求。

我正在检查替代品,我遇到了RestComm JDiameter,但我不知道如何使用它。 github repo没有提供有关使用它的任何信息,我也无法通过Google搜索找到任何信息。

请指导我如何在我的应用程序中使用Jdiameter。

1 个答案:

答案 0 :(得分:2)

JDiameter作为一个非常强大的框架,虽然理解起来相当复杂。您尤其需要仔细阅读直径规格以及消息及其值类型。

CER和CEA是直径标准,将为JDiameter开箱即用。所以你基本上需要做的是:

  • 设置项目并决定要使用的服务器。我选择了 野生蝇,但不得不让它获得一些其他保护 内部java类(仅SCTP需要)。其次我怀疑,JDiameter内部线程处理确实符合JEE标准,但至少它可以工作。

  • 包括JDiameter作为库。在maven术语中,这看起来像这样:

    <dependency>
        <groupId>org.mobicents.diameter</groupId>
        <artifactId>jdiameter-api</artifactId>
        <version>1.7.0-SNAPSHOT</version>
    </dependency>
    <dependency>
        <groupId>org.mobicents.diameter</groupId>
        <artifactId>jdiameter-impl</artifactId>
        <version>1.7.0-SNAPSHOT</version>
        <exclusions>
            <exclusion> 
                <groupId>org.mobicents.protocols.sctp</groupId>
                <artifactId>sctp-impl</artifactId>
            </exclusion>
        </exclusions> 
    </dependency>        
    <dependency>
        <groupId>org.mobicents.diameter</groupId>
        <artifactId>mobicents-diameter-mux-jar</artifactId>
        <version>1.7.0-SNAPSHOT</version>
        <type>jar</type>
    </dependency>
    
  • 为配置创建一个有效的jdiameter-something.xml文件。您可以将其放在资源目录或应用程序外部,但需要可以访问它。

  • 如果您的应用程序将在应用程序服务器中运行而不是独立运行,请创建一个将在启动时实例化并在那里初始化JDiameter堆栈的java类。初始化包括使用例如

    读取xml配置

    stack = new StackImpl();  配置serverConfig = new org.jdiameter.server.impl.helpers.XMLConfiguration(serverConfigInputStream);  factory = stack.init(serverConfig);

之后,注册NetWorkReqListeners以获取自定义消息以及:

 stack.start();
 ISessionFactory isf = (ISessionFactory) factory;
 isf.registerAppFacory(ServerS6aSession.class, new S6aSessionFactory(1000, factory));