diff --git a/call/BUILD.gn b/call/BUILD.gn
index 4cc42fd..39ae769 100644
--- a/call/BUILD.gn
+++ b/call/BUILD.gn
@@ -57,6 +57,7 @@
     "../api/audio_codecs:audio_codecs_api",
     "../api/crypto:frame_encryptor_interface",
     "../api/crypto:options",
+    "../api/environment",
     "../api/metronome",
     "../api/neteq:neteq_api",
     "../api/task_queue",
@@ -486,8 +487,8 @@
         "../api:rtp_parameters",
         "../api:transport_api",
         "../api/audio_codecs:builtin_audio_decoder_factory",
-        "../api/rtc_event_log",
-        "../api/task_queue:default_task_queue_factory",
+        "../api/environment",
+        "../api/environment:environment_factory",
         "../api/test/video:function_video_factory",
         "../api/transport:field_trial_based_config",
         "../api/units:timestamp",
diff --git a/call/call.cc b/call/call.cc
index 071b34e..42b3b98 100644
--- a/call/call.cc
+++ b/call/call.cc
@@ -474,7 +474,8 @@
 }
 
 std::unique_ptr<Call> Call::Create(const CallConfig& config) {
-  Clock* clock = Clock::GetRealTimeClock();
+  Clock* clock =
+      config.env.has_value() ? &config.env->clock() : Clock::GetRealTimeClock();
   return Create(config, clock,
                 RtpTransportControllerSendFactory().Create(
                     config.ExtractTransportConfig(), clock));
diff --git a/call/call_config.cc b/call/call_config.cc
index 23b60ce..5832969 100644
--- a/call/call_config.cc
+++ b/call/call_config.cc
@@ -14,6 +14,14 @@
 
 namespace webrtc {
 
+CallConfig::CallConfig(const Environment& env,
+                       TaskQueueBase* network_task_queue)
+    : env(env),
+      event_log(&env.event_log()),
+      task_queue_factory(&env.task_queue_factory()),
+      trials(&env.field_trials()),
+      network_task_queue_(network_task_queue) {}
+
 CallConfig::CallConfig(RtcEventLog* event_log,
                        TaskQueueBase* network_task_queue /* = nullptr*/)
     : event_log(event_log), network_task_queue_(network_task_queue) {
diff --git a/call/call_config.h b/call/call_config.h
index 6b1c192..1b1f696 100644
--- a/call/call_config.h
+++ b/call/call_config.h
@@ -10,6 +10,8 @@
 #ifndef CALL_CALL_CONFIG_H_
 #define CALL_CALL_CONFIG_H_
 
+#include "absl/types/optional.h"
+#include "api/environment/environment.h"
 #include "api/fec_controller.h"
 #include "api/field_trials_view.h"
 #include "api/metronome/metronome.h"
@@ -32,12 +34,23 @@
   // If `network_task_queue` is set to nullptr, Call will assume that network
   // related callbacks will be made on the same TQ as the Call instance was
   // constructed on.
+  explicit CallConfig(const Environment& env,
+                      TaskQueueBase* network_task_queue = nullptr);
+
+  // TODO(bugs.webrtc.org/15656): Deprecate and delete constructor below.
   explicit CallConfig(RtcEventLog* event_log,
                       TaskQueueBase* network_task_queue = nullptr);
+
   CallConfig(const CallConfig&);
-  RtpTransportConfig ExtractTransportConfig() const;
+
   ~CallConfig();
 
+  RtpTransportConfig ExtractTransportConfig() const;
+
+  // TODO(bugs.webrtc.org/15656): Make non-optional when constructor that
+  // doesn't pass Environment is removed.
+  absl::optional<Environment> env;
+
   // Bitrate config used until valid bitrate estimates are calculated. Also
   // used to cap total bitrate used. This comes from the remote connection.
   BitrateConstraints bitrate_config;
diff --git a/call/call_unittest.cc b/call/call_unittest.cc
index 886a15a..41394b9 100644
--- a/call/call_unittest.cc
+++ b/call/call_unittest.cc
@@ -17,12 +17,11 @@
 
 #include "absl/strings/string_view.h"
 #include "api/audio_codecs/builtin_audio_decoder_factory.h"
+#include "api/environment/environment.h"
+#include "api/environment/environment_factory.h"
 #include "api/media_types.h"
-#include "api/rtc_event_log/rtc_event_log.h"
-#include "api/task_queue/default_task_queue_factory.h"
 #include "api/test/mock_audio_mixer.h"
 #include "api/test/video/function_video_encoder_factory.h"
-#include "api/transport/field_trial_based_config.h"
 #include "api/units/timestamp.h"
 #include "api/video/builtin_video_bitrate_allocator_factory.h"
 #include "audio/audio_receive_stream.h"
@@ -54,7 +53,6 @@
 
 struct CallHelper {
   explicit CallHelper(bool use_null_audio_processing) {
-    task_queue_factory_ = CreateDefaultTaskQueueFactory();
     AudioState::Config audio_state_config;
     audio_state_config.audio_mixer = rtc::make_ref_counted<MockAudioMixer>();
     audio_state_config.audio_processing =
@@ -63,10 +61,8 @@
             : rtc::make_ref_counted<NiceMock<MockAudioProcessing>>();
     audio_state_config.audio_device_module =
         rtc::make_ref_counted<MockAudioDeviceModule>();
-    CallConfig config(&event_log_);
+    CallConfig config(CreateEnvironment());
     config.audio_state = AudioState::Create(audio_state_config);
-    config.task_queue_factory = task_queue_factory_.get();
-    config.trials = &field_trials_;
     call_ = Call::Create(config);
   }
 
@@ -74,9 +70,6 @@
 
  private:
   RunLoop loop_;
-  RtcEventLogNull event_log_;
-  FieldTrialBasedConfig field_trials_;
-  std::unique_ptr<TaskQueueFactory> task_queue_factory_;
   std::unique_ptr<Call> call_;
 };
 
