anchor.diff:       ?_assertEqual([foo, bar], parse('unsupported', <<"foo, bar">>)),
        ?_assertEqual(<<"foo, bar">>, format('unsupported', [foo, bar])),
   
  +     % User-Agent
  +     ?_assertEqual(<<"Softphone Beta1.5">>, parse('user-agent', <<"Softphone Beta1.5">>)),
  +     ?_assertEqual(<<"Softphone Beta1.5">>, format('user-agent', <<"Softphone Beta1.5">>)),
   
   
        % Via
  
positive.code:                      "Server: HomeServer v2\r\nSubject: Need more boxes\r\n",
                       "Supported: 100rel\r\nTimestamp: 54\r\n",
                       "To: sip:bob@localhost\r\nUnsupported: bar, baz\r\n",
  
                       "Content-Length: 5\r\nVia: SIP/2.0/UDP localhost\r\n",
                       "x-custom-atom: 25\r\nAllow: INVITE, ACK, CANCEL, OPTIONS, BYE\r\n",
                       "X-Custom: value\r\n">>,
                     format_headers([{'accept', <<"*/*">>}, {'accept-encoding', <<"identity">>},
                                     {'accept-language', <<"en">>}, {'alert-info', <<"<http://www.example.com/sounds/moo.wav>">>},
  
negative.code: process(f, 'to', Addr) when is_record(Addr, sip_hdr_address) ->
      format_address(Addr);
  
  %% 20.40 Unsupported
  %% http://tools.ietf.org/html/rfc3261#section-20.40
  process(fn, 'unsupported', _Ignore) -> <<"Unsupported">>;
  process(p, 'unsupported', Bin) ->
      {ExtBin, Rest} = sip_binary:parse_token(Bin),
      Ext = sip_binary:binary_to_existing_atom(sip_binary:to_lower(ExtBin)),
      parse_list('require', Ext, Rest);
  
  process(f, 'unsupported', Ext) ->
      sip_binary:any_to_binary(Ext);
  
  %% 20.41 User-Agent
  %% http://tools.ietf.org/html/rfc3261#section-20.41
  process(fn, 'user-agent', _Ignore) -> <<"User-Agent">>;
  process(p, 'user-agent', Bin) -> Bin;
  
  
  %% .....
  