anchor.diff:      {lists:reverse(List), sip_binary:trim_leading(Bin)}.
   
   
  -%% @doc
  -%% Parse From/To header into display name, URI and binary with all the rest parameters
  -%% @end
  -parse_fromto(<<?DQUOTE, _/binary>> = Bin) ->
  +%% @doc Parse address-like header into display name, URI and binary with the parameters
  +%%
  +%% Parses values like
  +%% ```
  +%% value       = ( name-addr / addr-spec )
  +%% '''
  +%% @end
  +parse_address_uri(<<?DQUOTE, _/binary>> = Bin) ->
       % name-addr with quoted-string display-name
       {Display, <<?LAQUOT, Rest/binary>>} = sip_binary:parse_quoted_string(Bin),
       {URI, <<?RAQUOT, Params/binary>>} = sip_binary:parse_until(Rest, ?RAQUOT),
       {Display, URI, Params};
  -parse_fromto(<<?LAQUOT, Rest/binary>>) ->
  +parse_address_uri(<<?LAQUOT, Rest/binary>>) ->
       % name-addr without display-name
  -    {URI, <<?RAQUOT, Rest2/binary>>} = sip_binary:parse_until(Rest, ?RAQUOT),
  -    {<<>>, URI, Rest2};
  -parse_fromto(Bin) ->
  +    {URI, <<?RAQUOT, Params/binary>>} = sip_binary:parse_until(Rest, ?RAQUOT),
  +    {<<>>, URI, Params};
  +parse_address_uri(Bin) ->
       % either addr-spec or name-addr with token-based display-name
       case sip_binary:parse_until(Bin, ?LAQUOT) of
           {_Any, <<>>} ->
  
positive.code: %% contact-extension  =  generic-param
  %% delta-seconds      =  1*DIGIT
  %%
  %% name-addr      =  [ display-name ] LAQUOT addr-spec RAQUOT
  %% addr-spec      =  SIP-URI / SIPS-URI / absoluteURI
  %% display-name   =  *(token LWS)/ quoted-string
  parse_header(Name, Bin) when Name =:= 'from'; Name =:= 'to'; Name =:= 'contact' ->
      {Display, URI, Params} = parse_fromto(sip_binary:trim_leading(Bin)),
      {Params2, Bin2} = parse_params(sip_binary:trim_leading(Params), []),
      Top = #sip_hdr_address{display_name = sip_binary:trim(Display), uri = URI, params = Params2},
      case Bin2 of
          <<?COMMA, Bin3/binary>> when Name =:= 'contact' ->
              % Parse the rest of the Contact
              % *(COMMA contact-param)
              case parse_header('contact', Bin3) of
                  Contact when is_list(Contact) -> [Top | Contact];
                  Contact -> [Top | [Contact]]
              end;
          <<>> -> Top
      end;
  
  
  
  %% Any other header, just return value as is
  parse_header(_Name, Value) ->
      Value.
  
negative.code: %% Call-ID  =  ( "Call-ID" / "i" ) HCOLON callid
  parse_header('call-id', Bin) ->
      Bin;
  %% To             =  ( "To" / "t" ) HCOLON ( name-addr / addr-spec ) *( SEMI to-param )
  %% to-param       =  tag-param / generic-param
  %%
  