anchor.diff:      io:format("test: parse/1 - 9~n"),
       ParsedUrl9 = parse("sip:%3Alice:%3A@[1:1:1:1:2:2:2:2];transp%3b%3Bort=TCP"),
   
  -    %% Parse url with quoted comma-separated lists as parameters
  -    ParsedUrl10 = #sipurl{proto = "sip",
  -			 user = "alice", pass = none,
  -			 host = "example.org", port = none,
  -			 param = ["foo=\"bar, baZ\""],
  -			 param_pairs = url_param:to_norm(["foo=\"bar, baZ\""])
  -			},
  -    io:format("test: parse/1 - 9~n"),
  -    ParsedUrl10 = parse("sip:alice@example.org;foo=\"bar, baZ\""),
  -
       %% print(URL)
       %%--------------------------------------------------------------------
       %% test host
  
positive.code:     %% check that "name=val;;name=val" doesn't work
      io:format("test: is_parameters/1 - 8~n"),
      false = is_parameters("bar=Zo%3Dp%3dg;vaF=ghjT;;;BOF=tOp"),
      %% check that quoted parameters work
      io:format("test: is_parameters/1 - 9~n"),
      true = is_parameters("foo=\"bar\""),
  
      %% test new
      %%--------------------------------------------------------------------
  
negative.code: 
  %% generate a escape hex encoding for a char
  escape(Char) ->
      [37 | hex:to_hex_string(Char)].	%% 37 is '%'
      
  %%--------------------------------------------------------------------
  %% Function: url_is_equal(A, B, Compare)
  %%           A, B = sipurl record()
  %%           Compare = list() of atom(), what to compare. atom() may
  %%                     be proto|user|pass|host|port|param
  %% Descrip.: Return 'true' if A = B according to RFC 3261 chapter
  %%           19.1.4, in the aspects you list. Use url_is_equal/2 to
  %%           do a full compare.
  %% Returns : true | false
  %% Note    : assume that A and B are properly parsed sipurl records
  %%           with unencoded chars i.e. no hex encoded chars
  %%--------------------------------------------------------------------
  url_is_equal(A, B, []) when is_record(A, sipurl), is_record(B, sipurl) ->
      true;
  %% proto
  url_is_equal(#sipurl{proto=Proto}=A, #sipurl{proto=Proto}=B, [proto | T]) ->
      url_is_equal(A, B, T);
  url_is_equal(A, B, [proto | _T]) when is_record(A, sipurl), is_record(B, sipurl) ->
      false;
  %% user
  url_is_equal(#sipurl{user=User}=A, #sipurl{user=User}=B, [user | T]) ->
      url_is_equal(A, B, T);
  url_is_equal(A, B, [user | _T]) when is_record(A, sipurl), is_record(B, sipurl) ->
      false;
  %% pass
  url_is_equal(#sipurl{user=User}=A, #sipurl{user=User}=B, [pass | T]) ->
      url_is_equal(A, B, T);
  url_is_equal(A, B, [pass | _T]) when is_record(A, sipurl), is_record(B, sipurl) ->
      false;
  %% host
  url_is_equal(#sipurl{host=Host}=A, #sipurl{host=Host}=B, [host | T]) ->
      url_is_equal(A, B, T);
  url_is_equal(A, B, [host | _T]) when is_record(A, sipurl), is_record(B, sipurl) ->
      false;
  %% port
  url_is_equal(A, B, [port | T]) when is_record(A, sipurl), is_record(B, sipurl) ->
      Bp = get_port(B),
      case get_port(A) of
  	Bp ->
  	    url_is_equal(A, B, T);
  	_ ->
  	    false
      end;
  url_is_equal(A, B, [param | T]) when is_record(A, sipurl), is_record(B, sipurl) ->
      case url_is_equal_uri_parameter(A, B) of
  	true ->
  	    url_is_equal(A, B, T);
  	false ->
  	    false
      end.
  
  %%--------------------------------------------------------------------
  %% Function: url_is_equal(A, B)
  %%           A, B = sipurl record()
  %% Descrip.: return 'true' if A = B according to RFC 3261 chapter
  %%           19.1.4
  %% Returns : true | false
  %% Note    : assume that A and B are properly parsed sipurl records
  %%           with unencoded chars i.e. no hex encoded chars
  %%--------------------------------------------------------------------
  url_is_equal(A, B) when record(A, sipurl), record(B, sipurl) ->
      %% RFC 3261  - - - - - - - - - - - - - - - - - - - - - - - - - - -
      %% o  A SIP and SIPS URI are never equivalent.
      %% - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
      case A#sipurl.proto == B#sipurl.proto of
  	false ->
  	    false;
  	true ->
  	    url_is_equal_user_pass_host_port(A, B)
      end.
  
  url_is_equal_user_pass_host_port(A, B) ->
      %% RFC 3261  - - - - - - - - - - - - - - - - - - - - - - - - - - -
  