diff --git a/java/com/android/dialer/calllog/ui/menu/Modules.java b/java/com/android/dialer/calllog/ui/menu/Modules.java
index 70f1766..0b9b01d 100644
--- a/java/com/android/dialer/calllog/ui/menu/Modules.java
+++ b/java/com/android/dialer/calllog/ui/menu/Modules.java
@@ -149,7 +149,8 @@
     // TODO(zachh): Support post-dial digits; consider using DialerPhoneNumber.
     CallIntentBuilder callIntentBuilder =
         new CallIntentBuilder(normalizedNumber, CallInitiationType.Type.CALL_LOG)
-            .setPhoneAccountHandle(phoneAccountHandle);
+            .setPhoneAccountHandle(phoneAccountHandle)
+            .setAllowAssistedDial(canSupportAssistedDialing(row));
     modules.add(IntentModule.newCallModule(context, callIntentBuilder));
 
     // If the call log entry is for a spam call, nothing more to be done.
@@ -184,8 +185,6 @@
   private static HistoryItemActionModule createModuleForAccessingCallDetails(
       Context context, CoalescedRow row) {
     boolean canReportAsInvalidNumber = row.getNumberAttributes().getCanReportAsInvalidNumber();
-    boolean canSupportAssistedDialing =
-        !TextUtils.isEmpty(row.getNumberAttributes().getLookupUri());
 
     return new IntentModule(
         context,
@@ -194,7 +193,7 @@
             row.getCoalescedIds(),
             createCallDetailsHeaderInfoFromRow(context, row),
             canReportAsInvalidNumber,
-            canSupportAssistedDialing),
+            canSupportAssistedDialing(row)),
         R.string.call_details_menu_label,
         R.drawable.quantum_ic_info_outline_vd_theme_24);
   }
@@ -243,4 +242,8 @@
         && canRelyOnCarrierVideoPresence
         && row.getNumberAttributes().getCanSupportCarrierVideoCall();
   }
+
+  private static boolean canSupportAssistedDialing(CoalescedRow row) {
+    return !TextUtils.isEmpty(row.getNumberAttributes().getLookupUri());
+  }
 }
