@Override public int getErrorCode() { ErrorCode errorCode = sms.getSmsSet().getStatus(); if (errorCode != null) return errorCode.getCode(); else return 0; }
public QuerySmResponse c2_getQuerySmResponse(long messageId) throws PersistenceException { Sms sms = c2_getRecordArchiveForMessageId(messageId); if (sms == null) { // TODO: we need to check if we have a message in a list of "in progress message" // we do not have implemented it now and treated all undelivered messages as "ENROUTE" return new QuerySmResponse(MessageState.ENROUTE, null, 0); } else { ErrorCode code = sms.getSmsSet().getStatus(); if (code == ErrorCode.SUCCESS) { return new QuerySmResponse(MessageState.DELIVERED, sms.getDeliverDate(), 0); } else if (code == ErrorCode.VALIDITY_PERIOD_EXPIRED) { return new QuerySmResponse(MessageState.EXPIRED, sms.getDeliverDate(), code.getCode()); } else { return new QuerySmResponse(MessageState.UNDELIVERABLE, sms.getDeliverDate(), code.getCode()); } } }
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; }
String rcpt = MessageUtil.createDeliveryReceiptMessage(messageId, submitDate, new Date(), errorCode.getCode(), "origMsgText", delivered, null, tempFailure); byte[] buf = rcpt.getBytes(utf8Charset);
boundStatement.setInt(Schema.COLUMN_SM_STATUS, sms.getSmsSet().getStatus().getCode()); else boundStatement.setToNull(Schema.COLUMN_SM_STATUS);