Loading src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java +1 −0 Original line number Diff line number Diff line Loading @@ -1860,6 +1860,7 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall { ImsCallProfile.DIALSTRING_USSD); mUssdSession = mImsManager.makeCall(profile, callees, mImsUssdListener); mPendingUssd = response; } catch (ImsException e) { loge("sendUSSD : " + e); mPhone.sendErrorResponse(response, e); Loading src/java/com/android/internal/telephony/imsphone/ImsPhoneMmiCode.java +15 −3 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.internal.telephony.imsphone; import static android.telephony.ServiceState.STATE_IN_SERVICE; import static com.android.internal.telephony.CommandsInterface.SERVICE_CLASS_DATA; import static com.android.internal.telephony.CommandsInterface.SERVICE_CLASS_DATA_ASYNC; import static com.android.internal.telephony.CommandsInterface.SERVICE_CLASS_DATA_SYNC; Loading Loading @@ -1001,9 +1003,19 @@ public final class ImsPhoneMmiCode extends Handler implements MmiCode { throw new RuntimeException ("Invalid or Unsupported MMI Code"); } } else if (mPoundString != null) { Rlog.d(LOG_TAG, "processCode: Sending pound string '" + mDialingNumber + "' over CS pipe."); // We'll normally send USSD over the CS pipe, but if it happens that the CS phone // is out of service, we'll just try over IMS instead. if (mPhone.getDefaultPhone().getServiceStateTracker().mSS.getState() == STATE_IN_SERVICE) { Rlog.i(LOG_TAG, "processCode: Sending ussd string '" + Rlog.pii(LOG_TAG, mPoundString) + "' over CS pipe."); throw new CallStateException(Phone.CS_FALLBACK); } else { Rlog.i(LOG_TAG, "processCode: CS is out of service, sending ussd string '" + Rlog.pii(LOG_TAG, mPoundString) + "' over IMS pipe."); sendUssd(mPoundString); } } else { Rlog.d(LOG_TAG, "processCode: invalid or unsupported MMI"); throw new RuntimeException ("Invalid or Unsupported MMI Code"); Loading Loading
src/java/com/android/internal/telephony/imsphone/ImsPhoneCallTracker.java +1 −0 Original line number Diff line number Diff line Loading @@ -1860,6 +1860,7 @@ public class ImsPhoneCallTracker extends CallTracker implements ImsPullCall { ImsCallProfile.DIALSTRING_USSD); mUssdSession = mImsManager.makeCall(profile, callees, mImsUssdListener); mPendingUssd = response; } catch (ImsException e) { loge("sendUSSD : " + e); mPhone.sendErrorResponse(response, e); Loading
src/java/com/android/internal/telephony/imsphone/ImsPhoneMmiCode.java +15 −3 Original line number Diff line number Diff line Loading @@ -16,6 +16,8 @@ package com.android.internal.telephony.imsphone; import static android.telephony.ServiceState.STATE_IN_SERVICE; import static com.android.internal.telephony.CommandsInterface.SERVICE_CLASS_DATA; import static com.android.internal.telephony.CommandsInterface.SERVICE_CLASS_DATA_ASYNC; import static com.android.internal.telephony.CommandsInterface.SERVICE_CLASS_DATA_SYNC; Loading Loading @@ -1001,9 +1003,19 @@ public final class ImsPhoneMmiCode extends Handler implements MmiCode { throw new RuntimeException ("Invalid or Unsupported MMI Code"); } } else if (mPoundString != null) { Rlog.d(LOG_TAG, "processCode: Sending pound string '" + mDialingNumber + "' over CS pipe."); // We'll normally send USSD over the CS pipe, but if it happens that the CS phone // is out of service, we'll just try over IMS instead. if (mPhone.getDefaultPhone().getServiceStateTracker().mSS.getState() == STATE_IN_SERVICE) { Rlog.i(LOG_TAG, "processCode: Sending ussd string '" + Rlog.pii(LOG_TAG, mPoundString) + "' over CS pipe."); throw new CallStateException(Phone.CS_FALLBACK); } else { Rlog.i(LOG_TAG, "processCode: CS is out of service, sending ussd string '" + Rlog.pii(LOG_TAG, mPoundString) + "' over IMS pipe."); sendUssd(mPoundString); } } else { Rlog.d(LOG_TAG, "processCode: invalid or unsupported MMI"); throw new RuntimeException ("Invalid or Unsupported MMI Code"); Loading