anchor.diff:  		ChargingKey, Flag, DebitAmounts,
   		ReserveAmounts, SessionAttributes)
   		when ((Protocol == radius) or (Protocol == diameter)),
  -		is_binary(SubscriberID), is_list(ServiceId),
  +		is_binary(SubscriberID),
   		(is_integer(ChargingKey) or (ChargingKey == undefined)),
  +		(is_integer(ServiceId) or (ServiceId== undefined)),
   		(is_integer(UnitSize) or (UnitSize == undefined)),
   		(is_integer(UnitPrice) or (UnitPrice == undefined)),
   		(is_integer(Units) or (Units == undefined)),
  
positive.code: 	FilteredPrices2 = filter_prices_key(ChargingKey, FilteredPrices1),
  	FilteredPrices3 = filter_prices_tod(Timestamp, FilteredPrices2),
  	case filter_prices_dir(Direction, FilteredPrices3) of
  		[#price{units = Units, type = PriceType, size = UnitSize, amount = UnitPrice,
  				currency = Currency, char_value_use = PriceChars} = Price | _] ->
  			RoamingTable = roaming_table_prefix(Price),
  
negative.code: 				DeletedBuckets, AccBalance}} ->
  			ok = send_notifications(DeletedBuckets),
  			ok = notify_accumulated_balance(AccBalance),
  			{out_of_credit, RedirectServerAddress, SL};
  		{atomic, {{pla_ref, Price}, _}} ->
  			{ok,  {pla_ref, Price}};
  		{aborted, Reason} ->
  			{error, Reason}
  	end.
  