diff --git a/src/com/android/providers/contacts/CallLogProvider.java b/src/com/android/providers/contacts/CallLogProvider.java
index a4e642c..886f484 100644
--- a/src/com/android/providers/contacts/CallLogProvider.java
+++ b/src/com/android/providers/contacts/CallLogProvider.java
@@ -74,7 +74,9 @@
         sCallsProjectionMap.put(Calls.NUMBER_PRESENTATION, Calls.NUMBER_PRESENTATION);
         sCallsProjectionMap.put(Calls.DATE, Calls.DATE);
         sCallsProjectionMap.put(Calls.DURATION, Calls.DURATION);
+        sCallsProjectionMap.put(Calls.DATA_USAGE, Calls.DATA_USAGE);
         sCallsProjectionMap.put(Calls.TYPE, Calls.TYPE);
+        sCallsProjectionMap.put(Calls.FEATURES, Calls.FEATURES);
         sCallsProjectionMap.put(Calls.PHONE_ACCOUNT_COMPONENT_NAME, Calls.PHONE_ACCOUNT_COMPONENT_NAME);
         sCallsProjectionMap.put(Calls.PHONE_ACCOUNT_ID, Calls.PHONE_ACCOUNT_ID);
         sCallsProjectionMap.put(Calls.NEW, Calls.NEW);
diff --git a/src/com/android/providers/contacts/ContactsDatabaseHelper.java b/src/com/android/providers/contacts/ContactsDatabaseHelper.java
index b7f16bb..956513c 100644
--- a/src/com/android/providers/contacts/ContactsDatabaseHelper.java
+++ b/src/com/android/providers/contacts/ContactsDatabaseHelper.java
@@ -114,7 +114,7 @@
      *   900-999 L
      * </pre>
      */
-    static final int DATABASE_VERSION = 903;
+    static final int DATABASE_VERSION = 904;
 
     public interface Tables {
         public static final String CONTACTS = "contacts";
@@ -1465,7 +1465,9 @@
                         Calls.PRESENTATION_ALLOWED + "," +
                 Calls.DATE + " INTEGER," +
                 Calls.DURATION + " INTEGER," +
+                Calls.DATA_USAGE + " INTEGER," +
                 Calls.TYPE + " INTEGER," +
+                Calls.FEATURES + " INTEGER NOT NULL DEFAULT 0," +
                 Calls.PHONE_ACCOUNT_COMPONENT_NAME + " TEXT," +
                 Calls.PHONE_ACCOUNT_ID + " TEXT," +
                 Calls.NEW + " INTEGER," +
@@ -2752,6 +2754,11 @@
             oldVersion = 903;
         }
 
+        if (oldVersion < 904) {
+            upgradeToVersion904(db);
+            oldVersion = 904;
+        }
+
         if (upgradeViewsAndTriggers) {
             createContactsViews(db);
             createGroupsView(db);
@@ -4057,8 +4064,8 @@
 
     private void upgradeToVersion902(SQLiteDatabase db) {
         // adding account identifier to call log table
-        db.execSQL("ALTER TABLE calls ADD "+ Calls.PHONE_ACCOUNT_COMPONENT_NAME + " TEXT;");
-        db.execSQL("ALTER TABLE calls ADD "+ Calls.PHONE_ACCOUNT_ID + " TEXT;");
+        db.execSQL("ALTER TABLE calls ADD subscription_component_name TEXT;");
+        db.execSQL("ALTER TABLE calls ADD subscription_id TEXT;");
     }
 
     /**
@@ -4114,6 +4121,15 @@
         }
     }
 
+    /**
+     * Updates the calls table in the database to include the call_duration and features columns.
+     * @param db The database to update.
+     */
+    private void upgradeToVersion904(SQLiteDatabase db) {
+        db.execSQL("ALTER TABLE calls ADD features INTEGER NOT NULL DEFAULT 0;");
+        db.execSQL("ALTER TABLE calls ADD data_usage INTEGER;");
+    }
+
     public String extractHandleFromEmailAddress(String email) {
         Rfc822Token[] tokens = Rfc822Tokenizer.tokenize(email);
         if (tokens.length == 0) {
diff --git a/tests/src/com/android/providers/contacts/CallLogProviderTest.java b/tests/src/com/android/providers/contacts/CallLogProviderTest.java
index 6a9410f..f1787fa 100644
--- a/tests/src/com/android/providers/contacts/CallLogProviderTest.java
+++ b/tests/src/com/android/providers/contacts/CallLogProviderTest.java
@@ -180,10 +180,12 @@
                 sComponentName, "sub0", Uri.parse("tel:000-000-0000"), "", "", true, true);
 
         Uri uri = Calls.addCall(ci, getMockContext(), "1-800-263-7643",
-                PhoneConstants.PRESENTATION_ALLOWED, Calls.OUTGOING_TYPE, subscription, 2000, 40);
+                PhoneConstants.PRESENTATION_ALLOWED, Calls.OUTGOING_TYPE, Calls.FEATURES_NONE,
+                subscription, 2000, 40, null);
 
         ContentValues values = new ContentValues();
         values.put(Calls.TYPE, Calls.OUTGOING_TYPE);
+        values.put(Calls.FEATURES, Calls.FEATURES_NONE);
         values.put(Calls.NUMBER, "1-800-263-7643");
         values.put(Calls.NUMBER_PRESENTATION, Calls.PRESENTATION_ALLOWED);
         values.put(Calls.DATE, 2000);
@@ -195,6 +197,9 @@
         values.put(Calls.GEOCODED_LOCATION, "usa");
         values.put(Calls.PHONE_ACCOUNT_COMPONENT_NAME, "com.android.telecomm/TelecommServiceImpl");
         values.put(Calls.PHONE_ACCOUNT_ID, "sub0");
+        // Casting null to Long as there are many forms of "put" which have nullable second
+        // parameters and the compiler needs a hint as to which form is correct.
+        values.put(Calls.DATA_USAGE, (Long) null);
         assertStoredValues(uri, values);
     }
 
