anchor.diff:  
   %%--------------------------------------------------------------------
   %% Function: parse_packet(Packet, Origin) ->
  -%%           parse_packet(Packet)
   %%           Packet = binary()
   %%           Origin = siporigin record() | none
   %% Descrip.: Parse a request/response. Extract the first line
  
positive.code: 	is_record(Origin, siporigin) ->
  	    OriginStr = sipserver:origin2str(Origin),
  	    %% Extract receiver pid if present
  	    RStr = case Origin of
  		       _ when is_record(Origin, siporigin) ->
  			   "(connection handler: " ++ pid_to_list(Origin#siporigin.receiver) ++ ") ";
  		       _ ->
  			   ""
  		   end,
  	    logger:log_iolist(debug, [<<"Packet from ">>, OriginStr, 32, RStr, $:, 10, Packet, 10]);
  
negative.code: 
  %%--------------------------------------------------------------------
  %% Function: parse(Packet, Origin)
  %%           Packet = binary() | string()
  %%           Origin = siporigin record() | none
  %% Descrip.: Parse a packet received from the network into either a
  %%           request or a response record()
  %% Returns : Request   |
  %%           Response  |
  %%           keepalive |
  %%           throw()
  %%           Request  = request record()
  %%           Response = response record()
  %%           Status   = integer(), SIP status code
  %%           Reason   = string(), SIP reason phrase
  %%--------------------------------------------------------------------
  parse(Packet, Origin) when is_binary(Packet), Origin == none; is_record(Origin, siporigin) ->
      case parse_packet(Packet, Origin) of
  	keepalive ->
  	    keepalive;
  