anchor.diff:  		{ok, _, {_, Amount} = GrantedAmount, _} when Amount > 0 ->
   			ResultCode2 = ?'DIAMETER_BASE_RESULT-CODE_SUCCESS',
   			MSCC = #{"grantedUnit" => granted_unit(GrantedAmount),
  -					"serviceId" => ServiceId, "ratingGroup" => ChargingKey,
  +					"serviceId" => SI1, "ratingGroup" => RG1,
   					"resultCode" => ResultCode2},
   			charge(Subscribers, ServiceRating, T1, SessionId, Flag, [MSCC | Acc1], ResultCode2);
   		{ok, #service{}, _} ->
  
positive.code: 				Address, Direction, interim, SessionId, Amounts) of
  			{{MSCC2, ResultCode}, [], []} ->
  				{ok, MSCC2, ResultCode};
  			{{MSCC2, _ResultCode}, PLA, Amounts} ->
  				{ok, get_ref(SessionId), PLA, Amounts, MSCC2};
  			{error, Reason} ->
  				{error, Reason}
  		end,
  		case RfResponse of
  			{ok, ServiceRating, PLA1, Amounts1, MSCC3} ->
  				case charge(Subscribers, ServiceRating, Amounts1, SessionId, interim) of
  					{ok, NewMSCC1, ResultCode1} ->
  						Container = build_container(MSCC1),
  						NewMSCC3 = build_mscc(NewMSCC1 ++ MSCC3, Container),
  
negative.code: 			end,
  			MSCC = case RedirectServerAddress of
  				undefined ->
  					#{"serviceId" => SI1, "ratingGroup" => RG1,
  							"resultCode" => ResultCode2};
  				RedirectServerAddress when is_list(RedirectServerAddress) ->
  					#{"serviceId" => SI1, "ratingGroup" => RG1,
  							"finalUnitIndication" => fui(RedirectServerAddress),
  							"resultCode" => ResultCode2}
  			end,
  