Package org.jsmpp.bean

Examples of org.jsmpp.bean.SubmitSm


    public void execute(Exchange exchange) throws SmppException {
        SubmitSm[] submitSms = createSubmitSm(exchange);
        List<String> messageIDs = new ArrayList<String>(submitSms.length);
       
        for (int i = 0; i < submitSms.length; i++) {
            SubmitSm submitSm = submitSms[i];
            String messageID;
            if (log.isDebugEnabled()) {
                log.debug("Sending short message {} for exchange id '{}'...", i, exchange.getExchangeId());
            }
           
            try {
                messageID = session.submitShortMessage(
                        submitSm.getServiceType(),
                        TypeOfNumber.valueOf(submitSm.getSourceAddrTon()),
                        NumberingPlanIndicator.valueOf(submitSm.getSourceAddrNpi()),
                        submitSm.getSourceAddr(),
                        TypeOfNumber.valueOf(submitSm.getDestAddrTon()),
                        NumberingPlanIndicator.valueOf(submitSm.getDestAddrNpi()),
                        submitSm.getDestAddress(),
                        new ESMClass(submitSm.getEsmClass()),
                        submitSm.getProtocolId(),
                        submitSm.getPriorityFlag(),
                        submitSm.getScheduleDeliveryTime(),
                        submitSm.getValidityPeriod(),
                        new RegisteredDelivery(submitSm.getRegisteredDelivery()),
                        submitSm.getReplaceIfPresent(),
                        DataCoding.newInstance(submitSm.getDataCoding()),
                        (byte) 0,
                        submitSm.getShortMessage(),
                        submitSm.getOptionalParametes());
            } catch (Exception e) {
                throw new SmppException(e);
            }
           
            messageIDs.add(messageID);
View Full Code Here


    }

    protected SubmitSm[] createSubmitSm(Exchange exchange) {
        byte[] shortMessage = getShortMessage(exchange.getIn());

        SubmitSm template = createSubmitSmTemplate(exchange);
        SmppSplitter splitter = createSplitter(exchange.getIn());
        byte[][] segments = splitter.split(shortMessage);

        // multipart message
        if (segments.length > 1) {
            template.setEsmClass(new ESMClass(MessageMode.DEFAULT, MessageType.DEFAULT, GSMSpecificFeature.UDHI).value());
        }

        SubmitSm[] submitSms = new SubmitSm[segments.length];
        for (int i = 0; i < segments.length; i++) {
            SubmitSm submitSm = SmppUtils.copySubmitSm(template);
            submitSm.setShortMessage(segments[i]);
            submitSms[i] = submitSm;
        }

        return submitSms;
    }
View Full Code Here

        return submitSms;
    }

    protected SubmitSm createSubmitSmTemplate(Exchange exchange) {
        Message in = exchange.getIn();
        SubmitSm submitSm = new SubmitSm();

        if (in.getHeaders().containsKey(SmppConstants.DATA_CODING)) {
            submitSm.setDataCoding(in.getHeader(SmppConstants.DATA_CODING, Byte.class));
        } else if (in.getHeaders().containsKey(SmppConstants.ALPHABET)) {
            submitSm.setDataCoding(in.getHeader(SmppConstants.ALPHABET, Byte.class));
        } else {
            submitSm.setDataCoding(config.getDataCoding());
        }

        if (in.getHeaders().containsKey(SmppConstants.DEST_ADDR)) {
            submitSm.setDestAddress(in.getHeader(SmppConstants.DEST_ADDR, String.class));
        } else {
            submitSm.setDestAddress(config.getDestAddr());
        }

        if (in.getHeaders().containsKey(SmppConstants.DEST_ADDR_TON)) {
            submitSm.setDestAddrTon(in.getHeader(SmppConstants.DEST_ADDR_TON, Byte.class));
        } else {
            submitSm.setDestAddrTon(config.getDestAddrTon());
        }

        if (in.getHeaders().containsKey(SmppConstants.DEST_ADDR_NPI)) {
            submitSm.setDestAddrNpi(in.getHeader(SmppConstants.DEST_ADDR_NPI, Byte.class));
        } else {
            submitSm.setDestAddrNpi(config.getDestAddrNpi());
        }

        if (in.getHeaders().containsKey(SmppConstants.SOURCE_ADDR)) {
            submitSm.setSourceAddr(in.getHeader(SmppConstants.SOURCE_ADDR, String.class));
        } else {
            submitSm.setSourceAddr(config.getSourceAddr());
        }

        if (in.getHeaders().containsKey(SmppConstants.SOURCE_ADDR_TON)) {
            submitSm.setSourceAddrTon(in.getHeader(SmppConstants.SOURCE_ADDR_TON, Byte.class));
        } else {
            submitSm.setSourceAddrTon(config.getSourceAddrTon());
        }

        if (in.getHeaders().containsKey(SmppConstants.SOURCE_ADDR_NPI)) {
            submitSm.setSourceAddrNpi(in.getHeader(SmppConstants.SOURCE_ADDR_NPI, Byte.class));
        } else {
            submitSm.setSourceAddrNpi(config.getSourceAddrNpi());
        }

        if (in.getHeaders().containsKey(SmppConstants.SERVICE_TYPE)) {
            submitSm.setServiceType(in.getHeader(SmppConstants.SERVICE_TYPE, String.class));
        } else {
            submitSm.setServiceType(config.getServiceType());
        }

        if (in.getHeaders().containsKey(SmppConstants.REGISTERED_DELIVERY)) {
            submitSm.setRegisteredDelivery(in.getHeader(SmppConstants.REGISTERED_DELIVERY, Byte.class));
        } else {
            submitSm.setRegisteredDelivery(config.getRegisteredDelivery());
        }

        if (in.getHeaders().containsKey(SmppConstants.PROTOCOL_ID)) {
            submitSm.setProtocolId(in.getHeader(SmppConstants.PROTOCOL_ID, Byte.class));
        } else {
            submitSm.setProtocolId(config.getProtocolId());
        }

        if (in.getHeaders().containsKey(SmppConstants.PRIORITY_FLAG)) {
            submitSm.setPriorityFlag(in.getHeader(SmppConstants.PRIORITY_FLAG, Byte.class));
        } else {
            submitSm.setPriorityFlag(config.getPriorityFlag());
        }

        if (in.getHeaders().containsKey(SmppConstants.SCHEDULE_DELIVERY_TIME)) {
            submitSm.setScheduleDeliveryTime(SmppUtils.formatTime(in.getHeader(SmppConstants.SCHEDULE_DELIVERY_TIME, Date.class)));
        }

        if (in.getHeaders().containsKey(SmppConstants.VALIDITY_PERIOD)) {
            Object validityPeriod = in.getHeader(SmppConstants.VALIDITY_PERIOD);
            if (validityPeriod instanceof String) {
                submitSm.setValidityPeriod((String) validityPeriod);
            } else if (validityPeriod instanceof Date) {
                submitSm.setValidityPeriod(SmppUtils.formatTime((Date) validityPeriod));
            }
        }

        if (in.getHeaders().containsKey(SmppConstants.REPLACE_IF_PRESENT_FLAG)) {
            submitSm.setReplaceIfPresent(in.getHeader(SmppConstants.REPLACE_IF_PRESENT_FLAG, Byte.class));
        } else {
            submitSm.setReplaceIfPresent(config.getReplaceIfPresentFlag());
        }
       
        submitSm.setEsmClass(new ESMClass().value());
       
        submitSm.setOptionalParametes();

        return submitSm;
    }
