diff --git a/java/com/android/dialer/logging/dialer_impression.proto b/java/com/android/dialer/logging/dialer_impression.proto
index b1d038d..5d40bb1 100644
--- a/java/com/android/dialer/logging/dialer_impression.proto
+++ b/java/com/android/dialer/logging/dialer_impression.proto
@@ -12,7 +12,7 @@
   // Event enums to be used for Impression Logging in Dialer.
   // It's perfectly acceptable for this enum to be large
   // Values should be from 1000 to 100000.
-  // Next Tag: 1382
+  // Next Tag: 1387
   enum Type {
     UNKNOWN_AOSP_EVENT_TYPE = 1000;
 
@@ -754,5 +754,15 @@
     // Failure happened while enabling spam blocking through after call
     // notification promo.
     SPAM_BLOCKING_MODIFY_FAILURE_THROUGH_AFTER_CALL_NOTIFICATION_PROMO = 1381;
+
+    // RTT call impressions
+    OUTGOING_RTT_CALL = 1382;
+    INCOMING_RTT_CALL = 1383;
+    // The call turns into RTT call mid call.
+    RTT_MID_CALL_ENABLED = 1384;
+    // Mid call RTT request accepted.
+    RTT_MID_CALL_ACCEPTED = 1385;
+    // Mid call RTT request rejected.
+    RTT_MID_CALL_REJECTED = 1386;
   }
 }
diff --git a/java/com/android/incallui/call/CallList.java b/java/com/android/incallui/call/CallList.java
index eccdcee..6b17962 100644
--- a/java/com/android/incallui/call/CallList.java
+++ b/java/com/android/incallui/call/CallList.java
@@ -213,8 +213,22 @@
 
     if (call.getState() == DialerCall.State.INCOMING
         || call.getState() == DialerCall.State.CALL_WAITING) {
+      if (call.isActiveRttCall()) {
+        Logger.get(context)
+            .logCallImpression(
+                DialerImpression.Type.INCOMING_RTT_CALL,
+                call.getUniqueCallId(),
+                call.getTimeAddedMs());
+      }
       onIncoming(call);
     } else {
+      if (call.isActiveRttCall()) {
+        Logger.get(context)
+            .logCallImpression(
+                DialerImpression.Type.OUTGOING_RTT_CALL,
+                call.getUniqueCallId(),
+                call.getTimeAddedMs());
+      }
       onUpdateCall(call);
       notifyGenericListeners();
     }
diff --git a/java/com/android/incallui/call/DialerCall.java b/java/com/android/incallui/call/DialerCall.java
index 3b7e4dc..c153503 100644
--- a/java/com/android/incallui/call/DialerCall.java
+++ b/java/com/android/incallui/call/DialerCall.java
@@ -312,6 +312,13 @@
         @Override
         public void onRttStatusChanged(Call call, boolean enabled, RttCall rttCall) {
           LogUtil.v("TelecomCallCallback.onRttStatusChanged", "enabled=%b", enabled);
+          if (enabled) {
+            Logger.get(context)
+                .logCallImpression(
+                    DialerImpression.Type.RTT_MID_CALL_ENABLED,
+                    getUniqueCallId(),
+                    getTimeAddedMs());
+          }
           update();
         }
 
@@ -1064,6 +1071,13 @@
 
   @TargetApi(28)
   public void respondToRttRequest(boolean accept, int rttRequestId) {
+    Logger.get(context)
+        .logCallImpression(
+            accept
+                ? DialerImpression.Type.RTT_MID_CALL_ACCEPTED
+                : DialerImpression.Type.RTT_MID_CALL_REJECTED,
+            getUniqueCallId(),
+            getTimeAddedMs());
     getTelecomCall().respondToRttRequest(rttRequestId, accept);
   }
 
