Added missed incoming call SMS support
Provided a way for carrier to notify their users
about missed incoming call via special SMS.
Bug: 144068181
Test: MissedIncomingCallSmsFilterTest
Change-Id: I40b83af690ee72a35a872e08491a948e7aed0ca2
diff --git a/src/com/android/services/telephony/TelephonyConnectionService.java b/src/com/android/services/telephony/TelephonyConnectionService.java
index ebf7c0a..99b0e7c 100644
--- a/src/com/android/services/telephony/TelephonyConnectionService.java
+++ b/src/com/android/services/telephony/TelephonyConnectionService.java
@@ -1167,11 +1167,26 @@
Call call = phone.getRingingCall();
if (!call.getState().isRinging()) {
Log.i(this, "onCreateIncomingConnection, no ringing call");
- return Connection.createFailedConnection(
+ Connection connection = Connection.createFailedConnection(
mDisconnectCauseFactory.toTelecomDisconnectCause(
android.telephony.DisconnectCause.INCOMING_MISSED,
"Found no ringing call",
phone.getPhoneId()));
+ Bundle extras = request.getExtras();
+
+ long time = extras.getLong(TelecomManager.EXTRA_CALL_CREATED_EPOCH_TIME_MILLIS);
+ if (time != 0) {
+ Log.i(this, "onCreateIncomingConnection. Set connect time info.");
+ connection.setConnectTimeMillis(time);
+ }
+
+ Uri address = extras.getParcelable(TelecomManager.EXTRA_INCOMING_CALL_ADDRESS);
+ if (address != null) {
+ Log.i(this, "onCreateIncomingConnection. Set caller id info.");
+ connection.setAddress(address, TelecomManager.PRESENTATION_ALLOWED);
+ }
+
+ return connection;
}
com.android.internal.telephony.Connection originalConnection =
@@ -1783,7 +1798,7 @@
if (!isAdhocConference) {
// Listen to Telephony specific callbacks from the connection
returnConnection.addTelephonyConnectionListener(mTelephonyConnectionListener);
- }
+ }
returnConnection.setVideoPauseSupported(
TelecomAccountRegistry.getInstance(this).isVideoPauseSupported(
phoneAccountHandle));