anchor.diff:  		      Protocol ++ " " ++ sipurl:print_hostport(Host, Port) ++ print_parameters(Parameters)
   	      end, Via).
   
  +via_params([]) ->
  +    none;
   via_params({Protocol, Hostport, Parameters}) ->
       param_to_dict(Parameters).
   
  
positive.code:     L = lists:map(fun(A) ->
  			  H = string:strip(A,left),
  			  Index = string:chr(H, $=),
  			  Name = string:substr(H, 1, Index - 1),
  			  Value = string:substr(H, Index + 1),
  			  {Name, unescape(Value)}
  		  end, Param),
      dict:from_list(L).    
  
  httparg(String) ->
      Headers = string:tokens(String, "&"),
      param_to_dict(Headers).
  
negative.code: 
  contact([]) ->
      [];
      
  contact(["'*'"]) ->
      logger:log(debug, "n: wildcard contact header (IS THIS SYNTAX USED?)"),
      [{none, {wildcard, []}}];
  
  contact(["*"]) ->
      logger:log(debug, "n: wildcard contact header"),
      [{none, {wildcard, []}}];
  
  contact(["'*';" ++ Parameters]) ->
      logger:log(debug, "n: wildcard contact header (parameters ~p) (IS THIS SYNTAX USED?)", [Parameters]),
      [{none, {wildcard, [Parameters]}}];
  
  contact(["*;" ++ Parameters]) ->
      logger:log(debug, "n: wildcard contact header (parameters ~p)", [Parameters]),
      [{none, {wildcard, [Parameters]}}];
  
  contact([String | Rest]) ->
      Headers = comma(String),
      lists:append(lists:map(fun(H) ->
  				   name_header(H)
  			   end, Headers),
  		 contact(Rest)).
  
  contact_params([]) ->
      none;
  contact_params({_, {wildcard, Parameters}}) ->
      param_to_dict(Parameters);
  contact_params({_, _, _, _, Parameters}) ->
      param_to_dict(Parameters).
  
  via([]) ->
      [];
  