anchor.diff:  	RadiusAttributes = radius_attributes:codec(Attributes),
   	RadiusReserveSessionTime = radius_attributes:fetch(?SessionTimeout, RadiusAttributes).
   
  +auth_data_fail() ->
  +	[{userdata, [{doc, "Successful authenticate and authorize data"}]}].
  +
  +auth_data_fail(Config) ->
  +	PackagePrice = 1,
  +	PackageSize = 1000000,
  +	P1 = price(usage, octets, PackageSize, PackagePrice),
  +	OfferId = add_offer([P1], 8),
  +	ProdRef = add_product(OfferId, []),
  +	#service{name = UserName, password = PeerPassword} =  add_service(ProdRef),
  +	Id = 1,
  +	NasId = ?config(nas_id, Config),
  +	CallingStationId = "99771234567",
  +	CalledStationId = "99771234568",
  +	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, "92641849", A4),
  +	A6 = radius_attributes:add(?CallingStationId, CallingStationId, A5),
  +	A7 = radius_attributes:add(?CalledStationId, CalledStationId, A6),
  +	A8 = radius_attributes:add(?UserPassword, UserPassword, A7),
  +	A9 = radius_attributes:add(?NasIdentifier, NasId, A8),
  +	AccessReqest = #radius{code = ?AccessRequest, id = Id,
  +			authenticator = Authenticator, attributes = A9},
  +	AccessReqestPacket= radius:codec(AccessReqest),
  +	ok = gen_udp:send(Socket, AuthAddress, AuthPort, AccessReqestPacket),
  +	{ok, {AuthAddress, AuthPort, AccessAcceptPacket}} = gen_udp:recv(Socket, 0),
  +	#radius{code = ?AccessReject, id = Id} = radius:codec(AccessAcceptPacket).
  +
   client_authorized() ->
   	[{userdata, [{doc, "Authorize a Diameter Peer"}]}].
   
  
positive.code: 		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),
  
negative.code: 	true = is_record(Answer1, diameter_nas_app_STA),
  	#diameter_nas_app_STA{'Result-Code' = ?'DIAMETER_BASE_RESULT-CODE_SUCCESS'} = Answer1.
  
  authenticate_voice() ->
  	[{userdata, [{doc, "Successful authenticate and authorize voice call"}]}].
  
  authenticate_voice(Config) ->
  	PackagePrice = 1,
  	PackageSize = 2,
  	P1 = price(usage, seconds, PackageSize, PackagePrice),
  	OfferId = add_offer([P1], 9),
  	ProdRef = add_product(OfferId, []),
  	#service{name = UserName, password = PeerPassword} =  add_service(ProdRef),
  	Id = 1,
  	NasId = ?config(nas_id, Config),
  	CallingStationId = "99771234567",
  	CalledStationId = "99771234568",
  	B1 = bucket(cents, 3000),
  	_BId = add_bucket(ProdRef, B1),
  	RadiusReserveSessionTime = 60,
  	Authenticator = radius:authenticator(),
  	SharedSecret = ct:get_config({radius, secret}),
  	UserPassword = radius_attributes:hide(SharedSecret, Authenticator, PeerPassword),
  