我是Diameter的新手,我需要一个测试应用来模仿HSS行为并在s6a接口上向MME发送一些直径请求。
我已经检查过海鸥工具,但它有一些问题,因为海鸥假设客户端总是发起请求。但就我而言,MME始终会发起CER请求。
我正在检查替代品,我遇到了RestComm JDiameter,但我不知道如何使用它。 github repo没有提供有关使用它的任何信息,我也无法通过Google搜索找到任何信息。
请指导我如何在我的应用程序中使用Jdiameter。
答案 0 :(得分:2)
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));