use of org.jdiameter.api.Answer in project jain-slee.diameter by RestComm.
the class ShServerSubscriptionActivityImpl method sendSubscribeNotificationsAnswer.
/*
* (non-Javadoc)
* @see net.java.slee.resource.diameter.sh.server.ShServerSubscriptionActivity#sendSubscribeNotificationsAnswer(net.java.slee.resource.diameter.sh.events.SubscribeNotificationsAnswer)
*/
public void sendSubscribeNotificationsAnswer(SubscribeNotificationsAnswer message) throws IOException {
try {
DiameterShMessageImpl msg = (DiameterShMessageImpl) message;
fetchSessionData(msg, false);
this.serverSession.sendSubscribeNotificationsAnswer(new SubscribeNotificationsAnswerImpl((Answer) msg.getGenericData()));
clean(msg);
} catch (org.jdiameter.api.validation.AvpNotAllowedException e) {
throw new AvpNotAllowedException("Message validation failed.", e, e.getAvpCode(), e.getVendorId());
} catch (Exception e) {
if (logger.isDebugEnabled()) {
logger.debug("Failed to send message.", e);
}
throw new IOException("Failed to send message, due to: " + e);
}
}
use of org.jdiameter.api.Answer in project jain-slee.diameter by RestComm.
the class ShClientSubscriptionActivityImpl method sendPushNotificationAnswer.
/*
* (non-Javadoc)
* @see net.java.slee.resource.diameter.sh.ShClientSubscriptionActivity#sendPushNotificationAnswer(net.java.slee.resource.diameter.sh.server.events.PushNotificationAnswer)
*/
public void sendPushNotificationAnswer(PushNotificationAnswer answer) throws IOException {
try {
DiameterMessageImpl msg = (DiameterMessageImpl) answer;
this.clientSession.sendPushNotificationAnswer(new PushNotificationAnswerImpl((Answer) msg.getGenericData()));
clean((DiameterShMessageImpl) answer);
fetchSessionData(answer, false);
} catch (org.jdiameter.api.validation.AvpNotAllowedException e) {
throw new AvpNotAllowedException("Message validation failed.", e, e.getAvpCode(), e.getVendorId());
} catch (Exception e) {
// FIXME: extent this exception to add trace....
throw new IOException("Failed to send message, due to: " + e.getLocalizedMessage());
}
}
use of org.jdiameter.api.Answer in project jain-slee.diameter by RestComm.
the class GxServerSessionActivityImpl method sendGxCreditControlAnswer.
/**
* {@inheritDoc}
*/
@Override
public void sendGxCreditControlAnswer(final GxCreditControlAnswer cca) throws IOException {
fetchCurrentState(cca);
final DiameterMessageImpl msg = (DiameterMessageImpl) cca;
try {
session.sendCreditControlAnswer(new GxCreditControlAnswerImpl((Answer) msg.getGenericData()));
} catch (org.jdiameter.api.validation.AvpNotAllowedException e) {
final AvpNotAllowedException anae = new AvpNotAllowedException("Message validation failed.", e, e.getAvpCode(), e.getVendorId());
throw anae;
} catch (Exception e) {
throw new IOException("Failed to send message.", e);
}
}
use of org.jdiameter.api.Answer in project jain-slee.diameter by RestComm.
the class RfServerSessionActivityImpl method sendRfAccountingAnswer.
public void sendRfAccountingAnswer(RfAccountingAnswer answer) throws IOException {
try {
RfAccountingAnswerImpl aca = (RfAccountingAnswerImpl) answer;
this.serverSession.sendAccountAnswer(new org.jdiameter.common.impl.app.rf.RfAccountingAnswerImpl((Answer) aca.getGenericData()));
// FIXME: check this?
if (isTerminateAfterProcessing()) {
endActivity();
// this.serverSession.release();
//
// if(!serverSession.isValid()) {
// String sessionId =
// this.serverSession.getSessions().get(0).getSessionId();
// this.baseListener.sessionDestroyed(sessionId,
// this.serverSession);
// }
}
// clean
clean(aca);
} catch (org.jdiameter.api.validation.AvpNotAllowedException e) {
throw new AvpNotAllowedException("Message validation failed.", e, e.getAvpCode(), e.getVendorId());
} catch (Exception e) {
if (logger.isDebugEnabled()) {
logger.debug("Failed to send message, due to: ", e);
}
throw new IOException("Failed to send message, due to: " + e.getMessage());
}
}
Aggregations