public static void applyValidityPeriod(Sms sms, Date validityPeriod, boolean fromEsme, int maxValidityPeriodHours, int defaultValidityPeriodHours) throws SmscProcessingException { Date now = new Date(); if (validityPeriod == null) { validityPeriod = addHours(now, defaultValidityPeriodHours); } Date maxValidityPeriod = addHours(now, maxValidityPeriodHours); if (validityPeriod.after(maxValidityPeriod)) { validityPeriod = maxValidityPeriod; } if (validityPeriod.before(now)) { validityPeriod = maxValidityPeriod; } sms.setValidityPeriod(validityPeriod); }
public static void applyScheduleDeliveryTime(Sms sms, Date scheduleDeliveryTime) throws SmscProcessingException { if (scheduleDeliveryTime == null) return; Date maxSchDelTime = addHours(sms.getValidityPeriod(), -3); if (scheduleDeliveryTime.after(maxSchDelTime)) { throw new SmscProcessingException("Schedule delivery time is before 3 hours before than validity period expiration", SmppConstants.STATUS_INVSCHED, MAPErrorCode.systemFailure, SmscProcessingException.HTTP_ERROR_CODE_NOT_SET, null, SmscProcessingException.INTERNAL_ERROR_MISC_VALIDITY_PERIOD_INVALID); } sms.setScheduleDeliveryTime(scheduleDeliveryTime); }
public static Sms createReceiptSms(Sms sms, boolean delivered, String extraString, boolean tempFailure) { Sms receipt = new Sms(); receipt.setDbId(UUID.randomUUID()); receipt.setSourceAddr(sms.getSmsSet().getDestAddr()); receipt.setSourceAddrNpi(sms.getSmsSet().getDestAddrNpi()); receipt.setSourceAddrTon(sms.getSmsSet().getDestAddrTon()); receipt.setSubmitDate(sms.getSubmitDate()); receipt.setMessageId(sms.getMessageId()); Date validityPeriod = MessageUtil.addHours(new Date(), 24); receipt.setValidityPeriod(validityPeriod); String rcpt = createDeliveryReceiptMessage(sms.getMessageIdText(), sms.getSubmitDate(), new Timestamp(System.currentTimeMillis()), sms.getSmsSet().getStatus().getCode(), sms.getShortMessageText(), delivered, extraString, tempFailure); // TODO: now we are sending all in GSM7 encoding receipt.setDataCoding(0); receipt.setShortMessageText(rcpt); receipt.setReceiptLocalMessageId(sms.getMessageId()); receipt.setOriginationType(OriginationType.LOCAL_ORIG); receipt.setEsmClass(ESME_DELIVERY_ACK | (sms.getEsmClass() & 0x03)); return receipt; }
Date validityPeriod = MessageUtil.addHours(new Date(), 24); smsStatusReport.setValidityPeriod(validityPeriod);