我正在尝试制作直径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发送到客户端......
请知道吗?
答案 0 :(得分:2)
我已经弄明白了,我的问题是我正在创建没有供应商ID的ApplicationId,例如:
ApplicationId applicationId =ApplicationId.createByAuthAppId(16777252L);
解决了喜欢
ApplicationId applicationId =ApplicationId.createByAuthAppId(10415L, 16777252L);
并且这个问题在jain-slee上没有发生,因为它使用Multiplixer,并且multiplixer启动连接并处理所有消息......
如果有人需要jdiameter-config.xml文件,我可以在这里分享......