code: public QuerySm querySm(byte[] b) throws PDUStringException {
          QuerySm req = new QuerySm();
          SequentialBytesReader reader = new SequentialBytesReader(b);
          assignHeader(req, reader);
          req.setMessageId(reader.readCString());
          StringValidator.validateString(req.getMessageId(),
                  StringParameter.MESSAGE_ID);
          req.setSourceAddrTon(reader.readByte());
          req.setSourceAddrNpi(reader.readByte());
          req.setSourceAddr(reader.readCString());
          StringValidator.validateString(req.getSourceAddr(),
                  StringParameter.SOURCE_ADDR);
  
          return req;
      }
docs: /*
  (non-Javadoc)
  
  @see org.jsmpp.util.PDUDecomposer#querySm(byte[])