2

我正在尝试制作一个直径 S13 服务器,并且我使用了 mobicents 依赖项,如下所示:

<dependency>
    <groupId>org.mobicents.diameter</groupId>
    <artifactId>restcomm-diameter-mux-jar</artifactId>
    <version>1.7.0.180</version>
    <scope>compile</scope>
</dependency>
<dependency>
    <groupId>org.mobicents.diameter</groupId>
    <artifactId>jdiameter-api</artifactId>
    <version>1.7.0.180</version>
</dependency>
<dependency>
    <groupId>org.mobicents.diameter</groupId>
    <artifactId>jdiameter-impl</artifactId>
    <version>1.7.0.180</version>
</dependency>

我还创建了客户端来发送 CheckIMEImessage 并在服务器端接收它并向客户端返回响应,

但我的问题是当我将消息发送到服务器时,堆栈返回此错误并且我的服务器应用程序没有收到消息:

ResultCode.APPLICATION_UNSUPPORTED

并将带有此代码的直径响应返回给客户端(直径响应 = 3007)

这是日志:

DEBUG 2017-11-29 12:06:55 org.jdiameter.server.impl.PeerImpl$LocalActionConext.receiveMessage:343 - Receiving message in server.
DEBUG 2017-11-29 12:06:55 org.jdiameter.client.impl.parser.MessageImpl.getSingleApplicationId:379 - In getSingleApplicationId for application id [16777252]
DEBUG 2017-11-29 12:06:55 org.jdiameter.client.impl.parser.MessageImpl.getSingleApplicationId:381 - Application Ids in this message are:
DEBUG 2017-11-29 12:06:55 org.jdiameter.client.impl.parser.MessageImpl.getSingleApplicationId:386 - [AppId [Vendor-Id:10415; Auth-Application-Id:16777252; Acct-Application-Id:0]]
DEBUG 2017-11-29 12:06:55 org.jdiameter.client.impl.parser.MessageImpl.getSingleApplicationId:403 - Returning [AppId [Vendor-Id:10415; Auth-Application-Id:16777252; Acct-Application-Id:0]] as the first application id because its the first vendor specific one found
DEBUG 2017-11-29 12:06:55 org.jdiameter.client.impl.parser.MessageImpl.getSingleApplicationId:379 - In getSingleApplicationId for application id [16777252]
DEBUG 2017-11-29 12:06:55 org.jdiameter.client.impl.parser.MessageImpl.getSingleApplicationId:381 - Application Ids in this message are:
DEBUG 2017-11-29 12:06:55 org.jdiameter.client.impl.parser.MessageImpl.getSingleApplicationId:386 - [AppId [Vendor-Id:10415; Auth-Application-Id:16777252; Acct-Application-Id:0]]
DEBUG 2017-11-29 12:06:55 org.jdiameter.client.impl.parser.MessageImpl.getSingleApplicationId:403 - Returning [AppId [Vendor-Id:10415; Auth-Application-Id:16777252; Acct-Application-Id:0]] as the first application id because its the first vendor specific one found
DEBUG 2017-11-29 12:06:55 org.jdiameter.client.impl.controller.PeerImpl.sendErrorAnswer:677 - Could not process request. Result Code = [3007], Error Message: [null]
DEBUG 2017-11-29 12:06:55 org.jdiameter.client.impl.controller.PeerImpl.sendErrorAnswer:701 - Sending response indicating we could not process request

我也尝试过使用 jain-slee 进行相同的实现,一切正常,并且能够将 checkIMEIResponse 发送到客户端......

请问有什么想法吗?

4

1 回答 1

2

我已经想通了,我的问题是我正在创建没有供应商 ID 的 ApplicationId,例如:

ApplicationId applicationId =ApplicationId.createByAuthAppId(16777252L);

解决了喜欢

ApplicationId applicationId =ApplicationId.createByAuthAppId(10415L, 16777252L);

并且在 jain-slee 上不会出现此问题,因为它使用 Multiplixer,并且 multiplixer 启动连接并处理所有消息...

如果有人需要 jdiameter-config.xml 文件,我可以在这里分享它们......

于 2017-11-30T11:29:07.403 回答