Skip to content

Commit

Permalink
continued to work on issue RestComm#216
Browse files Browse the repository at this point in the history
  • Loading branch information
satanatoly authored and vetss committed Jul 4, 2017
1 parent cd6f53c commit 119f48c
Show file tree
Hide file tree
Showing 5 changed files with 38 additions and 17 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -109,8 +109,6 @@ public abstract class RxSmppServerSbb extends DeliveryCommonSbb implements Sbb {
private static final String className = RxSmppServerSbb.class.getSimpleName();

private static final long ONE = 1L;

private Date timeStampA;

// TODO: default value==100 / 2
protected static int MAX_MESSAGES_PER_STEP = 100;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -371,7 +371,7 @@ private void onSubmitSmLocal(final TxSmppServerSbbUsage anSbbUsage, final com.cl
this.smppServerSessions.sendResponsePdu(esme, event, response);
if (sms != null) {
sms.setTimestampB(System.currentTimeMillis());
generateFailureDetailedCdr(sms, EventType.IN_SMPP_REJECT_FORBIDDEN, CdrDetailedGenerator.CDR_MSG_TYPE_SUBMITSM,
generateFailureDetailedCdr(sms, EventType.IN_SMPP_ERROR, CdrDetailedGenerator.CDR_MSG_TYPE_SUBMITSM,
SmppConstants.STATUS_SYSERR, esme.getRemoteAddressAndPort(), event.getSequenceNumber());
}
} catch (Exception e) {
Expand Down Expand Up @@ -529,7 +529,7 @@ private void onDataSmLocal(final TxSmppServerSbbUsage anSbbUsage, final com.clou
this.smppServerSessions.sendResponsePdu(esme, event, response);
if (sms != null) {
sms.setTimestampB(System.currentTimeMillis());
generateFailureDetailedCdr(sms, EventType.IN_SMPP_REJECT_FORBIDDEN, CdrDetailedGenerator.CDR_MSG_TYPE_DATASM,
generateFailureDetailedCdr(sms, EventType.IN_SMPP_ERROR, CdrDetailedGenerator.CDR_MSG_TYPE_DATASM,
SmppConstants.STATUS_SYSERR, esme.getRemoteAddressAndPort(), event.getSequenceNumber());
}
} catch (Exception e) {
Expand Down Expand Up @@ -686,7 +686,7 @@ private void onSubmitMultiLocal(final TxSmppServerSbbUsage anSbbUsage,
this.smppServerSessions.sendResponsePdu(esme, event, response);
if (currSms != null) {
currSms.setTimestampB(System.currentTimeMillis());
generateFailureDetailedCdr(currSms, EventType.IN_SMPP_REJECT_FORBIDDEN, CdrDetailedGenerator.CDR_MSG_TYPE_SUBMITMULTI,
generateFailureDetailedCdr(currSms, EventType.IN_SMPP_ERROR, CdrDetailedGenerator.CDR_MSG_TYPE_SUBMITMULTI,
SmppConstants.STATUS_SYSERR, esme.getRemoteAddressAndPort(), event.getSequenceNumber());
}
anSbbUsage.incrementCounterErrorSubmitMultiSmResponding(ONE);
Expand Down Expand Up @@ -847,7 +847,7 @@ private void onDeliverSmLocal(final TxSmppServerSbbUsage anSbbUsage, final com.c
this.smppServerSessions.sendResponsePdu(esme, event, response);
if (sms != null) {
sms.setTimestampB(System.currentTimeMillis());
generateFailureDetailedCdr(sms, EventType.IN_SMPP_REJECT_FORBIDDEN, CdrDetailedGenerator.CDR_MSG_TYPE_DELIVERSM,
generateFailureDetailedCdr(sms, EventType.IN_SMPP_ERROR, CdrDetailedGenerator.CDR_MSG_TYPE_DELIVERSM,
SmppConstants.STATUS_SYSERR, esme.getRemoteAddressAndPort(), event.getSequenceNumber());
}
} catch (Exception e) {
Expand Down Expand Up @@ -1557,7 +1557,6 @@ private void processSms(Sms sms0, PersistenceRAInterface store, Esme esme, Submi
}

this.forwardMessage(sms0, withCharging, smscStatAggregator, messageType, seqNumber);
sms0.setTimestampC(System.currentTimeMillis());

// if (withCharging) {
// ChargingSbbLocalObject chargingSbb = getChargingSbbObject();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -261,9 +261,13 @@ protected void forwardMessage(Sms sms0, boolean withCharging, SmscStatAggregator
throws SmscProcessingException {

ChargingMedium chargingMedium = null;
EventType eventTypeSuccess = null;
EventType eventTypeFailure = null;
switch (sms0.getOriginationType()) {
case SMPP:
chargingMedium = ChargingMedium.TxSmppOrig;
eventTypeSuccess = EventType.IN_SMPP_RECEIVED;
eventTypeFailure = EventType.IN_SMPP_REJECT_MPROC;
break;
case SS7_MO:
case SS7_HR:
Expand All @@ -274,6 +278,8 @@ protected void forwardMessage(Sms sms0, boolean withCharging, SmscStatAggregator
break;
case HTTP:
chargingMedium = ChargingMedium.HttpOrig;
eventTypeSuccess = EventType.IN_HTTP_RECEIVED;
eventTypeFailure = EventType.IN_HTTP_REJECT_MPROC;
break;
}

Expand All @@ -291,8 +297,21 @@ protected void forwardMessage(Sms sms0, boolean withCharging, SmscStatAggregator
TargetAddress lock = persistence.obtainSynchroObject(ta);

try {
sms.setTimestampC(System.currentTimeMillis());

if (eventTypeSuccess != null) {
EsmeManagement esmeManagement = EsmeManagement.getInstance();
Esme esme = esmeManagement.getEsmeByClusterName(sms0.getSmsSet().getDestClusterName());

generateDetailedCDR(sms, eventTypeSuccess, messageType, SmppConstants.STATUS_SYSERR, esme.getRemoteAddressAndPort(), seqNumber);
}

sms.setTimestampA(0);
sms.setTimestampB(0);
sms.setTimestampC(0);

synchronized (lock) {
boolean storeAndForwMode = MessageUtil.isStoreAndForward(sms);
boolean storeAndForwMode = MessageUtil.isStoreAndForward(sms);
if (!storeAndForwMode) {
try {
this.scheduler.injectSmsOnFly(sms.getSmsSet(), true);
Expand Down Expand Up @@ -346,11 +365,15 @@ protected void forwardMessage(Sms sms0, boolean withCharging, SmscStatAggregator
getErrorCode(mProcResult.getHttpErrorCode(), SmscProcessingException.HTTP_ERROR_CODE_NOT_SET),
null, SmscProcessingException.INTERNAL_ERROR_MPROC_REJECT);
e.setSkipErrorLogging(true);
EsmeManagement esmeManagement = EsmeManagement.getInstance();
Esme esme = esmeManagement.getEsmeByClusterName(sms0.getSmsSet().getDestClusterName());

generateMprocFailureDetailedCdr(sms0, EventType.IN_SMPP_REJECT_MPROC, messageType,
mProcResult.getSmppErrorCode(), mProcResult.getMprocRejectingRuleId(), esme.getRemoteAddressAndPort(), seqNumber);
if (eventTypeFailure != null) {
EsmeManagement esmeManagement = EsmeManagement.getInstance();
Esme esme = esmeManagement.getEsmeByClusterName(sms0.getSmsSet().getDestClusterName());

generateMprocFailureDetailedCdr(sms0, eventTypeFailure, messageType,
mProcResult.getSmppErrorCode(), mProcResult.getMprocRejectingRuleId(), esme.getRemoteAddressAndPort(), seqNumber);
}

if (logger.isInfoEnabled()) {
logger.info("Incoming message is rejected by mProc rules, message=[" + sms0 + "]");
}
Expand Down Expand Up @@ -396,16 +419,15 @@ private static int getErrorCode(final int anErrorCode, final int aDefaultErrorCo
return anErrorCode;
}

protected void generateDetailedCDR(Sms sms, EventType eventType, String messageType, int statusCode, int mprocRuleId,
String sourceAddrAndPort, int seqNumber) {
protected void generateDetailedCDR(Sms sms, EventType eventType, String messageType, int statusCode, String sourceAddrAndPort, int seqNumber) {
CdrDetailedGenerator.generateDetailedCdr(sms, eventType, sms.getSmsSet().getStatus(), messageType, statusCode,
mprocRuleId, sourceAddrAndPort, null, seqNumber, smscPropertiesManagement.getGenerateReceiptCdr(),
-1, sourceAddrAndPort, null, seqNumber, smscPropertiesManagement.getGenerateReceiptCdr(),
smscPropertiesManagement.getGenerateDetailedCdr());
}

protected void generateFailureDetailedCdr(Sms sms, EventType eventType, String messageType, int statusCode, String sourceAddrAndPort, int seqNumber) {
CdrDetailedGenerator.generateDetailedCdr(sms, eventType, sms.getSmsSet().getStatus(), messageType, statusCode,
0, sourceAddrAndPort, null, seqNumber, smscPropertiesManagement.getGenerateReceiptCdr(),
-1, sourceAddrAndPort, null, seqNumber, smscPropertiesManagement.getGenerateReceiptCdr(),
smscPropertiesManagement.getGenerateDetailedCdr());
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ public static void generateDetailedCdr(Sms smsEvent, EventType eventType, ErrorC
.append(CdrGenerator.CDR_SEPARATOR)
.append(dlrStatus == null ? dlrStatus : CdrDetailedGenerator.CDR_EMPTY)
.append(CdrGenerator.CDR_SEPARATOR)
.append(mprocRuleId == 0 ? mprocRuleId : CDR_EMPTY)
.append(mprocRuleId == -1 ? mprocRuleId : CDR_EMPTY)
//check this, maybe it should be smsEvent.getSmsSet().getCorrelationId()
.append(smsEvent.getMessageId())
.append(CdrGenerator.CDR_SEPARATOR)
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -36,11 +36,13 @@ public enum EventType {
IN_SMPP_REJECT_DIAMETER,
IN_SMPP_REJECT_MPROC,
IN_SMPP_DROP_MPROC,
IN_SMPP_ERROR,
IN_HTTP_REJECT_FORBIDDEN,
IN_HTTP_REJECT_CONG,
IN_HTTP_REJECT_DIAMETER,
IN_HTTP_REJECT_MPROC,
IN_HTTP_DROP_MPROC,
IN_HTTP_ERROR,
OUT_SMPP_SENT,
OUT_SMPP_REJECTED,
OUT_SMPP_ERROR,
Expand Down

0 comments on commit 119f48c

Please sign in to comment.