diff --git a/api/BUILD.gn b/api/BUILD.gn
index 6d9b7c1..906ae63 100644
--- a/api/BUILD.gn
+++ b/api/BUILD.gn
@@ -73,6 +73,7 @@
   deps = [
     ":array_view",
     "..:webrtc_common",
+    "units:timestamp",
     "video:video_frame",
     "video:video_rtp_headers",
     "//third_party/abseil-cpp/absl/types:optional",
diff --git a/api/rtp_headers.h b/api/rtp_headers.h
index a7ae5cd..cdf1e28 100644
--- a/api/rtp_headers.h
+++ b/api/rtp_headers.h
@@ -17,6 +17,7 @@
 
 #include "absl/types/optional.h"
 #include "api/array_view.h"
+#include "api/units/timestamp.h"
 #include "api/video/color_space.h"
 #include "api/video/video_content_type.h"
 #include "api/video/video_frame_marking.h"
@@ -42,6 +43,15 @@
   RTPHeaderExtension(const RTPHeaderExtension& other);
   RTPHeaderExtension& operator=(const RTPHeaderExtension& other);
 
+  static constexpr int kAbsSendTimeFraction = 18;
+
+  Timestamp GetAbsoluteSendTimestamp() const {
+    RTC_DCHECK(hasAbsoluteSendTime);
+    RTC_DCHECK(absoluteSendTime < (1ul << 24));
+    return Timestamp::us((absoluteSendTime * 1000000L) /
+                         (1 << kAbsSendTimeFraction));
+  }
+
   bool hasTransmissionTimeOffset;
   int32_t transmissionTimeOffset;
   bool hasAbsoluteSendTime;
diff --git a/api/transport/network_types.h b/api/transport/network_types.h
index dfb89d2..a415c09 100644
--- a/api/transport/network_types.h
+++ b/api/transport/network_types.h
@@ -102,6 +102,7 @@
 };
 
 struct ReceivedPacket {
+  Timestamp send_time = Timestamp::MinusInfinity();
   Timestamp receive_time = Timestamp::PlusInfinity();
   DataSize size = DataSize::Zero();
 };
diff --git a/call/call.cc b/call/call.cc
index a25e161..fe922e4 100644
--- a/call/call.cc
+++ b/call/call.cc
@@ -1500,6 +1500,9 @@
   ReceivedPacket packet_msg;
   packet_msg.size = DataSize::bytes(packet.payload_size());
   packet_msg.receive_time = Timestamp::ms(packet.arrival_time_ms());
+  if (header.extension.hasAbsoluteSendTime) {
+    packet_msg.send_time = header.extension.GetAbsoluteSendTimestamp();
+  }
   transport_send_ptr_->OnReceivedPacket(packet_msg);
 
   if (!use_send_side_bwe && header.extension.hasTransportSequenceNumber) {
diff --git a/modules/remote_bitrate_estimator/remote_bitrate_estimator_abs_send_time.cc b/modules/remote_bitrate_estimator/remote_bitrate_estimator_abs_send_time.cc
index ed2d061..61dd3e2 100644
--- a/modules/remote_bitrate_estimator/remote_bitrate_estimator_abs_send_time.cc
+++ b/modules/remote_bitrate_estimator/remote_bitrate_estimator_abs_send_time.cc
@@ -36,9 +36,9 @@
 
 enum {
   kTimestampGroupLengthMs = 5,
-  kAbsSendTimeFraction = 18,
   kAbsSendTimeInterArrivalUpshift = 8,
-  kInterArrivalShift = kAbsSendTimeFraction + kAbsSendTimeInterArrivalUpshift,
+  kInterArrivalShift = RTPHeaderExtension::kAbsSendTimeFraction +
+                       kAbsSendTimeInterArrivalUpshift,
   kInitialProbingIntervalMs = 2000,
   kMinClusterSize = 4,
   kMaxProbePackets = 15,
@@ -61,9 +61,10 @@
 
 uint32_t ConvertMsTo24Bits(int64_t time_ms) {
   uint32_t time_24_bits =
-      static_cast<uint32_t>(
-          ((static_cast<uint64_t>(time_ms) << kAbsSendTimeFraction) + 500) /
-          1000) &
+      static_cast<uint32_t>(((static_cast<uint64_t>(time_ms)
+                              << RTPHeaderExtension::kAbsSendTimeFraction) +
+                             500) /
+                            1000) &
       0x00FFFFFF;
   return time_24_bits;
 }
