i am trying to make a diameter S13 Server, and i have used mobicents dependencies as below :
<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>
also i have created the client side to send CheckIMEImessage and receive it on the server side and return a response to the client,
but my problem is when i send the message to the server the stack returns this error and the message is not being received on my server application:
ResultCode.APPLICATION_UNSUPPORTED
and a diameter response with this code is returned to the client (diameter response = 3007)
this is the log:
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
also i have tried the same implementation using jain-slee and everything works fine, and able to send checkIMEIResponse to the client side ...
please any idea?
I have figured it out, my problem was i am creating the ApplicationId without vendor id, like:
ApplicationId applicationId =ApplicationId.createByAuthAppId(16777252L);
solved Like
ApplicationId applicationId =ApplicationId.createByAuthAppId(10415L, 16777252L);
and this issue doesn't occur on jain-slee since it uses Multiplixer, and the multiplixer initiate the connection and handles all the messages...
if anyone needs the jdiameter-config.xml files i can share them here ...