anchor.diff:  %%           {proxy, Location}          |
   %%           {relay, Location}          |
   %%           {forward, Location}        |
  -%%           {me}                       |
  +%%           to_this_proxy              |
   %%           none
   %%--------------------------------------------------------------------
   route_request(Request, Origin, LogTag) when is_record(Request, request), is_list(LogTag) ->
  
positive.code: 	Index when is_integer(Index) ->
  	    BranchBase = string:substr(CallBranch, 1, Index - 1),
  	    BranchBase
      end.
  
  %%--------------------------------------------------------------------
  
negative.code: 	{proxy, route} ->
  	    logger:log(normal, "~s: incomingproxy: Proxy ~s according to Route header", [LogTag, Method]),
  	    proxy_request(THandler, Request, route);
  
  	{redirect, Loc} when is_record(Loc, sipurl) ->
  	    logger:log(normal, "~s: incomingproxy: Redirect ~s", [LogTag, sipurl:print(Loc)]),
  	    Contact = [contact:new(none, Loc, [])],
  	    ExtraHeaders = [{"Contact", sipheader:contact_print(Contact)}],
  	    transactionlayer:send_response_handler(THandler, 302, "Moved Temporarily", ExtraHeaders);
  
  	{relay, Loc} when is_record(Loc, sipurl); Loc == route; is_list(Loc) ->
  	    relay_request(THandler, Request, Loc, Origin, LogTag);
  
  	{forward, FwdURL} when is_record(FwdURL, sipurl), FwdURL#sipurl.user == none, FwdURL#sipurl.pass == none ->
  	    logger:log(normal, "~s: incomingproxy: Forward ~s ~s to ~s",
  		       [LogTag, Method, sipurl:print(URI), sipurl:print(FwdURL)]),
  	    forward_request(THandler, Request, FwdURL);
  
  	to_this_proxy ->
  	    request_to_me(THandler, Request, LogTag);
  
  	_ ->
  	    logger:log(error, "~s: incomingproxy: Invalid Location ~p", [LogTag, Location]),
  	    transactionlayer:send_response_handler(THandler, 500, "Server Internal Error")
  