diff options
| author | 2022-12-20 23:10:41 +0000 | |
|---|---|---|
| committer | 2022-12-20 23:10:41 +0000 | |
| commit | aecdff38bd7c47f694b9db1d5697ba4f84c1376c (patch) | |
| tree | c669b16887a7f6f668cb66150edbf4273c82a2a2 | |
| parent | 5c0e3a8d03cf0b1c5dc9ceb03f39ae658a47b302 (diff) | |
| parent | 3f6b9c104d63759b1b6ebbba87aa44744e7d7188 (diff) | |
Merge "Addition of TR1, TR2 Timer and SMS Retry Cause into CarrierConfig"
| -rw-r--r-- | core/api/current.txt | 30 | ||||
| -rw-r--r-- | telephony/java/android/telephony/CarrierConfigManager.java | 112 | ||||
| -rw-r--r-- | telephony/java/android/telephony/SmsManager.java | 100 |
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, |