Add new function: String getPhoneNumber(int simSlot)
Add new variant: int getTelephonyCallState(int simSlot)
diff --git a/build.gradle b/build.gradle
index 99839ee..5958ee9 100644
--- a/build.gradle
+++ b/build.gradle
@@ -29,12 +29,12 @@
 apply plugin: 'com.android.application'
 
 android {
-    compileSdkVersion 31
+    compileSdk 34
 
     defaultConfig {
         applicationId "com.google.android.mobly.snippet.bundled"
-        minSdkVersion 26
-        targetSdkVersion 31
+        minSdk 26
+        targetSdk 34
         versionCode 1
         versionName "0.0.1"
         setProperty("archivesBaseName", "mobly-bundled-snippets")
diff --git a/src/main/java/com/google/android/mobly/snippet/bundled/TelephonySnippet.java b/src/main/java/com/google/android/mobly/snippet/bundled/TelephonySnippet.java
index edcbf65..f7e5c8a 100644
--- a/src/main/java/com/google/android/mobly/snippet/bundled/TelephonySnippet.java
+++ b/src/main/java/com/google/android/mobly/snippet/bundled/TelephonySnippet.java
@@ -18,6 +18,8 @@
 
 import android.content.Context;
 import android.os.Build;
+import android.telephony.SubscriptionInfo;
+import android.telephony.SubscriptionManager;
 import android.telephony.TelephonyManager;
 import androidx.test.platform.app.InstrumentationRegistry;
 import com.google.android.mobly.snippet.Snippet;
@@ -27,10 +29,12 @@
 public class TelephonySnippet implements Snippet {
 
     private final TelephonyManager mTelephonyManager;
+    private final SubscriptionManager mSubscriptionManager;
 
     public TelephonySnippet() {
         Context context = InstrumentationRegistry.getInstrumentation().getContext();
         mTelephonyManager = (TelephonyManager) context.getSystemService(Context.TELEPHONY_SERVICE);
+        mSubscriptionManager = (SubscriptionManager) context.getSystemService(Context.TELEPHONY_SUBSCRIPTION_SERVICE);
     }
 
     @Rpc(description = "Gets the line 1 phone number.")
@@ -38,6 +42,22 @@
         return mTelephonyManager.getLine1Number();
     }
 
+    @Rpc(description = "Gets phone number for the simSlot (slot# start from 0, only valid for API level > 32)."
+                                + " API level <33 will always return phone number for simSlotIndex = 0")
+    public String getPhoneNumber(int simSlot) {
+        String thisNumber = "";
+
+        if (Build.VERSION.SDK_INT < 33) {
+            thisNumber = mTelephonyManager.getLine1Number();
+        } else {
+            SubscriptionInfo mSubscriptionInfo = mSubscriptionManager.getActiveSubscriptionInfoForSimSlotIndex(simSlot);
+            if (mSubscriptionInfo != null) {
+                thisNumber = mSubscriptionManager.getPhoneNumber(mSubscriptionInfo.getSubscriptionId());
+            }
+        }
+        return thisNumber;
+    }
+
     @Rpc(description = "Returns the unique subscriber ID, for example, the IMSI for a GSM phone.")
     public String getSubscriberId() {
         return mTelephonyManager.getSubscriberId();
@@ -57,6 +77,28 @@
 
     @Rpc(
             description =
+                    "Gets the call state for the simSlot (slot# start from 0, only valid for API level > 30). Call state values are"
+                            + "0: IDLE, 1: RINGING, 2: OFFHOOK.")
+    public int getTelephonyCallState(int simSlot) {
+        int thisState = -1;
+
+        if (Build.VERSION.SDK_INT < 31) {
+            thisState = mTelephonyManager.getCallState();
+        } else {
+            SubscriptionInfo mSubscriptionInfo = mSubscriptionManager.getActiveSubscriptionInfoForSimSlotIndex(simSlot);
+            if (mSubscriptionInfo != null) {
+                thisState =
+                        mTelephonyManager
+                                .createForSubscriptionId(mSubscriptionInfo.getSubscriptionId())
+                                .getCallStateForSubscription();
+            }
+        }
+
+        return thisState;
+    }
+
+    @Rpc(
+            description =
                     "Returns a constant indicating the radio technology (network type) currently"
                             + "in use on the device for data transmission.")
     public int getDataNetworkType() {