anchor.diff:  %% mark            =  "-" / "_" / "." / "!" / "~" / "*" / "'"
   %%                    / "(" / ")"
   %% escaped         =  "%" HEXDIG HEXDIG
  +%% '''
   %% @end
   parse_headers(<<>>) -> [];
   parse_headers(<<$?, Bin/binary>>) ->
  
positive.code: %% pvalue            =  1*paramchar
  %% paramchar         =  param-unreserved / unreserved / escaped
  %% param-unreserved  =  "[" / "]" / "/" / ":" / "&" / "+" / "$"
  %% @end
  parse_params(<<$;, Bin/binary>>, List) ->
      Pred = fun ($;) -> true; % next parameter
  
negative.code:     {lists:reverse(List), Bin}.
  
  %% @doc Parse SIP URI headers
  %% BNF notation:
  %% ```
  %% headers         =  "?" header *( "&" header )
  %% header          =  hname "=" hvalue
  %% hname           =  1*( hnv-unreserved / unreserved / escaped )
  