anchor.diff:  %% Descrip.: Create a response given a request.
   %% Returns : Response = response record()
   %%--------------------------------------------------------------------
  -make_response(Status, Reason, Body, ExtraHeaders, ViaParameters, SipSocket, Request) when record(SipSocket, sipsocket) ->
  +make_response(Status, Reason, Body, ExtraHeaders, ViaParameters, SipSocket, Request)
  +  when is_record(SipSocket, sipsocket) ->
       make_response(Status, Reason, Body, ExtraHeaders, ViaParameters, SipSocket#sipsocket.proto, Request);
  -make_response(Status, Reason, Body, ExtraHeaders, ViaParameters, Proto, Request) when record(Request, request) ->
  +make_response(Status, Reason, Body, ExtraHeaders, ViaParameters, Proto, Request)
  +  when is_record(Request, request) ->
       ReqHeader = Request#request.header,
       AnswerHeader1 = keylist:appendlist(keylist:copy(ReqHeader, ["Via", "From", "To", "Call-ID", "CSeq",
   								"Record-Route", "Timestamp", "Content-Type"]),
  
positive.code: %%
  %% Turn Dst into a list()
  %%
  send_proxy_request(SrvTHandler, Request, Dst, ViaParameters) when record(Dst, sipdst) ->
      send_proxy_request(SrvTHandler, Request, [Dst], ViaParameters);
  
  %%
  %% Explicit destination(s) provided, just send
  %%
  send_proxy_request(SrvTHandler, Request, [Dst | DstT], ViaParameters) when record(Request, request), record(Dst, sipdst) ->
      {Method, OrigURI, Header, Body} = {Request#request.method, Request#request.uri,
  				       Request#request.header, Request#request.body},
      {ok, NewHeader1, ApproxMsgSize} = check_proxy_request(Request),
      DstList = [Dst | DstT],
      logger:log(debug, "Siprequest (transport layer) : Destination list for request is (~p entrys) :~n~p",
  	       [length(DstList), sipdst:debugfriendly(DstList)]),
  
negative.code: %%           Branch = string(), the branch we put in the Via header
  %%           Reason = string()
  %%--------------------------------------------------------------------
  send_to_available_dst([], Request, _ViaParam, _SrvTHandler) when is_record(Request, request) ->
      Line1 = Request#request.method ++ " " ++ sipurl:print(Request#request.uri) ++ " SIP/2.0",
      lists:flatten(Message = Line1 ++ "\r\n" ++ sipheader:build_header(Request#request.header) ++ "\r\n" ++ Request#request.body),
      logger:log(debug, "Siprequest (transport layer) : Failed sending request (my Via not added, original URI shown) :~n~s", [Message]),
      {senderror, "failed"};
  send_to_available_dst([Dst | DstT], Request, ViaParam, SrvTHandler)
    when is_record(Dst, sipdst), is_record(Request, request) ->
      IP = Dst#sipdst.addr,
      Port = Dst#sipdst.port,
      Proto = Dst#sipdst.proto,
  