anchor.diff:  parse(Name, Bin) when Name =:= 'from'; Name =:= 'to' ->
       {Top, <<>>} = parse_address(Bin),
       Top;
  +
   %% Contact        =  ("Contact" / "m" ) HCOLON
   %%                  ( STAR / (contact-param *(COMMA contact-param)))
   %% contact-param  =  (name-addr / addr-spec) *(SEMI contact-params)
  
positive.code:             end;
          {Top, <<>>} -> Top
      end;
  %% Any other header, just return value as is
  parse(_Name, Value) ->
      Value.
  
negative.code:                    parse('via', <<"SIP/2.0/UDP pc33.atlanta.com;ttl=3;maddr=224.0.0.1;received=127.0.0.1;branch=z9hG4bK776asdhds">>)),
       ?_assertEqual(via(udp, {"pc33.atlanta.com", undefined}, [{ttl, 3}, {maddr, "sip.mcast.net"}, {received, {127, 0, 0, 1}}, {branch, <<"z9hG4bK776asdhds">>}]),
                     parse('via', <<"SIP/2.0/UDP pc33.atlanta.com;ttl=3;maddr=sip.mcast.net;received=127.0.0.1;branch=z9hG4bK776asdhds">>)),
       
       % Allow
       ?_assertEqual(['INVITE', 'ACK', 'CANCEL', 'OPTIONS', 'BYE'],
                     parse('allow', <<"INVITE, ACK, CANCEL, OPTIONS, BYE">>)),
       ?_assertEqual(<<"INVITE, ACK, CANCEL, OPTIONS, BYE">>,
                     format('allow', ['INVITE', 'ACK', 'CANCEL', 'OPTIONS', 'BYE'])),
  
       % Subject (FIXME: implement proper tests)
       ?_assertEqual(<<"I know you're there, pick up the phone and talk to me!">>,
          format('subject', <<"I know you're there, pick up the phone and talk to me!">>))
      ].
  