Search in sources :

Example 1 with DisconnectPeerRequestImpl

use of org.mobicents.slee.resource.diameter.base.events.DisconnectPeerRequestImpl in project jain-slee.diameter by RestComm.

the class DiameterMessageFactoryImpl method createDiameterMessage.

protected DiameterMessage createDiameterMessage(DiameterHeader diameterHeader, DiameterAvp[] avps, int _commandCode, ApplicationId appId) throws IllegalArgumentException {
    boolean creatingRequest = diameterHeader == null;
    Message msg = null;
    if (!creatingRequest) {
        Message raw = createMessage(diameterHeader, avps, 0, appId);
        // raw.setProxiable(true);
        raw.setRequest(false);
        // just in case. answers never have T flag set
        raw.setReTransmitted(false);
        msg = raw;
    } else {
        Message raw = createMessage(diameterHeader, avps, _commandCode, appId);
        boolean isPeerManagementMessage = _commandCode == CapabilitiesExchangeRequest.commandCode || _commandCode == DeviceWatchdogRequest.commandCode || _commandCode == DisconnectPeerRequest.commandCode;
        raw.setProxiable(!isPeerManagementMessage);
        raw.setRequest(true);
        msg = raw;
    }
    int commandCode = creatingRequest ? _commandCode : diameterHeader.getCommandCode();
    DiameterMessage diamMessage = null;
    switch(commandCode) {
        case Message.ABORT_SESSION_REQUEST:
            diamMessage = creatingRequest ? new AbortSessionRequestImpl(msg) : new AbortSessionAnswerImpl(msg);
            break;
        case Message.ACCOUNTING_REQUEST:
            diamMessage = creatingRequest ? new AccountingRequestImpl(msg) : new AccountingAnswerImpl(msg);
            break;
        case Message.CAPABILITIES_EXCHANGE_REQUEST:
            diamMessage = creatingRequest ? new CapabilitiesExchangeRequestImpl(msg) : new CapabilitiesExchangeAnswerImpl(msg);
            break;
        case Message.DEVICE_WATCHDOG_REQUEST:
            diamMessage = creatingRequest ? new DeviceWatchdogRequestImpl(msg) : new DeviceWatchdogAnswerImpl(msg);
            break;
        case Message.DISCONNECT_PEER_REQUEST:
            diamMessage = creatingRequest ? new DisconnectPeerRequestImpl(msg) : new DisconnectPeerAnswerImpl(msg);
            break;
        case Message.RE_AUTH_REQUEST:
            diamMessage = creatingRequest ? new ReAuthRequestImpl(msg) : new ReAuthAnswerImpl(msg);
            break;
        case Message.SESSION_TERMINATION_REQUEST:
            diamMessage = creatingRequest ? new SessionTerminationRequestImpl(msg) : new SessionTerminationAnswerImpl(msg);
            break;
        default:
            diamMessage = new ExtensionDiameterMessageImpl(msg);
    }
    // Finally, add Origin-Host and Origin-Realm, if not present.
    addOriginHostAndRealm(diamMessage);
    return diamMessage;
}
Also used : DisconnectPeerRequestImpl(org.mobicents.slee.resource.diameter.base.events.DisconnectPeerRequestImpl) AccountingAnswerImpl(org.mobicents.slee.resource.diameter.base.events.AccountingAnswerImpl) Message(org.jdiameter.api.Message) DiameterMessage(net.java.slee.resource.diameter.base.events.DiameterMessage) ExtensionDiameterMessage(net.java.slee.resource.diameter.base.events.ExtensionDiameterMessage) AbortSessionAnswerImpl(org.mobicents.slee.resource.diameter.base.events.AbortSessionAnswerImpl) AccountingRequestImpl(org.mobicents.slee.resource.diameter.base.events.AccountingRequestImpl) DiameterMessage(net.java.slee.resource.diameter.base.events.DiameterMessage) ExtensionDiameterMessage(net.java.slee.resource.diameter.base.events.ExtensionDiameterMessage) ExtensionDiameterMessageImpl(org.mobicents.slee.resource.diameter.base.events.ExtensionDiameterMessageImpl) DisconnectPeerAnswerImpl(org.mobicents.slee.resource.diameter.base.events.DisconnectPeerAnswerImpl) ReAuthRequestImpl(org.mobicents.slee.resource.diameter.base.events.ReAuthRequestImpl) AbortSessionRequestImpl(org.mobicents.slee.resource.diameter.base.events.AbortSessionRequestImpl) DeviceWatchdogRequestImpl(org.mobicents.slee.resource.diameter.base.events.DeviceWatchdogRequestImpl) SessionTerminationAnswerImpl(org.mobicents.slee.resource.diameter.base.events.SessionTerminationAnswerImpl) CapabilitiesExchangeRequestImpl(org.mobicents.slee.resource.diameter.base.events.CapabilitiesExchangeRequestImpl) CapabilitiesExchangeAnswerImpl(org.mobicents.slee.resource.diameter.base.events.CapabilitiesExchangeAnswerImpl) ReAuthAnswerImpl(org.mobicents.slee.resource.diameter.base.events.ReAuthAnswerImpl) SessionTerminationRequestImpl(org.mobicents.slee.resource.diameter.base.events.SessionTerminationRequestImpl) DeviceWatchdogAnswerImpl(org.mobicents.slee.resource.diameter.base.events.DeviceWatchdogAnswerImpl)

Aggregations

DiameterMessage (net.java.slee.resource.diameter.base.events.DiameterMessage)1 ExtensionDiameterMessage (net.java.slee.resource.diameter.base.events.ExtensionDiameterMessage)1 Message (org.jdiameter.api.Message)1 AbortSessionAnswerImpl (org.mobicents.slee.resource.diameter.base.events.AbortSessionAnswerImpl)1 AbortSessionRequestImpl (org.mobicents.slee.resource.diameter.base.events.AbortSessionRequestImpl)1 AccountingAnswerImpl (org.mobicents.slee.resource.diameter.base.events.AccountingAnswerImpl)1 AccountingRequestImpl (org.mobicents.slee.resource.diameter.base.events.AccountingRequestImpl)1 CapabilitiesExchangeAnswerImpl (org.mobicents.slee.resource.diameter.base.events.CapabilitiesExchangeAnswerImpl)1 CapabilitiesExchangeRequestImpl (org.mobicents.slee.resource.diameter.base.events.CapabilitiesExchangeRequestImpl)1 DeviceWatchdogAnswerImpl (org.mobicents.slee.resource.diameter.base.events.DeviceWatchdogAnswerImpl)1 DeviceWatchdogRequestImpl (org.mobicents.slee.resource.diameter.base.events.DeviceWatchdogRequestImpl)1 DisconnectPeerAnswerImpl (org.mobicents.slee.resource.diameter.base.events.DisconnectPeerAnswerImpl)1 DisconnectPeerRequestImpl (org.mobicents.slee.resource.diameter.base.events.DisconnectPeerRequestImpl)1 ExtensionDiameterMessageImpl (org.mobicents.slee.resource.diameter.base.events.ExtensionDiameterMessageImpl)1 ReAuthAnswerImpl (org.mobicents.slee.resource.diameter.base.events.ReAuthAnswerImpl)1 ReAuthRequestImpl (org.mobicents.slee.resource.diameter.base.events.ReAuthRequestImpl)1 SessionTerminationAnswerImpl (org.mobicents.slee.resource.diameter.base.events.SessionTerminationAnswerImpl)1 SessionTerminationRequestImpl (org.mobicents.slee.resource.diameter.base.events.SessionTerminationRequestImpl)1