View Full Code Here

    }
   
    public void processSubmitSm(Command pduHeader, byte[] pdu,
            ServerResponseHandler responseHandler) throws IOException {
        try {
            SubmitSm submitSm = pduDecomposer.submitSm(pdu);
            MessageId messageId = responseHandler.processSubmitSm(submitSm);
            logger.debug("Sending response with message_id " + messageId + " for request with sequence_number " + pduHeader.getSequenceNumber());
            responseHandler.sendSubmitSmResponse(messageId, pduHeader.getSequenceNumber());
        } catch (PDUStringException e) {
            responseHandler.sendNegativeResponse(pduHeader.getCommandId(), e.getErrorCode(), pduHeader.getSequenceNumber());
View Full Code Here

     * (non-Javadoc)
     *
     * @see org.jsmpp.util.PDUDecomposer#submitSm(byte[])
     */
    public SubmitSm submitSm(byte[] b) throws PDUStringException {
        SubmitSm req = new SubmitSm();
        SequentialBytesReader reader = new SequentialBytesReader(b);
        assignHeader(req, reader);
        req.setServiceType(reader.readCString());
        StringValidator.validateString(req.getServiceType(),
                StringParameter.SERVICE_TYPE);

        req.setSourceAddrTon(reader.readByte());
        req.setSourceAddrNpi(reader.readByte());
        req.setSourceAddr(reader.readCString());
        StringValidator.validateString(req.getSourceAddr(),
                StringParameter.SOURCE_ADDR);

        req.setDestAddrTon(reader.readByte());
        req.setDestAddrNpi(reader.readByte());
        req.setDestAddress(reader.readCString());
        StringValidator.validateString(req.getDestAddress(),
                StringParameter.DESTINATION_ADDR);

        req.setEsmClass(reader.readByte());
        req.setProtocolId(reader.readByte());
        req.setPriorityFlag(reader.readByte());
        req.setScheduleDeliveryTime(reader.readCString());
        StringValidator.validateString(req.getScheduleDeliveryTime(),
                StringParameter.SCHEDULE_DELIVERY_TIME);
        req.setValidityPeriod(reader.readCString());
        StringValidator.validateString(req.getValidityPeriod(),
                StringParameter.VALIDITY_PERIOD);
        req.setRegisteredDelivery(reader.readByte());
        req.setReplaceIfPresent(reader.readByte());
        req.setDataCoding(reader.readByte());
        req.setSmDefaultMsgId(reader.readByte());
        byte smLength = reader.readByte();
        // req.setShortMessage(reader.readString(req.getSmLength()));
        req.setShortMessage(reader.readBytes(smLength));
        StringValidator.validateString(req.getShortMessage(),
                StringParameter.SHORT_MESSAGE);
        req.setOptionalParameters(readOptionalParameters(reader));
        return req;
    }
View Full Code Here

    @Test
    public void createSubmitSmShouldCreateASubmitSmFromDefaults() throws UnsupportedEncodingException {
        Exchange exchange = new DefaultExchange(new DefaultCamelContext());
        exchange.getIn().setBody("Hello SMPP world!");
        SubmitSm submitSm = binding.createSubmitSm(exchange);
       
        assertEquals("Hello SMPP world!", new String(submitSm.getShortMessage()));
        assertEquals("1717", submitSm.getDestAddress());
        assertEquals(0x00, submitSm.getDestAddrNpi());
        assertEquals(0x00, submitSm.getDestAddrTon());
        assertEquals(0x01, submitSm.getPriorityFlag());
        assertEquals(0x00, submitSm.getProtocolId());
        assertEquals(0x01, submitSm.getRegisteredDelivery());
        assertEquals(0x00, submitSm.getReplaceIfPresent());
        // To avoid the test failure when running in different TimeZone
        //assertEquals("090830230627004+", submitSm.getScheduleDeliveryTime());
        assertEquals("CMT", submitSm.getServiceType());
        assertEquals("1616", submitSm.getSourceAddr());
        assertEquals(0x00, submitSm.getSourceAddrNpi());
        assertEquals(0x00, submitSm.getSourceAddrTon());
        assertNull(submitSm.getValidityPeriod());
        // not relevant
        //assertEquals(0, submitSm.getCommandId());
        //assertEquals(0, submitSm.getCommandStatus());
        //assertEquals(0, submitSm.getSequenceNumber());
    }
View Full Code Here

        exchange.getIn().setHeader(SmppBinding.SERVICE_TYPE, "XXX");
        exchange.getIn().setHeader(SmppBinding.VALIDITY_PERIOD, new Date(1251753600000L));
        exchange.getIn().setHeader(SmppBinding.SOURCE_ADDR, "1818");
        exchange.getIn().setHeader(SmppBinding.SOURCE_ADDR_NPI, NumberingPlanIndicator.NATIONAL.value());
        exchange.getIn().setHeader(SmppBinding.SOURCE_ADDR_TON, TypeOfNumber.NATIONAL.value());
        SubmitSm submitSm = binding.createSubmitSm(exchange);
       
        assertEquals("Hello SMPP world!", new String(submitSm.getShortMessage()));
        assertEquals("1919", submitSm.getDestAddress());
        assertEquals(0x08, submitSm.getDestAddrNpi());
        assertEquals(0x02, submitSm.getDestAddrTon());
        assertEquals(0x00, submitSm.getPriorityFlag());
        assertEquals(0x01, submitSm.getProtocolId());
        assertEquals(0x00, submitSm.getRegisteredDelivery());
        assertEquals(0x01, submitSm.getReplaceIfPresent());
        // To avoid the test failure when running in different TimeZone
        //assertEquals("090831231000004+", submitSm.getScheduleDeliveryTime());
        assertEquals("XXX", submitSm.getServiceType());
        assertEquals("1818", submitSm.getSourceAddr());
        assertEquals(0x08, submitSm.getSourceAddrNpi());
        assertEquals(0x02, submitSm.getSourceAddrTon());
        //assertEquals("090831232000004+", submitSm.getValidityPeriod());
        // not relevant
        //assertEquals(0, submitSm.getCommandId());
        //assertEquals(0, submitSm.getCommandStatus());
        //assertEquals(0, submitSm.getSequenceNumber());
View Full Code Here

    public void processInOnlyShouldSendASubmitSmAndUpdateTheExchangeInMessage() throws Exception {
        doStartExpectations();
        SmppBinding binding = createMock(SmppBinding.class);
        Exchange exchange = createMock(Exchange.class);
        Message message = createMock(Message.class);
        SubmitSm submitSm = createMock(SubmitSm.class);
        expect(exchange.getExchangeId()).andReturn("ID-muellerc-macbookpro/3690-1214458315718/2-0");
        expect(endpoint.getBinding()).andReturn(binding);
        expect(binding.createSubmitSm(exchange)).andReturn(submitSm);
        submitSmExpectations(exchange, binding, submitSm);
        expect(session.submitShortMessage(
View Full Code Here

    public void processInOutShouldSendASubmitSmAndUpdateTheExchangeOutMessage() throws Exception {
        doStartExpectations();
        SmppBinding binding = createMock(SmppBinding.class);
        Exchange exchange = createMock(Exchange.class);
        Message message = createMock(Message.class);
        SubmitSm submitSm = createMock(SubmitSm.class);
        expect(exchange.getExchangeId()).andReturn("ID-muellerc-macbookpro/3690-1214458315718/2-0");
        expect(endpoint.getBinding()).andReturn(binding);
        expect(binding.createSubmitSm(exchange)).andReturn(submitSm);
        submitSmExpectations(exchange, binding, submitSm);
        expect(session.submitShortMessage(
View Full Code Here

        // only possible by trying to reconnect
        if (this.session == null) {
            throw new IOException("Lost connection to " + getEndpoint().getConnectionString() + " and yet not reconnected");
        }

        SubmitSm submitSm = getEndpoint().getBinding().createSubmitSm(exchange);
        String messageId = session.submitShortMessage(
                submitSm.getServiceType(),
                TypeOfNumber.valueOf(submitSm.getSourceAddrTon()),
                NumberingPlanIndicator.valueOf(submitSm.getSourceAddrNpi()),
                submitSm.getSourceAddr(),
                TypeOfNumber.valueOf(submitSm.getDestAddrTon()),
                NumberingPlanIndicator.valueOf(submitSm.getDestAddrNpi()),
                submitSm.getDestAddress(),
                new ESMClass(),
                submitSm.getProtocolId(),
                submitSm.getPriorityFlag(),
                submitSm.getScheduleDeliveryTime(),
                submitSm.getValidityPeriod(),
                new RegisteredDelivery(submitSm.getRegisteredDelivery()),
                submitSm.getReplaceIfPresent(),
                new GeneralDataCoding(
                        false,
                        false,
                        MessageClass.CLASS1,
                        Alphabet.ALPHA_DEFAULT),
                (byte) 0,
                submitSm.getShortMessage());

        if (LOG.isDebugEnabled()) {
            LOG.debug("Sent a short message for exchange id '"
                    + exchange.getExchangeId() + "' and received message id '"
                    + messageId + "'");
View Full Code Here

TOP

Related Classes of org.jsmpp.bean.SubmitSm

Copyright © 2018 www.massapicom. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.