Loading src/java/com/android/internal/telephony/CallTracker.java +0 −47 Original line number Diff line number Diff line Loading @@ -22,7 +22,6 @@ import android.os.AsyncResult; import android.os.Handler; import android.os.Message; import android.os.PersistableBundle; import android.os.SystemProperties; import android.telephony.CarrierConfigManager; import android.text.TextUtils; Loading Loading @@ -167,52 +166,6 @@ public abstract class CallTracker extends Handler { return mPendingOperations == 0; } /** * Routine called from dial to check if the number is a test Emergency number * and if so remap the number. This allows a short emergency number to be remapped * to a regular number for testing how the frameworks handles emergency numbers * without actually calling an emergency number. * * This is not a full test and is not a substitute for testing real emergency * numbers but can be useful. * * To use this feature set a system property ril.test.emergencynumber to a pair of * numbers separated by a colon. If the first number matches the number parameter * this routine returns the second number. Example: * * ril.test.emergencynumber=112:1-123-123-45678 * * To test Dial 112 take call then hang up on MO device to enter ECM * see RIL#processSolicited RIL_REQUEST_HANGUP_FOREGROUND_RESUME_BACKGROUND * * @param dialString to test if it should be remapped * @return the same number or the remapped number. */ protected String checkForTestEmergencyNumber(String dialString) { String testEn = SystemProperties.get("ril.test.emergencynumber"); if (DBG_POLL) { log("checkForTestEmergencyNumber: dialString=" + dialString + " testEn=" + testEn); } if (!TextUtils.isEmpty(testEn)) { String values[] = testEn.split(":"); log("checkForTestEmergencyNumber: values.length=" + values.length); if (values.length == 2) { if (values[0].equals( android.telephony.PhoneNumberUtils.stripSeparators(dialString))) { // mCi will be null for ImsPhoneCallTracker. if (mCi != null) { mCi.testingEmergencyCall(); } log("checkForTestEmergencyNumber: remap " + dialString + " to " + values[1]); dialString = values[1]; } } } return dialString; } protected String convertNumberIfNecessary(Phone phone, String dialNumber) { if (dialNumber == null) { return dialNumber; Loading src/java/com/android/internal/telephony/GsmCdmaCallTracker.java +5 −6 Original line number Diff line number Diff line Loading @@ -322,8 +322,8 @@ public class GsmCdmaCallTracker extends CallTracker { throw new CallStateException("cannot dial in current state"); } mPendingMO = new GsmCdmaConnection(mPhone, checkForTestEmergencyNumber(dialString), this, mForegroundCall, isEmergencyCall); mPendingMO = new GsmCdmaConnection(mPhone, dialString, this, mForegroundCall, isEmergencyCall); if (intentExtras != null) { Rlog.d(LOG_TAG, "dialGsm - emergency dialer: " + intentExtras.getBoolean( TelecomManager.EXTRA_IS_USER_INTENT_EMERGENCY_CALL)); Loading Loading @@ -445,8 +445,8 @@ public class GsmCdmaCallTracker extends CallTracker { return dialThreeWay(dialString, intentExtras); } mPendingMO = new GsmCdmaConnection(mPhone, checkForTestEmergencyNumber(dialString), this, mForegroundCall, isEmergencyCall); mPendingMO = new GsmCdmaConnection(mPhone, dialString, this, mForegroundCall, isEmergencyCall); if (intentExtras != null) { Rlog.d(LOG_TAG, "dialGsm - emergency dialer: " + intentExtras.getBoolean( TelecomManager.EXTRA_IS_USER_INTENT_EMERGENCY_CALL)); Loading Loading @@ -502,8 +502,7 @@ public class GsmCdmaCallTracker extends CallTracker { disableDataCallInEmergencyCall(dialString); // Attach the new connection to foregroundCall mPendingMO = new GsmCdmaConnection(mPhone, checkForTestEmergencyNumber(dialString), this, mForegroundCall, mPendingMO = new GsmCdmaConnection(mPhone, dialString, this, mForegroundCall, mIsInEmergencyCall); if (intentExtras != null) { Rlog.d(LOG_TAG, "dialThreeWay - emergency dialer " + intentExtras.getBoolean( Loading src/java/com/android/internal/telephony/GsmCdmaPhone.java +50 −2 Original line number Diff line number Diff line Loading @@ -1269,7 +1269,14 @@ public class GsmCdmaPhone extends Phone { if (!isPhoneTypeGsm() && dialArgs.uusInfo != null) { throw new CallStateException("Sending UUS information NOT supported in CDMA!"); } String possibleEmergencyNumber = checkForTestEmergencyNumber(dialString); // Record if the dialed number was swapped for a test emergency number. boolean isDialedNumberSwapped = !TextUtils.equals(dialString, possibleEmergencyNumber); if (isDialedNumberSwapped) { logi("dialString replaced for possible emergency number: " + dialString + " -> " + possibleEmergencyNumber); dialString = possibleEmergencyNumber; } boolean isEmergency = PhoneNumberUtils.isEmergencyNumber(getSubId(), dialString); Phone imsPhone = mImsPhone; mDialArgs = dialArgs; Loading Loading @@ -1302,6 +1309,7 @@ public class GsmCdmaPhone extends Phone { if (DBG) { logd("useImsForCall=" + useImsForCall + ", isEmergency=" + isEmergency + ", useImsForEmergency=" + useImsForEmergency + ", useImsForUt=" + useImsForUt + ", isUt=" + isMmiCode Loading Loading @@ -1376,7 +1384,11 @@ public class GsmCdmaPhone extends Phone { "cannot dial voice call in out of service"); } if (DBG) logd("Trying (non-IMS) CS call"); if (isDialedNumberSwapped && isEmergency) { // Triggers ECM when CS call ends only for test emergency calls using // ril.test.emergencynumber. mCi.testingEmergencyCall(); } if (isPhoneTypeGsm()) { return dialInternal(dialString, new DialArgs.Builder<>() .setIntentExtras(dialArgs.intentExtras) Loading Loading @@ -3968,6 +3980,42 @@ public class GsmCdmaPhone extends Phone { return status; } /** * This allows a short number to be remapped to a test emergency number for testing how the * frameworks handles Emergency Callback Mode without actually calling an emergency number. * * This is not a full test and is not a substitute for testing real emergency * numbers but can be useful. * * To use this feature, first set a test emergency number using * adb shell cmd phone emergency-number-test-mode -a 1-555-555-1212 * * and then set the system property ril.test.emergencynumber to a pair of * numbers separated by a colon. If the first number matches the number parameter * this routine returns the second number. Example: * * ril.test.emergencynumber=411:1-555-555-1212 * * To test Dial 411 take call then hang up on MO device to enter ECM. * * @param dialString to test if it should be remapped * @return the same number or the remapped number. */ private String checkForTestEmergencyNumber(String dialString) { String testEn = SystemProperties.get("ril.test.emergencynumber"); if (!TextUtils.isEmpty(testEn)) { String[] values = testEn.split(":"); logd("checkForTestEmergencyNumber: values.length=" + values.length); if (values.length == 2) { if (values[0].equals(PhoneNumberUtils.stripSeparators(dialString))) { logd("checkForTestEmergencyNumber: remap " + dialString + " to " + values[1]); dialString = values[1]; } } } return dialString; } /** * @return operator numeric. */ Loading src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java +1 −2 Original line number Diff line number Diff line Loading @@ -1217,8 +1217,7 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall { synchronized (mSyncHold) { mLastDialString = dialString; mLastDialArgs = dialArgs; mPendingMO = new ImsPhoneConnection(mPhone, checkForTestEmergencyNumber(dialString), this, mForegroundCall, mPendingMO = new ImsPhoneConnection(mPhone, dialString, this, mForegroundCall, isEmergencyNumber); if (isEmergencyNumber && dialArgs != null && dialArgs.intentExtras != null) { Rlog.i(LOG_TAG, "dial ims emergency dialer: " + dialArgs.intentExtras.getBoolean( Loading Loading
src/java/com/android/internal/telephony/CallTracker.java +0 −47 Original line number Diff line number Diff line Loading @@ -22,7 +22,6 @@ import android.os.AsyncResult; import android.os.Handler; import android.os.Message; import android.os.PersistableBundle; import android.os.SystemProperties; import android.telephony.CarrierConfigManager; import android.text.TextUtils; Loading Loading @@ -167,52 +166,6 @@ public abstract class CallTracker extends Handler { return mPendingOperations == 0; } /** * Routine called from dial to check if the number is a test Emergency number * and if so remap the number. This allows a short emergency number to be remapped * to a regular number for testing how the frameworks handles emergency numbers * without actually calling an emergency number. * * This is not a full test and is not a substitute for testing real emergency * numbers but can be useful. * * To use this feature set a system property ril.test.emergencynumber to a pair of * numbers separated by a colon. If the first number matches the number parameter * this routine returns the second number. Example: * * ril.test.emergencynumber=112:1-123-123-45678 * * To test Dial 112 take call then hang up on MO device to enter ECM * see RIL#processSolicited RIL_REQUEST_HANGUP_FOREGROUND_RESUME_BACKGROUND * * @param dialString to test if it should be remapped * @return the same number or the remapped number. */ protected String checkForTestEmergencyNumber(String dialString) { String testEn = SystemProperties.get("ril.test.emergencynumber"); if (DBG_POLL) { log("checkForTestEmergencyNumber: dialString=" + dialString + " testEn=" + testEn); } if (!TextUtils.isEmpty(testEn)) { String values[] = testEn.split(":"); log("checkForTestEmergencyNumber: values.length=" + values.length); if (values.length == 2) { if (values[0].equals( android.telephony.PhoneNumberUtils.stripSeparators(dialString))) { // mCi will be null for ImsPhoneCallTracker. if (mCi != null) { mCi.testingEmergencyCall(); } log("checkForTestEmergencyNumber: remap " + dialString + " to " + values[1]); dialString = values[1]; } } } return dialString; } protected String convertNumberIfNecessary(Phone phone, String dialNumber) { if (dialNumber == null) { return dialNumber; Loading
src/java/com/android/internal/telephony/GsmCdmaCallTracker.java +5 −6 Original line number Diff line number Diff line Loading @@ -322,8 +322,8 @@ public class GsmCdmaCallTracker extends CallTracker { throw new CallStateException("cannot dial in current state"); } mPendingMO = new GsmCdmaConnection(mPhone, checkForTestEmergencyNumber(dialString), this, mForegroundCall, isEmergencyCall); mPendingMO = new GsmCdmaConnection(mPhone, dialString, this, mForegroundCall, isEmergencyCall); if (intentExtras != null) { Rlog.d(LOG_TAG, "dialGsm - emergency dialer: " + intentExtras.getBoolean( TelecomManager.EXTRA_IS_USER_INTENT_EMERGENCY_CALL)); Loading Loading @@ -445,8 +445,8 @@ public class GsmCdmaCallTracker extends CallTracker { return dialThreeWay(dialString, intentExtras); } mPendingMO = new GsmCdmaConnection(mPhone, checkForTestEmergencyNumber(dialString), this, mForegroundCall, isEmergencyCall); mPendingMO = new GsmCdmaConnection(mPhone, dialString, this, mForegroundCall, isEmergencyCall); if (intentExtras != null) { Rlog.d(LOG_TAG, "dialGsm - emergency dialer: " + intentExtras.getBoolean( TelecomManager.EXTRA_IS_USER_INTENT_EMERGENCY_CALL)); Loading Loading @@ -502,8 +502,7 @@ public class GsmCdmaCallTracker extends CallTracker { disableDataCallInEmergencyCall(dialString); // Attach the new connection to foregroundCall mPendingMO = new GsmCdmaConnection(mPhone, checkForTestEmergencyNumber(dialString), this, mForegroundCall, mPendingMO = new GsmCdmaConnection(mPhone, dialString, this, mForegroundCall, mIsInEmergencyCall); if (intentExtras != null) { Rlog.d(LOG_TAG, "dialThreeWay - emergency dialer " + intentExtras.getBoolean( Loading
src/java/com/android/internal/telephony/GsmCdmaPhone.java +50 −2 Original line number Diff line number Diff line Loading @@ -1269,7 +1269,14 @@ public class GsmCdmaPhone extends Phone { if (!isPhoneTypeGsm() && dialArgs.uusInfo != null) { throw new CallStateException("Sending UUS information NOT supported in CDMA!"); } String possibleEmergencyNumber = checkForTestEmergencyNumber(dialString); // Record if the dialed number was swapped for a test emergency number. boolean isDialedNumberSwapped = !TextUtils.equals(dialString, possibleEmergencyNumber); if (isDialedNumberSwapped) { logi("dialString replaced for possible emergency number: " + dialString + " -> " + possibleEmergencyNumber); dialString = possibleEmergencyNumber; } boolean isEmergency = PhoneNumberUtils.isEmergencyNumber(getSubId(), dialString); Phone imsPhone = mImsPhone; mDialArgs = dialArgs; Loading Loading @@ -1302,6 +1309,7 @@ public class GsmCdmaPhone extends Phone { if (DBG) { logd("useImsForCall=" + useImsForCall + ", isEmergency=" + isEmergency + ", useImsForEmergency=" + useImsForEmergency + ", useImsForUt=" + useImsForUt + ", isUt=" + isMmiCode Loading Loading @@ -1376,7 +1384,11 @@ public class GsmCdmaPhone extends Phone { "cannot dial voice call in out of service"); } if (DBG) logd("Trying (non-IMS) CS call"); if (isDialedNumberSwapped && isEmergency) { // Triggers ECM when CS call ends only for test emergency calls using // ril.test.emergencynumber. mCi.testingEmergencyCall(); } if (isPhoneTypeGsm()) { return dialInternal(dialString, new DialArgs.Builder<>() .setIntentExtras(dialArgs.intentExtras) Loading Loading @@ -3968,6 +3980,42 @@ public class GsmCdmaPhone extends Phone { return status; } /** * This allows a short number to be remapped to a test emergency number for testing how the * frameworks handles Emergency Callback Mode without actually calling an emergency number. * * This is not a full test and is not a substitute for testing real emergency * numbers but can be useful. * * To use this feature, first set a test emergency number using * adb shell cmd phone emergency-number-test-mode -a 1-555-555-1212 * * and then set the system property ril.test.emergencynumber to a pair of * numbers separated by a colon. If the first number matches the number parameter * this routine returns the second number. Example: * * ril.test.emergencynumber=411:1-555-555-1212 * * To test Dial 411 take call then hang up on MO device to enter ECM. * * @param dialString to test if it should be remapped * @return the same number or the remapped number. */ private String checkForTestEmergencyNumber(String dialString) { String testEn = SystemProperties.get("ril.test.emergencynumber"); if (!TextUtils.isEmpty(testEn)) { String[] values = testEn.split(":"); logd("checkForTestEmergencyNumber: values.length=" + values.length); if (values.length == 2) { if (values[0].equals(PhoneNumberUtils.stripSeparators(dialString))) { logd("checkForTestEmergencyNumber: remap " + dialString + " to " + values[1]); dialString = values[1]; } } } return dialString; } /** * @return operator numeric. */ Loading
src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java +1 −2 Original line number Diff line number Diff line Loading @@ -1217,8 +1217,7 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall { synchronized (mSyncHold) { mLastDialString = dialString; mLastDialArgs = dialArgs; mPendingMO = new ImsPhoneConnection(mPhone, checkForTestEmergencyNumber(dialString), this, mForegroundCall, mPendingMO = new ImsPhoneConnection(mPhone, dialString, this, mForegroundCall, isEmergencyNumber); if (isEmergencyNumber && dialArgs != null && dialArgs.intentExtras != null) { Rlog.i(LOG_TAG, "dial ims emergency dialer: " + dialArgs.intentExtras.getBoolean( Loading