anchor.diff:  	 make_answerheader/1,
   	 add_record_route/2,
   	 add_record_route/4,
  +	 construct_record_route/1,
  +	 construct_record_route/3,
   	 myhostname/0,
   	 create_via/2,
   	 get_loop_cookie/3,
  
positive.code: 	    logger:log(debug, "Siprequest: NOT adding Record-Route since the first Record-Route matches mine"),
  	    Header;
  	false ->
  	    [Route] = sipheader:contact_print([ contact:new(none, RouteStr, []) ]),
  	    keylist:prepend({"Record-Route", [Route]}, Header)
      end.
  %%--------------------------------------------------------------------
  %% Function: add_record_route(URL, Header)
  %%           URL    = sipurl record(), original Request-URI
  %%           Header = keylist record()
  %% Descrip.: Prepend a Record-Route header for this proxy, based on
  %%           the original Request-URI, to Header.
  %% Returns : NewHeader = keylist record()
  %%--------------------------------------------------------------------
  add_record_route(URL, Header) when is_record(URL, sipurl) ->
      Proto =
  	case URL#sipurl.proto of
  	    "sips" ->
  		"sips";
  	    _ ->
  		%% Create sip: Record-Route for everything except SIPS-URIs
  		"sip"
  	end,
      URLport = sipsocket:default_port(URL#sipurl.proto, none),
      MyPort = case URL#sipurl.proto of
  		 "sips" -> sipsocket:get_listenport(tls);
  		 _ -> sipsocket:get_listenport(udp)
  	     end,
      %% If we are listening on the default port for the protocol in URL, we don't
      %% need to set a port in the Record-Route. If not however, we need to set the
      %% port because otherwise Cisco 79xx phones (version 7.5) will put port 5060
  
negative.code: 	       false ->
  		   MyPort
  	   end,
      construct_record_route(RRProto, myhostname(), Port);
      
  %% Returns : RRStr = string(), URL enclosed in "<>"
  construct_record_route(Proto, Hostname, Port) ->
      URL =
  	case yxa_config:get_env(record_route_url) of
  	    {ok, RRURL} ->
  		case {Proto, RRURL#sipurl.proto} of
  		    {"sips", "sip"} ->
  			%% Proto is SIPS, but RRURL's Proto is SIP. Upgrade SIP to SIPS.
  			sipurl:set([{proto, Proto}], RRURL);
  		    _ ->
  			RRURL
  		end;
  	    none ->
  		%% we use 'lr=true' instead of just 'lr' since some SIP stacks are known
  		%% to require that parameters are of the format 'key=value'.
  		Param1 = ["lr=true"],
  		case Port of
  		    none ->
  			%% It was requested that we don't include a port number.
  			sipurl:new([{proto, Proto}, {host, Hostname}, {param, Param1}]);
  		    _ when is_integer(Port) ->
  			sipurl:new([{proto, Proto}, {host, Hostname}, {port, Port}, {param, Param1}])
  		end
  	end,
      contact:print(contact:new(URL)).
  
  %%--------------------------------------------------------------------
  %% Function: standardcopy(Header, ExtraHeaders)
  