code: protected void decodeOptionalBody(ISUPParameterFactory parameterFactory, byte[] parameterBody, byte parameterCode)
              throws ParameterException {
  
          switch (parameterCode & 0xFF) {
  
              case CallReference._PARAMETER_CODE:
                  CallReference RS = parameterFactory.createCallReference();
                  ((AbstractISUPParameter) RS).decode(parameterBody);
                  this.setCallReference(RS);
                  break;
              case ParameterCompatibilityInformation._PARAMETER_CODE:
                  ParameterCompatibilityInformation pri = parameterFactory.createParameterCompatibilityInformation();
                  ((AbstractISUPParameter) pri).decode(parameterBody);
                  this.setParameterCompatibilityInformation(pri);
                  break;
              case NetworkSpecificFacility._PARAMETER_CODE:
                  NetworkSpecificFacility nsf = parameterFactory.createNetworkSpecificFacility();
                  ((AbstractISUPParameter) nsf).decode(parameterBody);
                  this.setNetworkSpecificFacility(nsf);
                  break;
              default:
                  throw new ParameterException("Unrecognized parameter code for optional part: " + parameterCode);
          }
      }
docs: /*
  (non-Javadoc)
  
  @see org.restcomm.protocols.ss7.isup.ISUPMessageImpl#decodeOptionalBody(byte [], byte)