anchor.diff:      {URI, FromTag, CallID, FakeCSeq, TopVia}.
   
   remove_branch(Via) when is_record(Via, via) ->
  -    ParamDict = sipheader:param_to_dict(Via#via.param),
  +    ParamDict = param_to_dict(Via#via.param),
       NewDict = dict:erase("branch", ParamDict),
  -    Via#via{param=sipheader:dict_to_param(NewDict)}.
  +    Via#via{param = dict_to_param(NewDict)}.
   
   %%--------------------------------------------------------------------
   %% Function: get_via_branch(TopVia)
  
positive.code: %%
  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 = sipheader:callid(Header),
      CSeq = sipheader:cseq(Header),
      FromTag = sipheader:get_tag(keylist:fetch('from', Header)),
      ToTag = sipheader:get_tag(keylist:fetch('to', Header)),
      {URI, ToTag, FromTag, CallID, CSeq, TopVia}.
  
  
  
negative.code:     end.
  
  guarded_get_server_transaction_id(Request) when is_record(Request, request) ->
      TopVia = topvia(Request#request.header),
      %% XXX the branch is actually a token and should apparently be compared case-insensitively
      %% http://bugs.sipit.net/show_bug.cgi?id=661
      Branch = get_via_branch(TopVia),
  