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:      ?_assertEqual([address(<<"Bob">>, <<"sip:bob@biloxi.com">>, [{q, <<"0.1">>}]),
                      address(<<"Alice">>, <<"sip:alice@atlanta.com">>, [{q, <<"0.2">>}])],
                     parse_header('contact', <<"Bob <sip:bob@biloxi.com>;q=0.1,Alice <sip:alice@atlanta.com>;q=0.2">>)),
  
       ?_assertEqual(<<"Bob <sip:bob@biloxi.com>;q=0.1">>,
                     format_header('contact', address(<<"Bob">>, <<"sip:bob@biloxi.com">>, [{q, <<"0.1">>}]))),
       ?_assertEqual(<<"Bob <sip:bob@biloxi.com>;q=0.1,Alice <sip:alice@atlanta.com>;q=0.2">>,
                     format_header('contact', [address(<<"Bob">>, <<"sip:bob@biloxi.com">>, [{q, <<"0.1">>}]),
                                               address(<<"Alice">>, <<"sip:alice@atlanta.com">>, [{q, <<"0.2">>}])])),
  
       % Via
       ?_assertEqual(via(udp, {<<"pc33.atlanta.com">>, undefined}, [{branch, <<"z9hG4bK776asdhds">>}]),
  
negative.code: %% contact-extension  =  generic-param
  %% delta-seconds      =  1*DIGIT
  %%
  %% Route              =  "Route" HCOLON route-param *(COMMA route-param)
  %% route-param        =  name-addr *( SEMI rr-param )
  %% rr-param           =  generic-param
  %%
  %% Record-Route       =  "Record-Route" HCOLON rec-route *(COMMA rec-route)
  %% rec-route          =  name-addr *( SEMI rr-param )
  %%
  %% name-addr      =  [ display-name ] LAQUOT addr-spec RAQUOT
  %% addr-spec      =  SIP-URI / SIPS-URI / absoluteURI
  %% display-name   =  *(token LWS)/ quoted-string
  format_header('contact', '*') -> <<"*">>;
  format_header(Name, #sip_hdr_address{} = Addr) when
    Name =:= 'from';
    Name =:= 'to';
    Name =:= 'contact';
    Name =:= 'route';
    Name =:= 'record-route' ->
  
      URI = Addr#sip_hdr_address.uri,
      Bin = case Addr#sip_hdr_address.display_name of
  