/** * Taken from * * @see http://memoirniche.wordpress.com/2010/04/10/smpp-submit-pdu/ **/ public static void setSegmentUdh00AndMessage(DeliverSm pdu, int msgRefNum, int segmentNum, int totalSegmentCount, String shortMessage) throws SmppInvalidArgumentException { // add UDHI bit to ESM class byte esmClass = 0; esmClass |= SmppConstants.ESM_CLASS_UDHI_MASK; pdu.setEsmClass(esmClass); byte[] udhHeader = new byte[6]; udhHeader[0] = 0x05; // the total length of data in UDH, not including // the first byte of header (i.e. the byte // containing the total length). udhHeader[1] = 0x00; // IE identifier for concatenated messages udhHeader[2] = 0x03; // length of data in IE udhHeader[3] = (byte) msgRefNum; udhHeader[4] = (byte) totalSegmentCount; udhHeader[5] = (byte) segmentNum; byte[] message = CharsetUtil.encode(shortMessage, CharsetUtil.CHARSET_GSM); ByteBuffer bb = ByteBuffer.allocate(udhHeader.length + message.length); bb.put(udhHeader); bb.put(message); pdu.setShortMessage(bb.array()); }
public static void setSegmentUdh08AndMessage(DeliverSm pdu, int msgRefNum, int segmentNum, int totalSegmentCount, String shortMessage) throws SmppInvalidArgumentException { // add UDHI bit to ESM class byte esmClass = 0; esmClass |= SmppConstants.ESM_CLASS_UDHI_MASK; pdu.setEsmClass(esmClass); byte[] udhHeader = new byte[7]; udhHeader[0] = 0x06; // the total length of data in UDH, not including // the first byte of header (i.e. the byte // containing the total length). udhHeader[1] = 0x08; // IE identifier for concatenated messages udhHeader[2] = 0x05; // length of data in IE byte[] unsignedShortMsgRefNum = intToUnsignedShort(msgRefNum); udhHeader[3] = unsignedShortMsgRefNum[0]; udhHeader[4] = unsignedShortMsgRefNum[1]; udhHeader[5] = (byte) totalSegmentCount; udhHeader[6] = (byte) segmentNum; byte[] message = CharsetUtil.encode(shortMessage, CharsetUtil.CHARSET_GSM); ByteBuffer bb = ByteBuffer.allocate(udhHeader.length + message.length); bb.put(udhHeader); bb.put(message); pdu.setShortMessage(bb.array()); }
pdu0.setSourceAddress(deliveryReceiptRecord.getSourceAddress()); pdu0.setDestAddress(deliveryReceiptRecord.getDestinationAddress()); pdu0.setEsmClass((byte) 0x04); pdu0.setProtocolId((byte) 0x00); pdu0.setPriority((byte) 0x00);