code: public void setBackRouteHeader(byte[] data) {
          // here in data is whole message, we want first 5 bytes!
          int thisPointCode = Mtp3.dpc(data, 1);
          int remotePointCode = Mtp3.opc(data, 1);
          int sls = Mtp3.sls(data, 1);
          int si = Mtp3.si(data);
          int ssi = Mtp3.ssi(data);
          // this.mtp3Header = new byte[5];
          MTPUtility.writeRoutingLabel(mtp3Header, si, ssi, sls, remotePointCode, thisPointCode);
          if (logger.isInfoEnabled()) {
              logger.info("DPC[" + remotePointCode + "] OPC[" + thisPointCode + "] SLS[" + sls + "] SI[" + si + "] SSI[" + ssi
                      + "] Label" + Arrays.toString(mtp3Header));
          }
      }
docs: Expects MTP3 MSU, it extracts routing labels and stores inside byte[], which can be copied directly after its created.
  This method switches opc and dpc - so stored routing label is ready to be used in answer message.
  
  @param data