code: private Buffer consumeUntil(final Buffer name) {
          try {
              while (this.params.hasReadableBytes()) {
                  SipParser.consumeSEMI(this.params);
                  final Buffer[] keyValue = SipParser.consumeGenericParam(this.params);
                  ensureParamsMap();
                  final Buffer value = keyValue[1] == null ? Buffers.EMPTY_BUFFER : keyValue[1];
                  this.paramMap.put(keyValue[0], value);
  
                  if (name != null && name.equals(keyValue[0])) {
                      return value;
                  }
              }
              return null;
          } catch (final IndexOutOfBoundsException e) {
              throw new SipParseException(this.params.getReaderIndex(),
                      "Unable to process the value due to a IndexOutOfBoundsException", e);
          } catch (final IOException e) {
              throw new SipParseException(this.params.getReaderIndex(),
                      "Could not read from the underlying stream while parsing the value");
          }
  
      }
docs: Internal helper method that will consume all raw parameters until we find the specified name
  or if the name is null, then that will be the same as "consume all".
  
  @param name
  @return