anchor.diff:      ok = gen_udp:close(?config(udp, Config)),
       ok.
   
  -end_per_suite(Config) ->
  -    ok = meck:unload(?config(mocked, Config)),
  -
  -    % force transport layer supervisor to exit
  -    true = exit(?config(transport_sup_pid, Config), kill),
  -
  -    ok = application:stop(gproc),
  -    ok.
  -
   %% Tests for RFC 3261 18.1.1 Sending Requests
  +
  +%% - send invite via UDP transport
  +%% - receive the request through the socket
   send_request_udp(Config) ->
       UDP = ?config(udp, Config),
   
  
positive.code: 
      [{transport_sup_pid, Pid}, {mocked, [sip_config, sip_cores]} | Config].
  
  init_per_group(_Group, Config) -> Config.
  end_per_group(_Group, Config) -> ok.
  
  init_per_testcase(_TestCase, Config) ->
      {ok, UDP} = gen_udp:open(25060,
                               [inet, binary,
  
negative.code:          init_per_testcase/2, end_per_testcase/2]).
  
  % test cases
  -export([send_request_udp/1, send_request_udp_multicast/1]).
  -export([receive_response_udp/1, receive_response_udp_wrong/1]).
  -export([receive_request_udp/1, receive_request_udp2/1]).
  -export([send_response_udp_maddr/1, send_response_udp_default_port/1]).
  -export([receive_request_send_response_tcp/1,
           receive_request_send_response_tcp_reconnect/1,
           send_request_udp_fallback_tcp/1]).
  
  all() ->
      [{group, udp}, {group, tcp}].
  
  groups() ->
      [% tests using UDP socket
       {udp, [],
        [send_request_udp,
         send_request_udp_multicast,
         receive_response_udp,
         receive_response_udp_wrong,
  