anchor.diff:                {'Destination-Realm', DR},
                 {'Auth-Application-Id', ?APP_ID}]).
   
  -%% prepare_retransmit/4
  -
  -prepare_retransmit(_Pkt, false, _Peer, _Name) ->
  +%% prepare_retransmit/5
  +
  +prepare_retransmit(_Pkt, false, _Peer, _Name, _Id) ->
       discard.
   
  -%% handle_answer/5/6
  -
  -handle_answer(Pkt, Req, ?CLIENT, Peer, Name) ->
  +%% handle_answer/6-7
  +
  +handle_answer(Pkt, Req, ?CLIENT, Peer, Name, _Id) ->
       answer(Pkt, Req, Peer, Name).
   
  -handle_answer(Pkt, _Req, ?CLIENT, _Peer, send_detach, {Pid, Ref}) ->
  +handle_answer(Pkt, _Req, ?CLIENT, _Peer, send_detach, _Id, {Pid, Ref}) ->
       Pid ! {Ref, Pkt}.
   
   answer(#diameter_packet{msg = Rec, errors = []}, _Req, _Peer, _) ->
       Rec.
   
  -%% handle_error/5
  -
  -handle_error(Reason, _Req, ?CLIENT, _Peer, _Name) ->
  +%% handle_error/6
  +
  +handle_error(Reason, _Req, ?CLIENT, _Peer, _Name, _Id) ->
       {error, Reason}.
   
   %% handle_request/3
  
positive.code: %% diameter callbacks
  -export([peer_up/3,
           peer_down/3,
           pick_peer/5, pick_peer/6,
           prepare_request/4, prepare_request/5,
           prepare_retransmit/4,
           handle_answer/5, handle_answer/6,
           handle_error/5,
           handle_request/3]).
  
  -include("diameter.hrl").
  
negative.code: 
  all() ->
      [start, start_services, add_transports, result_codes]
          ++ [{group, name([E,C]), P} || E <- ?ENCODINGS,
                                         C <- ?CONNECTIONS,
                                         P <- [[], [parallel]]]
          ++ [remove_transports, stop_services, stop].
  
  groups() ->
      Ts = tc(),
      [{name([E,C]), [], Ts} || E <- ?ENCODINGS, C <- ?CONNECTIONS].
  
  init_per_group(Name, Config) ->
      [{group, Name} | Config].
  