Search in sources :

Example 1 with UserDataAnswerImpl

use of org.mobicents.slee.resource.diameter.sh.events.UserDataAnswerImpl in project jain-slee.diameter by RestComm.

the class ShServerMessageFactoryImpl method createUserDataAnswer.

public UserDataAnswer createUserDataAnswer(UserDataRequest request) {
    // Message msg = createShMessage(UserDataAnswer.commandCode, session !=
    // null ? session.getSessionId() : null, false);
    List<DiameterAvp> avps = new ArrayList<DiameterAvp>();
    DiameterAvp sessionIdAvp = null;
    try {
        sessionIdAvp = localFactory.getBaseFactory().createAvp(0, DiameterAvpCodes.SESSION_ID, request.getSessionId());
        avps.add(sessionIdAvp);
    } catch (NoSuchAvpException e) {
        logger.error("Unable to create Session-Id AVP.", e);
    }
    if (request.getUserIdentity() != null)
        avps.add(request.getUserIdentity());
    Message msg = createShMessage(request.getHeader(), avps.toArray(new DiameterAvp[avps.size()]));
    UserDataAnswerImpl answer = new UserDataAnswerImpl(msg);
    answer.setRouteRecords(request.getRouteRecords());
    // add more :) ?
    addOrigin(answer);
    return answer;
}
Also used : UserDataAnswerImpl(org.mobicents.slee.resource.diameter.sh.events.UserDataAnswerImpl) Message(org.jdiameter.api.Message) DiameterMessage(net.java.slee.resource.diameter.base.events.DiameterMessage) DiameterAvp(net.java.slee.resource.diameter.base.events.avp.DiameterAvp) ArrayList(java.util.ArrayList) NoSuchAvpException(net.java.slee.resource.diameter.base.NoSuchAvpException)

Example 2 with UserDataAnswerImpl

use of org.mobicents.slee.resource.diameter.sh.events.UserDataAnswerImpl in project jain-slee.diameter by RestComm.

the class DiameterShServerResourceAdaptor method createEvent.

/**
 * Create Event object from a JDiameter message (request or answer)
 *
 * @return a DiameterMessage object wrapping the request/answer
 * @throws OperationNotSupportedException
 */
private DiameterMessage createEvent(Message message) {
    if (message == null) {
        throw new NullPointerException("Message argument cannot be null while creating event.");
    }
    int commandCode = message.getCommandCode();
    if (message.isError()) {
        return new ErrorAnswerImpl(message);
    }
    boolean isRequest = message.isRequest();
    switch(commandCode) {
        case // PNR/PNA
        PushNotificationRequest.commandCode:
            return isRequest ? new PushNotificationRequestImpl(message) : new PushNotificationAnswerImpl(message);
        case // PUR/PUA
        ProfileUpdateRequest.commandCode:
            return isRequest ? new ProfileUpdateRequestImpl(message) : new ProfileUpdateAnswerImpl(message);
        case // SNR/SNA
        SubscribeNotificationsRequest.commandCode:
            return isRequest ? new SubscribeNotificationsRequestImpl(message) : new SubscribeNotificationsAnswerImpl(message);
        case // UDR/UDA
        UserDataRequest.commandCode:
            return isRequest ? new UserDataRequestImpl(message) : new UserDataAnswerImpl(message);
        default:
            return new ExtensionDiameterMessageImpl(message);
    }
}
Also used : UserDataAnswerImpl(org.mobicents.slee.resource.diameter.sh.events.UserDataAnswerImpl) PushNotificationRequestImpl(org.mobicents.slee.resource.diameter.sh.events.PushNotificationRequestImpl) ProfileUpdateAnswerImpl(org.mobicents.slee.resource.diameter.sh.events.ProfileUpdateAnswerImpl) ExtensionDiameterMessageImpl(org.mobicents.slee.resource.diameter.base.events.ExtensionDiameterMessageImpl) SleeEndpoint(javax.slee.resource.SleeEndpoint) SubscribeNotificationsAnswerImpl(org.mobicents.slee.resource.diameter.sh.events.SubscribeNotificationsAnswerImpl) ProfileUpdateRequestImpl(org.mobicents.slee.resource.diameter.sh.events.ProfileUpdateRequestImpl) SubscribeNotificationsRequestImpl(org.mobicents.slee.resource.diameter.sh.events.SubscribeNotificationsRequestImpl) UserDataRequestImpl(org.mobicents.slee.resource.diameter.sh.events.UserDataRequestImpl) ErrorAnswerImpl(org.mobicents.slee.resource.diameter.base.events.ErrorAnswerImpl) PushNotificationAnswerImpl(org.mobicents.slee.resource.diameter.sh.events.PushNotificationAnswerImpl)

Example 3 with UserDataAnswerImpl

