use of org.mobicents.slee.resource.diameter.base.events.DiameterMessageImpl in project jain-slee.diameter by RestComm.
the class CxDxServerSessionImpl method sendServerAssignmentAnswer.
/*
* (non-Javadoc)
* @see net.java.slee.resource.diameter.cxdx.CxDxServerSession#sendServerAssignmentAnswer(net.java.slee.resource.diameter.cxdx.events.ServerAssignmentAnswer)
*/
public void sendServerAssignmentAnswer(ServerAssignmentAnswer serverAssignmentAnswer) throws IOException {
DiameterMessageImpl msg = (DiameterMessageImpl) serverAssignmentAnswer;
JServerAssignmentAnswerImpl answer = new JServerAssignmentAnswerImpl((Answer) msg.getGenericData());
try {
appSession.sendServerAssignmentAnswer(answer);
} catch (org.jdiameter.api.validation.AvpNotAllowedException anae) {
throw new AvpNotAllowedException(anae.getMessage(), anae.getAvpCode(), anae.getVendorId());
} catch (Exception e) {
if (logger.isDebugEnabled()) {
logger.debug("Failed to send message.", e);
}
throw new IOException(e.getMessage());
}
}
use of org.mobicents.slee.resource.diameter.base.events.DiameterMessageImpl in project jain-slee.diameter by RestComm.
the class CxDxServerSessionImpl method sendPushProfileRequest.
/*
* (non-Javadoc)
* @see net.java.slee.resource.diameter.cxdx.CxDxServerSession#sendPushProfileRequest(net.java.slee.resource.diameter.cxdx.events.PushProfileRequest)
*/
public void sendPushProfileRequest(PushProfileRequest pushProfileRequest) throws IOException {
DiameterMessageImpl msg = (DiameterMessageImpl) pushProfileRequest;
JPushProfileRequestImpl request = new JPushProfileRequestImpl(msg.getGenericData());
try {
appSession.sendPushProfileRequest(request);
} catch (org.jdiameter.api.validation.AvpNotAllowedException anae) {
throw new AvpNotAllowedException(anae.getMessage(), anae.getAvpCode(), anae.getVendorId());
} catch (Exception e) {
if (logger.isDebugEnabled()) {
logger.debug("Failed to send message.", e);
}
throw new IOException(e.getMessage());
}
}
use of org.mobicents.slee.resource.diameter.base.events.DiameterMessageImpl in project jain-slee.diameter by RestComm.
the class AccountingServerSessionActivityImpl method createAccountingAnswer.
public AccountingAnswer createAccountingAnswer(AccountingRequest request) {
try {
// Get the impl
DiameterMessageImpl implRequest = (DiameterMessageImpl) request;
// Extract interesting AVPs
ArrayList<DiameterAvp> copyAvps = new ArrayList<DiameterAvp>();
copyAvps.add(avpFactory.createAvp(Avp.SESSION_ID, serverSession.getSessions().get(0).getSessionId()));
copyAvps.add(avpFactory.createAvp(Avp.ORIGIN_HOST, this.originHost.getBytes()));
copyAvps.add(avpFactory.createAvp(Avp.ORIGIN_REALM, this.originRealm.getBytes()));
for (DiameterAvp avp : request.getAvps()) {
if (avp.getCode() == Avp.ACC_RECORD_NUMBER || avp.getCode() == Avp.ACC_RECORD_TYPE || avp.getCode() == Avp.ACCT_APPLICATION_ID || avp.getCode() == Avp.VENDOR_SPECIFIC_APPLICATION_ID) {
copyAvps.add((DiameterAvp) avp.clone());
}
}
DiameterMessageImpl answer = (DiameterMessageImpl) messageFactory.createMessage(implRequest.getHeader(), copyAvps.toArray(new DiameterAvp[copyAvps.size()]));
// This is an answer.
Message rawAnswer = answer.getGenericData();
rawAnswer.setRequest(false);
// just in case. answers never have T flag set
rawAnswer.setReTransmitted(false);
return new AccountingAnswerImpl(rawAnswer);
} catch (Exception e) {
logger.error("", e);
}
return null;
}
use of org.mobicents.slee.resource.diameter.base.events.DiameterMessageImpl in project jain-slee.diameter by RestComm.
the class AuthClientSessionActivityImpl method sendSessionTerminationRequest.
public void sendSessionTerminationRequest(SessionTerminationRequest request) throws IOException {
try {
// super.sendMessage(request);
DiameterMessageImpl msg = (DiameterMessageImpl) request;
this.clientSession.sendSessionTerminationRequest(new SessionTermRequestImpl(msg.getGenericData()));
} catch (org.jdiameter.api.validation.AvpNotAllowedException e) {
throw new AvpNotAllowedException("Message validation failed.", e, e.getAvpCode(), e.getVendorId());
} catch (Exception e) {
throw new IOException("Failed to send message, due to: " + e.getMessage());
}
}
use of org.mobicents.slee.resource.diameter.base.events.DiameterMessageImpl in project jain-slee.diameter by RestComm.
the class AuthServerSessionActivityImpl method sendAbortSessionRequest.
public void sendAbortSessionRequest(AbortSessionRequest request) throws IOException {
try {
// super.sendMessage(request);
DiameterMessageImpl msg = (DiameterMessageImpl) request;
this.serverSession.sendAbortSessionRequest(new AbortSessionRequestImpl(msg.getGenericData()));
} catch (org.jdiameter.api.validation.AvpNotAllowedException e) {
throw new AvpNotAllowedException("Message validation failed.", e, e.getAvpCode(), e.getVendorId());
} catch (Exception e) {
throw new IOException("Failed to send message, due to: " + e.getMessage());
}
}
Aggregations