anchor.diff:  %% Initiation before each test case.
   %%
   init_per_testcase(TestCase, Config) when
  -		TestCase == simple_authentication_diameter; TestCase == bad_password_diameter;
  -		TestCase == unknown_username_diameter; TestCase == out_of_credit_diameter;
  -		TestCase == session_termination_diameter ->
  -	{ok, DiameterConfig} = application:get_env(ocs, diameter),
  -	{auth, [{Address, _, _} | _]} = lists:keyfind(auth, 1, DiameterConfig),
  -	{ok, _} = ocs:add_client(Address, undefined, diameter, undefined, true),
  -	Config;
  +		TestCase == simple_authentication_radius;
  +		TestCase == simple_auth_radius_chap;
  +		TestCase == out_of_credit_radius;
  +		TestCase == bad_password_radius;
  +		TestCase == unknown_username_radius;
  +		TestCase == authenticate_voice_call ->
  +	Address = ct:get_config({radius, peer_address}),
  +	SharedSecret = ct:get_config({radius, secret}),
  +	{ok, _} = ocs:add_client(Address, 3799, radius, SharedSecret, true),
  +	{ok, Socket} = gen_udp:open(0, [{active, false}, inet, {ip, Address}, binary]),
  +	lists:keystore(socket, 1, Config, {socket, Socket});
   init_per_testcase(TestCase, Config) when
  -		TestCase == client_authorized;
  -		TestCase == client_not_authorized ->
  -	ok = diameter:stop_service(?MODULE),
  +		TestCase == simple_authentication_diameter;
  +		TestCase == bad_password_diameter;
  +		TestCase == unknown_username_diameter;
  +		TestCase == out_of_credit_diameter;
  +		TestCase == session_termination_diameter;
  +		TestCase == authenticate_voice_call;
  +		TestCase == client_authorized ->
  +	DiameterPeerAddress = ct:get_config({radius, peer_address}),
  +	{ok, _} = ocs:add_client(DiameterPeerAddress, undefined, diameter, undefined, true),
   	Config;
   init_per_testcase(_TestCase, Config) ->
  -	NasId = atom_to_list(node()),
  -	CalledStationId = "E4-8D-8C-D6-E0-AC:TestSSID",
  -	Config1 = [{nas_id, NasId}, {called_id, CalledStationId} | Config],
  -	SharedSecret = ct:get_config({radius, secret}),
  -	{ok, _} = ocs:add_client({127, 0, 0, 1}, 3799, radius, SharedSecret, true),
  -	{ok, RadiusConfig} = application:get_env(ocs, radius),
  -	{auth, [{Address, _, _} | _]} = lists:keyfind(auth, 1, RadiusConfig),
  -	{ok, Socket} = gen_udp:open(0, [{active, false}, inet, {ip, Address}, binary]),
  -	[{socket, Socket} | Config1].
  +	Config.
   
   -spec end_per_testcase(TestCase :: atom(), Config :: [tuple()]) -> any().
   %% Cleanup after each test case.
   %%
  -end_per_testcase(TestCase, Config) when
  -		TestCase == simple_authentication_diameter; TestCase == bad_password_diameter;
  -		TestCase == unknown_username_diameter; TestCase == out_of_credit_diameter;
  -		TestCase == session_termination_diameter ->
  -	Client = ?config(diameter_acct_address, Config),
  -	ok = ocs:delete_client(Client);
  -end_per_testcase(TestCase, Config) when
  -		TestCase == client_authorized;
  -		TestCase == client_not_authorized ->
  +end_per_testcase(client_authorized = TestCase, Config) ->
  +	DiameterPeerAddress = ct:get_config({diameter, peer_address}),
  +	ok = ocs:delete_client(DiameterPeerAddress),
   	ServiceName = atom_to_list(?MODULE) ++ ":" ++ TestCase,
  -	Address = ct:get_config({diameter, peer_address}, {127,0,0,21}),
  -	ok = ocs:delete_client(Address),
   	ok = diameter:stop_service(ServiceName),
   	ok = diameter:remove_transport(ServiceName, true),
  -	ok = diameter:start_service(?MODULE, client_service_opts(Config)),
  +	Config;
  +end_per_testcase(TestCase, Config) when
  +		TestCase == simple_authentication_radius;
  +		TestCase == simple_auth_radius_chap;
  +		TestCase == out_of_credit_radius;
  +		TestCase == bad_password_radius;
  +		TestCase == unknown_username_radius;
  +		TestCase == authenticate_voice_call ->
  +	Address = ct:get_config({radius, peer_address}),
  +	ok = ocs:delete_client(Address),
  +	Socket = ?config(socket, Config),
  +	ok = gen_udp:close(Socket);
  +end_per_testcase(TestCase, Config) when
  +		TestCase == simple_authentication_diameter;
  +		TestCase == bad_password_diameter;
  +		TestCase == unknown_username_diameter;
  +		TestCase == out_of_credit_diameter;
  +		TestCase == session_termination_diameter;
  +		TestCase == authenticate_voice_call;
  +		TestCase == client_authorized ->
  +	Address = ct:get_config({diameter, peer_address}),
  +	ok = ocs:delete_client(Address),
   	Config;
   end_per_testcase(_TestCase, Config) ->
  -	Socket = ?config(socket, Config),
  -	ok = 	gen_udp:close(Socket).
  +	Config.
   
   -spec sequences() -> Sequences :: [{SeqName :: atom(), Testcases :: [atom()]}].
   %% Group test cases into a test sequence.
   %%
  -sequences() -> 
  +sequences() ->
   	[].
   
   -spec all() -> TestCases :: [Case :: atom()].
   %% Returns a list of all test cases in this test suite.
   %%
  -all() -> 
  +all() ->
   	[simple_authentication_radius, simple_auth_radius_chap, out_of_credit_radius,
   	bad_password_radius, unknown_username_radius, simple_authentication_diameter,
   	bad_password_diameter, unknown_username_diameter, out_of_credit_diameter,
  
positive.code: 	P1 = price(usage, octets, rand:uniform(1000000), rand:uniform(100)),
  	OfferId = add_offer([P1], 4),
  	ProdRef = add_product(OfferId),
  	#service{name = PeerID,
  			password = PeerPassword} =  add_service(ProdRef),
  	CalledStationId = ?config(called_id, Config),
  	MAC = "DD:EE:DD:EE:CC:BB",
  
negative.code: 	CallingStationId = string:join(MACtokens, "-"),
  	Authenticator = radius:authenticator(),
  	SharedSecret = ct:get_config({radius, secret}),
  	UserPassword = radius_attributes:hide(SharedSecret, Authenticator, PeerPassword),
  	{ok, RadiusConfig} = application:get_env(ocs, radius),
  	{auth, [{AuthAddress, AuthPort, _} | _]} = lists:keyfind(auth, 1, RadiusConfig),
  	Socket = ?config(socket, Config),
  	A0 = radius_attributes:new(),
  	A1 = radius_attributes:add(?ServiceType, 2, A0),
  	A2 = radius_attributes:add(?NasPortId, "wlan1", A1),
  	A3 = radius_attributes:add(?NasPortType, 19, A2),
  	A4 = radius_attributes:add(?UserName, binary_to_list(UserName), A3),
  	A5 = radius_attributes:add(?AcctSessionId, "826005e0", A4),
  	A6 = radius_attributes:add(?CallingStationId, CallingStationId, A5),
  	A7 = radius_attributes:add(?CalledStationId, CalledStationId, A6),
  