use of org.mobicents.slee.resource.diameter.sh.events.UserDataAnswerImpl in project jain-slee.diameter by RestComm.

the class DiameterShClientResourceAdaptor method createEvent.

/**
 * Create Event object from a JDiameter message (request or answer)
 *
 * @return a DiameterMessage object wrapping the request/answer
 * @throws OperationNotSupportedException
 */
private DiameterMessage createEvent(Message message) {
    if (message == null) {
        throw new NullPointerException("Message argument cannot be null while creating event.");
    }
    int commandCode = message.getCommandCode();
    if (message.isError()) {
        return new ErrorAnswerImpl(message);
    }
    boolean isRequest = message.isRequest();
    switch(commandCode) {
        case // PNR/PNA
        PushNotificationRequestImpl.commandCode:
            return isRequest ? new PushNotificationRequestImpl(message) : new PushNotificationAnswerImpl(message);
        case // PUR/PUA
        ProfileUpdateRequestImpl.commandCode:
            return isRequest ? new ProfileUpdateRequestImpl(message) : new ProfileUpdateAnswerImpl(message);
        case // SNR/SNA
        SubscribeNotificationsRequestImpl.commandCode:
            return isRequest ? new SubscribeNotificationsRequestImpl(message) : new SubscribeNotificationsAnswerImpl(message);
        case // UDR/UDA
        net.java.slee.resource.diameter.sh.events.UserDataRequest.commandCode:
            return isRequest ? new UserDataRequestImpl(message) : new UserDataAnswerImpl(message);
        default:
            return new ExtensionDiameterMessageImpl(message);
    }
}
Also used : UserDataAnswerImpl(org.mobicents.slee.resource.diameter.sh.events.UserDataAnswerImpl) PushNotificationRequestImpl(org.mobicents.slee.resource.diameter.sh.events.PushNotificationRequestImpl) ProfileUpdateAnswerImpl(org.mobicents.slee.resource.diameter.sh.events.ProfileUpdateAnswerImpl) ExtensionDiameterMessageImpl(org.mobicents.slee.resource.diameter.base.events.ExtensionDiameterMessageImpl) SleeEndpoint(javax.slee.resource.SleeEndpoint) SubscribeNotificationsAnswerImpl(org.mobicents.slee.resource.diameter.sh.events.SubscribeNotificationsAnswerImpl) ProfileUpdateRequestImpl(org.mobicents.slee.resource.diameter.sh.events.ProfileUpdateRequestImpl) SubscribeNotificationsRequestImpl(org.mobicents.slee.resource.diameter.sh.events.SubscribeNotificationsRequestImpl) UserDataRequestImpl(org.mobicents.slee.resource.diameter.sh.events.UserDataRequestImpl) ErrorAnswerImpl(org.mobicents.slee.resource.diameter.base.events.ErrorAnswerImpl) PushNotificationAnswerImpl(org.mobicents.slee.resource.diameter.sh.events.PushNotificationAnswerImpl)

Aggregations

UserDataAnswerImpl (org.mobicents.slee.resource.diameter.sh.events.UserDataAnswerImpl)3 SleeEndpoint (javax.slee.resource.SleeEndpoint)2 ErrorAnswerImpl (org.mobicents.slee.resource.diameter.base.events.ErrorAnswerImpl)2 ExtensionDiameterMessageImpl (org.mobicents.slee.resource.diameter.base.events.ExtensionDiameterMessageImpl)2 ProfileUpdateAnswerImpl (org.mobicents.slee.resource.diameter.sh.events.ProfileUpdateAnswerImpl)2 ProfileUpdateRequestImpl (org.mobicents.slee.resource.diameter.sh.events.ProfileUpdateRequestImpl)2 PushNotificationAnswerImpl (org.mobicents.slee.resource.diameter.sh.events.PushNotificationAnswerImpl)2 PushNotificationRequestImpl (org.mobicents.slee.resource.diameter.sh.events.PushNotificationRequestImpl)2 SubscribeNotificationsAnswerImpl (org.mobicents.slee.resource.diameter.sh.events.SubscribeNotificationsAnswerImpl)2 SubscribeNotificationsRequestImpl (org.mobicents.slee.resource.diameter.sh.events.SubscribeNotificationsRequestImpl)2 UserDataRequestImpl (org.mobicents.slee.resource.diameter.sh.events.UserDataRequestImpl)2 ArrayList (java.util.ArrayList)1 NoSuchAvpException (net.java.slee.resource.diameter.base.NoSuchAvpException)1 DiameterMessage (net.java.slee.resource.diameter.base.events.DiameterMessage)1 DiameterAvp (net.java.slee.resource.diameter.base.events.avp.DiameterAvp)1 Message (org.jdiameter.api.Message)1