anchor.diff:      unregister(?MODULE),
       ok.
   
  +%% Scenario tested:
  +%% - client INVITE transaction is created
  +%% - 5xx response is received
   client_invite_err(Transport)->
       register(?MODULE, self()),
   
  
positive.code:     ?assertReceive("Expect ACK to be sent by tx layer",
                     {tp, _Conn, {request, Remote, ACK}}),
  
      % wait 32 seconds for unreliable transport only 
      sip_transport:is_reliable(Transport) orelse timer:sleep(32000),
  
      ?assertReceive("Expect tx to terminate after receiving final response",
  
negative.code:     unregister(?MODULE),
      ok.
  
  %% Scenario tested:
  %% - client INVITE transaction is created
  %% - nothing happens in 32 seconds
  %% - transaction terminates due to the timeout
  client_invite_timeout(Transport)->
      register(?MODULE, self()),
  
      Remote = sip_test:endpoint(Transport),
      Request = sip_test:invite(Transport),
  
      {ok, TxRef} = sip_transaction:start_tx(client, self(), Remote, Request),
      ?assertReceive("Expect first request to be sent by tx layer",
                     {tp, _Conn, {request, Remote, Request}}),
  
      timer:sleep(32000),
  
      ?assertReceive("Expect tx to terminate after timeout",
                     {tx, TxRef, {terminated, timeout}}),
  
      unregister(?MODULE),
      ok.
  
  -endif.