diff --git a/src/java/com/android/internal/telephony/Connection.java b/src/java/com/android/internal/telephony/Connection.java
index 8c54a31..973fea8 100644
--- a/src/java/com/android/internal/telephony/Connection.java
+++ b/src/java/com/android/internal/telephony/Connection.java
@@ -104,6 +104,7 @@
         public void onConnectionEvent(String event, Bundle extras);
         public void onRttModifyRequestReceived();
         public void onRttModifyResponseReceived(int status);
+        public void onDisconnect(int cause);
     }
 
     /**
@@ -143,6 +144,8 @@
         public void onRttModifyRequestReceived() {}
         @Override
         public void onRttModifyResponseReceived(int status) {}
+        @Override
+        public void onDisconnect(int cause) {}
     }
 
     public static final int AUDIO_QUALITY_STANDARD = 1;
@@ -1055,6 +1058,18 @@
     }
 
     /**
+     * Notify interested parties that this connection disconnected.
+     * {@code TelephonyConnection}, for example, uses this.
+     * @param reason the disconnect code, per {@link DisconnectCause}.
+     */
+    protected void notifyDisconnect(int reason) {
+        Rlog.i(TAG, "notifyDisconnect: callId=" + getTelecomCallId() + ", reason=" + reason);
+        for (Listener l : mListeners) {
+            l.onDisconnect(reason);
+        }
+    }
+
+    /**
      *
      */
     public int getPhoneType() {
diff --git a/src/java/com/android/internal/telephony/GsmCdmaConnection.java b/src/java/com/android/internal/telephony/GsmCdmaConnection.java
index 0c8dea2..a8d79cf 100644
--- a/src/java/com/android/internal/telephony/GsmCdmaConnection.java
+++ b/src/java/com/android/internal/telephony/GsmCdmaConnection.java
@@ -583,6 +583,7 @@
             if (DBG) Rlog.d(LOG_TAG, "onDisconnect: cause=" + cause);
 
             mOwner.getPhone().notifyDisconnect(this);
+            notifyDisconnect(cause);
 
             if (mParent != null) {
                 changed = mParent.connectionDisconnected(this);
diff --git a/src/java/com/android/internal/telephony/imsphone/ImsPhoneConnection.java b/src/java/com/android/internal/telephony/imsphone/ImsPhoneConnection.java
index 3c3c192..5a490ae 100644
--- a/src/java/com/android/internal/telephony/imsphone/ImsPhoneConnection.java
+++ b/src/java/com/android/internal/telephony/imsphone/ImsPhoneConnection.java
@@ -428,6 +428,7 @@
             mDisconnected = true;
 
             mOwner.mPhone.notifyDisconnect(this);
+            notifyDisconnect(mCause);
 
             if (mParent != null) {
                 changed = mParent.connectionDisconnected(this);
