From a07b01e180e07745fad7a6231ef56bd1f6d41927 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Adam=20G=C3=B3rak?= Date: Thu, 11 Jan 2018 11:21:16 +0100 Subject: [PATCH] Message ID filtering (SMSCGW to deal only with messages that have IDs from its configured range). --- .../scheduler/SchedulerResourceAdaptor.java | 15 ++++++++++++++- .../org/mobicents/smsc/library/SmsSet.java | 18 +++++++++++++++++- 2 files changed, 31 insertions(+), 2 deletions(-) diff --git a/core/slee/resource-adaptors/scheduler-ra/ra/src/main/java/org/mobicents/smsc/slee/resources/scheduler/SchedulerResourceAdaptor.java b/core/slee/resource-adaptors/scheduler-ra/ra/src/main/java/org/mobicents/smsc/slee/resources/scheduler/SchedulerResourceAdaptor.java index 64d9c3d3b..4eb23efef 100644 --- a/core/slee/resource-adaptors/scheduler-ra/ra/src/main/java/org/mobicents/smsc/slee/resources/scheduler/SchedulerResourceAdaptor.java +++ b/core/slee/resource-adaptors/scheduler-ra/ra/src/main/java/org/mobicents/smsc/slee/resources/scheduler/SchedulerResourceAdaptor.java @@ -947,7 +947,7 @@ protected OneWaySmsSetCollection fetchSchedulable(int maxRecordCount) throws Per return new OneWaySmsSetCollection(); } - ArrayList lstS = dbOperations_C2.c2_getRecordList(processedDueSlot); + ArrayList lstS = filterOut(dbOperations_C2.c2_getRecordList(processedDueSlot)); ArrayList lst = dbOperations_C2.c2_sortRecordList(lstS); OneWaySmsSetCollection res = new OneWaySmsSetCollection(); res.setListSmsSet(lst); @@ -1027,4 +1027,17 @@ public int size() { return lst.size() - uploadedCount; } } + + private static ArrayList filterOut(final List anInputList) { + final ArrayList result = new ArrayList(0); + final long min = SmscPropertiesManagement.getInstance().getMinMessageId(); + final long max = SmscPropertiesManagement.getInstance().getMaxMessageId(); + for (final SmsSet set : anInputList) { + if (set.isMessageIdOk(min, max)) { + result.add(set); + } + } + return result; + } + } diff --git a/core/smsc-common-library/src/main/java/org/mobicents/smsc/library/SmsSet.java b/core/smsc-common-library/src/main/java/org/mobicents/smsc/library/SmsSet.java index 292247a9a..ce75b0383 100644 --- a/core/smsc-common-library/src/main/java/org/mobicents/smsc/library/SmsSet.java +++ b/core/smsc-common-library/src/main/java/org/mobicents/smsc/library/SmsSet.java @@ -524,7 +524,23 @@ public int getSendingPoolMsgCount() { return this.sendingMessagePool.size(); } - @Override + public boolean isMessageIdOk(final long aMinValue, final long aMaxValue) { + for (final Segment segment : segmList) { + for (final Sms sms : segment.smsList) { + final long mid = sms.getMessageId(); + if (mid < aMinValue) { + continue; + } + if (mid > aMinValue) { + continue; + } + return true; + } + } + return false; + } + + @Override public String toString() { StringBuilder sb = new StringBuilder();