use of org.mobicents.smsc.domain.MoChargingType in project smscgateway by RestComm.
the class MoSbb method onForwardShortMessageRequest.
public void onForwardShortMessageRequest(ForwardShortMessageRequest evt, ActivityContextInterface aci) {
if (this.logger.isFineEnabled()) {
this.logger.fine("Received FORWARD_SHORT_MESSAGE_REQUEST = " + evt);
}
MAPDialogSms dialog = evt.getMAPDialog();
// checking if it is MO or MT
boolean isMt;
MAPApplicationContext act = dialog.getApplicationContext();
if (act.getApplicationContextVersion().getVersion() > 1) {
if (act.getApplicationContextName() == MAPApplicationContextName.shortMsgMORelayContext)
isMt = false;
else
isMt = true;
} else {
if (evt.getSM_RP_OA().getMsisdn() != null)
isMt = false;
else
isMt = true;
}
this.setProcessingState(MoProcessingState.OtherDataRecieved);
MoChargingType charging;
if (isMt) {
charging = smscPropertiesManagement.getHrCharging();
} else {
charging = smscPropertiesManagement.getMoCharging();
}
if (charging == MoChargingType.reject) {
try {
MAPErrorMessage errorMessage = this.mapProvider.getMAPErrorMessageFactory().createMAPErrorMessageFacilityNotSup(null, null, null);
dialog.sendErrorComponent(evt.getInvokeId(), errorMessage);
if (this.logger.isInfoEnabled()) {
this.logger.info("\nSent ErrorComponent = " + errorMessage);
}
this.logger.warning("************* 0001");
if (smscPropertiesManagement.isGenerateRejectionCdr()) {
this.logger.warning("************* 0002");
generateCDR(dialog.getNetworkId(), null, dialog.getLocalAddress(), isMt ? CdrGenerator.CDR_SUBMIT_FAILED_HR : CdrGenerator.CDR_SUBMIT_FAILED_MO, errorMessage.toString(), true);
this.logger.warning("************* 0003");
}
dialog.close(false);
return;
} catch (Throwable e) {
logger.severe("Error while sending Error message", e);
return;
}
}
Sms sms = null;
try {
String originatorSccpAddress = null;
SccpAddress sccpAddress = dialog.getRemoteAddress();
if (sccpAddress != null) {
GlobalTitle gt = dialog.getRemoteAddress().getGlobalTitle();
if (gt != null)
originatorSccpAddress = gt.getDigits();
}
if (isMt) {
sms = this.processMtMessage(evt.getSM_RP_OA(), evt.getSM_RP_DA(), evt.getSM_RP_UI(), dialog.getNetworkId(), originatorSccpAddress, false, evt.getMAPDialog(), evt, evt.getInvokeId());
} else {
sms = this.processMoMessage(evt.getSM_RP_OA(), evt.getSM_RP_DA(), evt.getSM_RP_UI(), dialog.getNetworkId(), originatorSccpAddress, false, evt.getMAPDialog(), evt, evt.getInvokeId());
}
if (sms != null) {
this.processSms(sms, persistence, charging, !isMt, dialog, evt, evt.getInvokeId());
}
} catch (SmscProcessingException e1) {
if (!e1.isSkipErrorLogging()) {
if (e1.isIsWarning()) {
this.logger.warning(e1.getMessage());
} else {
this.logger.severe(e1.getMessage(), e1);
}
smscStatAggregator.updateMsgInFailedAll();
}
try {
MAPErrorMessage errorMessage;
switch(e1.getMapErrorCode()) {
case MAPErrorCode.unexpectedDataValue:
errorMessage = this.mapProvider.getMAPErrorMessageFactory().createMAPErrorMessageExtensionContainer((long) MAPErrorCode.unexpectedDataValue, null);
break;
case MAPErrorCode.systemFailure:
errorMessage = this.mapProvider.getMAPErrorMessageFactory().createMAPErrorMessageSystemFailure(dialog.getApplicationContext().getApplicationContextVersion().getVersion(), null, null, null);
break;
case MAPErrorCode.resourceLimitation:
errorMessage = this.mapProvider.getMAPErrorMessageFactory().createMAPErrorMessageExtensionContainer((long) MAPErrorCode.resourceLimitation, null);
break;
case MAPErrorCode.facilityNotSupported:
errorMessage = this.mapProvider.getMAPErrorMessageFactory().createMAPErrorMessageFacilityNotSup(null, null, null);
break;
default:
errorMessage = this.mapProvider.getMAPErrorMessageFactory().createMAPErrorMessageSystemFailure(dialog.getApplicationContext().getApplicationContextVersion().getVersion(), null, null, null);
break;
}
if (smscPropertiesManagement.isGenerateRejectionCdr() && !e1.isMessageRejectCdrCreated()) {
if (sms != null) {
generateCDR(sms, isMt ? CdrGenerator.CDR_SUBMIT_FAILED_HR : CdrGenerator.CDR_SUBMIT_FAILED_MO, e1.getMessage(), false, true);
} else {
generateCDR(dialog.getNetworkId(), null, dialog.getLocalAddress(), isMt ? CdrGenerator.CDR_SUBMIT_FAILED_HR : CdrGenerator.CDR_SUBMIT_FAILED_MO, errorMessage.toString(), true);
}
}
dialog.sendErrorComponent(evt.getInvokeId(), errorMessage);
if (this.logger.isInfoEnabled()) {
this.logger.info("\nSent ErrorComponent = " + errorMessage);
}
dialog.close(false);
} catch (Throwable e) {
logger.severe("Error while sending Error message", e);
return;
}
return;
} catch (Throwable e1) {
this.logger.severe("Exception while processing MO message: " + e1.getMessage(), e1);
smscStatAggregator.updateMsgInFailedAll();
try {
MAPErrorMessage errorMessage = this.mapProvider.getMAPErrorMessageFactory().createMAPErrorMessageSystemFailure(dialog.getApplicationContext().getApplicationContextVersion().getVersion(), null, null, null);
if (smscPropertiesManagement.isGenerateRejectionCdr()) {
generateCDR(dialog.getNetworkId(), null, dialog.getLocalAddress(), isMt ? CdrGenerator.CDR_SUBMIT_FAILED_HR : CdrGenerator.CDR_SUBMIT_FAILED_MO, errorMessage.toString(), true);
}
dialog.sendErrorComponent(evt.getInvokeId(), errorMessage);
dialog.close(false);
} catch (Throwable e) {
logger.severe("Error while sending Error message", e);
return;
}
return;
}
if (sms == null || sms.getMessageDeliveryResultResponse() == null) {
try {
dialog.addForwardShortMessageResponse(evt.getInvokeId());
if (this.logger.isFineEnabled()) {
this.logger.fine("\nSent ForwardShortMessageResponse = " + evt);
}
dialog.close(false);
} catch (Throwable e) {
logger.severe("Error while sending ForwardShortMessageResponse ", e);
}
}
}
use of org.mobicents.smsc.domain.MoChargingType in project smscgateway by RestComm.
the class TxHttpServerSbbProxy method setForbidden.
public void setForbidden(boolean isForbidden) {
MoChargingType type = (!isForbidden ? MoChargingType.accept : MoChargingType.reject);
TxHttpServerSbb.smscPropertiesManagement.setTxHttpCharging(type);
}
Aggregations