anchor.diff:  empty_displayname(Name) ->
       Name.
   
  -auth_print(Auth) ->
  -    auth_print(Auth, false).
  -
  -auth_print(Auth, Stale) ->
  -    {Realm, Nonce, Opaque} = Auth,
  -    ["Digest realm=\"" ++ Realm ++ "\", nonce=\"" ++ Nonce ++ "\", opaque=\"" ++ Opaque ++ "\"" ++
  -     case Stale of
  -	 true ->
  -	     ", stale=true";
  -	 _ ->
  -	     ""
  -     end
  -    ].
  -
  -auth([In]) ->
  -    % lowercase first word
  -    case string:chr(In, $\ ) of
  -	0 ->
  -	    In;	% uhm, is really broken
  -	Index when integer(Index) ->
  -	    H = string:substr(In, 1, Index - 1),
  -	    LH = httpd_util:to_lower(H),
  -	    T = string:substr(In, Index + 1),
  -	    Out = [lists:flatten(LH ++ " " ++ T)],
  -	    auth2(Out)
  -    end.
  -
  -auth2(["gssapi " ++ String]) ->
  -    Headers = comma(String),
  -    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, unquote(Value)}
  -		  end, Headers),
  -    dict:from_list(L);
  -
  -auth2(["digest " ++ String]) ->
  -    Headers = comma(String),
  -    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, unquote(Value)}
  -		  end, Headers),
  -    dict:from_list(L);
  -
  -auth2(In) ->
  -    logger:log(error, "sipheader:auth() called with unrecognized authentication data"),
  -    throw({siperror, 500, "Server Internal Error"}).
  -
  -unescape([]) ->
  -    [];
  -unescape([$%, C1, C2 | Rest]) ->
  -    [hex:from([C1, C2]) | unescape(Rest)];
  -unescape([C | Rest]) ->
  -    [C | unescape(Rest)].
  -
  -param_to_dict(Param) ->
  -    L = lists:map(fun(A) ->
  -			  H = string:strip(A,left),
  -			  Index = string:chr(H, $=),
  -			  case Index of
  -			      0 ->
  -			          {httpd_util:to_lower(H), ""};
  -			      _ ->
  -				  Name = httpd_util:to_lower(string:substr(H, 1, Index - 1)),
  -				  Value = string:substr(H, Index + 1),
  -				  {Name, unescape(Value)}
  -			  end
  -		  end, Param),
  -    dict:from_list(L).    
  -
  -dict_to_param(Dict) ->
  -    list_to_parameters(lists:keysort(1, dict:to_list(Dict))).
  -    
  -list_to_parameters([]) ->
  -    [];
  -list_to_parameters([{Key, Value}]) ->
  -    [Key ++ "=" ++ Value];
  -list_to_parameters([{Key, Value} | Rest]) ->
  -    [Key ++ "=" ++ Value | list_to_parameters(Rest)].
  -    
  -
  -httparg(String) ->
  -    Headers = string:tokens(String, "&"),
  -    param_to_dict(Headers).
  -
  -cseq([String]) ->
  -    case string:tokens(String, " ") of
  -	[Seq, Method] ->
  -	    {Seq, Method};
  -	_ ->
  -	    {unparseable, String}
  -    end.
  -
  -cseq_print({Seq, Method}) ->
  -    Seq ++ " " ++ Method.
  -
  -print_one_header(_, _, []) ->
  -    [];
  -print_one_header(Name, LCName, [Value | Rest]) ->
  -    case util:casegrep(Name, ["Allow", "Supported", "Require",
  -			      "Proxy-Require"]) of
  -	true ->
  -	    [Name ++ ": " ++ util:join(lists:append([Value], Rest), ", ")];
  -	_ ->
  -	    lists:append([Name ++ ": " ++ Value], print_one_header(Name, LCName, Rest))
  -    end.
  -
  -build_header(Header) ->
  -    case catch build_header_unsafe(Header) of
  -	{'EXIT', E} ->
  -	    logger:log(error, "=ERROR REPORT==== failed to build header ~p,~nfrom build_header_unsafe :~n~p", [Header, E]),
  -	    throw({siperror, 500, "Server Internal Error"});
  -	Res ->
  -	    Res
  -    end.
  -
  -build_header_unsafe(Header) ->
  -    Lines = keylist:map(fun print_one_header/3, Header),
  -    lists:map(fun(H) ->
  -			util:concat(H, "\r\n")
  -		end, Lines).
  -
  -get_tag([String]) ->
  -    Index = string:chr(String, $>),
  -    ParamStr = string:substr(String, Index + 1),
  -    ParamList = string:tokens(ParamStr, ";"),
  -    ParamDict = param_to_dict(ParamList),
  -    case dict:find("tag", ParamDict) of
  -	error ->
  -	    none;
  -	{ok, Tag} ->
  -	    Tag
  -    end.
  -
  -dialogueid(Header) ->
  -    get_dialogid(Header).
  -
  -via_sentby(Via) when record(Via, via) ->
  -    {Via#via.proto, Via#via.host, Via#via.port}.
  -
  -get_server_transaction_id(Request) ->
  -    case catch guarded_get_server_transaction_id(Request) of
  -	{'EXIT', E} ->
  -	    logger:log(error, "=ERROR REPORT==== from get_server_transaction_id(~p) :~n~p", [Request, E]),
  -	    error;
  -	Id ->
  -	    Id
  -    end.
  -
  -get_client_transaction_id(Response) ->
  -    case catch guarded_get_client_transaction_id(Response) of
  -	{'EXIT', E} ->
  -	    logger:log(error, "=ERROR REPORT==== from get_client_transaction_id(~p) :~n~p", [Response, E]),
  -	    error;
  -	Id ->
  -	    Id
  -    end.
  -
  -get_server_transaction_ack_id_2543(Request) ->
  -    % When using this function, you have to make sure the To-tag
  -    % of this ACK matches the To-tag of the response you think this
  -    % might be the ACK for! RFC3261 17.2.3
  -    case catch guarded_get_server_transaction_ack_id_2543(Request) of
  -	{'EXIT', E} ->
  -	    logger:log(error, "=ERROR REPORT==== from get_server_transaction_ack_id_2543(~p) :~n~p", [Request, E]),
  -	    error;
  -	Id ->
  -	    Id
  -    end.
  -
  -
  -guarded_get_server_transaction_id(Request) when record(Request, request) ->
  -    R = case Request#request.method of
  -	"ACK" ->
  -	    % RFC3261 17.2.3, when looking for server transaction for ACK, the method of the transaction is INVITE
  -	    Request#request{method="INVITE"};
  -	_ ->
  -	    Request
  -    end,	    
  -    TopVia = sipheader:topvia(R#request.header),
  -    Branch = get_via_branch(TopVia),
  -    case Branch of
  -	"z9hG4bK" ++ RestOfBranch ->
  -	    guarded_get_server_transaction_id_3261(R#request.method, TopVia);
  -	_ ->
  -	    guarded_get_server_transaction_id_2543(R, TopVia)
  -    end.
  -
  -guarded_get_server_transaction_ack_id_2543(Request) when record(Request, request) ->
  -    {URI, Header} = {Request#request.uri, Request#request.header},
  -    TopVia = remove_branch(sipheader:topvia(Header)),
  -    [CallID] = keylist:fetch("Call-ID", Header),
  -    {CSeqNum, _} = sipheader:cseq(keylist:fetch("CSeq", Header)),
  -    FromTag = sipheader:get_tag(keylist:fetch("From", Header)),
  -    ToTag = sipheader:get_tag(keylist:fetch("To", Header)),
  -    {URI, FromTag, CallID, CSeqNum, TopVia}.
  -
  -remove_branch(Via) when record(Via, via) ->
  -    ParamDict = sipheader:param_to_dict(Via#via.param),
  -    NewDict = dict:erase("branch", ParamDict),
  -    Via#via{param=sipheader:dict_to_param(NewDict)}.
  -
  -guarded_get_client_transaction_id(Response) when record(Response, response) ->
  -    Header = Response#response.header,
  -    TopVia = sipheader:topvia(Header),
  -    Branch = get_via_branch(TopVia),
  -    {_, CSeqMethod} = sipheader:cseq(keylist:fetch("CSeq", Header)),
  -    {Branch, CSeqMethod}.
  -
  -get_server_transaction_id_using_3261_response_header(Header) ->
  -    TopVia = topvia(Header),
  -    {_, CSeqMethod} = sipheader:cseq(keylist:fetch("CSeq", Header)),
  -    guarded_get_server_transaction_id_3261(CSeqMethod, TopVia).
  -
  +%%--------------------------------------------------------------------
  +%% Function:
  +%% Descrip.:
  +%% Returns :
  +%%--------------------------------------------------------------------
   guarded_get_server_transaction_id_3261(Method, TopVia) ->
       Branch = get_via_branch_full(TopVia),
       SentBy = via_sentby(TopVia),
  
positive.code: unquote(QString) ->
      QString.
  
  name_header(String) ->
      %logger:log(debug, "n: ~p", [String]),
      Index1 = string:rchr(String, $<),
  
negative.code: %%
  %% ACK
  %%
  guarded_get_server_transaction_id_2543(Request, _) when is_record(Request, request), Request#request.method == "ACK" ->
      is_2543_ack;
  %%
  %% non-ACK
  %%
  guarded_get_server_transaction_id_2543(Request, TopVia) when is_record(Request, request), is_record(TopVia, via) ->
      {URI, Header} = {Request#request.uri, Request#request.header},
      [CallID] = keylist:fetch("Call-Id", Header),
      CSeq = sipheader:cseq(keylist:fetch("CSeq", Header)),
      FromTag = sipheader:get_tag(keylist:fetch("From", Header)),
      ToTag = sipheader:get_tag(keylist:fetch("To", Header)),
      {URI, ToTag, FromTag, CallID, CSeq, TopVia}.
  