IMS USSD Routing Over CS Pipe

Adding logic to reroute USSD
requests through voice phone in
AP. The actual routing logic
(CS/IMS) resides in the lower
layers.

Bug: 17431456
Change-Id: Ieec8130ae9f5b62f6dc1aaf0066d41b31c5b8d0b
diff --git a/src/java/com/android/internal/telephony/imsphone/ImsPhoneMmiCode.java b/src/java/com/android/internal/telephony/imsphone/ImsPhoneMmiCode.java
index 20bb1cd..fbdd572 100644
--- a/src/java/com/android/internal/telephony/imsphone/ImsPhoneMmiCode.java
+++ b/src/java/com/android/internal/telephony/imsphone/ImsPhoneMmiCode.java
@@ -33,6 +33,7 @@
 import com.android.ims.ImsUtInterface;
 import com.android.internal.telephony.CallForwardInfo;
 import com.android.internal.telephony.CommandException;
+import com.android.internal.telephony.CallStateException;
 import com.android.internal.telephony.CommandsInterface;
 import com.android.internal.telephony.uicc.IccRecords;
 
@@ -694,13 +695,15 @@
 
     /** Process a MMI code or short code...anything that isn't a dialing number */
     void
-    processCode () {
+    processCode () throws CallStateException {
         try {
             if (isShortCode()) {
                 Rlog.d(LOG_TAG, "isShortCode");
 
                 // These just get treated as USSD.
-                sendUssd(mDialingNumber);
+                Rlog.d(LOG_TAG, "Sending short code '"
+                       + mDialingNumber + "' over CS pipe.");
+                throw new CallStateException(ImsPhone.CS_FALLBACK);
             } else if (isServiceCodeCallForwarding(mSc)) {
                 Rlog.d(LOG_TAG, "is CF");
                 // service group is not supported
@@ -897,7 +900,9 @@
                     throw new RuntimeException ("Invalid or Unsupported MMI Code");
                 }
             } else if (mPoundString != null) {
-                sendUssd(mPoundString);
+                Rlog.d(LOG_TAG, "Sending pound string '"
+                       + mDialingNumber + "' over CS pipe.");
+                throw new CallStateException(ImsPhone.CS_FALLBACK);
             } else {
                 throw new RuntimeException ("Invalid or Unsupported MMI Code");
             }