anchor.diff:  %% - yes, this is default according to the BNF chapter, as I could
   %%   find no statement to the contrary this presumably applies to
   %%   contact-params as well.
  -%% * should char() ranges used by contact-params be check for
  +%% * should char() ranges used by contact-params be checked for
   %%   correctness, before insertion ?
   %% - XXX probably not needed, but a parser of a value part in a
   %%   name-value pair may need to.
  
positive.code: 
      ParamName = httpd_util:to_lower(NameStripped),
  
      Wellformed = case ParamName of
  		     "expires" ->
  			 %% check that delta-seconds is an integer
  			 list_to_integer(ValueStripped),
  			 true;
  		     "q" ->
  			 %% "qvalue" rule is checked later
  			 %% when q_value(ValueStripped) is called
  			 true;
  		     _OtherParam ->
  			 sipparse_util:is_token(NameStripped)
  			     andalso
  			       (sipparse_util:is_token(ValueStripped)
  				orelse is_quoted(ValueStripped)
  				orelse case catch sipparse_util:is_hostname(ValueStripped) of
  					   {error, _} -> false;
  					   _ -> true
  				       end)
  		 end,
  
      case Wellformed of
  	true ->
  	    {NameStripped, case ParamName of
  			       %% this conversion is done to ensure that the q value
  			       %% can be converted with list_to_float/1 ("0", "1",
  			       %% "0." and "1." will result in exceptions)
  			       "q" -> q_value(ValueStripped);
  			       _ -> ValueStripped
  			   end};
  	false ->
  	    throw({error, param_name_or_value_malformed})
      end.
  
  %% return: string() (of "x.xxx" format, that can be turned into a float() with list_to_float/1) |
  
negative.code: %% although it will acept some route and record-route entries that
  %% aren't legal as if they where.
  %%
  %% Note: string:tokens/2 is used in some places where sequences of
  %%       separator char() are not allowed, but tokens/2 will only "see"
  %%       one separator char().
  %% Note: contents of quoted-string are not checked
  %%       - there is no need to, it should just be passed along
  %%         according to RFC 3261
  