summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--core/api/current.txt30
-rw-r--r--telephony/java/android/telephony/CarrierConfigManager.java112
-rw-r--r--telephony/java/android/telephony/SmsManager.java100
3 files changed, 242 insertions, 0 deletions
diff --git a/core/api/current.txt b/core/api/current.txt
index ca28e7070346..12b77c9a6f6e 100644
--- a/core/api/current.txt
+++ b/core/api/current.txt
@@ -42614,9 +42614,16 @@ package android.telephony {
public static final class CarrierConfigManager.ImsSms {
field public static final String KEY_PREFIX = "imssms.";
field public static final String KEY_SMS_CSFB_RETRY_ON_FAILURE_BOOL = "imssms.sms_csfb_retry_on_failure_bool";
+ field public static final String KEY_SMS_MAX_RETRY_COUNT_INT = "imssms.sms_max_retry_count_int";
+ field public static final String KEY_SMS_MAX_RETRY_COUNT_OVER_IMS_INT = "imssms.sms_max_retry_count_over_ims_int";
field public static final String KEY_SMS_OVER_IMS_FORMAT_INT = "imssms.sms_over_ims_format_int";
+ field public static final String KEY_SMS_OVER_IMS_SEND_RETRY_DELAY_MILLIS_INT = "imssms.sms_rover_ims_send_retry_delay_millis_int";
field public static final String KEY_SMS_OVER_IMS_SUPPORTED_BOOL = "imssms.sms_over_ims_supported_bool";
field public static final String KEY_SMS_OVER_IMS_SUPPORTED_RATS_INT_ARRAY = "imssms.sms_over_ims_supported_rats_int_array";
+ field public static final String KEY_SMS_RP_CAUSE_VALUES_TO_FALLBACK_INT_ARRAY = "imssms.sms_rp_cause_values_to_fallback_int_array";
+ field public static final String KEY_SMS_RP_CAUSE_VALUES_TO_RETRY_OVER_IMS_INT_ARRAY = "imssms.sms_rp_cause_values_to_retry_over_ims_int_array";
+ field public static final String KEY_SMS_TR1_TIMER_MILLIS_INT = "imssms.sms_tr1_timer_millis_int";
+ field public static final String KEY_SMS_TR2_TIMER_MILLIS_INT = "imssms.sms_tr2_timer_millis_int";
field public static final int SMS_FORMAT_3GPP = 0; // 0x0
field public static final int SMS_FORMAT_3GPP2 = 1; // 0x1
}
@@ -44103,6 +44110,29 @@ package android.telephony {
field public static final int RESULT_SMS_SEND_RETRY_FAILED = 30; // 0x1e
field public static final int RESULT_SYSTEM_ERROR = 15; // 0xf
field public static final int RESULT_UNEXPECTED_EVENT_STOP_SENDING = 28; // 0x1c
+ field public static final int SMS_RP_CAUSE_CALL_BARRING = 10; // 0xa
+ field public static final int SMS_RP_CAUSE_CONGESTION = 42; // 0x2a
+ field public static final int SMS_RP_CAUSE_DESTINATION_OUT_OF_ORDER = 27; // 0x1b
+ field public static final int SMS_RP_CAUSE_FACILITY_NOT_IMPLEMENTED = 69; // 0x45
+ field public static final int SMS_RP_CAUSE_FACILITY_NOT_SUBSCRIBED = 50; // 0x32
+ field public static final int SMS_RP_CAUSE_FACILITY_REJECTED = 29; // 0x1d
+ field public static final int SMS_RP_CAUSE_INFORMATION_ELEMENT_NON_EXISTENT = 99; // 0x63
+ field public static final int SMS_RP_CAUSE_INTERWORKING_UNSPECIFIED = 127; // 0x7f
+ field public static final int SMS_RP_CAUSE_INVALID_MANDATORY_INFORMATION = 96; // 0x60
+ field public static final int SMS_RP_CAUSE_INVALID_MESSAGE_REFERENCE_VALUE = 81; // 0x51
+ field public static final int SMS_RP_CAUSE_MESSAGE_INCOMPATIBLE_WITH_PROTOCOL_STATE = 98; // 0x62
+ field public static final int SMS_RP_CAUSE_MESSAGE_TYPE_NON_EXISTENT = 97; // 0x61
+ field public static final int SMS_RP_CAUSE_NETWORK_OUT_OF_ORDER = 38; // 0x26
+ field public static final int SMS_RP_CAUSE_OPERATOR_DETERMINED_BARRING = 8; // 0x8
+ field public static final int SMS_RP_CAUSE_PROTOCOL_ERROR = 111; // 0x6f
+ field public static final int SMS_RP_CAUSE_RESERVED = 11; // 0xb
+ field public static final int SMS_RP_CAUSE_RESOURCES_UNAVAILABLE = 47; // 0x2f
+ field public static final int SMS_RP_CAUSE_SEMANTICALLY_INCORRECT_MESSAGE = 95; // 0x5f
+ field public static final int SMS_RP_CAUSE_SHORT_MESSAGE_TRANSFER_REJECTED = 21; // 0x15
+ field public static final int SMS_RP_CAUSE_TEMPORARY_FAILURE = 41; // 0x29
+ field public static final int SMS_RP_CAUSE_UNALLOCATED_NUMBER = 1; // 0x1
+ field public static final int SMS_RP_CAUSE_UNIDENTIFIED_SUBSCRIBER = 28; // 0x1c
+ field public static final int SMS_RP_CAUSE_UNKNOWN_SUBSCRIBER = 30; // 0x1e
field public static final int STATUS_ON_ICC_FREE = 0; // 0x0
field public static final int STATUS_ON_ICC_READ = 1; // 0x1
field public static final int STATUS_ON_ICC_SENT = 5; // 0x5
diff --git a/telephony/java/android/telephony/CarrierConfigManager.java b/telephony/java/android/telephony/CarrierConfigManager.java
index a5203c4bb8c7..a142177bc8e4 100644
--- a/telephony/java/android/telephony/CarrierConfigManager.java
+++ b/telephony/java/android/telephony/CarrierConfigManager.java
@@ -7036,6 +7036,79 @@ public class CarrierConfigManager {
public static final String KEY_SMS_OVER_IMS_SUPPORTED_RATS_INT_ARRAY =
KEY_PREFIX + "sms_over_ims_supported_rats_int_array";
+ /**
+ * Maximum Retry Count for Failure, If the Retry Count exceeds this value,
+ * it must display to User Interface as sending failed
+ */
+ public static final String KEY_SMS_MAX_RETRY_COUNT_INT =
+ KEY_PREFIX + "sms_max_retry_count_int";
+
+ /**
+ * Maximum Retry Count for SMS over IMS on Failure, If the Retry Count exceeds this value,
+ * and if the retry count is less than KEY_SMS_MAX_RETRY_COUNT_INT
+ * sending SMS should fallback to CS
+ */
+ public static final String KEY_SMS_MAX_RETRY_COUNT_OVER_IMS_INT =
+ KEY_PREFIX + "sms_max_retry_count_over_ims_int";
+
+ /**
+ * Delay Timer Value in milliseconds
+ * Retry SMS over IMS after this Timer expires
+ */
+ public static final String KEY_SMS_OVER_IMS_SEND_RETRY_DELAY_MILLIS_INT =
+ KEY_PREFIX + "sms_rover_ims_send_retry_delay_millis_int";
+
+ /**
+ * TR1 Timer Value in milliseconds,
+ * Waits for RP-Ack from network for MO SMS.
+ */
+ public static final String KEY_SMS_TR1_TIMER_MILLIS_INT =
+ KEY_PREFIX + "sms_tr1_timer_millis_int";
+
+ /**
+ * TR2 Timer Value in milliseconds,
+ * Waits for RP-Ack from Transfer Layer for MT SMS.
+ */
+ public static final String KEY_SMS_TR2_TIMER_MILLIS_INT =
+ KEY_PREFIX + "sms_tr2_timer_millis_int";
+
+ /**
+ * SMS RP-Cause Values for which SMS should be retried over IMS
+ *
+ * <p>Possible values are,
+ * {@link SmsManager#SMS_RP_CAUSE_UNALLOCATED_NUMBER}
+ * {@link SmsManager#SMS_RP_CAUSE_OPERATOR_DETERMINED_BARRING}
+ * {@link SmsManager#SMS_RP_CAUSE_CALL_BARRING}
+ * {@link SmsManager#SMS_RP_CAUSE_RESERVED}
+ * {@link SmsManager#SMS_RP_CAUSE_SHORT_MESSAGE_TRANSFER_REJECTED}
+ * {@link SmsManager#SMS_RP_CAUSE_DESTINATION_OUT_OF_ORDER}
+ * {@link SmsManager#SMS_RP_CAUSE_UNIDENTIFIED_SUBSCRIBER}
+ * {@link SmsManager#SMS_RP_CAUSE_FACILITY_REJECTED}
+ * {@link SmsManager#SMS_RP_CAUSE_UNKNOWN_SUBSCRIBER}
+ * {@link SmsManager#SMS_RP_CAUSE_NETWORK_OUT_OF_ORDER}
+ * {@link SmsManager#SMS_RP_CAUSE_TEMPORARY_FAILURE}
+ * {@link SmsManager#SMS_RP_CAUSE_CONGESTION}
+ * {@link SmsManager#SMS_RP_CAUSE_RESOURCES_UNAVAILABLE}
+ * {@link SmsManager#SMS_RP_CAUSE_FACILITY_NOT_SUBSCRIBED}
+ * {@link SmsManager#SMS_RP_CAUSE_FACILITY_NOT_IMPLEMENTED}
+ * {@link SmsManager#SMS_RP_CAUSE_INVALID_MESSAGE_REFERENCE_VALUE}
+ * {@link SmsManager#SMS_RP_CAUSE_SEMANTICALLY_INCORRECT_MESSAGE}
+ * {@link SmsManager#SMS_RP_CAUSE_INVALID_MANDATORY_INFORMATION}
+ * {@link SmsManager#SMS_RP_CAUSE_MESSAGE_TYPE_NON_EXISTENT}
+ * {@link SmsManager#SMS_RP_CAUSE_MESSAGE_INCOMPATIBLE_WITH_PROTOCOL_STATE}
+ * {@link SmsManager#SMS_RP_CAUSE_INFORMATION_ELEMENT_NON_EXISTENT}
+ * {@link SmsManager#SMS_RP_CAUSE_PROTOCOL_ERROR}
+ * {@link SmsManager#SMS_RP_CAUSE_INTERWORKING_UNSPECIFIED
+ */
+ public static final String KEY_SMS_RP_CAUSE_VALUES_TO_RETRY_OVER_IMS_INT_ARRAY =
+ KEY_PREFIX + "sms_rp_cause_values_to_retry_over_ims_int_array";
+
+ /**
+ * SMS RP-Cause Values for which Sending SMS should fallback
+ */
+ public static final String KEY_SMS_RP_CAUSE_VALUES_TO_FALLBACK_INT_ARRAY =
+ KEY_PREFIX + "sms_rp_cause_values_to_fallback_int_array";
+
private static PersistableBundle getDefaults() {
PersistableBundle defaults = new PersistableBundle();
defaults.putBoolean(KEY_SMS_OVER_IMS_SUPPORTED_BOOL, true);
@@ -7043,6 +7116,45 @@ public class CarrierConfigManager {
defaults.putInt(KEY_SMS_OVER_IMS_FORMAT_INT, SMS_FORMAT_3GPP);
+ defaults.putInt(KEY_SMS_MAX_RETRY_COUNT_INT, 3);
+ defaults.putInt(KEY_SMS_MAX_RETRY_COUNT_OVER_IMS_INT, 3);
+ defaults.putInt(KEY_SMS_OVER_IMS_SEND_RETRY_DELAY_MILLIS_INT,
+ 2000);
+ defaults.putInt(KEY_SMS_TR1_TIMER_MILLIS_INT, 130000);
+ defaults.putInt(KEY_SMS_TR2_TIMER_MILLIS_INT, 15000);
+
+ defaults.putIntArray(
+ KEY_SMS_RP_CAUSE_VALUES_TO_RETRY_OVER_IMS_INT_ARRAY,
+ new int[] {
+ SmsManager.SMS_RP_CAUSE_TEMPORARY_FAILURE
+ });
+ defaults.putIntArray(
+ KEY_SMS_RP_CAUSE_VALUES_TO_FALLBACK_INT_ARRAY,
+ new int[] {
+ SmsManager.SMS_RP_CAUSE_UNALLOCATED_NUMBER,
+ SmsManager.SMS_RP_CAUSE_OPERATOR_DETERMINED_BARRING,
+ SmsManager.SMS_RP_CAUSE_CALL_BARRING,
+ SmsManager.SMS_RP_CAUSE_RESERVED,
+ SmsManager.SMS_RP_CAUSE_SHORT_MESSAGE_TRANSFER_REJECTED,
+ SmsManager.SMS_RP_CAUSE_DESTINATION_OUT_OF_ORDER,
+ SmsManager.SMS_RP_CAUSE_UNIDENTIFIED_SUBSCRIBER,
+ SmsManager.SMS_RP_CAUSE_FACILITY_REJECTED,
+ SmsManager.SMS_RP_CAUSE_UNKNOWN_SUBSCRIBER,
+ SmsManager.SMS_RP_CAUSE_NETWORK_OUT_OF_ORDER,
+ SmsManager.SMS_RP_CAUSE_CONGESTION,
+ SmsManager.SMS_RP_CAUSE_RESOURCES_UNAVAILABLE,
+ SmsManager.SMS_RP_CAUSE_FACILITY_NOT_SUBSCRIBED,
+ SmsManager.SMS_RP_CAUSE_FACILITY_NOT_IMPLEMENTED,
+ SmsManager.SMS_RP_CAUSE_INVALID_MESSAGE_REFERENCE_VALUE,
+ SmsManager.SMS_RP_CAUSE_SEMANTICALLY_INCORRECT_MESSAGE,
+ SmsManager.SMS_RP_CAUSE_INVALID_MANDATORY_INFORMATION,
+ SmsManager.SMS_RP_CAUSE_MESSAGE_TYPE_NON_EXISTENT,
+ SmsManager.SMS_RP_CAUSE_MESSAGE_INCOMPATIBLE_WITH_PROTOCOL_STATE,
+ SmsManager.SMS_RP_CAUSE_INFORMATION_ELEMENT_NON_EXISTENT,
+ SmsManager.SMS_RP_CAUSE_PROTOCOL_ERROR,
+ SmsManager.SMS_RP_CAUSE_INTERWORKING_UNSPECIFIED
+ });
+
defaults.putIntArray(
KEY_SMS_OVER_IMS_SUPPORTED_RATS_INT_ARRAY,
new int[] {
diff --git a/telephony/java/android/telephony/SmsManager.java b/telephony/java/android/telephony/SmsManager.java
index 8106819b56ac..c53b46300367 100644
--- a/telephony/java/android/telephony/SmsManager.java
+++ b/telephony/java/android/telephony/SmsManager.java
@@ -297,6 +297,106 @@ public final class SmsManager {
*/
public static final int SMS_MESSAGE_PERIOD_NOT_SPECIFIED = -1;
+ // RP-Cause Values For MO SMS as per TS 124 011, table 8.4.
+
+ /** @hide */
+ @IntDef(prefix = { "SMS_RP_CAUSE" }, value = {
+ SmsManager.SMS_RP_CAUSE_UNALLOCATED_NUMBER,
+ SmsManager.SMS_RP_CAUSE_OPERATOR_DETERMINED_BARRING,
+ SmsManager.SMS_RP_CAUSE_CALL_BARRING,
+ SmsManager.SMS_RP_CAUSE_RESERVED,
+ SmsManager.SMS_RP_CAUSE_SHORT_MESSAGE_TRANSFER_REJECTED,
+ SmsManager.SMS_RP_CAUSE_DESTINATION_OUT_OF_ORDER,
+ SmsManager.SMS_RP_CAUSE_UNIDENTIFIED_SUBSCRIBER,
+ SmsManager.SMS_RP_CAUSE_FACILITY_REJECTED,
+ SmsManager.SMS_RP_CAUSE_UNKNOWN_SUBSCRIBER,
+ SmsManager.SMS_RP_CAUSE_NETWORK_OUT_OF_ORDER,
+ SmsManager.SMS_RP_CAUSE_TEMPORARY_FAILURE,
+ SmsManager.SMS_RP_CAUSE_CONGESTION,
+ SmsManager.SMS_RP_CAUSE_RESOURCES_UNAVAILABLE,
+ SmsManager.SMS_RP_CAUSE_FACILITY_NOT_SUBSCRIBED,
+ SmsManager.SMS_RP_CAUSE_FACILITY_NOT_IMPLEMENTED,
+ SmsManager.SMS_RP_CAUSE_INVALID_MESSAGE_REFERENCE_VALUE,
+ SmsManager.SMS_RP_CAUSE_SEMANTICALLY_INCORRECT_MESSAGE,
+ SmsManager.SMS_RP_CAUSE_INVALID_MANDATORY_INFORMATION,
+ SmsManager.SMS_RP_CAUSE_MESSAGE_TYPE_NON_EXISTENT,
+ SmsManager.SMS_RP_CAUSE_MESSAGE_INCOMPATIBLE_WITH_PROTOCOL_STATE,
+ SmsManager.SMS_RP_CAUSE_INFORMATION_ELEMENT_NON_EXISTENT,
+ SmsManager.SMS_RP_CAUSE_PROTOCOL_ERROR,
+ SmsManager.SMS_RP_CAUSE_INTERWORKING_UNSPECIFIED
+ })
+ @Retention(RetentionPolicy.SOURCE)
+ public @interface SMS_RP_CAUSE {}
+
+ /** Unallocated Number Cause */
+ public static final int SMS_RP_CAUSE_UNALLOCATED_NUMBER = 1;
+
+ /** RP-Cause for Operator Barring */
+ public static final int SMS_RP_CAUSE_OPERATOR_DETERMINED_BARRING = 8;
+
+ /** RP-Cause Value for Call Barring */
+ public static final int SMS_RP_CAUSE_CALL_BARRING = 10;
+
+ /** RP-Cause value for Reserved Number */
+ public static final int SMS_RP_CAUSE_RESERVED = 11;
+
+ /** RP-Cause Value for Message Transfer Rejected by Network */
+ public static final int SMS_RP_CAUSE_SHORT_MESSAGE_TRANSFER_REJECTED = 21;
+
+ /** RP-Cause Value for Destination is Out of Order */
+ public static final int SMS_RP_CAUSE_DESTINATION_OUT_OF_ORDER = 27;
+
+ /** RP-Cause Value when Subscriber is not Identified */
+ public static final int SMS_RP_CAUSE_UNIDENTIFIED_SUBSCRIBER = 28;
+
+ /** RP-Cause Value when SMS Facility if Rejected by Operator */
+ public static final int SMS_RP_CAUSE_FACILITY_REJECTED = 29;
+
+ /** RP-Cause Value when Subscriber is not Identified */
+ public static final int SMS_RP_CAUSE_UNKNOWN_SUBSCRIBER = 30;
+
+ /** RP-Cause Value when network is out of order*/
+ public static final int SMS_RP_CAUSE_NETWORK_OUT_OF_ORDER = 38;
+
+ /** RP-Cause Value For Temporary failure*/
+ public static final int SMS_RP_CAUSE_TEMPORARY_FAILURE = 41;
+
+ /** RP-Cause Value for SMS Failure due to Congestion in network*/
+ public static final int SMS_RP_CAUSE_CONGESTION = 42;
+
+ /** RP-Cause Value when Network Resources are unavailable */
+ public static final int SMS_RP_CAUSE_RESOURCES_UNAVAILABLE = 47;
+
+ /** RP-Cause Value when SMS Facilty is not subscribed by Reote device */
+ public static final int SMS_RP_CAUSE_FACILITY_NOT_SUBSCRIBED = 50;
+
+ /** RP-Cause Value when network does not provide the received service */
+ public static final int SMS_RP_CAUSE_FACILITY_NOT_IMPLEMENTED = 69;
+
+ /** RP-Cause Value when RP-MessageRefere */
+ public static final int SMS_RP_CAUSE_INVALID_MESSAGE_REFERENCE_VALUE = 81;
+
+ /** RP-Cause Value when network does not provide the received service */
+ public static final int SMS_RP_CAUSE_SEMANTICALLY_INCORRECT_MESSAGE = 95;
+
+ /** RP-Cause Value when network does not provide the received service */
+ public static final int SMS_RP_CAUSE_INVALID_MANDATORY_INFORMATION = 96;
+
+ /** RP-Cause Value when network does not provide the received service */
+ public static final int SMS_RP_CAUSE_MESSAGE_TYPE_NON_EXISTENT = 97;
+
+ /** RP-Cause Value when network does not provide the received service */
+ public static final int SMS_RP_CAUSE_MESSAGE_INCOMPATIBLE_WITH_PROTOCOL_STATE = 98;
+
+ /** RP-Cause Value when network does not provide the received service */
+ public static final int SMS_RP_CAUSE_INFORMATION_ELEMENT_NON_EXISTENT = 99;
+
+ /** RP-Cause Value when network does not provide the received service */
+ public static final int SMS_RP_CAUSE_PROTOCOL_ERROR = 111;
+
+ /** RP-Cause Value when network does not provide the received service */
+ public static final int SMS_RP_CAUSE_INTERWORKING_UNSPECIFIED = 127;
+
/** @hide */
@IntDef(prefix = { "PREMIUM_SMS_CONSENT" }, value = {
SmsManager.PREMIUM_SMS_CONSENT_UNKNOWN,