1 /* 2 * Copyright (C) 2015 The Android Open Source Project 3 * 4 * Licensed under the Apache License, Version 2.0 (the "License"); 5 * you may not use this file except in compliance with the License. 6 * You may obtain a copy of the License at 7 * 8 * http://www.apache.org/licenses/LICENSE-2.0 9 * 10 * Unless required by applicable law or agreed to in writing, software 11 * distributed under the License is distributed on an "AS IS" BASIS, 12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13 * See the License for the specific language governing permissions and 14 * limitations under the License. 15 */ 16 17 package android.telephony; 18 19 import android.Manifest; 20 import android.annotation.CallbackExecutor; 21 import android.annotation.FlaggedApi; 22 import android.annotation.IntDef; 23 import android.annotation.NonNull; 24 import android.annotation.Nullable; 25 import android.annotation.RequiresFeature; 26 import android.annotation.RequiresPermission; 27 import android.annotation.SuppressAutoDoc; 28 import android.annotation.SuppressLint; 29 import android.annotation.SystemApi; 30 import android.annotation.SystemService; 31 import android.compat.annotation.UnsupportedAppUsage; 32 import android.content.ComponentName; 33 import android.content.Context; 34 import android.content.pm.PackageManager; 35 import android.net.NetworkCapabilities; 36 import android.net.ipsec.ike.SaProposal; 37 import android.os.Build; 38 import android.os.Handler; 39 import android.os.PersistableBundle; 40 import android.os.RemoteException; 41 import android.service.carrier.CarrierService; 42 import android.telecom.TelecomManager; 43 import android.telephony.AccessNetworkConstants.AccessNetworkType; 44 import android.telephony.data.ApnSetting; 45 import android.telephony.gba.TlsParams; 46 import android.telephony.gba.UaSecurityProtocolIdentifier; 47 import android.telephony.ims.ImsReasonInfo; 48 import android.telephony.ims.ImsRegistrationAttributes; 49 import android.telephony.ims.ImsSsData; 50 import android.telephony.ims.MediaQualityStatus; 51 import android.telephony.ims.RcsUceAdapter; 52 import android.telephony.ims.feature.MmTelFeature; 53 import android.telephony.ims.feature.RcsFeature; 54 55 import com.android.internal.telephony.ICarrierConfigLoader; 56 import com.android.internal.telephony.flags.Flags; 57 import com.android.telephony.Rlog; 58 59 import java.util.List; 60 import java.util.Objects; 61 import java.util.concurrent.Executor; 62 import java.util.concurrent.TimeUnit; 63 import java.util.function.Consumer; 64 65 /** 66 * Provides access to telephony configuration values that are carrier-specific. 67 */ 68 @SystemService(Context.CARRIER_CONFIG_SERVICE) 69 @RequiresFeature(PackageManager.FEATURE_TELEPHONY_SUBSCRIPTION) 70 public class CarrierConfigManager { 71 private static final String TAG = "CarrierConfigManager"; 72 73 /** 74 * Extra included in {@link #ACTION_CARRIER_CONFIG_CHANGED} to indicate the slot index that the 75 * broadcast is for. 76 */ 77 public static final String EXTRA_SLOT_INDEX = "android.telephony.extra.SLOT_INDEX"; 78 79 /** 80 * {@link #ACTION_CARRIER_CONFIG_CHANGED} is broadcast once on device bootup and then again when 81 * the device is unlocked. Direct-Boot-aware applications may use the first broadcast as an 82 * early signal that the carrier config has been loaded, but other applications will only 83 * receive the second broadcast, when the device is unlocked. 84 * 85 * This extra is included in {@link #ACTION_CARRIER_CONFIG_CHANGED} to indicate whether this is 86 * a rebroadcast on unlock. 87 */ 88 public static final String EXTRA_REBROADCAST_ON_UNLOCK = 89 "android.telephony.extra.REBROADCAST_ON_UNLOCK"; 90 91 /** 92 * Optional extra included in {@link #ACTION_CARRIER_CONFIG_CHANGED} to indicate the 93 * subscription index that the broadcast is for, if a valid one is available. 94 */ 95 public static final String EXTRA_SUBSCRIPTION_INDEX = 96 SubscriptionManager.EXTRA_SUBSCRIPTION_INDEX; 97 98 /** 99 * Service class flag if no specific service class is specified. 100 * Reference: 3GPP TS 27.007 Section 7.4 Facility lock +CLCK 101 */ 102 public static final int SERVICE_CLASS_NONE = ImsSsData.SERVICE_CLASS_NONE; 103 104 /** 105 * Service class flag for voice telephony. 106 * Reference: 3GPP TS 27.007 Section 7.4 Facility lock +CLCK 107 */ 108 public static final int SERVICE_CLASS_VOICE = ImsSsData.SERVICE_CLASS_VOICE; 109 110 /** 111 * Only send USSD over IMS while CS is out of service, otherwise send USSD over CS. 112 * {@link #KEY_CARRIER_USSD_METHOD_INT} 113 */ 114 public static final int USSD_OVER_CS_PREFERRED = 0; 115 116 /** 117 * Send USSD over IMS or CS while IMS is out of service or silent redial over CS if needed. 118 * {@link #KEY_CARRIER_USSD_METHOD_INT} 119 */ 120 public static final int USSD_OVER_IMS_PREFERRED = 1; 121 122 /** 123 * Only send USSD over CS. 124 * {@link #KEY_CARRIER_USSD_METHOD_INT} 125 */ 126 public static final int USSD_OVER_CS_ONLY = 2; 127 128 /** 129 * Only send USSD over IMS and disallow silent redial over CS. 130 * {@link #KEY_CARRIER_USSD_METHOD_INT} 131 */ 132 public static final int USSD_OVER_IMS_ONLY = 3; 133 134 /** 135 * Indicates CARRIER_NR_AVAILABILITY_NSA determine that the carrier enable the non-standalone 136 * (NSA) mode of 5G NR. 137 */ 138 public static final int CARRIER_NR_AVAILABILITY_NSA = 1; 139 140 /** 141 * Indicates CARRIER_NR_AVAILABILITY_SA determine that the carrier enable the standalone (SA) 142 * mode of 5G NR. 143 */ 144 public static final int CARRIER_NR_AVAILABILITY_SA = 2; 145 146 private final Context mContext; 147 148 /** 149 * @hide 150 */ CarrierConfigManager(Context context)151 public CarrierConfigManager(Context context) { 152 mContext = context; 153 } 154 155 /** 156 * This intent is broadcast by the system when carrier config changes. An int is specified in 157 * {@link #EXTRA_SLOT_INDEX} to indicate the slot index that this is for. An optional int extra 158 * {@link #EXTRA_SUBSCRIPTION_INDEX} is included to indicate the subscription index if a valid 159 * one is available for the slot index. An optional int extra 160 * {@link TelephonyManager#EXTRA_CARRIER_ID} is included to indicate the carrier id for the 161 * changed carrier configuration. An optional int extra 162 * {@link TelephonyManager#EXTRA_SPECIFIC_CARRIER_ID} is included to indicate the precise 163 * carrier id for the changed carrier configuration. 164 * @see TelephonyManager#getSimCarrierId() 165 * @see TelephonyManager#getSimSpecificCarrierId() 166 */ 167 public static final String ACTION_CARRIER_CONFIG_CHANGED = 168 "android.telephony.action.CARRIER_CONFIG_CHANGED"; 169 170 // Below are the keys used in carrier config bundles. To add a new variable, define the key and 171 // give it a default value in sDefaults. If you need to ship a per-network override in the 172 // system image, that can be added in packages/apps/CarrierConfig. 173 174 /** 175 * Specifies a value that identifies the version of the carrier configuration that is 176 * currently in use. This string is displayed on the UI. 177 * The format of the string is not specified. 178 */ 179 public static final String KEY_CARRIER_CONFIG_VERSION_STRING = 180 "carrier_config_version_string"; 181 182 /** 183 * This flag specifies whether VoLTE availability is based on provisioning. By default this is 184 * false. 185 * Used for UCE to determine if EAB provisioning checks should be based on provisioning. 186 * @deprecated Use {@link Ims#KEY_CARRIER_RCS_PROVISIONING_REQUIRED_BOOL} instead. 187 */ 188 @Deprecated 189 public static final String KEY_CARRIER_VOLTE_PROVISIONED_BOOL = 190 "carrier_volte_provisioned_bool"; 191 192 /** 193 * Boolean indicating the Supplementary Services(SS) is disable when airplane mode on in the 194 * Call Settings menu. 195 * {@code true}: SS is disable when airplane mode on. 196 * {@code false}: SS is enable when airplane mode on. 197 * The default value for this key is {@code false} 198 */ 199 public static final String KEY_DISABLE_SUPPLEMENTARY_SERVICES_IN_AIRPLANE_MODE_BOOL = 200 "disable_supplementary_services_in_airplane_mode_bool"; 201 202 /** 203 * Boolean indicating if the "Call forwarding" item is visible in the Call Settings menu. 204 * true means visible. false means gone. 205 * @hide 206 */ 207 public static final String KEY_CALL_FORWARDING_VISIBILITY_BOOL = 208 "call_forwarding_visibility_bool"; 209 210 /** 211 * Boolean indicating if carrier supports call forwarding option "When unreachable". 212 * 213 * {@code true}: Call forwarding option "When unreachable" is supported. 214 * {@code false}: Call forwarding option "When unreachable" is not supported. Option will be 215 * removed in the UI. 216 * 217 * By default this value is true. 218 * @hide 219 */ 220 public static final String KEY_CALL_FORWARDING_WHEN_UNREACHABLE_SUPPORTED_BOOL = 221 "call_forwarding_when_unreachable_supported_bool"; 222 223 /** 224 * Boolean indicating if carrier supports call forwarding option "When unanswered". 225 * 226 * {@code true}: Call forwarding option "When unanswered" is supported. 227 * {@code false}: Call forwarding option "When unanswered" is not supported. Option will be 228 * removed in the UI. 229 * 230 * By default this value is true. 231 * @hide 232 */ 233 public static final String KEY_CALL_FORWARDING_WHEN_UNANSWERED_SUPPORTED_BOOL = 234 "call_forwarding_when_unanswered_supported_bool"; 235 236 /** 237 * Boolean indicating if carrier supports call forwarding option "When busy". 238 * 239 * {@code true}: Call forwarding option "When busy" is supported. 240 * {@code false}: Call forwarding option "When busy" is not supported. Option will be 241 * removed in the UI. 242 * 243 * By default this value is true. 244 * @hide 245 */ 246 public static final String KEY_CALL_FORWARDING_WHEN_BUSY_SUPPORTED_BOOL = 247 "call_forwarding_when_busy_supported_bool"; 248 249 /** 250 * Boolean indicating if the "Caller ID" item is visible in the Additional Settings menu. 251 * true means visible. false means gone. 252 * 253 * The default value is true. 254 */ 255 @FlaggedApi(Flags.FLAG_SHOW_CALL_ID_AND_CALL_WAITING_IN_ADDITIONAL_SETTINGS_MENU) 256 public static final String KEY_ADDITIONAL_SETTINGS_CALLER_ID_VISIBILITY_BOOL = 257 "additional_settings_caller_id_visibility_bool"; 258 259 /** 260 * Boolean indicating if the "Call Waiting" item is visible in the Additional Settings menu. 261 * true means visible. false means gone. 262 * 263 * The default value is true. 264 */ 265 @FlaggedApi(Flags.FLAG_SHOW_CALL_ID_AND_CALL_WAITING_IN_ADDITIONAL_SETTINGS_MENU) 266 public static final String KEY_ADDITIONAL_SETTINGS_CALL_WAITING_VISIBILITY_BOOL = 267 "additional_settings_call_waiting_visibility_bool"; 268 269 /** 270 * Boolean indicating if the "Call barring" item is visible in the Call Settings menu. 271 * If true, the "Call Barring" menu will be visible. If false, the menu will be gone. 272 * 273 * Disabled by default. 274 */ 275 public static final String KEY_CALL_BARRING_VISIBILITY_BOOL = 276 "call_barring_visibility_bool"; 277 278 /** 279 * Flag indicating whether or not changing the call barring password via the "Call Barring" 280 * settings menu is supported. If true, the option will be visible in the "Call 281 * Barring" settings menu. If false, the option will not be visible. 282 * 283 * Enabled by default. 284 */ 285 public static final String KEY_CALL_BARRING_SUPPORTS_PASSWORD_CHANGE_BOOL = 286 "call_barring_supports_password_change_bool"; 287 288 /** 289 * Flag indicating whether or not deactivating all call barring features via the "Call Barring" 290 * settings menu is supported. If true, the option will be visible in the "Call 291 * Barring" settings menu. If false, the option will not be visible. 292 * 293 * Enabled by default. 294 */ 295 public static final String KEY_CALL_BARRING_SUPPORTS_DEACTIVATE_ALL_BOOL = 296 "call_barring_supports_deactivate_all_bool"; 297 298 /** 299 * Specifies the service class for call barring service. Default value is 300 * {@link #SERVICE_CLASS_VOICE}. 301 * The value set as below: 302 * <ul> 303 * <li>0: {@link #SERVICE_CLASS_NONE}</li> 304 * <li>1: {@link #SERVICE_CLASS_VOICE}</li> 305 * </ul> 306 */ 307 public static final String KEY_CALL_BARRING_DEFAULT_SERVICE_CLASS_INT = 308 "call_barring_default_service_class_int"; 309 310 /** 311 * This carrier supports dialing USSD codes to enable/disable supplementary services such as 312 * call forwarding and call waiting over CDMA. 313 * <p> 314 * The supplementary service menu will still need to be set as visible, see 315 * {@link #KEY_CALL_FORWARDING_VISIBILITY_BOOL} and 316 * {@link #KEY_ADDITIONAL_SETTINGS_CALL_WAITING_VISIBILITY_BOOL}. 317 * <p> 318 * If this is set as false and the supplementary service menu is visible, the associated setting 319 * will be enabled and disabled based on the availability of supplementary services over UT. See 320 * {@link #KEY_CARRIER_SUPPORTS_SS_OVER_UT_BOOL}. 321 * @hide 322 */ 323 public static final String KEY_SUPPORT_SS_OVER_CDMA_BOOL = "support_ss_over_cdma_bool"; 324 325 /** 326 * Flag indicating whether the Phone app should ignore EVENT_SIM_NETWORK_LOCKED 327 * events from the Sim. 328 * If true, this will prevent the IccNetworkDepersonalizationPanel from being shown, and 329 * effectively disable the "Sim network lock" feature. 330 */ 331 public static final String KEY_IGNORE_SIM_NETWORK_LOCKED_EVENTS_BOOL = 332 "ignore_sim_network_locked_events_bool"; 333 334 /** 335 * When checking if a given number is the voicemail number, if this flag is true 336 * then in addition to comparing the given number to the voicemail number, we also compare it 337 * to the mdn. If this flag is false, the given number is only compared to the voicemail number. 338 * By default this value is false. 339 */ 340 public static final String KEY_MDN_IS_ADDITIONAL_VOICEMAIL_NUMBER_BOOL = 341 "mdn_is_additional_voicemail_number_bool"; 342 343 /** 344 * Flag indicating whether the Phone app should provide a "Dismiss" button on the SIM network 345 * unlock screen. The default value is true. If set to false, there will be *no way* to dismiss 346 * the SIM network unlock screen if you don't enter the correct unlock code. (One important 347 * consequence: there will be no way to make an Emergency Call if your SIM is network-locked and 348 * you don't know the PIN.) 349 */ 350 public static final String KEY_SIM_NETWORK_UNLOCK_ALLOW_DISMISS_BOOL = 351 "sim_network_unlock_allow_dismiss_bool"; 352 353 /** 354 * Flag indicating whether or not sending emergency SMS messages over IMS 355 * is supported when in LTE/limited LTE (Emergency only) service mode.. 356 */ 357 public static final String KEY_SUPPORT_EMERGENCY_SMS_OVER_IMS_BOOL = 358 "support_emergency_sms_over_ims_bool"; 359 360 /** Flag indicating if the phone is a world phone */ 361 public static final String KEY_WORLD_PHONE_BOOL = "world_phone_bool"; 362 363 /** 364 * Flag to require or skip entitlement checks. 365 * If true, entitlement checks will be executed if device has been configured for it, 366 * If false, entitlement checks will be skipped. 367 */ 368 public static final String KEY_REQUIRE_ENTITLEMENT_CHECKS_BOOL = 369 "require_entitlement_checks_bool"; 370 371 /** 372 * Flag indicating if the carrier supports tethering of mobile data. 373 */ 374 public static final String KEY_CARRIER_SUPPORTS_TETHERING_BOOL = 375 "carrier_supports_tethering_bool"; 376 377 /** 378 * Flag indicating whether radio is to be restarted on error PDP_FAIL_REGULAR_DEACTIVATION 379 * This is false by default. 380 * 381 * @deprecated Use {@link #KEY_RADIO_RESTART_FAILURE_CAUSES_INT_ARRAY} instead 382 */ 383 @Deprecated 384 public static final String KEY_RESTART_RADIO_ON_PDP_FAIL_REGULAR_DEACTIVATION_BOOL = 385 "restart_radio_on_pdp_fail_regular_deactivation_bool"; 386 387 /** 388 * A list of failure cause codes that will trigger a modem restart when telephony receiving 389 * one of those during data setup. The cause codes are defined in 3GPP TS 24.008 Annex I and 390 * TS 24.301 Annex B. 391 */ 392 public static final String KEY_RADIO_RESTART_FAILURE_CAUSES_INT_ARRAY = 393 "radio_restart_failure_causes_int_array"; 394 395 /** 396 * If true, enable vibration (haptic feedback) for key presses in the EmergencyDialer activity. 397 * The pattern is set on a per-platform basis using config_virtualKeyVibePattern. To be 398 * consistent with the regular Dialer, this value should agree with the corresponding values 399 * from config.xml under apps/Contacts. 400 */ 401 public static final String KEY_ENABLE_DIALER_KEY_VIBRATION_BOOL = 402 "enable_dialer_key_vibration_bool"; 403 404 /** Flag indicating if dtmf tone type is enabled */ 405 public static final String KEY_DTMF_TYPE_ENABLED_BOOL = "dtmf_type_enabled_bool"; 406 407 /** Flag indicating if auto retry is enabled */ 408 public static final String KEY_AUTO_RETRY_ENABLED_BOOL = "auto_retry_enabled_bool"; 409 410 /** 411 * Determine whether we want to play local DTMF tones in a call, or just let the radio/BP handle 412 * playing of the tones. 413 */ 414 public static final String KEY_ALLOW_LOCAL_DTMF_TONES_BOOL = "allow_local_dtmf_tones_bool"; 415 416 /** 417 * Determines if the carrier requires that a tone be played to the remote party when an app is 418 * recording audio during a call (e.g. using a call recording app). 419 * <p> 420 * Note: This requires the Telephony config_supports_telephony_audio_device overlay to be true 421 * in order to work. 422 * @hide 423 */ 424 public static final String KEY_PLAY_CALL_RECORDING_TONE_BOOL = "play_call_recording_tone_bool"; 425 426 /** 427 * Determines if the carrier requires converting the destination number before sending out an 428 * SMS. Certain networks and numbering plans require different formats. 429 */ 430 public static final String KEY_SMS_REQUIRES_DESTINATION_NUMBER_CONVERSION_BOOL = 431 "sms_requires_destination_number_conversion_bool"; 432 433 /** 434 * If true, show an onscreen "Dial" button in the dialer. In practice this is used on all 435 * platforms, even the ones with hard SEND/END keys, but for maximum flexibility it's controlled 436 * by a flag here (which can be overridden on a per-product basis.) 437 */ 438 public static final String KEY_SHOW_ONSCREEN_DIAL_BUTTON_BOOL = 439 "show_onscreen_dial_button_bool"; 440 441 /** Determines if device implements a noise suppression device for in call audio. */ 442 public static final String 443 KEY_HAS_IN_CALL_NOISE_SUPPRESSION_BOOL = "has_in_call_noise_suppression_bool"; 444 445 /** 446 * Determines if the current device should allow emergency numbers to be logged in the Call Log. 447 * (Some carriers require that emergency calls *not* be logged, presumably to avoid the risk of 448 * accidental redialing from the call log UI. This is a good idea, so the default here is 449 * false.) 450 */ 451 public static final String KEY_ALLOW_EMERGENCY_NUMBERS_IN_CALL_LOG_BOOL = 452 "allow_emergency_numbers_in_call_log_bool"; 453 454 /** 455 * A string array containing numbers that shouldn't be included in the call log. 456 */ 457 public static final String KEY_UNLOGGABLE_NUMBERS_STRING_ARRAY = 458 "unloggable_numbers_string_array"; 459 460 /** If true, removes the Voice Privacy option from Call Settings */ 461 public static final String KEY_VOICE_PRIVACY_DISABLE_UI_BOOL = "voice_privacy_disable_ui_bool"; 462 463 /** Control whether users can reach the carrier portions of Cellular Network Settings. */ 464 public static final String 465 KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL = "hide_carrier_network_settings_bool"; 466 467 /** 468 * Only allow auto selection in Advanced Network Settings when in home network. 469 * Manual selection is allowed when in roaming network. 470 */ 471 public static final String KEY_ONLY_AUTO_SELECT_IN_HOME_NETWORK_BOOL = 472 "only_auto_select_in_home_network"; 473 474 /** 475 * Flag indicating whether to show single operator row in the choose network setting. 476 * 477 * The device configuration value {@code config_enableNewAutoSelectNetworkUI} ultimately 478 * controls whether this carrier configuration option is used. 479 * Where {@code config_enableNewAutoSelectNetworkUI} is false, the value of this 480 * carrier configuration is ignored. 481 * 482 * If {@code true}, default value, merge the duplicate networks which with the same plmn, keep 483 * the one that with the higher signal strength level. 484 * If {@code false}, show all operators without merging. 485 * @hide 486 */ 487 public static final String KEY_SHOW_SINGLE_OPERATOR_ROW_IN_CHOOSE_NETWORK_SETTING_BOOL = 488 "show_single_operator_row_in_choose_network_setting_bool"; 489 490 /** 491 * Flag indicating whether to display SPN as network name for home network in choose 492 * network setting. 493 * 494 * If {@code true}, display SPN as network name in choose network setting. 495 * If {@code false}, display PLMN in choose network setting. 496 * @hide 497 */ 498 public static final String KEY_SHOW_SPN_FOR_HOME_IN_CHOOSE_NETWORK_SETTING_BOOL = 499 "show_spn_for_home_in_choose_network_setting_bool"; 500 501 /** 502 * Control whether users receive a simplified network settings UI and improved network 503 * selection. 504 * 505 * @deprecated Never implemented. Has no behavior impact when override. DO NOT USE. 506 */ 507 @Deprecated 508 public static final String KEY_SIMPLIFIED_NETWORK_SETTINGS_BOOL = 509 "simplified_network_settings_bool"; 510 511 /** Control whether users can reach the SIM lock settings. */ 512 public static final String KEY_HIDE_SIM_LOCK_SETTINGS_BOOL = "hide_sim_lock_settings_bool"; 513 514 /** Control whether users can edit APNs in Settings. */ 515 public static final String KEY_APN_EXPAND_BOOL = "apn_expand_bool"; 516 517 /** Control whether users can choose a network operator. */ 518 public static final String KEY_OPERATOR_SELECTION_EXPAND_BOOL = 519 "operator_selection_expand_bool"; 520 521 /** 522 * Used in the Preferred Network Types menu to determine if the 2G option is displayed. 523 * Value defaults to false as of Android T to discourage the use of insecure 2G protocols. 524 */ 525 public static final String KEY_PREFER_2G_BOOL = "prefer_2g_bool"; 526 527 /** 528 * Used in the Preferred Network Types menu to determine if the 3G option is displayed. 529 */ 530 @FlaggedApi(Flags.FLAG_HIDE_PREFER_3G_ITEM) 531 public static final String KEY_PREFER_3G_VISIBILITY_BOOL = "prefer_3g_visibility_bool"; 532 533 /** 534 * Used in Cellular Network Settings for preferred network type to show 4G only mode. 535 * @hide 536 */ 537 public static final String KEY_4G_ONLY_BOOL = "4g_only_bool"; 538 539 /** Show cdma network mode choices 1x, 3G, global etc. */ 540 public static final String KEY_SHOW_CDMA_CHOICES_BOOL = "show_cdma_choices_bool"; 541 542 /** CDMA activation goes through HFA */ 543 public static final String KEY_USE_HFA_FOR_PROVISIONING_BOOL = "use_hfa_for_provisioning_bool"; 544 545 /** 546 * CDMA activation goes through OTASP. 547 */ 548 // TODO: This should be combined with config_use_hfa_for_provisioning and implemented as an enum 549 // (NONE, HFA, OTASP). 550 public static final String KEY_USE_OTASP_FOR_PROVISIONING_BOOL = 551 "use_otasp_for_provisioning_bool"; 552 553 /** Display carrier settings menu if true */ 554 public static final String KEY_CARRIER_SETTINGS_ENABLE_BOOL = "carrier_settings_enable_bool"; 555 556 /** Does not display additional call setting for IMS phone based on GSM Phone */ 557 public static final String KEY_ADDITIONAL_CALL_SETTING_BOOL = "additional_call_setting_bool"; 558 559 /** Show APN Settings for some CDMA carriers */ 560 public static final String KEY_SHOW_APN_SETTING_CDMA_BOOL = "show_apn_setting_cdma_bool"; 561 562 /** After a CDMA conference call is merged, the swap button should be displayed. */ 563 public static final String KEY_SUPPORT_SWAP_AFTER_MERGE_BOOL = "support_swap_after_merge_bool"; 564 565 /** 566 * Determine whether user can edit voicemail number in Settings. 567 */ 568 public static final String KEY_EDITABLE_VOICEMAIL_NUMBER_SETTING_BOOL = 569 "editable_voicemail_number_setting_bool"; 570 571 /** 572 * Since the default voicemail number is empty, if a SIM card does not have a voicemail number 573 * available the user cannot use voicemail. This flag allows the user to edit the voicemail 574 * number in such cases, and is false by default. 575 */ 576 public static final String KEY_EDITABLE_VOICEMAIL_NUMBER_BOOL = 577 "editable_voicemail_number_bool"; 578 579 /** 580 * Determine whether the voicemail number in Settings is hidden. 581 * @hide 582 */ 583 public static final String KEY_HIDE_VOICEMAIL_NUMBER_SETTING_BOOL = 584 "hide_voicemail_number_setting_bool"; 585 586 /** 587 * Determine whether the voicemail notification is persistent in the notification bar. If true, 588 * the voicemail notifications cannot be dismissed from the notification bar. 589 */ 590 public static final String KEY_VOICEMAIL_NOTIFICATION_PERSISTENT_BOOL = 591 "voicemail_notification_persistent_bool"; 592 593 /** For IMS video over LTE calls, determines whether video pause signalling is supported. */ 594 public static final String KEY_SUPPORT_PAUSE_IMS_VIDEO_CALLS_BOOL = 595 "support_pause_ims_video_calls_bool"; 596 597 /** 598 * Disables dialing "*228" (OTASP provisioning) on CDMA carriers where it is not supported or is 599 * potentially harmful by locking the SIM to 3G. 600 */ 601 public static final String KEY_DISABLE_CDMA_ACTIVATION_CODE_BOOL = 602 "disable_cdma_activation_code_bool"; 603 604 /** 605 * List of network type constants which support only a single data connection at a time. 606 * Some carriers do not support multiple PDP on UMTS. 607 * @see TelephonyManager NETWORK_TYPE_* 608 * @see #KEY_ONLY_SINGLE_DC_ALLOWED_INT_ARRAY 609 */ 610 public static final String KEY_ONLY_SINGLE_DC_ALLOWED_INT_ARRAY = 611 "only_single_dc_allowed_int_array"; 612 613 /** 614 * Only apply if {@link #KEY_ONLY_SINGLE_DC_ALLOWED_INT_ARRAY} specifies the network types that 615 * support a single data connection at a time. This key defines a list of network capabilities 616 * which, if requested, will exempt the request from single data connection checks. 617 * @see NetworkCapabilities NET_CAPABILITY_* 618 */ 619 public static final String KEY_CAPABILITIES_EXEMPT_FROM_SINGLE_DC_CHECK_INT_ARRAY = 620 "capabilities_exempt_from_single_dc_check_int_array"; 621 622 /** 623 * Override the platform's notion of a network operator being considered roaming. 624 * Value is string array of MCCMNCs to be considered roaming for 3GPP RATs. 625 */ 626 public static final String KEY_GSM_ROAMING_NETWORKS_STRING_ARRAY = 627 "gsm_roaming_networks_string_array"; 628 629 /** 630 * Override the platform's notion of a network operator being considered not roaming. 631 * Value is string array of MCCMNCs to be considered not roaming for 3GPP RATs. 632 */ 633 public static final String KEY_GSM_NONROAMING_NETWORKS_STRING_ARRAY = 634 "gsm_nonroaming_networks_string_array"; 635 636 /** 637 * The package name containing the ImsService that will be bound to the telephony framework to 638 * support both IMS MMTEL and RCS feature functionality instead of the device default 639 * ImsService for this subscription. 640 * @deprecated Use {@link #KEY_CONFIG_IMS_MMTEL_PACKAGE_OVERRIDE_STRING} and 641 * {@link #KEY_CONFIG_IMS_RCS_PACKAGE_OVERRIDE_STRING} instead to configure these values 642 * separately. If any of those values are not empty, they will override this value. 643 */ 644 @Deprecated 645 public static final String KEY_CONFIG_IMS_PACKAGE_OVERRIDE_STRING = 646 "config_ims_package_override_string"; 647 648 /** 649 * The package name containing the ImsService that will be bound to the telephony framework to 650 * support IMS MMTEL feature functionality instead of the device default ImsService for this 651 * subscription. 652 */ 653 public static final String KEY_CONFIG_IMS_MMTEL_PACKAGE_OVERRIDE_STRING = 654 "config_ims_mmtel_package_override_string"; 655 656 /** 657 * The package name containing the ImsService that will be bound to the telephony framework to 658 * support IMS RCS feature functionality instead of the device default ImsService for this 659 * subscription. 660 */ 661 public static final String KEY_CONFIG_IMS_RCS_PACKAGE_OVERRIDE_STRING = 662 "config_ims_rcs_package_override_string"; 663 664 /** 665 * Override the package that will manage {@link SubscriptionPlan} 666 * information instead of the {@link CarrierService} that defines this 667 * value. 668 * 669 * @see SubscriptionManager#getSubscriptionPlans(int) 670 * @see SubscriptionManager#setSubscriptionPlans(int, java.util.List) 671 */ 672 public static final String KEY_CONFIG_PLANS_PACKAGE_OVERRIDE_STRING = 673 "config_plans_package_override_string"; 674 675 /** 676 * Override the platform's notion of a network operator being considered roaming. 677 * Value is string array of SIDs to be considered roaming for 3GPP2 RATs. 678 */ 679 public static final String 680 KEY_CDMA_ROAMING_NETWORKS_STRING_ARRAY = "cdma_roaming_networks_string_array"; 681 682 /** 683 * Override the platform's notion of a network operator being considered non roaming. 684 * Value is string array of SIDs to be considered not roaming for 3GPP2 RATs. 685 */ 686 public static final String 687 KEY_CDMA_NONROAMING_NETWORKS_STRING_ARRAY = "cdma_nonroaming_networks_string_array"; 688 689 /** 690 * Override the platform's notion of a network operator being considered non roaming. 691 * If true all networks are considered as home network a.k.a. non-roaming. When false, 692 * the 2 pairs of CMDA and GSM roaming/non-roaming arrays are consulted. 693 * 694 * @see #KEY_GSM_ROAMING_NETWORKS_STRING_ARRAY 695 * @see #KEY_GSM_NONROAMING_NETWORKS_STRING_ARRAY 696 * @see #KEY_CDMA_ROAMING_NETWORKS_STRING_ARRAY 697 * @see #KEY_CDMA_NONROAMING_NETWORKS_STRING_ARRAY 698 */ 699 public static final String 700 KEY_FORCE_HOME_NETWORK_BOOL = "force_home_network_bool"; 701 702 /** 703 * Flag specifying whether VoLTE should be available for carrier, independent of carrier 704 * provisioning. If false: hard disabled. If true: then depends on carrier provisioning, 705 * availability, etc. 706 */ 707 public static final String KEY_CARRIER_VOLTE_AVAILABLE_BOOL = "carrier_volte_available_bool"; 708 709 /** 710 * Flag specifying whether video telephony is available for carrier. If false: hard disabled. 711 * If true: then depends on carrier provisioning, availability, etc. 712 */ 713 public static final String KEY_CARRIER_VT_AVAILABLE_BOOL = "carrier_vt_available_bool"; 714 715 /** 716 * Specify the method of selection for UE sending USSD requests. The default value is 717 * {@link #USSD_OVER_CS_PREFERRED}. 718 * <p> Available options: 719 * <ul> 720 * <li>0: {@link #USSD_OVER_CS_PREFERRED} </li> 721 * <li>1: {@link #USSD_OVER_IMS_PREFERRED} </li> 722 * <li>2: {@link #USSD_OVER_CS_ONLY} </li> 723 * <li>3: {@link #USSD_OVER_IMS_ONLY} </li> 724 * </ul> 725 */ 726 public static final String KEY_CARRIER_USSD_METHOD_INT = "carrier_ussd_method_int"; 727 728 /** 729 * Flag specifying whether to show an alert dialog for 5G disable when the user disables VoLTE. 730 * By default this value is {@code false}. 731 * 732 * @hide 733 */ 734 public static final String KEY_VOLTE_5G_LIMITED_ALERT_DIALOG_BOOL = 735 "volte_5g_limited_alert_dialog_bool"; 736 737 /** 738 * Flag specifying whether the carrier wants to notify the user when a VT call has been handed 739 * over from WIFI to LTE. 740 * <p> 741 * The handover notification is sent as a 742 * {@link TelephonyManager#EVENT_HANDOVER_VIDEO_FROM_WIFI_TO_LTE} 743 * {@link android.telecom.Connection} event, which an {@link android.telecom.InCallService} 744 * should use to trigger the display of a user-facing message. 745 * <p> 746 * The Connection event is sent to the InCallService only once, the first time it occurs. 747 * @hide 748 */ 749 public static final String KEY_NOTIFY_HANDOVER_VIDEO_FROM_WIFI_TO_LTE_BOOL = 750 "notify_handover_video_from_wifi_to_lte_bool"; 751 752 /** 753 * Flag specifying whether the carrier supports merging a RTT call with a voice call, 754 * downgrading the call in the process. 755 * @hide 756 */ 757 public static final String KEY_ALLOW_MERGING_RTT_CALLS_BOOL = "allow_merging_rtt_calls_bool"; 758 759 /** 760 * Flag specifying whether the carrier wants to notify the user when a VT call has been handed 761 * over from LTE to WIFI. 762 * <p> 763 * The handover notification is sent as a 764 * {@link TelephonyManager#EVENT_HANDOVER_VIDEO_FROM_LTE_TO_WIFI} 765 * {@link android.telecom.Connection} event, which an {@link android.telecom.InCallService} 766 * should use to trigger the display of a user-facing message. 767 * @hide 768 */ 769 public static final String KEY_NOTIFY_HANDOVER_VIDEO_FROM_LTE_TO_WIFI_BOOL = 770 "notify_handover_video_from_lte_to_wifi_bool"; 771 772 /** 773 * Flag specifying whether the carrier supports downgrading a video call (tx, rx or tx/rx) 774 * directly to an audio call. 775 * @hide 776 */ 777 public static final String KEY_SUPPORT_DOWNGRADE_VT_TO_AUDIO_BOOL = 778 "support_downgrade_vt_to_audio_bool"; 779 780 /** 781 * Where there is no preloaded voicemail number on a SIM card, specifies the carrier's default 782 * voicemail number. 783 * When empty string, no default voicemail number is specified. 784 */ 785 public static final String KEY_DEFAULT_VM_NUMBER_STRING = "default_vm_number_string"; 786 787 /** 788 * Where there is no preloaded voicemail number on a SIM card, specifies the carrier's default 789 * voicemail number for roaming network. 790 * When empty string, no default voicemail number is specified for roaming network. 791 * @hide 792 */ 793 public static final String KEY_DEFAULT_VM_NUMBER_ROAMING_STRING = 794 "default_vm_number_roaming_string"; 795 796 /** 797 * Where there is no preloaded voicemail number on a SIM card, specifies the carrier's default 798 * voicemail number while the device is both roaming and not registered for IMS. 799 * When empty string, no default voicemail number is specified for roaming network and 800 * unregistered state in IMS. 801 */ 802 public static final String KEY_DEFAULT_VM_NUMBER_ROAMING_AND_IMS_UNREGISTERED_STRING = 803 "default_vm_number_roaming_and_ims_unregistered_string"; 804 805 /** 806 * Flag that specifies to use the user's own phone number as the voicemail number when there is 807 * no pre-loaded voicemail number on the SIM card. 808 * <p> 809 * {@link #KEY_DEFAULT_VM_NUMBER_STRING} takes precedence over this flag. 810 * <p> 811 * If false, the system default (*86) will be used instead. 812 */ 813 public static final String KEY_CONFIG_TELEPHONY_USE_OWN_NUMBER_FOR_VOICEMAIL_BOOL = 814 "config_telephony_use_own_number_for_voicemail_bool"; 815 816 /** 817 * When {@code true}, changes to the mobile data enabled switch will not cause the VT 818 * registration state to change. That is, turning on or off mobile data will not cause VT to be 819 * enabled or disabled. 820 * When {@code false}, disabling mobile data will cause VT to be de-registered. 821 */ 822 public static final String KEY_IGNORE_DATA_ENABLED_CHANGED_FOR_VIDEO_CALLS = 823 "ignore_data_enabled_changed_for_video_calls"; 824 825 /** 826 * Flag indicating whether data used for a video call over LTE is metered or not. 827 * <p> 828 * When {@code true}, if the device hits the data limit or data is disabled during a ViLTE call, 829 * the call will be downgraded to audio-only (or paused if 830 * {@link #KEY_SUPPORT_PAUSE_IMS_VIDEO_CALLS_BOOL} is {@code true}). 831 * 832 * @hide 833 */ 834 public static final String KEY_VILTE_DATA_IS_METERED_BOOL = "vilte_data_is_metered_bool"; 835 836 /** 837 * Flag specifying whether WFC over IMS should be available for carrier: independent of 838 * carrier provisioning. If false: hard disabled. If true: then depends on carrier 839 * provisioning, availability etc. 840 */ 841 public static final String KEY_CARRIER_WFC_IMS_AVAILABLE_BOOL = 842 "carrier_wfc_ims_available_bool"; 843 844 /** 845 * Flag specifying whether Cross SIM over IMS should be available for carrier. 846 * When {@code false} the carrier does not support cross SIM calling. 847 * When {@code true} the carrier does support cross sim calling, where available 848 */ 849 public static final String KEY_CARRIER_CROSS_SIM_IMS_AVAILABLE_BOOL = 850 "carrier_cross_sim_ims_available_bool"; 851 852 /** 853 * Flag specifying whether cross sim calling on opportunistic data is supported for carrier. 854 * When {@code false} the carrier does not support cross sim calling on opportunistic data. 855 * When {@code true} the carrier does support cross sim calling on opportunistic data. 856 */ 857 public static final String KEY_ENABLE_CROSS_SIM_CALLING_ON_OPPORTUNISTIC_DATA_BOOL = 858 "enable_cross_sim_calling_on_opportunistic_data_bool"; 859 860 /** 861 * Specifies a map from dialstrings to replacements for roaming network service numbers which 862 * cannot be replaced on the carrier side. 863 * <p> 864 * Individual entries have the format: 865 * [dialstring to replace]:[replacement] 866 */ 867 public static final String KEY_DIAL_STRING_REPLACE_STRING_ARRAY = 868 "dial_string_replace_string_array"; 869 870 /** 871 * Specifies a map from dialstrings to replacements for international roaming network service 872 * numbers which cannot be replaced on the carrier side. 873 * <p> 874 * Individual entries have the format: 875 * [dialstring to replace]:[replacement] 876 * @hide 877 */ 878 public static final String KEY_INTERNATIONAL_ROAMING_DIAL_STRING_REPLACE_STRING_ARRAY = 879 "international_roaming_dial_string_replace_string_array"; 880 881 /** 882 * Flag specifying whether WFC over IMS supports the "wifi only" option. If false, the wifi 883 * calling settings will not include an option for "wifi only". If true, the wifi calling 884 * settings will include an option for "wifi only" 885 * <p> 886 * By default, it is assumed that WFC supports "wifi only". 887 */ 888 public static final String KEY_CARRIER_WFC_SUPPORTS_WIFI_ONLY_BOOL = 889 "carrier_wfc_supports_wifi_only_bool"; 890 891 /** 892 * Default mode for WFC over IMS on home network: 893 * <ul> 894 * <li>0: Wi-Fi only 895 * <li>1: prefer mobile network 896 * <li>2: prefer Wi-Fi 897 * </ul> 898 */ 899 public static final String KEY_CARRIER_DEFAULT_WFC_IMS_MODE_INT = 900 "carrier_default_wfc_ims_mode_int"; 901 902 /** 903 * Default mode for WFC over IMS on roaming network. 904 * See {@link #KEY_CARRIER_DEFAULT_WFC_IMS_MODE_INT} for meaning of values. 905 */ 906 public static final String KEY_CARRIER_DEFAULT_WFC_IMS_ROAMING_MODE_INT = 907 "carrier_default_wfc_ims_roaming_mode_int"; 908 909 /** 910 * Default WFC_IMS_enabled: true VoWiFi by default is on 911 * false VoWiFi by default is off 912 */ 913 public static final String KEY_CARRIER_DEFAULT_WFC_IMS_ENABLED_BOOL = 914 "carrier_default_wfc_ims_enabled_bool"; 915 916 /** 917 * Default WFC_IMS_roaming_enabled: true VoWiFi roaming by default is on 918 * false VoWiFi roaming by default is off 919 * @hide 920 */ 921 public static final String KEY_CARRIER_DEFAULT_WFC_IMS_ROAMING_ENABLED_BOOL = 922 "carrier_default_wfc_ims_roaming_enabled_bool"; 923 924 /** 925 * Flag indicating whether failed calls due to no service should prompt the user to enable 926 * WIFI calling. When {@code true}, if the user attempts to establish a call when there is no 927 * service available, they are connected to WIFI, and WIFI calling is disabled, a different 928 * call failure message will be used to encourage the user to enable WIFI calling. 929 * @hide 930 */ 931 public static final String KEY_CARRIER_PROMOTE_WFC_ON_CALL_FAIL_BOOL = 932 "carrier_promote_wfc_on_call_fail_bool"; 933 934 /** 935 * Flag specifying whether provisioning is required for RCS. 936 */ 937 public static final String KEY_CARRIER_RCS_PROVISIONING_REQUIRED_BOOL = 938 "carrier_rcs_provisioning_required_bool"; 939 940 /** 941 * Flag specifying whether provisioning is required for VoLTE, Video Telephony, and WiFi 942 * Calling. 943 944 * Combines VoLTE, VT, VoWiFI calling provisioning into one parameter. 945 * @deprecated Use {@link Ims#KEY_MMTEL_REQUIRES_PROVISIONING_BUNDLE} instead for 946 * finer-grained control. 947 * changing carrier_volte_provisioning_required_bool requires changes to 948 * mmtel_requires_provisioning_bundle and vice versa 949 * {@link Ims#KEY_MMTEL_REQUIRES_PROVISIONING_BUNDLE} 950 */ 951 @Deprecated 952 public static final String KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL = 953 "carrier_volte_provisioning_required_bool"; 954 955 /** 956 * Flag indicating whether or not the IMS MmTel UT capability requires carrier provisioning 957 * before it can be set as enabled. 958 * 959 * If true, the UT capability will be set to false for the newly loaded subscription 960 * and will require the carrier provisioning app to set the persistent provisioning result. 961 * If false, the platform will not wait for provisioning status updates for the UT capability 962 * and enable the UT over IMS capability for the subscription when the subscription is loaded. 963 * 964 * The default value for this key is {@code false}. 965 * 966 * @deprecated Use {@link Ims#KEY_MMTEL_REQUIRES_PROVISIONING_BUNDLE} instead for 967 * determining if UT requires provisioning. 968 */ 969 @Deprecated 970 public static final String KEY_CARRIER_UT_PROVISIONING_REQUIRED_BOOL = 971 "carrier_ut_provisioning_required_bool"; 972 973 /** 974 * Flag indicating whether or not the carrier supports Supplementary Services over the UT 975 * interface for this subscription. 976 * 977 * If true, the device will use Supplementary Services over UT when provisioned (see 978 * {@link #KEY_CARRIER_UT_PROVISIONING_REQUIRED_BOOL}). If false, this device will fallback to 979 * circuit switch for supplementary services and will disable this capability for IMS entirely. 980 * 981 * The default value for this key is {@code false}. 982 */ 983 public static final String KEY_CARRIER_SUPPORTS_SS_OVER_UT_BOOL = 984 "carrier_supports_ss_over_ut_bool"; 985 986 /** 987 * Flag specifying if WFC provisioning depends on VoLTE provisioning. 988 * 989 * {@code false}: default value; honor actual WFC provisioning state. 990 * {@code true}: when VoLTE is not provisioned, treat WFC as not provisioned; when VoLTE is 991 * provisioned, honor actual WFC provisioning state. 992 * 993 * As of now, Verizon is the only carrier enforcing this dependency in their 994 * WFC awareness and activation requirements. 995 */ 996 public static final String KEY_CARRIER_VOLTE_OVERRIDE_WFC_PROVISIONING_BOOL = 997 "carrier_volte_override_wfc_provisioning_bool"; 998 999 /** 1000 * Override the device's configuration for the cellular data service to use for this SIM card. 1001 * @hide 1002 */ 1003 public static final String KEY_CARRIER_DATA_SERVICE_WWAN_PACKAGE_OVERRIDE_STRING = 1004 "carrier_data_service_wwan_package_override_string"; 1005 1006 /** 1007 * Override the device's configuration for the IWLAN data service to use for this SIM card. 1008 * @hide 1009 */ 1010 public static final String KEY_CARRIER_DATA_SERVICE_WLAN_PACKAGE_OVERRIDE_STRING = 1011 "carrier_data_service_wlan_package_override_string"; 1012 1013 /** 1014 * Override the device's configuration for the cellular data service class to use 1015 * for this SIM card. 1016 * @hide 1017 */ 1018 public static final String KEY_CARRIER_DATA_SERVICE_WWAN_CLASS_OVERRIDE_STRING = 1019 "carrier_data_service_wwan_class_override_string"; 1020 1021 /** 1022 * Override the device's configuration for the IWLAN data service class to use 1023 * for this SIM card. 1024 * @hide 1025 */ 1026 public static final String KEY_CARRIER_DATA_SERVICE_WLAN_CLASS_OVERRIDE_STRING = 1027 "carrier_data_service_wlan_class_override_string"; 1028 1029 /** Flag specifying whether VoLTE TTY is supported. */ 1030 public static final String KEY_CARRIER_VOLTE_TTY_SUPPORTED_BOOL = 1031 "carrier_volte_tty_supported_bool"; 1032 1033 /** Flag specifying whether VoWIFI TTY is supported. 1034 * @hide 1035 */ 1036 public static final String KEY_CARRIER_VOWIFI_TTY_SUPPORTED_BOOL = 1037 "carrier_vowifi_tty_supported_bool"; 1038 1039 /** 1040 * Flag specifying whether IMS service can be turned off. If false then the service will not be 1041 * turned-off completely, but individual features can be disabled. 1042 */ 1043 public static final String KEY_CARRIER_ALLOW_TURNOFF_IMS_BOOL = 1044 "carrier_allow_turnoff_ims_bool"; 1045 1046 /** 1047 * Flag specifying whether Generic Bootstrapping Architecture capable SIM is required for IMS. 1048 */ 1049 public static final String KEY_CARRIER_IMS_GBA_REQUIRED_BOOL = 1050 "carrier_ims_gba_required_bool"; 1051 1052 /** 1053 * Flag specifying whether IMS instant lettering is available for the carrier. {@code True} if 1054 * instant lettering is available for the carrier, {@code false} otherwise. 1055 */ 1056 public static final String KEY_CARRIER_INSTANT_LETTERING_AVAILABLE_BOOL = 1057 "carrier_instant_lettering_available_bool"; 1058 1059 /** 1060 * Flag specifying whether IMS should be the first phone attempted for E911 even if the 1061 * phone is not in service. 1062 */ 1063 public static final String KEY_CARRIER_USE_IMS_FIRST_FOR_EMERGENCY_BOOL = 1064 "carrier_use_ims_first_for_emergency_bool"; 1065 1066 /** 1067 * When {@code true}, this carrier will preferentially dial normal routed emergency calls over 1068 * an in-service SIM if one is available. 1069 * @hide 1070 */ 1071 public static final String KEY_PREFER_IN_SERVICE_SIM_FOR_NORMAL_ROUTED_EMERGENCY_CALLS_BOOL = 1072 "prefer_in_service_sim_for_normal_routed_emergency_calls_bool"; 1073 1074 /** 1075 * When {@code true}, the determination of whether to place a call as an emergency call will be 1076 * based on the known {@link android.telephony.emergency.EmergencyNumber}s for the SIM on which 1077 * the call is being placed. In a dual SIM scenario, if Sim A has the emergency numbers 1078 * 123, 456 and Sim B has the emergency numbers 789, and the user places a call on SIM A to 789, 1079 * it will not be treated as an emergency call in this case. 1080 * When {@code false}, the determination is based on the emergency numbers from all device SIMs, 1081 * regardless of which SIM the call is being placed on. If Sim A has the emergency numbers 1082 * 123, 456 and Sim B has the emergency numbers 789, and the user places a call on SIM A to 789, 1083 * the call will be dialed as an emergency number, but with an unspecified routing. 1084 * @hide 1085 */ 1086 public static final String KEY_USE_ONLY_DIALED_SIM_ECC_LIST_BOOL = 1087 "use_only_dialed_sim_ecc_list_bool"; 1088 1089 /** 1090 * When IMS instant lettering is available for a carrier (see 1091 * {@link #KEY_CARRIER_INSTANT_LETTERING_AVAILABLE_BOOL}), determines the list of characters 1092 * which may not be contained in messages. Should be specified as a regular expression suitable 1093 * for use with {@link String#matches(String)}. 1094 */ 1095 public static final String KEY_CARRIER_INSTANT_LETTERING_INVALID_CHARS_STRING = 1096 "carrier_instant_lettering_invalid_chars_string"; 1097 1098 /** 1099 * When IMS instant lettering is available for a carrier (see 1100 * {@link #KEY_CARRIER_INSTANT_LETTERING_AVAILABLE_BOOL}), determines a list of characters which 1101 * must be escaped with a backslash '\' character. Should be specified as a string containing 1102 * the characters to be escaped. For example to escape quote and backslash the string would be 1103 * a quote and a backslash. 1104 */ 1105 public static final String KEY_CARRIER_INSTANT_LETTERING_ESCAPED_CHARS_STRING = 1106 "carrier_instant_lettering_escaped_chars_string"; 1107 1108 /** 1109 * When IMS instant lettering is available for a carrier (see 1110 * {@link #KEY_CARRIER_INSTANT_LETTERING_AVAILABLE_BOOL}), determines the character encoding 1111 * which will be used when determining the length of messages. Used in the InCall UI to limit 1112 * the number of characters the user may type. If empty-string, the instant lettering 1113 * message size limit will be enforced on a 1:1 basis. That is, each character will count 1114 * towards the messages size limit as a single byte. If a character encoding is specified, the 1115 * message size limit will be based on the number of bytes in the message per the specified 1116 * encoding. 1117 */ 1118 public static final String KEY_CARRIER_INSTANT_LETTERING_ENCODING_STRING = 1119 "carrier_instant_lettering_encoding_string"; 1120 1121 /** 1122 * When IMS instant lettering is available for a carrier (see 1123 * {@link #KEY_CARRIER_INSTANT_LETTERING_AVAILABLE_BOOL}), the length limit for messages. Used 1124 * in the InCall UI to ensure the user cannot enter more characters than allowed by the carrier. 1125 * See also {@link #KEY_CARRIER_INSTANT_LETTERING_ENCODING_STRING} for more information on how 1126 * the length of the message is calculated. 1127 */ 1128 public static final String KEY_CARRIER_INSTANT_LETTERING_LENGTH_LIMIT_INT = 1129 "carrier_instant_lettering_length_limit_int"; 1130 1131 /** 1132 * If Voice Radio Technology is RIL_RADIO_TECHNOLOGY_LTE:14 or RIL_RADIO_TECHNOLOGY_UNKNOWN:0 1133 * this is the value that should be used instead. A configuration value of 1134 * RIL_RADIO_TECHNOLOGY_UNKNOWN:0 means there is no replacement value and that the default 1135 * assumption for phone type (GSM) should be used. 1136 */ 1137 public static final String KEY_VOLTE_REPLACEMENT_RAT_INT = "volte_replacement_rat_int"; 1138 1139 /** 1140 * The default sim call manager to use when the default dialer doesn't implement one. A sim call 1141 * manager can control and route outgoing and incoming phone calls, even if they're placed 1142 * using another connection service (PSTN, for example). 1143 */ 1144 public static final String KEY_DEFAULT_SIM_CALL_MANAGER_STRING = 1145 "default_sim_call_manager_string"; 1146 1147 /** 1148 * The default flag specifying whether ETWS/CMAS test setting is forcibly disabled in 1149 * Settings->More->Emergency broadcasts menu even though developer options is turned on. 1150 * @deprecated Use {@code com.android.cellbroadcastreceiver.CellBroadcastReceiver} resource 1151 * {@code show_test_settings} to control whether to show test alert settings or not. 1152 */ 1153 @Deprecated 1154 public static final String KEY_CARRIER_FORCE_DISABLE_ETWS_CMAS_TEST_BOOL = 1155 "carrier_force_disable_etws_cmas_test_bool"; 1156 1157 /** 1158 * The default flag specifying whether "Allow alerts" option will be always shown in 1159 * emergency alerts settings regardless developer options is turned on or not. 1160 * 1161 * @deprecated The allow alerts option is always shown now. No longer need a config for that. 1162 */ 1163 @Deprecated 1164 public static final String KEY_ALWAYS_SHOW_EMERGENCY_ALERT_ONOFF_BOOL = 1165 "always_show_emergency_alert_onoff_bool"; 1166 1167 /** 1168 * Default mobile network MTU value, in bytes. 1169 * @hide 1170 */ 1171 public static final String KEY_DEFAULT_MTU_INT = "default_mtu_int"; 1172 1173 /** 1174 * Delay in milliseconds for retrying APN after disconnect 1175 * @hide 1176 */ 1177 public static final String KEY_CARRIER_DATA_CALL_APN_RETRY_AFTER_DISCONNECT_LONG = 1178 "carrier_data_call_apn_retry_after_disconnect_long"; 1179 1180 /** 1181 * Data call setup permanent failure causes by the carrier. 1182 * 1183 * @deprecated This API key was added in mistake and is not used anymore by the telephony data 1184 * frameworks. 1185 */ 1186 @Deprecated 1187 public static final String KEY_CARRIER_DATA_CALL_PERMANENT_FAILURE_STRINGS = 1188 "carrier_data_call_permanent_failure_strings"; 1189 1190 /** 1191 * A string array indicating the default APN types that are metered by the carrier. 1192 * 1193 * The string in the array is the name of the APN type. For example, "default" for 1194 * {@link ApnSetting#TYPE_DEFAULT}, "mms" for {@link ApnSetting#TYPE_MMS}, etc. 1195 * 1196 * The default value is {@code {"default", "mms", "dun", "supl"}}. 1197 * 1198 * @see ApnSetting#TYPE_DEFAULT 1199 * @see ApnSetting#TYPE_MMS 1200 * @see ApnSetting#TYPE_SUPL 1201 * @see ApnSetting#TYPE_DUN 1202 * @see ApnSetting#TYPE_HIPRI 1203 * @see ApnSetting#TYPE_FOTA 1204 * @see ApnSetting#TYPE_IMS 1205 * @see ApnSetting#TYPE_CBS 1206 * @see ApnSetting#TYPE_IA 1207 * @see ApnSetting#TYPE_EMERGENCY 1208 * @see ApnSetting#TYPE_MCX 1209 * @see ApnSetting#TYPE_XCAP 1210 * @see ApnSetting#TYPE_BIP 1211 * @see ApnSetting#TYPE_VSIM 1212 * @see ApnSetting#TYPE_ENTERPRISE 1213 */ 1214 public static final String KEY_CARRIER_METERED_APN_TYPES_STRINGS = 1215 "carrier_metered_apn_types_strings"; 1216 1217 /** 1218 * A string array indicating the default APN types that are roaming-metered by the carrier. 1219 * 1220 * The string in the array is the name of the APN type. For example, "default" for 1221 * {@link ApnSetting#TYPE_DEFAULT}, "mms" for {@link ApnSetting#TYPE_MMS}, etc. 1222 * 1223 * The default value is {@code {"default", "mms", "dun", "supl"}}. 1224 * 1225 * @see ApnSetting#TYPE_DEFAULT 1226 * @see ApnSetting#TYPE_MMS 1227 * @see ApnSetting#TYPE_SUPL 1228 * @see ApnSetting#TYPE_DUN 1229 * @see ApnSetting#TYPE_HIPRI 1230 * @see ApnSetting#TYPE_FOTA 1231 * @see ApnSetting#TYPE_IMS 1232 * @see ApnSetting#TYPE_CBS 1233 * @see ApnSetting#TYPE_IA 1234 * @see ApnSetting#TYPE_EMERGENCY 1235 * @see ApnSetting#TYPE_MCX 1236 * @see ApnSetting#TYPE_XCAP 1237 * @see ApnSetting#TYPE_BIP 1238 * @see ApnSetting#TYPE_VSIM 1239 * @see ApnSetting#TYPE_ENTERPRISE 1240 */ 1241 public static final String KEY_CARRIER_METERED_ROAMING_APN_TYPES_STRINGS = 1242 "carrier_metered_roaming_apn_types_strings"; 1243 1244 /** 1245 * CDMA carrier ERI (Enhanced Roaming Indicator) file name 1246 * @hide 1247 */ 1248 public static final String KEY_CARRIER_ERI_FILE_NAME_STRING = "carrier_eri_file_name_string"; 1249 1250 /* The following 3 fields are related to carrier visual voicemail. */ 1251 1252 /** 1253 * The carrier number mobile outgoing (MO) sms messages are sent to. 1254 */ 1255 public static final String KEY_VVM_DESTINATION_NUMBER_STRING = "vvm_destination_number_string"; 1256 1257 /** 1258 * The port through which the mobile outgoing (MO) sms messages are sent through. 1259 */ 1260 public static final String KEY_VVM_PORT_NUMBER_INT = "vvm_port_number_int"; 1261 1262 /** 1263 * The type of visual voicemail protocol the carrier adheres to. See {@link TelephonyManager} 1264 * for possible values. For example {@link TelephonyManager#VVM_TYPE_OMTP}. 1265 */ 1266 public static final String KEY_VVM_TYPE_STRING = "vvm_type_string"; 1267 1268 /** 1269 * Whether cellular data is required to access visual voicemail. 1270 */ 1271 public static final String KEY_VVM_CELLULAR_DATA_REQUIRED_BOOL = 1272 "vvm_cellular_data_required_bool"; 1273 1274 /** 1275 * The default OMTP visual voicemail client prefix to use. Defaulted to "//VVM" 1276 */ 1277 public static final String KEY_VVM_CLIENT_PREFIX_STRING = "vvm_client_prefix_string"; 1278 1279 /** 1280 * Whether to use SSL to connect to the visual voicemail IMAP server. Defaulted to false. 1281 */ 1282 public static final String KEY_VVM_SSL_ENABLED_BOOL = "vvm_ssl_enabled_bool"; 1283 1284 /** 1285 * A set of capabilities that should not be used even if it is reported by the visual voicemail 1286 * IMAP CAPABILITY command. 1287 */ 1288 public static final String KEY_VVM_DISABLED_CAPABILITIES_STRING_ARRAY = 1289 "vvm_disabled_capabilities_string_array"; 1290 1291 /** 1292 * Whether legacy mode should be used when the visual voicemail client is disabled. 1293 * 1294 * <p>Legacy mode is a mode that on the carrier side visual voicemail is still activated, but on 1295 * the client side all network operations are disabled. SMSs are still monitored so a new 1296 * message SYNC SMS will be translated to show a message waiting indicator, like traditional 1297 * voicemails. 1298 * 1299 * <p>This is for carriers that does not support VVM deactivation so voicemail can continue to 1300 * function without the data cost. 1301 */ 1302 public static final String KEY_VVM_LEGACY_MODE_ENABLED_BOOL = "vvm_legacy_mode_enabled_bool"; 1303 1304 /** 1305 * Whether to prefetch audio data on new voicemail arrival, defaulted to true. 1306 */ 1307 public static final String KEY_VVM_PREFETCH_BOOL = "vvm_prefetch_bool"; 1308 1309 /** 1310 * The package name of the carrier's visual voicemail app to ensure that dialer visual voicemail 1311 * and carrier visual voicemail are not active at the same time. 1312 * 1313 * @deprecated use {@link #KEY_CARRIER_VVM_PACKAGE_NAME_STRING_ARRAY}. 1314 */ 1315 @Deprecated 1316 public static final String KEY_CARRIER_VVM_PACKAGE_NAME_STRING = 1317 "carrier_vvm_package_name_string"; 1318 1319 /** 1320 * A list of the carrier's visual voicemail app package names to ensure that dialer visual 1321 * voicemail and carrier visual voicemail are not active at the same time. 1322 */ 1323 public static final String KEY_CARRIER_VVM_PACKAGE_NAME_STRING_ARRAY = 1324 "carrier_vvm_package_name_string_array"; 1325 1326 /** 1327 * Flag specifying whether ICCID is showed in SIM Status screen, default to false. 1328 */ 1329 public static final String KEY_SHOW_ICCID_IN_SIM_STATUS_BOOL = "show_iccid_in_sim_status_bool"; 1330 1331 /** 1332 * Flag specifying whether the {@link android.telephony.SignalStrength} is shown in the SIM 1333 * Status screen. The default value is true. 1334 */ 1335 public static final String KEY_SHOW_SIGNAL_STRENGTH_IN_SIM_STATUS_BOOL = 1336 "show_signal_strength_in_sim_status_bool"; 1337 1338 /** 1339 * Flag specifying if we should interpret all signal strength as one bar higher 1340 * This is a replacement for the former resource config_inflateSignalStrength 1341 * The default value is false. 1342 * @hide 1343 */ 1344 public static final String KEY_INFLATE_SIGNAL_STRENGTH_BOOL = 1345 "inflate_signal_strength_bool"; 1346 1347 /** 1348 * Flag specifying whether an additional (client initiated) intent needs to be sent on System 1349 * update 1350 */ 1351 public static final String KEY_CI_ACTION_ON_SYS_UPDATE_BOOL = "ci_action_on_sys_update_bool"; 1352 1353 /** 1354 * Intent to be sent for the additional action on System update 1355 */ 1356 public static final String KEY_CI_ACTION_ON_SYS_UPDATE_INTENT_STRING = 1357 "ci_action_on_sys_update_intent_string"; 1358 1359 /** 1360 * Extra to be included in the intent sent for additional action on System update 1361 */ 1362 public static final String KEY_CI_ACTION_ON_SYS_UPDATE_EXTRA_STRING = 1363 "ci_action_on_sys_update_extra_string"; 1364 1365 /** 1366 * Value of extra included in intent sent for additional action on System update 1367 */ 1368 public static final String KEY_CI_ACTION_ON_SYS_UPDATE_EXTRA_VAL_STRING = 1369 "ci_action_on_sys_update_extra_val_string"; 1370 1371 /** 1372 * Specifies the amount of gap to be added in millis between postdial DTMF tones. When a 1373 * non-zero value is specified, the UE shall wait for the specified amount of time before it 1374 * sends out successive DTMF tones on the network. 1375 */ 1376 public static final String KEY_GSM_DTMF_TONE_DELAY_INT = "gsm_dtmf_tone_delay_int"; 1377 1378 /** 1379 * Specifies the amount of gap to be added in millis between DTMF tones. When a non-zero value 1380 * is specified, the UE shall wait for the specified amount of time before it sends out 1381 * successive DTMF tones on the network. 1382 */ 1383 public static final String KEY_IMS_DTMF_TONE_DELAY_INT = "ims_dtmf_tone_delay_int"; 1384 1385 /** 1386 * Specifies the amount of gap to be added in millis between postdial DTMF tones. When a 1387 * non-zero value is specified, the UE shall wait for the specified amount of time before it 1388 * sends out successive DTMF tones on the network. 1389 */ 1390 public static final String KEY_CDMA_DTMF_TONE_DELAY_INT = "cdma_dtmf_tone_delay_int"; 1391 1392 /** 1393 * Some carriers will send call forwarding responses for voicemail in a format that is not 3gpp 1394 * compliant, which causes issues during parsing. This causes the 1395 * {@link com.android.internal.telephony.CallForwardInfo#number} to contain non-numerical 1396 * characters instead of a number. 1397 * 1398 * If true, we will detect the non-numerical characters and replace them with "Voicemail". 1399 * @hide 1400 */ 1401 public static final String KEY_CALL_FORWARDING_MAP_NON_NUMBER_TO_VOICEMAIL_BOOL = 1402 "call_forwarding_map_non_number_to_voicemail_bool"; 1403 1404 /** 1405 * When {@code true}, the phone will always tell the IMS stack to keep RTT enabled and 1406 * determine on a per-call basis (based on extras from the dialer app) whether a call should be 1407 * an RTT call or not. 1408 * 1409 * When {@code false}, the old behavior is used, where the toggle in accessibility settings is 1410 * used to set the IMS stack's RTT enabled state. 1411 */ 1412 public static final String KEY_IGNORE_RTT_MODE_SETTING_BOOL = 1413 "ignore_rtt_mode_setting_bool"; 1414 1415 /** 1416 * Determines whether adhoc conference calls are supported by a carrier. When {@code true}, 1417 * adhoc conference calling is supported, {@code false otherwise}. 1418 */ 1419 public static final String KEY_SUPPORT_ADHOC_CONFERENCE_CALLS_BOOL = 1420 "support_adhoc_conference_calls_bool"; 1421 1422 /** 1423 * Determines whether conference participants can be added to existing call to form an adhoc 1424 * conference call (in contrast to merging calls to form a conference). When {@code true}, 1425 * adding conference participants to existing call is supported, {@code false otherwise}. 1426 */ 1427 public static final String KEY_SUPPORT_ADD_CONFERENCE_PARTICIPANTS_BOOL = 1428 "support_add_conference_participants_bool"; 1429 1430 /** 1431 * Determines whether conference calls are supported by a carrier. When {@code true}, 1432 * conference calling is supported, {@code false otherwise}. 1433 */ 1434 public static final String KEY_SUPPORT_CONFERENCE_CALL_BOOL = "support_conference_call_bool"; 1435 1436 /** 1437 * Determines whether a maximum size limit for IMS conference calls is enforced on the device. 1438 * When {@code true}, IMS conference calls will be limited to at most 1439 * {@link #KEY_IMS_CONFERENCE_SIZE_LIMIT_INT} participants. When {@code false}, no attempt is 1440 * made to limit the number of participants in a conference (the carrier will raise an error 1441 * when an attempt is made to merge too many participants into a conference). 1442 * <p> 1443 * Note: The maximum size of a conference can ONLY be supported where 1444 * {@link #KEY_SUPPORT_IMS_CONFERENCE_EVENT_PACKAGE_BOOL} is {@code true} since the platform 1445 * needs conference event package data to accurately know the number of participants in the 1446 * conference. 1447 */ 1448 public static final String KEY_IS_IMS_CONFERENCE_SIZE_ENFORCED_BOOL = 1449 "is_ims_conference_size_enforced_bool"; 1450 1451 /** 1452 * Determines the maximum number of participants the carrier supports for a conference call. 1453 * This number is exclusive of the current device. A conference between 3 devices, for example, 1454 * would have a size limit of 2 participants. 1455 * Enforced when {@link #KEY_IS_IMS_CONFERENCE_SIZE_ENFORCED_BOOL} is {@code true}. 1456 */ 1457 public static final String KEY_IMS_CONFERENCE_SIZE_LIMIT_INT = "ims_conference_size_limit_int"; 1458 1459 /** 1460 * Determines whether manage IMS conference calls is supported by a carrier. When {@code true}, 1461 * manage IMS conference call is supported, {@code false otherwise}. 1462 * @hide 1463 */ 1464 public static final String KEY_SUPPORT_MANAGE_IMS_CONFERENCE_CALL_BOOL = 1465 "support_manage_ims_conference_call_bool"; 1466 1467 /** 1468 * Determines whether the IMS conference merge process supports and returns its participants 1469 * data. When {@code true}, on merge complete, conference call would have a list of its 1470 * participants returned in XML format, {@code false otherwise}. 1471 */ 1472 public static final String KEY_SUPPORT_IMS_CONFERENCE_EVENT_PACKAGE_BOOL = 1473 "support_ims_conference_event_package_bool"; 1474 1475 /** 1476 * Determines whether processing of conference event package data received on a device other 1477 * than the conference host is supported. 1478 * <p> 1479 * When a device A merges calls B and C into a conference it is considered the conference host 1480 * and B and C are considered the conference peers. 1481 * <p> 1482 * When {@code true}, the conference peer will display the conference state if it receives 1483 * conference event package data from the network. When {@code false}, the conference peer will 1484 * ignore conference event package data received from the network. 1485 * @hide 1486 */ 1487 public static final String KEY_SUPPORT_IMS_CONFERENCE_EVENT_PACKAGE_ON_PEER_BOOL = 1488 "support_ims_conference_event_package_on_peer_bool"; 1489 1490 /** 1491 * Indicates whether the carrier supports the use of RFC8285 compliant RTP header extensions for 1492 * the purpose of device to device communication while in a call. 1493 * <p> 1494 * See also {@link #KEY_SUPPORTS_SDP_NEGOTIATION_OF_D2D_RTP_HEADER_EXTENSIONS_BOOL}. 1495 */ 1496 public static final String KEY_SUPPORTS_DEVICE_TO_DEVICE_COMMUNICATION_USING_RTP_BOOL = 1497 "supports_device_to_device_communication_using_rtp_bool"; 1498 1499 /** 1500 * Indicates whether the carrier supports the negotiations of RFC8285 compliant RTP header 1501 * extensions supported on a call during the Session Description Protocol (SDP). This option 1502 * is only used when {@link #KEY_SUPPORTS_DEVICE_TO_DEVICE_COMMUNICATION_USING_RTP_BOOL} is 1503 * {@code true}. 1504 * <p> 1505 * When {@code true}, the RTP header extensions the platform uses for device to device 1506 * communication will be offered to the remote end during the SDP negotiation process. 1507 * When {@code false}, the RTP header extensions will not be negotiated during the SDP 1508 * negotiation process and the platform will send RTP header extensions without prior 1509 * negotiation if {@link #KEY_SUPPORTS_DEVICE_TO_DEVICE_COMMUNICATION_USING_RTP_BOOL} is 1510 * {@code true}. 1511 */ 1512 public static final String KEY_SUPPORTS_SDP_NEGOTIATION_OF_D2D_RTP_HEADER_EXTENSIONS_BOOL = 1513 "supports_sdp_negotiation_of_d2d_rtp_header_extensions_bool"; 1514 1515 /** 1516 * Indicates whether the carrier supports the use of DTMF digits A-D for the purpose of device 1517 * to device communication while in a call. 1518 */ 1519 public static final String KEY_SUPPORTS_DEVICE_TO_DEVICE_COMMUNICATION_USING_DTMF_BOOL = 1520 "supports_device_to_device_communication_using_dtmf_bool"; 1521 1522 /** 1523 * Determines whether High Definition audio property is displayed in the dialer UI. 1524 * If {@code false}, remove the HD audio property from the connection so that HD audio related 1525 * UI is not displayed. If {@code true}, keep HD audio property as it is configured. 1526 */ 1527 public static final String KEY_DISPLAY_HD_AUDIO_PROPERTY_BOOL = 1528 "display_hd_audio_property_bool"; 1529 1530 /** 1531 * Determines whether IMS conference calls are supported by a carrier. When {@code true}, 1532 * IMS conference calling is supported, {@code false} otherwise. 1533 * @hide 1534 */ 1535 public static final String KEY_SUPPORT_IMS_CONFERENCE_CALL_BOOL = 1536 "support_ims_conference_call_bool"; 1537 1538 /** 1539 * Determines whether the device will locally disconnect an IMS conference when the participant 1540 * count drops to zero. When {@code true}, it is assumed the carrier does NOT disconnect a 1541 * conference when the participant count drops to zero and that the device must do this by 1542 * disconnecting the conference locally. When {@code false}, it is assumed that the carrier 1543 * is responsible for disconnecting the conference when there are no longer any participants 1544 * present. 1545 * <p> 1546 * Note: both {@link #KEY_SUPPORT_IMS_CONFERENCE_CALL_BOOL} and 1547 * {@link #KEY_SUPPORT_IMS_CONFERENCE_EVENT_PACKAGE_BOOL} must be true for this configuration to 1548 * have any effect. 1549 * <p> 1550 * Defaults to {@code false}, meaning the carrier network is responsible for disconnecting an 1551 * empty IMS conference. 1552 * @hide 1553 */ 1554 public static final String KEY_LOCAL_DISCONNECT_EMPTY_IMS_CONFERENCE_BOOL = 1555 "local_disconnect_empty_ims_conference_bool"; 1556 1557 /** 1558 * Determines whether video conference calls are supported by a carrier. When {@code true}, 1559 * video calls can be merged into conference calls, {@code false} otherwise. 1560 * <p> 1561 * Note: even if video conference calls are not supported, audio calls may be merged into a 1562 * conference if {@link #KEY_SUPPORT_CONFERENCE_CALL_BOOL} is {@code true}. 1563 * @hide 1564 */ 1565 public static final String KEY_SUPPORT_VIDEO_CONFERENCE_CALL_BOOL = 1566 "support_video_conference_call_bool"; 1567 1568 /** 1569 * Determine whether user can toggle Enhanced 4G LTE Mode in Settings. 1570 */ 1571 public static final String KEY_EDITABLE_ENHANCED_4G_LTE_BOOL = "editable_enhanced_4g_lte_bool"; 1572 1573 /** 1574 * Determines whether the Enhanced 4G LTE toggle will be shown in the settings. When this 1575 * option is {@code true}, the toggle will be hidden regardless of whether the device and 1576 * carrier supports 4G LTE or not. 1577 */ 1578 public static final String KEY_HIDE_ENHANCED_4G_LTE_BOOL = "hide_enhanced_4g_lte_bool"; 1579 1580 /** 1581 * Sets the default state for the "Enhanced 4G LTE" or "Advanced Calling" mode toggle set by the 1582 * user. When this is {@code true}, this mode by default is on, otherwise if {@code false}, 1583 * this mode by default is off. 1584 */ 1585 public static final String KEY_ENHANCED_4G_LTE_ON_BY_DEFAULT_BOOL = 1586 "enhanced_4g_lte_on_by_default_bool"; 1587 1588 /** 1589 * Determine whether IMS apn can be shown. 1590 */ 1591 public static final String KEY_HIDE_IMS_APN_BOOL = "hide_ims_apn_bool"; 1592 1593 /** 1594 * Determine whether preferred network type can be shown. 1595 */ 1596 public static final String KEY_HIDE_PREFERRED_NETWORK_TYPE_BOOL = 1597 "hide_preferred_network_type_bool"; 1598 1599 /** 1600 * String array for package names that need to be enabled for this carrier. 1601 * If user has explicitly disabled some packages in the list, won't re-enable. 1602 * Other carrier specific apps which are not in this list may be disabled for current carrier, 1603 * and only be re-enabled when this config for another carrier includes it. 1604 * 1605 * @hide 1606 */ 1607 public static final String KEY_ENABLE_APPS_STRING_ARRAY = "enable_apps_string_array"; 1608 1609 /** 1610 * Determine whether user can switch Wi-Fi preferred or Cellular preferred 1611 * in calling preference. 1612 * Some operators support Wi-Fi Calling only, not VoLTE. 1613 * They don't need "Cellular preferred" option. 1614 * In this case, set uneditable attribute for preferred preference. 1615 */ 1616 public static final String KEY_EDITABLE_WFC_MODE_BOOL = "editable_wfc_mode_bool"; 1617 1618 /** 1619 * Flag to indicate if Wi-Fi needs to be disabled in ECBM. 1620 */ 1621 public static final String KEY_CONFIG_WIFI_DISABLE_IN_ECBM = "config_wifi_disable_in_ecbm"; 1622 1623 /** 1624 * List operator-specific error codes and indices of corresponding error strings in 1625 * wfcOperatorErrorAlertMessages and wfcOperatorErrorNotificationMessages. 1626 * 1627 * Example: "REG09|0" specifies error code "REG09" and index "0". This index will be 1628 * used to find alert and notification messages in wfcOperatorErrorAlertMessages and 1629 * wfcOperatorErrorNotificationMessages. 1630 * 1631 * @hide 1632 */ 1633 public static final String KEY_WFC_OPERATOR_ERROR_CODES_STRING_ARRAY = 1634 "wfc_operator_error_codes_string_array"; 1635 1636 /** 1637 * Indexes of SPN format strings in wfcSpnFormats. 1638 * 1639 * <p>Available options are: 1640 * <ul> 1641 * <li> 0: %s</li> 1642 * <li> 1: %s Wi-Fi Calling</li> 1643 * <li> 2: WLAN Call</li> 1644 * <li> 3: %s WLAN Call</li> 1645 * <li> 4: %s Wi-Fi</li> 1646 * <li> 5: WiFi Calling | %s</li> 1647 * <li> 6: %s VoWifi</li> 1648 * <li> 7: Wi-Fi Calling</li> 1649 * <li> 8: Wi-Fi</li> 1650 * <li> 9: WiFi Calling</li> 1651 * <li> 10: VoWifi</li> 1652 * <li> 11: %s WiFi Calling</li> 1653 * <li> 12: WiFi Call</li> 1654 * @hide 1655 */ 1656 public static final String KEY_WFC_SPN_FORMAT_IDX_INT = "wfc_spn_format_idx_int"; 1657 1658 /** 1659 * Indexes of data SPN format strings in wfcSpnFormats. 1660 * 1661 * @see KEY_WFC_SPN_FORMAT_IDX_INT for available options. 1662 * @hide 1663 */ 1664 public static final String KEY_WFC_DATA_SPN_FORMAT_IDX_INT = "wfc_data_spn_format_idx_int"; 1665 1666 /** 1667 * Indexes of SPN format strings in wfcSpnFormats used during flight mode. 1668 * 1669 * Set to -1 to use the value from KEY_WFC_SPN_FORMAT_IDX_INT also in this case. 1670 * @see KEY_WFC_SPN_FORMAT_IDX_INT for other available options. 1671 * @hide 1672 */ 1673 public static final String KEY_WFC_FLIGHT_MODE_SPN_FORMAT_IDX_INT = 1674 "wfc_flight_mode_spn_format_idx_int"; 1675 1676 /** 1677 * Use root locale when reading wfcSpnFormats. 1678 * 1679 * If true, then the root locale will always be used when reading wfcSpnFormats. This means the 1680 * non localized version of wfcSpnFormats will be used. 1681 * @hide 1682 */ 1683 public static final String KEY_WFC_SPN_USE_ROOT_LOCALE = "wfc_spn_use_root_locale"; 1684 1685 /** 1686 * The Component Name of the activity that can setup the emergency address for WiFi Calling 1687 * as per carrier requirement. 1688 */ 1689 public static final String KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING = 1690 "wfc_emergency_address_carrier_app_string"; 1691 1692 /** 1693 * Unconditionally override the carrier name string using #KEY_CARRIER_NAME_STRING. 1694 * 1695 * If true, then the carrier name string will be #KEY_CARRIER_NAME_STRING, unconditionally. 1696 * 1697 * <p>If false, then the override will be performed conditionally and the 1698 * #KEY_CARRIER_NAME_STRING will have the lowest-precedence; it will only be used in the event 1699 * that the name string would otherwise be empty, allowing it to serve as a last-resort. If 1700 * used, this value functions in place of the SPN on any/all ICC records for the corresponding 1701 * subscription. 1702 */ 1703 public static final String KEY_CARRIER_NAME_OVERRIDE_BOOL = "carrier_name_override_bool"; 1704 1705 /** 1706 * String to identify carrier name in CarrierConfig app. This string overrides SPN if 1707 * #KEY_CARRIER_NAME_OVERRIDE_BOOL is true; otherwise, it will be used if its value is provided 1708 * and SPN is unavailable 1709 */ 1710 public static final String KEY_CARRIER_NAME_STRING = "carrier_name_string"; 1711 1712 /** 1713 * To override wifi calling's carrier name string using ef_pnn from sim card when SPN in empty. 1714 * 1715 * @hide 1716 */ 1717 public static final String KEY_WFC_CARRIER_NAME_OVERRIDE_BY_PNN_BOOL = 1718 "wfc_carrier_name_override_by_pnn_bool"; 1719 1720 /** 1721 * Specifies SPN format of displaying carrier name only. 1722 * 1723 */ 1724 public static final int CROSS_SIM_SPN_FORMAT_CARRIER_NAME_ONLY = 0; 1725 1726 /** 1727 * Specifies SPN format of displaying carrier name along with "Cross-SIM calling". 1728 */ 1729 public static final int CROSS_SIM_SPN_FORMAT_CARRIER_NAME_WITH_BRANDING = 1; 1730 1731 /** 1732 * Indexes of SPN format strings in crossSimSpnFormats. 1733 * 1734 * <p>Available options are: 1735 * <ul> 1736 * <li> {@link #CROSS_SIM_SPN_FORMAT_CARRIER_NAME_ONLY}: %s</li> 1737 * <li> {@link #CROSS_SIM_SPN_FORMAT_CARRIER_NAME_WITH_BRANDING}: %s Cross-SIM Calling</li> 1738 * </ul> 1739 * %s will be filled with carrier name 1740 */ 1741 public static final String KEY_CROSS_SIM_SPN_FORMAT_INT = "cross_sim_spn_format_int"; 1742 1743 /** 1744 * Override the SPN Display Condition 2 integer bits (lsb). B2, B1 is the last two bits of the 1745 * spn display condition coding. 1746 * 1747 * The default value -1 mean this field is not set. 1748 * 1749 * B1 = 0: display of registered PLMN name not required when registered PLMN is either HPLMN 1750 * or a PLMN in the service provider PLMN list (see EF_SPDI). 1751 * B1 = 1: display of registered PLMN name required when registered PLMN is either HPLMN or a 1752 * PLMN in the service provider PLMN list(see EF_SPDI). 1753 * B2 = 0: display of the service provider name is required when registered PLMN is neither 1754 * HPLMN nor a PLMN in the service provider PLMN list(see EF_SPDI). 1755 * B2 = 1: display of the service provider name is not required when registered PLMN is neither 1756 * HPLMN nor a PLMN in the service provider PLMN list(see EF_SPDI). 1757 * 1758 * Reference: 3GPP TS 31.102 v15.2.0 Section 4.2.12 EF_SPN. 1759 * @hide 1760 */ 1761 public static final String KEY_SPN_DISPLAY_CONDITION_OVERRIDE_INT = 1762 "spn_display_condition_override_int"; 1763 1764 /** 1765 * Override the SPDI - an array of PLMN(MCC + MNC) strings. 1766 * 1767 * Reference: 3GPP TS 31.102 v15.2.0 Section 4.2.66 EF_SPDI. 1768 * @hide 1769 */ 1770 public static final String KEY_SPDI_OVERRIDE_STRING_ARRAY = "spdi_override_string_array"; 1771 1772 /** 1773 * Override the EHPLMNs - an array of PLMN(MCC + MNC) strings. 1774 * 1775 * To allow provision for multiple HPLMN codes, PLMN codes that are present within this list 1776 * shall replace the HPLMN code derived from the IMSI for PLMN selection purposes. 1777 * 1778 * Reference: 3GPP TS 31.102 v15.2.0 Section 4.2.84 EF_EHPLMN 1779 * Reference: 3GPP TS 23.122 v15.6.0 Section 1.2 Equivalent HPLMN list 1780 * @hide 1781 */ 1782 public static final String KEY_EHPLMN_OVERRIDE_STRING_ARRAY = "ehplmn_override_string_array"; 1783 1784 /** 1785 * Override the PNN - a string array of comma-separated alpha long and short names: 1786 * "alpha_long1,alpha_short1". 1787 * 1788 * Reference: 3GPP TS 31.102 v15.2.0 Section 4.2.58 EF_PNN. 1789 * @hide 1790 */ 1791 public static final String KEY_PNN_OVERRIDE_STRING_ARRAY = "pnn_override_string_array"; 1792 1793 /** 1794 * A string array of OPL records, each with comma-delimited data fields as follows: 1795 * "plmn1,lactac_start,lactac_end,index". 1796 * 1797 * Reference: 3GPP TS 31.102 v15.2.0 Section 4.2.59 EF_OPL. 1798 * @hide 1799 */ 1800 public static final String KEY_OPL_OVERRIDE_STRING_ARRAY = "opl_override_opl_string_array"; 1801 1802 /** 1803 * Allow ERI rules to select a carrier name display string when using 3gpp2 access technologies. 1804 * If this bit is not set, the carrier name display string will be selected from the carrier 1805 * display name resolver which doesn't apply the ERI rules. 1806 * 1807 * @hide 1808 */ 1809 public static final String KEY_ALLOW_ERI_BOOL = "allow_cdma_eri_bool"; 1810 1811 /** 1812 * If true, use the carrier display name(SPN and PLMN) from the carrier display name resolver. 1813 * 1814 * @hide 1815 */ 1816 public static final String KEY_ENABLE_CARRIER_DISPLAY_NAME_RESOLVER_BOOL = 1817 "enable_carrier_display_name_resolver_bool"; 1818 1819 /** 1820 * String to override sim country iso. 1821 * Sim country iso is based on sim MCC which is coarse and doesn't work with dual IMSI SIM where 1822 * a SIM can have multiple MCC from different countries. 1823 * Instead, each sim carrier should have a single country code, apply per carrier based iso 1824 * code as an override. The overridden value can be read from 1825 * {@link TelephonyManager#getSimCountryIso()} and {@link SubscriptionInfo#getCountryIso()} 1826 */ 1827 public static final String KEY_SIM_COUNTRY_ISO_OVERRIDE_STRING = 1828 "sim_country_iso_override_string"; 1829 1830 /** 1831 * The Component Name of a carrier-provided CallScreeningService implementation. Telecom will 1832 * bind to {@link android.telecom.CallScreeningService} for ALL incoming calls and provide 1833 * the carrier 1834 * CallScreeningService with the opportunity to allow or block calls. 1835 * <p> 1836 * The String includes the package name/the class name. 1837 * Example: 1838 * <item>com.android.carrier/com.android.carrier.callscreeningserviceimpl</item> 1839 * <p> 1840 * Using {@link ComponentName#flattenToString()} to convert a ComponentName object to String. 1841 * Using {@link ComponentName#unflattenFromString(String)} to convert a String object to a 1842 * ComponentName. 1843 */ 1844 public static final String KEY_CARRIER_CALL_SCREENING_APP_STRING = "call_screening_app"; 1845 1846 /** 1847 * Override the registered PLMN name using #KEY_CDMA_HOME_REGISTERED_PLMN_NAME_STRING. 1848 * 1849 * If true, then the registered PLMN name (only for CDMA/CDMA-LTE and only when not roaming) 1850 * will be #KEY_CDMA_HOME_REGISTERED_PLMN_NAME_STRING. If false, or if phone type is not 1851 * CDMA/CDMA-LTE or if roaming, then #KEY_CDMA_HOME_REGISTERED_PLMN_NAME_STRING will be ignored. 1852 * @hide 1853 */ 1854 public static final String KEY_CDMA_HOME_REGISTERED_PLMN_NAME_OVERRIDE_BOOL = 1855 "cdma_home_registered_plmn_name_override_bool"; 1856 1857 /** 1858 * String to identify registered PLMN name in CarrierConfig app. This string overrides 1859 * registered PLMN name if #KEY_CDMA_HOME_REGISTERED_PLMN_NAME_OVERRIDE_BOOL is true, phone type 1860 * is CDMA/CDMA-LTE and device is not in roaming state; otherwise, it will be ignored. 1861 * @hide 1862 */ 1863 public static final String KEY_CDMA_HOME_REGISTERED_PLMN_NAME_STRING = 1864 "cdma_home_registered_plmn_name_string"; 1865 1866 /** 1867 * If this is true, the SIM card (through Customer Service Profile EF file) will be able to 1868 * prevent manual operator selection. If false, this SIM setting will be ignored and manual 1869 * operator selection will always be available. See CPHS4_2.WW6, CPHS B.4.7.1 for more 1870 * information 1871 */ 1872 public static final String KEY_CSP_ENABLED_BOOL = "csp_enabled_bool"; 1873 1874 /** 1875 * Allow user to add APNs 1876 */ 1877 public static final String KEY_ALLOW_ADDING_APNS_BOOL = "allow_adding_apns_bool"; 1878 1879 /** 1880 * APN types that user is not allowed to modify. 1881 */ 1882 public static final String KEY_READ_ONLY_APN_TYPES_STRING_ARRAY = 1883 "read_only_apn_types_string_array"; 1884 1885 /** 1886 * APN fields that user is not allowed to modify. 1887 */ 1888 public static final String KEY_READ_ONLY_APN_FIELDS_STRING_ARRAY = 1889 "read_only_apn_fields_string_array"; 1890 1891 /** 1892 * Default value of APN types field if not specified by user when adding/modifying an APN. 1893 */ 1894 public static final String KEY_APN_SETTINGS_DEFAULT_APN_TYPES_STRING_ARRAY = 1895 "apn_settings_default_apn_types_string_array"; 1896 1897 /** 1898 * Configs used for APN setup. 1899 */ 1900 public static final class Apn { 1901 /** 1902 * Prefix of all Apn.KEY_* constants. 1903 * 1904 * @deprecated Since KEY_PREFIX is unnecessary to public, it will modify to private 1905 * next android generation. 1906 */ 1907 @Deprecated 1908 public static final String KEY_PREFIX = "apn."; 1909 1910 /** IPv4 internet protocol */ 1911 public static final String PROTOCOL_IPV4 = "IP"; 1912 /** IPv6 internet protocol */ 1913 public static final String PROTOCOL_IPV6 = "IPV6"; 1914 /** IPv4 or IPv6 internet protocol */ 1915 public static final String PROTOCOL_IPV4V6 = "IPV4V6"; 1916 1917 /** 1918 * Default value of APN protocol field if not specified by user when adding/modifying 1919 * an APN. 1920 * 1921 * Available options are: {@link #PROTOCOL_IPV4}, {@link #PROTOCOL_IPV6}, 1922 * {@link #PROTOCOL_IPV4V6} 1923 */ 1924 public static final String KEY_SETTINGS_DEFAULT_PROTOCOL_STRING = 1925 KEY_PREFIX + "settings_default_protocol_string"; 1926 1927 /** 1928 * Default value of APN roaming protocol field if not specified by user when 1929 * adding/modifying an APN. 1930 * 1931 * Available options are: {@link #PROTOCOL_IPV4}, {@link #PROTOCOL_IPV6}, 1932 * {@link #PROTOCOL_IPV4V6} 1933 */ 1934 public static final String KEY_SETTINGS_DEFAULT_ROAMING_PROTOCOL_STRING = 1935 KEY_PREFIX + "settings_default_roaming_protocol_string"; 1936 Apn()1937 private Apn() {} 1938 getDefaults()1939 private static PersistableBundle getDefaults() { 1940 PersistableBundle defaults = new PersistableBundle(); 1941 defaults.putString(KEY_SETTINGS_DEFAULT_PROTOCOL_STRING, ""); 1942 defaults.putString(KEY_SETTINGS_DEFAULT_ROAMING_PROTOCOL_STRING, ""); 1943 return defaults; 1944 } 1945 } 1946 1947 /** 1948 * Boolean indicating if intent for emergency call state changes should be broadcast 1949 * @hide 1950 */ 1951 public static final String KEY_BROADCAST_EMERGENCY_CALL_STATE_CHANGES_BOOL = 1952 "broadcast_emergency_call_state_changes_bool"; 1953 1954 /** 1955 * Indicates whether STK LAUNCH_BROWSER command is disabled. 1956 * If {@code true}, then the browser will not be launched 1957 * on UI for the LAUNCH_BROWSER STK command. 1958 * @hide 1959 */ 1960 public static final String KEY_STK_DISABLE_LAUNCH_BROWSER_BOOL = 1961 "stk_disable_launch_browser_bool"; 1962 1963 /** 1964 * Boolean indicating if the helper text for STK GET INKEY/INPUT commands with the digit only 1965 * mode is displayed on the input screen. 1966 * The helper text is displayed regardless of the input mode, if {@code false}. 1967 * @hide 1968 */ 1969 public static final String KEY_HIDE_DIGITS_HELPER_TEXT_ON_STK_INPUT_SCREEN_BOOL = 1970 "hide_digits_helper_text_on_stk_input_screen_bool"; 1971 1972 /** 1973 * Boolean indicating if show data RAT icon on status bar even when data is disabled. 1974 */ 1975 public static final String KEY_ALWAYS_SHOW_DATA_RAT_ICON_BOOL = 1976 "always_show_data_rat_icon_bool"; 1977 1978 /** 1979 * Boolean indicating if default data account should show LTE or 4G icon. 1980 */ 1981 public static final String KEY_SHOW_4G_FOR_LTE_DATA_ICON_BOOL = 1982 "show_4g_for_lte_data_icon_bool"; 1983 1984 /** 1985 * Boolean indicating if default data account should show 4G LTE or 4G icon. 1986 * @hide 1987 */ 1988 public static final String KEY_SHOW_4GLTE_FOR_LTE_DATA_ICON_BOOL = 1989 "show_4glte_for_lte_data_icon_bool"; 1990 1991 /** 1992 * Boolean indicating if default data account should show 4G icon when in 3G. 1993 */ 1994 public static final String KEY_SHOW_4G_FOR_3G_DATA_ICON_BOOL = 1995 "show_4g_for_3g_data_icon_bool"; 1996 1997 /** 1998 * Boolean indicating if LTE+ icon should be shown if available. 1999 */ 2000 public static final String KEY_HIDE_LTE_PLUS_DATA_ICON_BOOL = "hide_lte_plus_data_icon_bool"; 2001 2002 /** 2003 * Boolean indicting if the 5G slice icon should be shown if available. 2004 * @hide 2005 */ 2006 public static final String KEY_SHOW_5G_SLICE_ICON_BOOL = "show_5g_slice_icon_bool"; 2007 2008 /** 2009 * The combined channel bandwidth threshold (non-inclusive) in KHz required to display the 2010 * LTE+ data icon. It is 20000 by default, meaning the LTE+ icon will be shown if the device is 2011 * using carrier aggregation and the combined channel bandwidth is strictly greater than 20 MHz. 2012 * @hide 2013 */ 2014 public static final String KEY_LTE_PLUS_THRESHOLD_BANDWIDTH_KHZ_INT = 2015 "lte_plus_threshold_bandwidth_khz_int"; 2016 2017 /** 2018 * The combined channel bandwidth threshold (inclusive) in KHz required to display the 2019 * NR advanced (i.e. 5G+) data icon. It is 0 by default, meaning minimum bandwidth check is 2020 * not enabled. Other factors like bands or frequency can also determine whether the NR 2021 * advanced data icon is shown or not. 2022 * 2023 * @see #KEY_ADDITIONAL_NR_ADVANCED_BANDS_INT_ARRAY 2024 * @see #KEY_NR_ADVANCED_CAPABLE_PCO_ID_INT 2025 * 2026 * @hide 2027 */ 2028 public static final String KEY_NR_ADVANCED_THRESHOLD_BANDWIDTH_KHZ_INT = 2029 "nr_advanced_threshold_bandwidth_khz_int"; 2030 2031 /** 2032 * Indicating whether to include LTE cell bandwidths when determining whether the aggregated 2033 * cell bandwidth meets the required threshold for NR advanced. 2034 * 2035 * @see TelephonyDisplayInfo#OVERRIDE_NETWORK_TYPE_NR_ADVANCED 2036 */ 2037 public static final String KEY_INCLUDE_LTE_FOR_NR_ADVANCED_THRESHOLD_BANDWIDTH_BOOL = 2038 "include_lte_for_nr_advanced_threshold_bandwidth_bool"; 2039 2040 /** 2041 * Indicating whether to ratchet the aggregated cell bandwidths on receiving new values when 2042 * the device is in RRC IDLE mode. 2043 * The aggregated cell bandwidths are used for determining NR advanced state. 2044 * 2045 * If this is {@code true}, we will only update the aggregate cell bandwidths if the new 2046 * aggregate is higher than the current aggregate and the anchor NR cell is the same. 2047 * If this is {@code false}, we will always update the aggregate cell bandwidths when receiving 2048 * new values. 2049 */ 2050 public static final String KEY_RATCHET_NR_ADVANCED_BANDWIDTH_IF_RRC_IDLE_BOOL = 2051 "ratchet_nr_advanced_bandwidth_if_rrc_idle_bool"; 2052 2053 /** 2054 * Boolean indicating if operator name should be shown in the status bar 2055 * @hide 2056 */ 2057 public static final String KEY_SHOW_OPERATOR_NAME_IN_STATUSBAR_BOOL = 2058 "show_operator_name_in_statusbar_bool"; 2059 2060 /** 2061 * The string is used to filter redundant string from PLMN Network Name that's supplied by 2062 * specific carrier. 2063 * 2064 * @hide 2065 */ 2066 public static final String KEY_OPERATOR_NAME_FILTER_PATTERN_STRING = 2067 "operator_name_filter_pattern_string"; 2068 2069 /** 2070 * The string is used to compare with operator name. 2071 * If it matches the pattern then show specific data icon. 2072 * @hide 2073 */ 2074 public static final String KEY_SHOW_CARRIER_DATA_ICON_PATTERN_STRING = 2075 "show_carrier_data_icon_pattern_string"; 2076 2077 /** 2078 * Boolean to decide whether to show precise call failed cause to user 2079 * @hide 2080 */ 2081 public static final String KEY_SHOW_PRECISE_FAILED_CAUSE_BOOL = 2082 "show_precise_failed_cause_bool"; 2083 2084 /** 2085 * A list of carrier nr availability is used to determine whether the carrier enable the 2086 * non-standalone (NSA) mode of 5G NR, standalone (SA) mode of 5G NR 2087 * 2088 * <p> The value of list is 2089 * {@link #CARRIER_NR_AVAILABILITY_NSA}, or {@link #CARRIER_NR_AVAILABILITY_SA}. 2090 * 2091 * <p> For example, if both NSA and SA are used, the list value is { 2092 * {@link #CARRIER_NR_AVAILABILITY_NSA},{@link #CARRIER_NR_AVAILABILITY_SA}}. 2093 * If the carrier doesn't support 5G NR, the value is the empty array. 2094 * If the key is invalid or not configured, the default value { 2095 * {@link #CARRIER_NR_AVAILABILITY_NSA},{@link #CARRIER_NR_AVAILABILITY_SA}} will apply. 2096 */ 2097 public static final String KEY_CARRIER_NR_AVAILABILITIES_INT_ARRAY = 2098 "carrier_nr_availabilities_int_array"; 2099 2100 /** 2101 * Boolean to decide whether LTE is enabled. 2102 */ 2103 public static final String KEY_LTE_ENABLED_BOOL = "lte_enabled_bool"; 2104 2105 /** 2106 * Boolean to decide whether TD-SCDMA is supported. 2107 */ 2108 public static final String KEY_SUPPORT_TDSCDMA_BOOL = "support_tdscdma_bool"; 2109 2110 /** 2111 * A list of mcc/mnc that support TD-SCDMA for device when connect to the roaming network. 2112 */ 2113 public static final String KEY_SUPPORT_TDSCDMA_ROAMING_NETWORKS_STRING_ARRAY = 2114 "support_tdscdma_roaming_networks_string_array"; 2115 2116 /** 2117 * Boolean to decide whether world mode is enabled. 2118 */ 2119 public static final String KEY_WORLD_MODE_ENABLED_BOOL = "world_mode_enabled_bool"; 2120 2121 /** 2122 * Flatten {@link android.content.ComponentName} of the carrier's settings activity. 2123 */ 2124 public static final String KEY_CARRIER_SETTINGS_ACTIVITY_COMPONENT_NAME_STRING = 2125 "carrier_settings_activity_component_name_string"; 2126 2127 // These variables are used by the MMS service and exposed through another API, 2128 // SmsManager. The variable names and string values are copied from there. 2129 public static final String KEY_MMS_ALIAS_ENABLED_BOOL = "aliasEnabled"; 2130 public static final String KEY_MMS_ALLOW_ATTACH_AUDIO_BOOL = "allowAttachAudio"; 2131 public static final String KEY_MMS_APPEND_TRANSACTION_ID_BOOL = "enabledTransID"; 2132 public static final String KEY_MMS_GROUP_MMS_ENABLED_BOOL = "enableGroupMms"; 2133 public static final String KEY_MMS_MMS_DELIVERY_REPORT_ENABLED_BOOL = 2134 "enableMMSDeliveryReports"; 2135 public static final String KEY_MMS_MMS_ENABLED_BOOL = "enabledMMS"; 2136 public static final String KEY_MMS_MMS_READ_REPORT_ENABLED_BOOL = "enableMMSReadReports"; 2137 public static final String KEY_MMS_MULTIPART_SMS_ENABLED_BOOL = "enableMultipartSMS"; 2138 public static final String KEY_MMS_NOTIFY_WAP_MMSC_ENABLED_BOOL = "enabledNotifyWapMMSC"; 2139 public static final String KEY_MMS_SEND_MULTIPART_SMS_AS_SEPARATE_MESSAGES_BOOL = 2140 "sendMultipartSmsAsSeparateMessages"; 2141 public static final String KEY_MMS_SHOW_CELL_BROADCAST_APP_LINKS_BOOL = 2142 "config_cellBroadcastAppLinks"; 2143 public static final String KEY_MMS_SMS_DELIVERY_REPORT_ENABLED_BOOL = 2144 "enableSMSDeliveryReports"; 2145 public static final String KEY_MMS_SUPPORT_HTTP_CHARSET_HEADER_BOOL = 2146 "supportHttpCharsetHeader"; 2147 public static final String KEY_MMS_SUPPORT_MMS_CONTENT_DISPOSITION_BOOL = 2148 "supportMmsContentDisposition"; 2149 public static final String KEY_MMS_ALIAS_MAX_CHARS_INT = "aliasMaxChars"; 2150 public static final String KEY_MMS_ALIAS_MIN_CHARS_INT = "aliasMinChars"; 2151 public static final String KEY_MMS_HTTP_SOCKET_TIMEOUT_INT = "httpSocketTimeout"; 2152 public static final String KEY_MMS_MAX_IMAGE_HEIGHT_INT = "maxImageHeight"; 2153 public static final String KEY_MMS_MAX_IMAGE_WIDTH_INT = "maxImageWidth"; 2154 public static final String KEY_MMS_MAX_MESSAGE_SIZE_INT = "maxMessageSize"; 2155 public static final String KEY_MMS_MESSAGE_TEXT_MAX_SIZE_INT = "maxMessageTextSize"; 2156 public static final String KEY_MMS_RECIPIENT_LIMIT_INT = "recipientLimit"; 2157 public static final String KEY_MMS_SMS_TO_MMS_TEXT_LENGTH_THRESHOLD_INT = 2158 "smsToMmsTextLengthThreshold"; 2159 public static final String KEY_MMS_SMS_TO_MMS_TEXT_THRESHOLD_INT = "smsToMmsTextThreshold"; 2160 public static final String KEY_MMS_SUBJECT_MAX_LENGTH_INT = "maxSubjectLength"; 2161 public static final String KEY_MMS_EMAIL_GATEWAY_NUMBER_STRING = "emailGatewayNumber"; 2162 public static final String KEY_MMS_HTTP_PARAMS_STRING = "httpParams"; 2163 public static final String KEY_MMS_NAI_SUFFIX_STRING = "naiSuffix"; 2164 public static final String KEY_MMS_UA_PROF_TAG_NAME_STRING = "uaProfTagName"; 2165 public static final String KEY_MMS_UA_PROF_URL_STRING = "uaProfUrl"; 2166 public static final String KEY_MMS_USER_AGENT_STRING = "userAgent"; 2167 /** 2168 * If true, add "Connection: close" header to MMS HTTP requests so the connection 2169 * is immediately closed (disabling keep-alive). 2170 */ 2171 public static final String KEY_MMS_CLOSE_CONNECTION_BOOL = "mmsCloseConnection"; 2172 /** 2173 * Waiting time in milliseconds used before releasing an MMS data call. Not tearing down an MMS 2174 * data connection immediately helps to reduce the message delivering latency if messaging 2175 * continues between all parties in the conversation since the same data connection can be 2176 * reused for further messages. 2177 * 2178 * This timer will control how long the data call will be kept alive before being torn down. 2179 */ 2180 public static final String KEY_MMS_NETWORK_RELEASE_TIMEOUT_MILLIS_INT = 2181 "mms_network_release_timeout_millis_int"; 2182 /** 2183 * Maximum size in bytes of the PDU to send or download when connected to a non-terrestrial 2184 * network. MmsService will return a result code of MMS_ERROR_TOO_LARGE_FOR_TRANSPORT if 2185 * the PDU exceeds this limit when connected to a non-terrestrial network. 2186 * @hide 2187 */ 2188 public static final String KEY_MMS_MAX_NTN_PAYLOAD_SIZE_BYTES_INT = 2189 "mms_max_ntn_payload_size_bytes_int"; 2190 2191 /** 2192 * The flatten {@link android.content.ComponentName componentName} of the activity that can 2193 * setup the device and activate with the network per carrier requirements. 2194 * 2195 * e.g., com.google.android.carrierPackageName/.CarrierActivityName 2196 * @hide 2197 */ 2198 @SystemApi 2199 public static final String KEY_CARRIER_SETUP_APP_STRING = "carrier_setup_app_string"; 2200 2201 /** 2202 * Defines carrier-specific actions which act upon 2203 * com.android.internal.telephony.CARRIER_SIGNAL_REDIRECTED, used for customization of the 2204 * default carrier app. 2205 * Format: "CARRIER_ACTION_IDX, ..." 2206 * Where {@code CARRIER_ACTION_IDX} is an integer defined in 2207 * com.android.carrierdefaultapp.CarrierActionUtils 2208 * Example: 2209 * com.android.carrierdefaultapp.CarrierActionUtils#CARRIER_ACTION_DISABLE_METERED_APNS 2210 * disables metered APNs 2211 */ 2212 @SuppressLint("IntentName") 2213 public static final String KEY_CARRIER_DEFAULT_ACTIONS_ON_REDIRECTION_STRING_ARRAY = 2214 "carrier_default_actions_on_redirection_string_array"; 2215 2216 /** 2217 * Defines carrier-specific actions which act upon CARRIER_SIGNAL_REQUEST_NETWORK_FAILED 2218 * and configured signal args: 2219 * android.telephony.TelephonyManager#EXTRA_APN_TYPE, 2220 * android.telephony.TelephonyManager#EXTRA_ERROR_CODE 2221 * used for customization of the default carrier app 2222 * Format: 2223 * { 2224 * "APN_1, ERROR_CODE_1 : CARRIER_ACTION_IDX_1, CARRIER_ACTION_IDX_2...", 2225 * "APN_1, ERROR_CODE_2 : CARRIER_ACTION_IDX_1 " 2226 * } 2227 * Where {@code APN_1} is an integer defined in {@link android.telephony.data.ApnSetting} 2228 * (e.g. {@link android.telephony.data.ApnSetting#TYPE_DEFAULT} 2229 * 2230 * {@code ERROR_CODE_1} is an integer defined in android.telephony.DataFailCause 2231 * Example: 2232 * android.telephony.DataFailCause#MISSING_UNKNOWN_APN 2233 * 2234 * {@code CARRIER_ACTION_IDX_1} is an integer defined in 2235 * com.android.carrierdefaultapp.CarrierActionUtils 2236 * Example: 2237 * com.android.carrierdefaultapp.CarrierActionUtils#CARRIER_ACTION_DISABLE_METERED_APNS 2238 * disables metered APNs 2239 */ 2240 @SuppressLint("IntentName") 2241 public static final String KEY_CARRIER_DEFAULT_ACTIONS_ON_DCFAILURE_STRING_ARRAY = 2242 "carrier_default_actions_on_dcfailure_string_array"; 2243 2244 /** 2245 * Defines carrier-specific actions which act upon CARRIER_SIGNAL_RESET, 2246 * used for customization of the default carrier app. 2247 * Format: "CARRIER_ACTION_IDX, ..." 2248 * Where {@code CARRIER_ACTION_IDX} is an integer defined in 2249 * com.android.carrierdefaultapp.CarrierActionUtils 2250 * Example: 2251 * com.android.carrierdefaultapp.CarrierActionUtils#CARRIER_ACTION_CANCEL_ALL_NOTIFICATIONS 2252 * clears all notifications on reset 2253 */ 2254 @SuppressLint("IntentName") 2255 public static final String KEY_CARRIER_DEFAULT_ACTIONS_ON_RESET = 2256 "carrier_default_actions_on_reset_string_array"; 2257 2258 /** 2259 * Defines carrier-specific actions which act upon 2260 * com.android.internal.telephony.CARRIER_SIGNAL_DEFAULT_NETWORK_AVAILABLE, 2261 * used for customization of the default carrier app. 2262 * Format: 2263 * { 2264 * "true : CARRIER_ACTION_IDX_1", 2265 * "false: CARRIER_ACTION_IDX_2" 2266 * } 2267 * Where {@code true} is a boolean indicates default network available/unavailable 2268 * Where {@code CARRIER_ACTION_IDX} is an integer defined in 2269 * com.android.carrierdefaultapp.CarrierActionUtils CarrierActionUtils 2270 * Example: 2271 * com.android.carrierdefaultapp.CarrierActionUtils#CARRIER_ACTION_ENABLE_DEFAULT_URL_HANDLER 2272 * enables the app as the default URL handler 2273 */ 2274 @SuppressLint("IntentName") 2275 public static final String KEY_CARRIER_DEFAULT_ACTIONS_ON_DEFAULT_NETWORK_AVAILABLE = 2276 "carrier_default_actions_on_default_network_available_string_array"; 2277 2278 /** 2279 * Defines a list of acceptable redirection url for default carrier app. 2280 */ 2281 public static final String KEY_CARRIER_DEFAULT_REDIRECTION_URL_STRING_ARRAY = 2282 "carrier_default_redirection_url_string_array"; 2283 2284 /** 2285 * Each config includes the componentName of the carrier app, followed by a list of interesting 2286 * signals(declared in the manifest) which could wake up the app. 2287 * @see com.android.internal.telephony.TelephonyIntents 2288 * Example: 2289 * <item>com.google.android.carrierAPK/.CarrierSignalReceiverA: 2290 * com.android.internal.telephony.CARRIER_SIGNAL_REDIRECTED, 2291 * com.android.internal.telephony.CARRIER_SIGNAL_PCO_VALUE 2292 * </item> 2293 * <item>com.google.android.carrierAPK/.CarrierSignalReceiverB: 2294 * com.android.internal.telephony.CARRIER_SIGNAL_PCO_VALUE 2295 * </item> 2296 * @hide 2297 */ 2298 public static final String KEY_CARRIER_APP_WAKE_SIGNAL_CONFIG_STRING_ARRAY = 2299 "carrier_app_wake_signal_config"; 2300 2301 /** 2302 * Each config includes the componentName of the carrier app, followed by a list of interesting 2303 * signals for the app during run-time. The list of signals(intents) are targeting on run-time 2304 * broadcast receivers only, aiming to avoid unnecessary wake-ups and should not be declared in 2305 * the app's manifest. 2306 * @see com.android.internal.telephony.TelephonyIntents 2307 * Example: 2308 * <item>com.google.android.carrierAPK/.CarrierSignalReceiverA: 2309 * com.android.internal.telephony.CARRIER_SIGNAL_REQUEST_NETWORK_FAILED, 2310 * com.android.internal.telephony.CARRIER_SIGNAL_PCO_VALUE 2311 * </item> 2312 * <item>com.google.android.carrierAPK/.CarrierSignalReceiverB: 2313 * com.android.internal.telephony.CARRIER_SIGNAL_REQUEST_NETWORK_FAILED 2314 * </item> 2315 * @hide 2316 */ 2317 public static final String KEY_CARRIER_APP_NO_WAKE_SIGNAL_CONFIG_STRING_ARRAY = 2318 "carrier_app_no_wake_signal_config"; 2319 2320 /** 2321 * Determines whether the carrier app needed to be involved when users try to finish setting up 2322 * the SIM card to get network service. 2323 */ 2324 public static final String KEY_CARRIER_APP_REQUIRED_DURING_SIM_SETUP_BOOL = 2325 "carrier_app_required_during_setup_bool"; 2326 2327 /** 2328 * Default value for {@link Settings.Global#DATA_ROAMING} 2329 * @hide 2330 */ 2331 public static final String KEY_CARRIER_DEFAULT_DATA_ROAMING_ENABLED_BOOL = 2332 "carrier_default_data_roaming_enabled_bool"; 2333 2334 /** 2335 * Determines whether the carrier supports making non-emergency phone calls while the phone is 2336 * in emergency callback mode. Default value is {@code true}, meaning that non-emergency calls 2337 * are allowed in emergency callback mode. 2338 */ 2339 public static final String KEY_ALLOW_NON_EMERGENCY_CALLS_IN_ECM_BOOL = 2340 "allow_non_emergency_calls_in_ecm_bool"; 2341 2342 /** 2343 * Time that the telephony framework stays in "emergency SMS mode" after an emergency SMS is 2344 * sent to the network. This is used by carriers to configure the time 2345 * {@link TelephonyManager#isInEmergencySmsMode()} will be true after an emergency SMS is sent. 2346 * This is used by GNSS to override user location permissions so that the carrier network can 2347 * get the user's location for emergency services. 2348 * 2349 * The default is 0, which means that this feature is disabled. The maximum value for this timer 2350 * is 300000 mS (5 minutes). 2351 * 2352 * @hide 2353 */ 2354 public static final String KEY_EMERGENCY_SMS_MODE_TIMER_MS_INT = 2355 "emergency_sms_mode_timer_ms_int"; 2356 2357 /** 2358 * Flag indicating whether to allow carrier video calls to emergency numbers. 2359 * When {@code true}, video calls to emergency numbers will be allowed. When {@code false}, 2360 * video calls to emergency numbers will be initiated as audio-only calls instead. 2361 */ 2362 public static final String KEY_ALLOW_EMERGENCY_VIDEO_CALLS_BOOL = 2363 "allow_emergency_video_calls_bool"; 2364 2365 /** 2366 * Flag indicating whether or not an ongoing call will be held when an outgoing emergency call 2367 * is placed. If true, ongoing calls will be put on hold when an emergency call is placed. If 2368 * false, placing an emergency call will trigger the disconnect of all ongoing calls before 2369 * the emergency call is placed. 2370 */ 2371 public static final String KEY_ALLOW_HOLD_CALL_DURING_EMERGENCY_BOOL = 2372 "allow_hold_call_during_emergency_bool"; 2373 2374 /** 2375 * Flag indicating whether or not the carrier supports the periodic exchange of phone numbers 2376 * in the user's address book with the carrier's presence server in order to retrieve the RCS 2377 * capabilities for each contact used in the RCS User Capability Exchange (UCE) procedure. See 2378 * RCC.71, section 3 for more information. 2379 * <p> 2380 * The flag {@link Ims#KEY_ENABLE_PRESENCE_PUBLISH_BOOL} must also be enabled if this flag is 2381 * enabled, as sending a periodic SIP PUBLISH with this device's RCS capabilities is a 2382 * requirement for capability exchange to begin. 2383 * <p> 2384 * When presence is supported, the device should use the 2385 * {@link android.provider.ContactsContract.Data#CARRIER_PRESENCE} bit mask and set the 2386 * {@link android.provider.ContactsContract.Data#CARRIER_PRESENCE_VT_CAPABLE} bit to indicate 2387 * whether each contact supports video calling. The UI is made aware that presence is enabled 2388 * via {@link android.telecom.PhoneAccount#CAPABILITY_VIDEO_CALLING_RELIES_ON_PRESENCE} 2389 * and can choose to hide or show the video calling icon based on whether a contact supports 2390 * video. 2391 * 2392 * @deprecated No longer used in framework code, however it may still be used by applications 2393 * that have not updated their code. This config should still be set to {@code true} if 2394 * {@link Ims#KEY_RCS_BULK_CAPABILITY_EXCHANGE_BOOL} is set to {@code true} and 2395 * {@link Ims#KEY_ENABLE_PRESENCE_CAPABILITY_EXCHANGE_BOOL} is set to {@code true}. 2396 */ 2397 @Deprecated 2398 public static final String KEY_USE_RCS_PRESENCE_BOOL = "use_rcs_presence_bool"; 2399 2400 /** 2401 * Flag indicating whether the carrier supports RCS SIP OPTIONS indication for 2402 * User Capability Exchange (UCE). 2403 */ 2404 public static final String KEY_USE_RCS_SIP_OPTIONS_BOOL = "use_rcs_sip_options_bool"; 2405 2406 /** 2407 * The duration in seconds that platform call and message blocking is disabled after the user 2408 * contacts emergency services. Platform considers values for below cases: 2409 * 1) 0 <= VALUE <= 604800(one week): the value will be used as the duration directly. 2410 * 2) VALUE > 604800(one week): will use the default value as duration instead. 2411 * 3) VALUE < 0: block will be disabled forever until user re-enable block manually, 2412 * the suggested value to disable forever is -1. 2413 * See {@code android.provider.BlockedNumberContract#notifyEmergencyContact(Context)} 2414 * See {@code android.provider.BlockedNumberContract#isBlocked(Context, String)}. 2415 */ 2416 public static final String KEY_DURATION_BLOCKING_DISABLED_AFTER_EMERGENCY_INT = 2417 "duration_blocking_disabled_after_emergency_int"; 2418 2419 /** 2420 * Determines whether to enable enhanced call blocking feature on the device. 2421 * android.provider.BlockedNumberContract.SystemContract#ENHANCED_SETTING_KEY_BLOCK_UNREGISTERED 2422 * android.provider.BlockedNumberContract.SystemContract#ENHANCED_SETTING_KEY_BLOCK_PRIVATE 2423 * android.provider.BlockedNumberContract.SystemContract#ENHANCED_SETTING_KEY_BLOCK_PAYPHONE 2424 * android.provider.BlockedNumberContract.SystemContract#ENHANCED_SETTING_KEY_BLOCK_UNKNOWN 2425 * android.provider.BlockedNumberContract.SystemContract#ENHANCED_SETTING_KEY_BLOCK_UNAVAILABLE 2426 * 2427 * <p> 2428 * 1. For Single SIM(SS) device, it can be customized in both carrier_config_mccmnc.xml 2429 * and vendor.xml. 2430 * <p> 2431 * 2. For Dual SIM(DS) device, it should be customized in vendor.xml, since call blocking 2432 * function is used regardless of SIM. 2433 * <p> 2434 * If {@code true} enable enhanced call blocking feature on the device, {@code false} otherwise. 2435 */ 2436 public static final String KEY_SUPPORT_ENHANCED_CALL_BLOCKING_BOOL = 2437 "support_enhanced_call_blocking_bool"; 2438 2439 /** 2440 * For carriers which require an empty flash to be sent before sending the normal 3-way calling 2441 * flash, the duration in milliseconds of the empty flash to send. When {@code 0}, no empty 2442 * flash is sent. 2443 */ 2444 public static final String KEY_CDMA_3WAYCALL_FLASH_DELAY_INT = "cdma_3waycall_flash_delay_int"; 2445 2446 /** 2447 * The CDMA roaming mode (aka CDMA system select). 2448 * 2449 * <p>The value should be one of the CDMA_ROAMING_MODE_ constants in {@link TelephonyManager}. 2450 * Values other than {@link TelephonyManager#CDMA_ROAMING_MODE_RADIO_DEFAULT} (which is the 2451 * default) will take precedence over user selection. 2452 * 2453 * @see TelephonyManager#CDMA_ROAMING_MODE_RADIO_DEFAULT 2454 * @see TelephonyManager#CDMA_ROAMING_MODE_HOME 2455 * @see TelephonyManager#CDMA_ROAMING_MODE_AFFILIATED 2456 * @see TelephonyManager#CDMA_ROAMING_MODE_ANY 2457 */ 2458 public static final String KEY_CDMA_ROAMING_MODE_INT = "cdma_roaming_mode_int"; 2459 2460 /** 2461 * Determines whether 1X voice calls is supported for some CDMA carriers. 2462 * Default value is true. 2463 * @hide 2464 */ 2465 @SystemApi 2466 public static final String KEY_SUPPORT_CDMA_1X_VOICE_CALLS_BOOL = 2467 "support_cdma_1x_voice_calls_bool"; 2468 2469 /** 2470 * Boolean indicating if support is provided for directly dialing FDN number from FDN list. 2471 * If false, this feature is not supported. 2472 * @hide 2473 */ 2474 public static final String KEY_SUPPORT_DIRECT_FDN_DIALING_BOOL = 2475 "support_direct_fdn_dialing_bool"; 2476 2477 /** 2478 * Int indicating the max number length for FDN 2479 * @hide 2480 */ 2481 public static final String KEY_FDN_NUMBER_LENGTH_LIMIT_INT = "fdn_number_length_limit_int"; 2482 2483 /** 2484 * Report IMEI as device id even if it's a CDMA/LTE phone. 2485 * 2486 * @hide 2487 */ 2488 public static final String KEY_FORCE_IMEI_BOOL = "force_imei_bool"; 2489 2490 /** 2491 * The families of Radio Access Technologies that will get clustered and ratcheted, 2492 * ie, we will report transitions up within the family, but not down until we change 2493 * cells. This prevents flapping between base technologies and higher techs that are 2494 * granted on demand within the cell. 2495 * @hide 2496 */ 2497 public static final String KEY_RATCHET_RAT_FAMILIES = "ratchet_rat_families"; 2498 2499 /** 2500 * Flag indicating whether some telephony logic will treat a call which was formerly a video 2501 * call as if it is still a video call. When {@code true}: 2502 * <p> 2503 * Logic which will automatically drop a video call which takes place over WIFI when a 2504 * voice call is answered (see {@link #KEY_DROP_VIDEO_CALL_WHEN_ANSWERING_AUDIO_CALL_BOOL}. 2505 * <p> 2506 * Logic which determines whether the user can use TTY calling. 2507 */ 2508 public static final String KEY_TREAT_DOWNGRADED_VIDEO_CALLS_AS_VIDEO_CALLS_BOOL = 2509 "treat_downgraded_video_calls_as_video_calls_bool"; 2510 2511 /** 2512 * When {@code true}, if the user is in an ongoing video call over WIFI and answers an incoming 2513 * audio call, the video call will be disconnected before the audio call is answered. This is 2514 * in contrast to the usual expected behavior where a foreground video call would be put into 2515 * the background and held when an incoming audio call is answered. 2516 */ 2517 public static final String KEY_DROP_VIDEO_CALL_WHEN_ANSWERING_AUDIO_CALL_BOOL = 2518 "drop_video_call_when_answering_audio_call_bool"; 2519 2520 /** 2521 * Flag indicating whether the carrier supports merging wifi calls when VoWIFI is disabled. 2522 * This can happen in the case of a carrier which allows offloading video calls to WIFI 2523 * separately of whether voice over wifi is enabled. In such a scenario when two video calls 2524 * are downgraded to voice, they remain over wifi. However, if VoWIFI is disabled, these calls 2525 * cannot be merged. 2526 */ 2527 public static final String KEY_ALLOW_MERGE_WIFI_CALLS_WHEN_VOWIFI_OFF_BOOL = 2528 "allow_merge_wifi_calls_when_vowifi_off_bool"; 2529 2530 /** 2531 * Flag indicating whether the carrier supports the Hold command while in an IMS call. 2532 * <p> 2533 * The device configuration value {@code config_device_respects_hold_carrier_config} ultimately 2534 * controls whether this carrier configuration option is used. 2535 * Where {@code config_device_respects_hold_carrier_config} is false, the value of 2536 * this carrier configuration is ignored. 2537 * @hide 2538 */ 2539 public static final String KEY_ALLOW_HOLD_IN_IMS_CALL_BOOL = "allow_hold_in_ims_call"; 2540 2541 /** 2542 * Flag indicating whether the carrier supports call deflection for an incoming IMS call. 2543 */ 2544 public static final String KEY_CARRIER_ALLOW_DEFLECT_IMS_CALL_BOOL = 2545 "carrier_allow_deflect_ims_call_bool"; 2546 2547 /** 2548 * Flag indicating whether the carrier supports explicit call transfer for an IMS call. 2549 * @hide 2550 */ 2551 public static final String KEY_CARRIER_ALLOW_TRANSFER_IMS_CALL_BOOL = 2552 "carrier_allow_transfer_ims_call_bool"; 2553 2554 /** 2555 * Flag indicating whether the carrier always wants to play an "on-hold" tone when a call has 2556 * been remotely held. 2557 * <p> 2558 * When {@code true}, if the IMS stack indicates that the call session has been held, a signal 2559 * will be sent from Telephony to play an audible "on-hold" tone played to the user. 2560 * When {@code false}, a hold tone will only be played if the audio session becomes inactive. 2561 * @hide 2562 */ 2563 public static final String KEY_ALWAYS_PLAY_REMOTE_HOLD_TONE_BOOL = 2564 "always_play_remote_hold_tone_bool"; 2565 2566 /** 2567 * When true, the Telephony stack will automatically turn off airplane mode and retry a wifi 2568 * emergency call over the cell network if the initial attempt at dialing was met with a SIP 308 2569 * error. 2570 * @hide 2571 */ 2572 public static final String KEY_AUTO_RETRY_FAILED_WIFI_EMERGENCY_CALL = 2573 "auto_retry_failed_wifi_emergency_call"; 2574 2575 /** 2576 * When true, indicates that adding a call is disabled when there is an ongoing video call 2577 * or when there is an ongoing call on wifi which was downgraded from video and VoWifi is 2578 * turned off. 2579 */ 2580 public static final String KEY_ALLOW_ADD_CALL_DURING_VIDEO_CALL_BOOL = 2581 "allow_add_call_during_video_call"; 2582 2583 /** 2584 * When {@code true}, indicates that video calls can be put on hold in order to swap to another 2585 * call (e.g. a new outgoing call). 2586 * When {@code false}, indicates that video calls will be disconnected when swapping to another 2587 * call. 2588 * <p> 2589 * This is {@code true} by default. 2590 */ 2591 public static final String KEY_ALLOW_HOLD_VIDEO_CALL_BOOL = "allow_hold_video_call_bool"; 2592 2593 /** 2594 * When true, indicates that the HD audio icon in the in-call screen should not be shown for 2595 * VoWifi calls. 2596 * @hide 2597 */ 2598 public static final String KEY_WIFI_CALLS_CAN_BE_HD_AUDIO = "wifi_calls_can_be_hd_audio"; 2599 2600 /** 2601 * When true, indicates that the HD audio icon in the in-call screen should not be shown for 2602 * video calls. 2603 * @hide 2604 */ 2605 public static final String KEY_VIDEO_CALLS_CAN_BE_HD_AUDIO = "video_calls_can_be_hd_audio"; 2606 2607 /** 2608 * When true, indicates that the HD audio icon in the in-call screen should be shown for 2609 * GSM/CDMA calls. 2610 * @hide 2611 */ 2612 public static final String KEY_GSM_CDMA_CALLS_CAN_BE_HD_AUDIO = 2613 "gsm_cdma_calls_can_be_hd_audio"; 2614 2615 /** 2616 * Whether system apps are allowed to use fallback if carrier video call is not available. 2617 * Defaults to {@code true}. 2618 */ 2619 public static final String KEY_ALLOW_VIDEO_CALLING_FALLBACK_BOOL = 2620 "allow_video_calling_fallback_bool"; 2621 2622 /** 2623 * Defines operator-specific {@link ImsReasonInfo} mappings. 2624 * 2625 * Format: "ORIGINAL_CODE|MESSAGE|NEW_CODE" 2626 * Where {@code ORIGINAL_CODE} corresponds to a {@link ImsReasonInfo#getCode()} code, 2627 * {@code MESSAGE} corresponds to an expected {@link ImsReasonInfo#getExtraMessage()} string, 2628 * and {@code NEW_CODE} is the new {@code ImsReasonInfo#CODE_*} which this combination of 2629 * original code and message shall be remapped to. 2630 * 2631 * Note: If {@code *} is specified for the original code, any ImsReasonInfo with the matching 2632 * {@code MESSAGE} will be remapped to {@code NEW_CODE}. 2633 * If {@code *} is specified for the message, any ImsReasonInfo with the matching 2634 * {@code ORIGINAL_CODE} will be remapped to {@code NEW_CODE}. 2635 * The wildcard for {@code ORIGINAL_CODE} takes precedence to the wildcard for {@code MESSAGE}. 2636 * A mapping with both wildcards has no effect. 2637 * 2638 * Example: "501|call completion elsewhere|1014" 2639 * When the {@link ImsReasonInfo#getCode()} is {@link ImsReasonInfo#CODE_USER_TERMINATED} and 2640 * the {@link ImsReasonInfo#getExtraMessage()} is {@code "call completion elsewhere"}, 2641 * {@link ImsReasonInfo#CODE_ANSWERED_ELSEWHERE} shall be used as the {@link ImsReasonInfo} 2642 * code instead. 2643 * @hide 2644 */ 2645 public static final String KEY_IMS_REASONINFO_MAPPING_STRING_ARRAY = 2646 "ims_reasoninfo_mapping_string_array"; 2647 2648 /** 2649 * When {@code false}, use default title for Enhanced 4G LTE Mode settings. 2650 * When {@code true}, use the variant. 2651 * @hide 2652 * @deprecated use {@link #KEY_ENHANCED_4G_LTE_TITLE_VARIANT_INT}. 2653 */ 2654 @Deprecated 2655 public static final String KEY_ENHANCED_4G_LTE_TITLE_VARIANT_BOOL = 2656 "enhanced_4g_lte_title_variant_bool"; 2657 2658 /** 2659 * The index indicates the carrier specified title string of Enhanced 4G LTE Mode settings. 2660 * Default value is 0, which indicates the default title string. 2661 */ 2662 public static final String KEY_ENHANCED_4G_LTE_TITLE_VARIANT_INT = 2663 "enhanced_4g_lte_title_variant_int"; 2664 2665 /** 2666 * Indicates whether the carrier wants to notify the user when handover of an LTE video call to 2667 * WIFI fails. 2668 * <p> 2669 * When {@code true}, if a video call starts on LTE and the modem reports a failure to handover 2670 * the call to WIFI or if no handover success is reported within 60 seconds of call initiation, 2671 * the {@link android.telephony.TelephonyManager#EVENT_HANDOVER_TO_WIFI_FAILED} event is raised 2672 * on the connection. 2673 * @hide 2674 */ 2675 public static final String KEY_NOTIFY_VT_HANDOVER_TO_WIFI_FAILURE_BOOL = 2676 "notify_vt_handover_to_wifi_failure_bool"; 2677 2678 /** 2679 * A upper case list of CNAP names that are unhelpful to the user for distinguising calls and 2680 * should be filtered out of the CNAP information. This includes CNAP names such as "WIRELESS 2681 * CALLER" or "UNKNOWN NAME". By default, if there are no filtered names for this carrier, null 2682 * is returned. 2683 * @hide 2684 */ 2685 public static final String KEY_FILTERED_CNAP_NAMES_STRING_ARRAY = 2686 "filtered_cnap_names_string_array"; 2687 2688 /** 2689 * The RCS configuration server URL. This URL is used to initiate RCS provisioning. 2690 */ 2691 public static final String KEY_RCS_CONFIG_SERVER_URL_STRING = "rcs_config_server_url_string"; 2692 2693 /** 2694 * Determine whether user can change Wi-Fi Calling preference in roaming. 2695 * {@code false} - roaming preference cannot be changed by user independently. If 2696 * {@link #KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL} is false, 2697 * {@link #KEY_CARRIER_DEFAULT_WFC_IMS_ROAMING_MODE_INT} is used as the default 2698 * value. If {@link #KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL} is 2699 * true, roaming preference is the same as home preference and 2700 * {@link #KEY_CARRIER_DEFAULT_WFC_IMS_MODE_INT} is used as the default value. 2701 * {@code true} - roaming preference can be changed by user independently if 2702 * {@link #KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL} is false. If 2703 * {@link #KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL} is true, this 2704 * configuration is ignored and roaming preference cannot be changed. 2705 */ 2706 public static final String KEY_EDITABLE_WFC_ROAMING_MODE_BOOL = 2707 "editable_wfc_roaming_mode_bool"; 2708 2709 /** 2710 * Flag specifying whether to show blocking pay phone option in blocked numbers screen. 2711 * Only show the option if payphone call presentation is present in the carrier's region. 2712 */ 2713 public static final java.lang.String KEY_SHOW_BLOCKING_PAY_PHONE_OPTION_BOOL = 2714 "show_blocking_pay_phone_option_bool"; 2715 2716 /** 2717 * Flag specifying whether the carrier will use the 2718 * WFC home network mode in roaming network. 2719 * {@code false} - roaming preference can be selected separately from the home preference. 2720 * {@code true} - roaming preference is the same as home preference and 2721 * {@link #KEY_CARRIER_DEFAULT_WFC_IMS_MODE_INT} is used as the default value. 2722 */ 2723 public static final String KEY_USE_WFC_HOME_NETWORK_MODE_IN_ROAMING_NETWORK_BOOL = 2724 "use_wfc_home_network_mode_in_roaming_network_bool"; 2725 2726 /** 2727 * Flag specifying whether the carrier is allowed to use metered network to download a 2728 * certificate of Carrier-WiFi. 2729 * {@code false} - default value. 2730 * 2731 * @hide 2732 */ 2733 public static final String KEY_ALLOW_METERED_NETWORK_FOR_CERT_DOWNLOAD_BOOL = 2734 "allow_metered_network_for_cert_download_bool"; 2735 2736 /** 2737 * Time delay (in ms) after which we show the notification to switch the preferred 2738 * network. 2739 * @hide 2740 */ 2741 public static final String KEY_PREF_NETWORK_NOTIFICATION_DELAY_INT = 2742 "network_notification_delay_int"; 2743 2744 /** 2745 * Time delay (in ms) after which we show the notification for emergency calls, 2746 * while the device is registered over WFC. Default value is -1, which indicates 2747 * that this notification is not pertinent for a particular carrier. We've added a delay 2748 * to prevent false positives. 2749 */ 2750 public static final String KEY_EMERGENCY_NOTIFICATION_DELAY_INT = 2751 "emergency_notification_delay_int"; 2752 2753 /** 2754 * When {@code true}, the carrier allows the user of the {@link 2755 * TelephonyManager#sendUssdRequest(String, TelephonyManager.UssdResponseCallback, Handler)} 2756 * API to perform USSD requests. {@code True} by default. 2757 * @hide 2758 */ 2759 public static final String KEY_ALLOW_USSD_REQUESTS_VIA_TELEPHONY_MANAGER_BOOL = 2760 "allow_ussd_requests_via_telephony_manager_bool"; 2761 2762 /** 2763 * Indicates whether the carrier supports 3gpp call forwarding MMI codes while roaming. If 2764 * false, the user will be notified that call forwarding is not available when the MMI code 2765 * fails. 2766 */ 2767 public static final String KEY_SUPPORT_3GPP_CALL_FORWARDING_WHILE_ROAMING_BOOL = 2768 "support_3gpp_call_forwarding_while_roaming_bool"; 2769 2770 /** 2771 * Boolean indicating whether to display voicemail number as default call forwarding number in 2772 * call forwarding settings. 2773 * If true, display vm number when cf number is null. 2774 * If false, display the cf number from network. 2775 * By default this value is false. 2776 * @hide 2777 */ 2778 public static final String KEY_DISPLAY_VOICEMAIL_NUMBER_AS_DEFAULT_CALL_FORWARDING_NUMBER_BOOL = 2779 "display_voicemail_number_as_default_call_forwarding_number"; 2780 2781 /** 2782 * When {@code true}, the user will be notified when they attempt to place an international call 2783 * when the call is placed using wifi calling. 2784 * @hide 2785 */ 2786 public static final String KEY_NOTIFY_INTERNATIONAL_CALL_ON_WFC_BOOL = 2787 "notify_international_call_on_wfc_bool"; 2788 2789 /** 2790 * Flag to hide Preset APN details. If true, user cannot enter ApnEditor view of Preset APN, 2791 * and cannot view details of the APN. If false, user can enter ApnEditor view of Preset APN. 2792 * Default value is false. 2793 */ 2794 public static final String KEY_HIDE_PRESET_APN_DETAILS_BOOL = "hide_preset_apn_details_bool"; 2795 2796 /** 2797 * Flag specifying whether to show an alert dialog for video call charges. 2798 * By default this value is {@code false}. 2799 */ 2800 public static final String KEY_SHOW_VIDEO_CALL_CHARGES_ALERT_DIALOG_BOOL = 2801 "show_video_call_charges_alert_dialog_bool"; 2802 2803 /** 2804 * An array containing custom call forwarding number prefixes that will be blocked while the 2805 * device is reporting that it is roaming. By default, there are no custom call 2806 * forwarding prefixes and none of these numbers will be filtered. If one or more entries are 2807 * present, the system will not complete the call and display an error message. 2808 * 2809 * To display a message to the user when call forwarding fails for 3gpp MMI codes while roaming, 2810 * use the {@link #KEY_SUPPORT_3GPP_CALL_FORWARDING_WHILE_ROAMING_BOOL} option instead. 2811 */ 2812 public static final String KEY_CALL_FORWARDING_BLOCKS_WHILE_ROAMING_STRING_ARRAY = 2813 "call_forwarding_blocks_while_roaming_string_array"; 2814 2815 /** 2816 * Call forwarding number prefixes defined by {@link 2817 * #KEY_CALL_FORWARDING_BLOCKS_WHILE_ROAMING_STRING_ARRAY} which will be allowed while the 2818 * device is reporting that it is roaming and IMS is registered over LTE or Wi-Fi. 2819 * By default this value is {@code true}. 2820 * @hide 2821 */ 2822 public static final String KEY_SUPPORT_IMS_CALL_FORWARDING_WHILE_ROAMING_BOOL = 2823 "support_ims_call_forwarding_while_roaming_bool"; 2824 2825 /** 2826 * The day of the month (1-31) on which the data cycle rolls over. 2827 * <p> 2828 * If the current month does not have this day, the cycle will roll over at 2829 * the start of the next month. 2830 * <p> 2831 * This setting may be still overridden by explicit user choice. By default, 2832 * {@link #DATA_CYCLE_USE_PLATFORM_DEFAULT} will be used. 2833 */ 2834 public static final String KEY_MONTHLY_DATA_CYCLE_DAY_INT = "monthly_data_cycle_day_int"; 2835 2836 /** 2837 * When {@link #KEY_MONTHLY_DATA_CYCLE_DAY_INT}, {@link #KEY_DATA_LIMIT_THRESHOLD_BYTES_LONG}, 2838 * or {@link #KEY_DATA_WARNING_THRESHOLD_BYTES_LONG} are set to this value, the platform default 2839 * value will be used for that key. 2840 */ 2841 public static final int DATA_CYCLE_USE_PLATFORM_DEFAULT = -1; 2842 2843 /** 2844 * Flag indicating that a data cycle threshold should be disabled. 2845 * <p> 2846 * If {@link #KEY_DATA_WARNING_THRESHOLD_BYTES_LONG} is set to this value, the platform's 2847 * default data warning, if one exists, will be disabled. A user selected data warning will not 2848 * be overridden. 2849 * <p> 2850 * If {@link #KEY_DATA_LIMIT_THRESHOLD_BYTES_LONG} is set to this value, the platform's 2851 * default data limit, if one exists, will be disabled. A user selected data limit will not be 2852 * overridden. 2853 */ 2854 public static final int DATA_CYCLE_THRESHOLD_DISABLED = -2; 2855 2856 /** 2857 * Controls the data usage warning. 2858 * <p> 2859 * If the user uses more than this amount of data in their billing cycle, as defined by 2860 * {@link #KEY_MONTHLY_DATA_CYCLE_DAY_INT}, the user will be alerted about the usage. 2861 * If the value is set to {@link #DATA_CYCLE_THRESHOLD_DISABLED}, the data usage warning will 2862 * be disabled. 2863 * <p> 2864 * This setting may be overridden by explicit user choice. By default, 2865 * {@link #DATA_CYCLE_USE_PLATFORM_DEFAULT} will be used. 2866 */ 2867 public static final String KEY_DATA_WARNING_THRESHOLD_BYTES_LONG = 2868 "data_warning_threshold_bytes_long"; 2869 2870 /** 2871 * Controls if the device should automatically notify the user as they reach 2872 * their cellular data warning. When set to {@code false} the carrier is 2873 * expected to have implemented their own notification mechanism. {@code true} by default. 2874 */ 2875 public static final String KEY_DATA_WARNING_NOTIFICATION_BOOL = 2876 "data_warning_notification_bool"; 2877 2878 /** 2879 * Controls if the device should automatically warn the user that sim voice & data function 2880 * might be limited due to dual sim scenario. When set to {@code true} display the notification, 2881 * {@code false} otherwise. 2882 * @hide 2883 */ 2884 public static final String KEY_LIMITED_SIM_FUNCTION_NOTIFICATION_FOR_DSDS_BOOL = 2885 "limited_sim_function_notification_for_dsds_bool"; 2886 2887 /** 2888 * Controls the cellular data limit. 2889 * <p> 2890 * If the user uses more than this amount of data in their billing cycle, as defined by 2891 * {@link #KEY_MONTHLY_DATA_CYCLE_DAY_INT}, cellular data will be turned off by the user's 2892 * phone. If the value is set to {@link #DATA_CYCLE_THRESHOLD_DISABLED}, the data limit will be 2893 * disabled. 2894 * <p> 2895 * This setting may be overridden by explicit user choice. By default, 2896 * {@link #DATA_CYCLE_USE_PLATFORM_DEFAULT} will be used. 2897 */ 2898 public static final String KEY_DATA_LIMIT_THRESHOLD_BYTES_LONG = 2899 "data_limit_threshold_bytes_long"; 2900 2901 /** 2902 * Controls if the device should automatically notify the user as they reach 2903 * their cellular data limit. When set to {@code false} the carrier is 2904 * expected to have implemented their own notification mechanism. {@code true} by default. 2905 */ 2906 public static final String KEY_DATA_LIMIT_NOTIFICATION_BOOL = "data_limit_notification_bool"; 2907 2908 /** 2909 * Controls if the device should automatically notify the user when rapid 2910 * cellular data usage is observed. When set to {@code false} the carrier is 2911 * expected to have implemented their own notification mechanism. {@code true} by default. 2912 */ 2913 public static final String KEY_DATA_RAPID_NOTIFICATION_BOOL = "data_rapid_notification_bool"; 2914 2915 /** 2916 * Offset to be reduced from rsrp threshold while calculating signal strength level. 2917 * @hide 2918 */ 2919 public static final String KEY_LTE_EARFCNS_RSRP_BOOST_INT = "lte_earfcns_rsrp_boost_int"; 2920 2921 /** 2922 * List of EARFCN (E-UTRA Absolute Radio Frequency Channel Number, 2923 * Reference: 3GPP TS 36.104 5.4.3) inclusive ranges on which lte_earfcns_rsrp_boost_int 2924 * will be applied. Format of the String array is expected to be {"earfcn1_start-earfcn1_end", 2925 * "earfcn2_start-earfcn2_end" ... } 2926 * @hide 2927 */ 2928 public static final String KEY_BOOSTED_LTE_EARFCNS_STRING_ARRAY = 2929 "boosted_lte_earfcns_string_array"; 2930 2931 /** 2932 * Offset to be reduced from rsrp threshold while calculating signal strength level. 2933 * @hide 2934 */ 2935 public static final String KEY_NRARFCNS_RSRP_BOOST_INT_ARRAY = "nrarfcns_rsrp_boost_int_array"; 2936 2937 /** 2938 * List of NR ARFCN (5G Absolute Radio Frequency Channel Number, 2939 * Reference: 3GPP TS 36.108) inclusive ranges on which corresponding 2940 * nrarfcns_rsrp_boost_int_array will be applied. The size of this array and 2941 * nrarfcns_rsrp_boost_int_array must be the same. 2942 * Format of the String array is expected to be {"nrarfcn1_start-nrarfcn1_end", 2943 * "nrarfcn2_start-nrarfcn2_end" ... } 2944 * @hide 2945 */ 2946 public static final String KEY_BOOSTED_NRARFCNS_STRING_ARRAY = "boosted_nrarfcns_string_array"; 2947 2948 /** 2949 * Determine whether to use only RSRP for the number of LTE signal bars. 2950 * @hide 2951 * 2952 * @deprecated use {@link #KEY_PARAMETERS_USED_FOR_LTE_SIGNAL_BAR_INT}. 2953 */ 2954 // FIXME: this key and related keys must not be exposed without a consistent philosophy for 2955 // all RATs. 2956 @Deprecated 2957 public static final String KEY_USE_ONLY_RSRP_FOR_LTE_SIGNAL_BAR_BOOL = 2958 "use_only_rsrp_for_lte_signal_bar_bool"; 2959 2960 /** 2961 * Bit-field integer to determine whether to use Reference Signal Received Power (RSRP), 2962 * Reference Signal Received Quality (RSRQ), or/and Reference Signal Signal to Noise Ratio 2963 * (RSSNR) for the number of LTE signal bars and signal criteria reporting enabling. 2964 * 2965 * <p> If a measure is not set, signal criteria reporting from modem will not be triggered and 2966 * not be used for calculating signal level. If multiple measures are set bit, the parameter 2967 * whose value is smallest is used to indicate the signal level. 2968 * <UL> 2969 * <LI>RSRP = 1 << 0</LI> 2970 * <LI>RSRQ = 1 << 1</LI> 2971 * <LI>RSSNR = 1 << 2</LI> 2972 * </UL> 2973 * <p> The value of this key must be bitwise OR of {@link CellSignalStrengthLte#USE_RSRP}, 2974 * {@link CellSignalStrengthLte#USE_RSRQ}, {@link CellSignalStrengthLte#USE_RSSNR}. 2975 * 2976 * <p> For example, if both RSRP and RSRQ are used, the value of key is 3 (1 << 0 | 1 << 1). 2977 * If the key is invalid or not configured, a default value (RSRP = 1 << 0) will apply. 2978 * 2979 * @hide 2980 */ 2981 public static final String KEY_PARAMETERS_USED_FOR_LTE_SIGNAL_BAR_INT = 2982 "parameters_used_for_lte_signal_bar_int"; 2983 2984 /** 2985 * List of 4 customized 5G SS reference signal received power (SSRSRP) thresholds. 2986 * <p> 2987 * Reference: 3GPP TS 38.215 2988 * <p> 2989 * 4 threshold integers must be within the boundaries [-140 dB, -44 dB], and the levels are: 2990 * <UL> 2991 * <LI>"NONE: [-140, threshold1)"</LI> 2992 * <LI>"POOR: [threshold1, threshold2)"</LI> 2993 * <LI>"MODERATE: [threshold2, threshold3)"</LI> 2994 * <LI>"GOOD: [threshold3, threshold4)"</LI> 2995 * <LI>"EXCELLENT: [threshold4, -44]"</LI> 2996 * </UL> 2997 * <p> 2998 * This key is considered invalid if the format is violated. If the key is invalid or 2999 * not configured, a default value set will apply. 3000 */ 3001 public static final String KEY_5G_NR_SSRSRP_THRESHOLDS_INT_ARRAY = 3002 "5g_nr_ssrsrp_thresholds_int_array"; 3003 3004 /** 3005 * List of 4 customized 5G SS reference signal received quality (SSRSRQ) thresholds. 3006 * <p> 3007 * Reference: 3GPP TS 38.215; 3GPP TS 38.133 section 10 3008 * <p> 3009 * 4 threshold integers must be within the boundaries [-43 dB, 20 dB], and the levels are: 3010 * <UL> 3011 * <LI>"NONE: [-43, threshold1)"</LI> 3012 * <LI>"POOR: [threshold1, threshold2)"</LI> 3013 * <LI>"MODERATE: [threshold2, threshold3)"</LI> 3014 * <LI>"GOOD: [threshold3, threshold4)"</LI> 3015 * <LI>"EXCELLENT: [threshold4, 20]"</LI> 3016 * </UL> 3017 * <p> 3018 * This key is considered invalid if the format is violated. If the key is invalid or 3019 * not configured, a default value set will apply. 3020 */ 3021 public static final String KEY_5G_NR_SSRSRQ_THRESHOLDS_INT_ARRAY = 3022 "5g_nr_ssrsrq_thresholds_int_array"; 3023 3024 /** 3025 * List of 4 customized 5G SS signal-to-noise and interference ratio (SSSINR) thresholds. 3026 * <p> 3027 * Reference: 3GPP TS 38.215, 3028 * 3GPP TS 38.133 10.1.16.1 3029 * <p> 3030 * 4 threshold integers must be within the boundaries [-23 dB, 40 dB], and the levels are: 3031 * <UL> 3032 * <LI>"NONE: [-23, threshold1)"</LI> 3033 * <LI>"POOR: [threshold1, threshold2)"</LI> 3034 * <LI>"MODERATE: [threshold2, threshold3)"</LI> 3035 * <LI>"GOOD: [threshold3, threshold4)"</LI> 3036 * <LI>"EXCELLENT: [threshold4, 40]"</LI> 3037 * </UL> 3038 * <p> 3039 * This key is considered invalid if the format is violated. If the key is invalid or 3040 * not configured, a default value set will apply. 3041 */ 3042 public static final String KEY_5G_NR_SSSINR_THRESHOLDS_INT_ARRAY = 3043 "5g_nr_sssinr_thresholds_int_array"; 3044 3045 /** 3046 * An interval in dB for {@link SignalThresholdInfo#SIGNAL_MEASUREMENT_TYPE_SSRSRP} measurement 3047 * type defining the required magnitude change between reports. 3048 * 3049 * <p>The default value is 2 and the minimum allowed value is 0. If no value or negative value 3050 * is set, the default value 2 is used. 3051 * @hide 3052 */ 3053 public static final String KEY_NGRAN_SSRSRP_HYSTERESIS_DB_INT = 3054 "ngran_ssrsrp_hysteresis_db_int"; 3055 3056 /** 3057 * An interval in dB for {@link SignalThresholdInfo#SIGNAL_MEASUREMENT_TYPE_SSRSRQ} measurement 3058 * type defining the required magnitude change between reports. 3059 * 3060 * <p>The default value is 2 and the minimum allowed value is 0. If no value or negative value 3061 * is set, the default value 2 is used. 3062 * @hide 3063 */ 3064 public static final String KEY_NGRAN_SSRSRQ_HYSTERESIS_DB_INT = 3065 "ngran_ssrsrq_hysteresis_db_int"; 3066 3067 /** 3068 * An interval in dB for {@link SignalThresholdInfo#SIGNAL_MEASUREMENT_TYPE_SSSINR} measurement 3069 * type defining the required magnitude change between reports. 3070 * 3071 * <p>The default value is 2 and the minimum allowed value is 0. If no value or negative value 3072 * is set, the default value 2 is used. 3073 * @hide 3074 */ 3075 public static final String KEY_NGRAN_SSSINR_HYSTERESIS_DB_INT = 3076 "ngran_sssinr_hysteresis_db_int"; 3077 3078 /** 3079 * Bit-field integer to determine whether to use SS reference signal received power (SSRSRP), 3080 * SS reference signal received quality (SSRSRQ), or/and SS signal-to-noise and interference 3081 * ratio (SSSINR) for the number of 5G NR signal bars and signal criteria reporting enabling. 3082 * 3083 * <p> If a measure is not set, signal criteria reporting from modem will not be triggered and 3084 * not be used for calculating signal level. If multiple measures are set bit, the parameter 3085 * whose value is smallest is used to indicate the signal level. 3086 * <UL> 3087 * <LI>SSRSRP = 1 << 0</LI> 3088 * <LI>SSRSRQ = 1 << 1</LI> 3089 * <LI>SSSINR = 1 << 2</LI> 3090 * </UL> 3091 * The value of this key must be bitwise OR of {@link CellSignalStrengthNr#USE_SSRSRP}, 3092 * {@link CellSignalStrengthNr#USE_SSRSRQ}, {@link CellSignalStrengthNr#USE_SSSINR}. 3093 * 3094 * <p> For example, if both SSRSRP and SSSINR are used, the value of key is 5 (1 << 0 | 1 << 2). 3095 * If the key is invalid or not configured, a default value (SSRSRP = 1 << 0) will apply. 3096 * 3097 * <p> Reference: 3GPP TS 38.215, 3098 * 3GPP TS 38.133 10.1.16.1 3099 * 3100 * @hide 3101 */ 3102 public static final String KEY_PARAMETERS_USE_FOR_5G_NR_SIGNAL_BAR_INT = 3103 "parameters_use_for_5g_nr_signal_bar_int"; 3104 3105 /** 3106 * There are two signal strengths, NR and LTE signal strength, during NR (non-standalone). 3107 * Boolean indicating whether to use LTE signal strength as primary during NR (non-standalone). 3108 * By default this value is true. 3109 * 3110 * @hide 3111 */ 3112 public static final String KEY_SIGNAL_STRENGTH_NR_NSA_USE_LTE_AS_PRIMARY_BOOL = 3113 "signal_strength_nr_nsa_use_lte_as_primary_bool"; 3114 3115 /** 3116 * String array of default bandwidth values per network type. 3117 * The entries should be of form: "network_name:downlink,uplink", with values in Kbps. 3118 * For NR (5G), the following network names should be used: 3119 * - NR_NSA: NR NSA, sub-6 frequencies 3120 * - NR_NSA_MMWAVE: NR NSA, mmwave frequencies 3121 * - NR_SA: NR SA, sub-6 frequencies 3122 * - NR_SA_MMWAVE: NR SA, mmwave frequencies 3123 * @hide 3124 */ 3125 public static final String KEY_BANDWIDTH_STRING_ARRAY = "bandwidth_string_array"; 3126 3127 /** 3128 * For NR (non-standalone), whether to use the LTE value instead of NR value as the default for 3129 * uplink bandwidth. Downlink bandwidth will still use the NR value as the default. 3130 * @hide 3131 */ 3132 public static final String KEY_BANDWIDTH_NR_NSA_USE_LTE_VALUE_FOR_UPLINK_BOOL = 3133 "bandwidth_nr_nsa_use_lte_value_for_uplink_bool"; 3134 3135 /** 3136 * Key identifying if voice call barring notification is required to be shown to the user. 3137 * @hide 3138 */ 3139 @UnsupportedAppUsage(maxTargetSdk = Build.VERSION_CODES.R, trackingBug = 170729553) 3140 public static final String KEY_DISABLE_VOICE_BARRING_NOTIFICATION_BOOL = 3141 "disable_voice_barring_notification_bool"; 3142 3143 /** 3144 * List of operators considered non-roaming which won't show roaming icon. 3145 * <p> 3146 * Can use mcc or mcc+mnc as item. For example, 302 or 21407. 3147 * If operators, 21404 and 21407, make roaming agreements, users of 21404 should not see 3148 * the roaming icon as using 21407 network. 3149 * @hide 3150 */ 3151 public static final String KEY_NON_ROAMING_OPERATOR_STRING_ARRAY = 3152 "non_roaming_operator_string_array"; 3153 3154 /** 3155 * List of operators considered roaming with the roaming icon. 3156 * <p> 3157 * Can use mcc or mcc+mnc as item. For example, 302 or 21407. 3158 * If operators, 21404 and 21407, make roaming agreements, users of 21404 should see 3159 * the roaming icon as using 21407 network. 3160 * <p> 3161 * A match on this supersedes a match on {@link #KEY_NON_ROAMING_OPERATOR_STRING_ARRAY}. 3162 * @hide 3163 */ 3164 public static final String KEY_ROAMING_OPERATOR_STRING_ARRAY = "roaming_operator_string_array"; 3165 3166 /** 3167 * Config to show the roaming indicator (i.e. the "R" icon) from the status bar when roaming. 3168 * The roaming indicator will be shown if this is {@code true} and will not be shown if this is 3169 * {@code false}. 3170 */ 3171 @FlaggedApi(Flags.FLAG_HIDE_ROAMING_ICON) 3172 public static final String KEY_SHOW_ROAMING_INDICATOR_BOOL = "show_roaming_indicator_bool"; 3173 3174 /** 3175 * URL from which the proto containing the public key of the Carrier used for 3176 * IMSI encryption will be downloaded. 3177 * @hide 3178 */ 3179 public static final String IMSI_KEY_DOWNLOAD_URL_STRING = "imsi_key_download_url_string"; 3180 3181 /** 3182 * String representation of a carrier's public key used for IMSI encryption for ePDG. If this 3183 * is provided, the device will use it as a fallback when no key exists on device, but the key 3184 * download will still initiate. 3185 * Example string: 3186 * "-----BEGIN CERTIFICATE-----\nabcde12345abcde12345abcde12345abcde1234 3187 * 5abcde12345abcde12345\nabcde12345abcde12345abcde12345abcde12345a\n-----END CERTIFICATE-----" 3188 * @hide 3189 */ 3190 public static final String IMSI_CARRIER_PUBLIC_KEY_EPDG_STRING = 3191 "imsi_carrier_public_key_epdg_string"; 3192 3193 /** 3194 * String representation of a carrier's public key used for IMSI encryption for WLAN. If this 3195 * is provided, the device will use it as a fallback when no key exists on device, but the key 3196 * download will still initiate. 3197 * Example string: 3198 * "-----BEGIN CERTIFICATE-----\nabcde12345abcde12345abcde12345abcde1234 3199 * 5abcde12345abcde12345\nabcde12345abcde12345abcde12345abcde12345a\n-----END CERTIFICATE-----" 3200 * @hide 3201 */ 3202 public static final String IMSI_CARRIER_PUBLIC_KEY_WLAN_STRING = 3203 "imsi_carrier_public_key_wlan_string"; 3204 3205 /** 3206 * Identifies if the key is available for WLAN or EPDG or both. The value is a bitmask. 3207 * 0 indicates that neither EPDG or WLAN is enabled. 3208 * 1 indicates that key type TelephonyManager#KEY_TYPE_EPDG is enabled. 3209 * 2 indicates that key type TelephonyManager#KEY_TYPE_WLAN is enabled. 3210 * 3 indicates that both are enabled. 3211 */ 3212 public static final String IMSI_KEY_AVAILABILITY_INT = "imsi_key_availability_int"; 3213 3214 /** 3215 * Key identifying if the CDMA Caller ID presentation and suppression MMI codes 3216 * should be converted to 3GPP CLIR codes when a multimode (CDMA+UMTS+LTE) device is roaming 3217 * on a 3GPP network. Specifically *67<number> will be converted to #31#<number> and 3218 * *82<number> will be converted to *31#<number> before dialing a call when this key is 3219 * set TRUE and device is roaming on a 3GPP network. 3220 * @hide 3221 */ 3222 public static final String KEY_CONVERT_CDMA_CALLER_ID_MMI_CODES_WHILE_ROAMING_ON_3GPP_BOOL = 3223 "convert_cdma_caller_id_mmi_codes_while_roaming_on_3gpp_bool"; 3224 3225 /** 3226 * Flag specifying whether IMS registration state menu is shown in Status Info setting, 3227 * default to false. 3228 */ 3229 public static final String KEY_SHOW_IMS_REGISTRATION_STATUS_BOOL = 3230 "show_ims_registration_status_bool"; 3231 3232 /** 3233 * Flag indicating whether the carrier supports RTT over IMS. 3234 */ 3235 public static final String KEY_RTT_SUPPORTED_BOOL = "rtt_supported_bool"; 3236 3237 /** 3238 * Boolean flag indicating whether the carrier supports TTY. 3239 * <p> 3240 * Note that {@link #KEY_CARRIER_VOLTE_TTY_SUPPORTED_BOOL} controls availability of TTY over 3241 * VoLTE; if this carrier configuration is disabled, then 3242 * {@link #KEY_CARRIER_VOLTE_TTY_SUPPORTED_BOOL} is also implicitly disabled. 3243 * <p> 3244 * {@link TelecomManager#isTtySupported()} should be used to determine if a device supports TTY, 3245 * and this carrier config key should be used to see if the current carrier supports it. 3246 */ 3247 public static final String KEY_TTY_SUPPORTED_BOOL = "tty_supported_bool"; 3248 3249 /** 3250 * Indicates if the carrier supports auto-upgrading a call to RTT when receiving a call from a 3251 * RTT-supported device. 3252 */ 3253 public static final String KEY_RTT_AUTO_UPGRADE_BOOL = "rtt_auto_upgrade_bool"; 3254 3255 /** 3256 * Indicates if the carrier supports RTT during a video call. 3257 */ 3258 public static final String KEY_RTT_SUPPORTED_FOR_VT_BOOL = "rtt_supported_for_vt_bool"; 3259 3260 /** 3261 * Indicates if the carrier supports upgrading a call that was previously an RTT call to VT. 3262 */ 3263 public static final String KEY_VT_UPGRADE_SUPPORTED_FOR_DOWNGRADED_RTT_CALL_BOOL = 3264 "vt_upgrade_supported_for_downgraded_rtt_call"; 3265 3266 /** 3267 * Indicates if the carrier supports upgrading a call that was previously a VT call to RTT. 3268 */ 3269 public static final String KEY_RTT_UPGRADE_SUPPORTED_FOR_DOWNGRADED_VT_CALL_BOOL = 3270 "rtt_upgrade_supported_for_downgraded_vt_call"; 3271 3272 /** 3273 * Indicates if the carrier supports upgrading a voice call to an RTT call during the call. 3274 */ 3275 public static final String KEY_RTT_UPGRADE_SUPPORTED_BOOL = "rtt_upgrade_supported_bool"; 3276 3277 /** 3278 * Indicates if the carrier supports downgrading a RTT call to a voice call during the call. 3279 */ 3280 public static final String KEY_RTT_DOWNGRADE_SUPPORTED_BOOL = "rtt_downgrade_supported_bool"; 3281 3282 /** 3283 * Indicates if the TTY HCO and VCO options should be hidden in the accessibility menu 3284 * if the device is capable of RTT. 3285 */ 3286 public static final String KEY_HIDE_TTY_HCO_VCO_WITH_RTT_BOOL = "hide_tty_hco_vco_with_rtt"; 3287 3288 /** 3289 * The flag to disable the popup dialog which warns the user of data charges. 3290 */ 3291 public static final String KEY_DISABLE_CHARGE_INDICATION_BOOL = 3292 "disable_charge_indication_bool"; 3293 3294 /** 3295 * Boolean indicating whether to skip the call forwarding (CF) fail-to-disable dialog. 3296 * The logic used to determine whether we succeeded in disabling is carrier specific, 3297 * so the dialog may not always be accurate. 3298 * {@code false} - show CF fail-to-disable dialog. 3299 * {@code true} - skip showing CF fail-to-disable dialog. 3300 * 3301 * @hide 3302 */ 3303 public static final String KEY_SKIP_CF_FAIL_TO_DISABLE_DIALOG_BOOL = 3304 "skip_cf_fail_to_disable_dialog_bool"; 3305 3306 /** 3307 * Flag specifying whether operator supports including no reply condition timer option on 3308 * CFNRy (3GPP TS 24.082 3: Call Forwarding on No Reply) in the call forwarding settings UI. 3309 * {@code true} - include no reply condition timer option on CFNRy 3310 * {@code false} - don't include no reply condition timer option on CFNRy 3311 * 3312 * @hide 3313 */ 3314 public static final String KEY_SUPPORT_NO_REPLY_TIMER_FOR_CFNRY_BOOL = 3315 "support_no_reply_timer_for_cfnry_bool"; 3316 3317 /** 3318 * No reply time value to be sent to network for call forwarding on no reply 3319 * (CFNRy 3GPP TS 24.082 version 17.0 section 3). 3320 * Controls time in seconds for the no reply condition on in the call forwarding 3321 * settings UI. 3322 * This is available when {@link #KEY_SUPPORT_NO_REPLY_TIMER_FOR_CFNRY_BOOL} is true. 3323 * 3324 * @hide 3325 */ 3326 public static final String KEY_NO_REPLY_TIMER_FOR_CFNRY_SEC_INT = 3327 "no_reply_timer_for_cfnry_sec_int"; 3328 3329 /** 3330 * List of the FAC (feature access codes) to dial as a normal call. 3331 * @hide 3332 */ 3333 public static final String KEY_FEATURE_ACCESS_CODES_STRING_ARRAY = 3334 "feature_access_codes_string_array"; 3335 3336 /** 3337 * Determines if the carrier wants to identify high definition calls in the call log. 3338 * @hide 3339 */ 3340 public static final String KEY_IDENTIFY_HIGH_DEFINITION_CALLS_IN_CALL_LOG_BOOL = 3341 "identify_high_definition_calls_in_call_log_bool"; 3342 3343 /** 3344 * Flag specifying whether to use the {@link ServiceState} roaming status, which can be 3345 * affected by other carrier configs (e.g. 3346 * {@link #KEY_GSM_NONROAMING_NETWORKS_STRING_ARRAY}), when setting the SPN display. 3347 * <p> 3348 * If {@code true}, the SPN display uses {@link ServiceState#getRoaming}. 3349 * If {@code false} the SPN display checks if the current MCC/MNC is different from the 3350 * SIM card's MCC/MNC. 3351 * 3352 * @see #KEY_GSM_ROAMING_NETWORKS_STRING_ARRAY 3353 * @see #KEY_GSM_NONROAMING_NETWORKS_STRING_ARRAY 3354 * @see #KEY_NON_ROAMING_OPERATOR_STRING_ARRAY 3355 * @see #KEY_ROAMING_OPERATOR_STRING_ARRAY 3356 * @see #KEY_FORCE_HOME_NETWORK_BOOL 3357 * 3358 * @hide 3359 */ 3360 public static final String KEY_SPN_DISPLAY_RULE_USE_ROAMING_FROM_SERVICE_STATE_BOOL = 3361 "spn_display_rule_use_roaming_from_service_state_bool"; 3362 3363 /** 3364 * Determines whether any carrier has been identified and its specific config has been applied, 3365 * default to false. 3366 */ 3367 public static final String KEY_CARRIER_CONFIG_APPLIED_BOOL = "carrier_config_applied_bool"; 3368 3369 /** 3370 * Determines whether we should show a warning asking the user to check with their carrier 3371 * on pricing when the user enabled data roaming, 3372 * default to false. 3373 */ 3374 public static final String KEY_CHECK_PRICING_WITH_CARRIER_FOR_DATA_ROAMING_BOOL = 3375 "check_pricing_with_carrier_data_roaming_bool"; 3376 3377 /** 3378 * Determines whether we should show a notification when the phone established a data 3379 * connection in roaming network, to warn users about possible roaming charges. 3380 * 3381 * @see #KEY_DATA_CONNECTED_ROAMING_NOTIFICATION_EXCLUDED_MCCS_STRING_ARRAY 3382 * @see #KEY_DATA_CONNECTED_ROAMING_NOTIFICATION_INCLUDED_MCC_MNCS_STRING_ARRAY 3383 * @hide 3384 */ 3385 public static final String KEY_SHOW_DATA_CONNECTED_ROAMING_NOTIFICATION_BOOL = 3386 "show_data_connected_roaming_notification"; 3387 3388 /** 3389 * Determines what MCCs are exceptions for the value of 3390 * {@link #KEY_SHOW_DATA_CONNECTED_ROAMING_NOTIFICATION_BOOL}. 3391 * An empty list indicates that there are no exceptions. 3392 * 3393 * @see #KEY_SHOW_DATA_CONNECTED_ROAMING_NOTIFICATION_BOOL 3394 * @see #KEY_DATA_CONNECTED_ROAMING_NOTIFICATION_INCLUDED_MCC_MNCS_STRING_ARRAY 3395 * @hide 3396 */ 3397 public static final String 3398 KEY_DATA_CONNECTED_ROAMING_NOTIFICATION_EXCLUDED_MCCS_STRING_ARRAY = 3399 "data_connected_roaming_notification_excluded_mccs_string_array"; 3400 3401 /** 3402 * Determines what MCC+MNCs are exceptions for the MCCs specified in 3403 * {@link #KEY_DATA_CONNECTED_ROAMING_NOTIFICATION_EXCLUDED_MCCS_STRING_ARRAY}, meaning the 3404 * value for the MCC+MNC is {@link #KEY_SHOW_DATA_CONNECTED_ROAMING_NOTIFICATION_BOOL}. 3405 * An empty list indicates that there are no MNC-specific exceptions. 3406 * 3407 * @see #KEY_SHOW_DATA_CONNECTED_ROAMING_NOTIFICATION_BOOL 3408 * @see #KEY_DATA_CONNECTED_ROAMING_NOTIFICATION_EXCLUDED_MCCS_STRING_ARRAY 3409 * @hide 3410 */ 3411 public static final String 3412 KEY_DATA_CONNECTED_ROAMING_NOTIFICATION_INCLUDED_MCC_MNCS_STRING_ARRAY = 3413 "data_connected_roaming_notification_included_mcc_mncs_string_array"; 3414 3415 /** 3416 * A list of 4 LTE RSRP thresholds above which a signal level is considered POOR, 3417 * MODERATE, GOOD, or EXCELLENT, to be used in SignalStrength reporting. 3418 * 3419 * Note that the min and max thresholds are fixed at -140 and -44, as explained in 3420 * TS 136.133 9.1.4 - RSRP Measurement Report Mapping. 3421 * <p> 3422 * See SignalStrength#MAX_LTE_RSRP and SignalStrength#MIN_LTE_RSRP. Any signal level outside 3423 * these boundaries is considered invalid. 3424 * @hide 3425 */ 3426 public static final String KEY_LTE_RSRP_THRESHOLDS_INT_ARRAY = "lte_rsrp_thresholds_int_array"; 3427 3428 /** 3429 * A list of 4 customized LTE Reference Signal Received Quality (RSRQ) thresholds. 3430 * 3431 * Reference: TS 136.133 v12.6.0 section 9.1.7 - RSRQ Measurement Report Mapping. 3432 * 3433 * 4 threshold integers must be within the boundaries [-34 dB, 3 dB], and the levels are: 3434 * "NONE: [-34, threshold1)" 3435 * "POOR: [threshold1, threshold2)" 3436 * "MODERATE: [threshold2, threshold3)" 3437 * "GOOD: [threshold3, threshold4)" 3438 * "EXCELLENT: [threshold4, 3]" 3439 * 3440 * This key is considered invalid if the format is violated. If the key is invalid or 3441 * not configured, a default value set will apply. 3442 */ 3443 public static final String KEY_LTE_RSRQ_THRESHOLDS_INT_ARRAY = "lte_rsrq_thresholds_int_array"; 3444 3445 /** 3446 * A list of 4 customized LTE Reference Signal Signal to Noise Ratio (RSSNR) thresholds. 3447 * 3448 * 4 threshold integers must be within the boundaries [-20 dB, 30 dB], and the levels are: 3449 * "NONE: [-20, threshold1)" 3450 * "POOR: [threshold1, threshold2)" 3451 * "MODERATE: [threshold2, threshold3)" 3452 * "GOOD: [threshold3, threshold4)" 3453 * "EXCELLENT: [threshold4, 30]" 3454 * 3455 * This key is considered invalid if the format is violated. If the key is invalid or 3456 * not configured, a default value set will apply. 3457 */ 3458 public static final String KEY_LTE_RSSNR_THRESHOLDS_INT_ARRAY = 3459 "lte_rssnr_thresholds_int_array"; 3460 3461 /** 3462 * An interval in dB for {@link SignalThresholdInfo#SIGNAL_MEASUREMENT_TYPE_RSRP} measurement 3463 * type defining the required magnitude change between reports. 3464 * 3465 * <p>The default value is 2 and the minimum allowed value is 0. If no value or negative value 3466 * is set, the default value 2 is used. 3467 * @hide 3468 */ 3469 public static final String KEY_EUTRAN_RSRP_HYSTERESIS_DB_INT = "eutran_rsrp_hysteresis_db_int"; 3470 3471 /** 3472 * An interval in dB for {@link SignalThresholdInfo#SIGNAL_MEASUREMENT_TYPE_RSRQ} measurement 3473 * type defining the required magnitude change between reports. 3474 * 3475 * <p>The default value is 2 and the minimum allowed value is 0. If no value or negative value 3476 * is set, the default value 2 is used. 3477 * @hide 3478 */ 3479 public static final String KEY_EUTRAN_RSRQ_HYSTERESIS_DB_INT = "eutran_rsrq_hysteresis_db_int"; 3480 3481 /** 3482 * An interval in dB for {@link SignalThresholdInfo#SIGNAL_MEASUREMENT_TYPE_RSSNR} measurement 3483 * type defining the required magnitude change between reports. 3484 * 3485 * <p>The default value is 2 and the minimum allowed value is 0. If no value or negative value 3486 * is set, the default value 2 is used. 3487 * @hide 3488 */ 3489 public static final String KEY_EUTRAN_RSSNR_HYSTERESIS_DB_INT = 3490 "eutran_rssnr_hysteresis_db_int"; 3491 3492 /** 3493 * Decides when clients try to bind to iwlan network service, which package name will 3494 * the binding intent go to. 3495 * @hide 3496 */ 3497 public static final String KEY_CARRIER_NETWORK_SERVICE_WLAN_PACKAGE_OVERRIDE_STRING = 3498 "carrier_network_service_wlan_package_override_string"; 3499 3500 /** 3501 * Decides when clients try to bind to iwlan network service, which class name will 3502 * the binding intent go to. 3503 * @hide 3504 */ 3505 public static final String KEY_CARRIER_NETWORK_SERVICE_WLAN_CLASS_OVERRIDE_STRING = 3506 "carrier_network_service_wlan_class_override_string"; 3507 3508 /** 3509 * Decides when clients try to bind to wwan (cellular) network service, which package name will 3510 * the binding intent go to. 3511 * @hide 3512 */ 3513 public static final String KEY_CARRIER_NETWORK_SERVICE_WWAN_PACKAGE_OVERRIDE_STRING = 3514 "carrier_network_service_wwan_package_override_string"; 3515 3516 /** 3517 * Decides when clients try to bind to wwan (cellular) network service, which class name will 3518 * the binding intent go to. 3519 * @hide 3520 */ 3521 public static final String KEY_CARRIER_NETWORK_SERVICE_WWAN_CLASS_OVERRIDE_STRING = 3522 "carrier_network_service_wwan_class_override_string"; 3523 3524 /** 3525 * The package name of qualified networks service that telephony binds to. 3526 * 3527 * @hide 3528 */ 3529 public static final String KEY_CARRIER_QUALIFIED_NETWORKS_SERVICE_PACKAGE_OVERRIDE_STRING = 3530 "carrier_qualified_networks_service_package_override_string"; 3531 3532 /** 3533 * The class name of qualified networks service that telephony binds to. 3534 * 3535 * @hide 3536 */ 3537 public static final String KEY_CARRIER_QUALIFIED_NETWORKS_SERVICE_CLASS_OVERRIDE_STRING = 3538 "carrier_qualified_networks_service_class_override_string"; 3539 3540 /** 3541 * A list of 4 WCDMA RSCP thresholds above which a signal level is considered POOR, 3542 * MODERATE, GOOD, or EXCELLENT, to be used in SignalStrength reporting. 3543 * 3544 * Note that the min and max thresholds are fixed at -120 and -24, as set in 3GPP TS 27.007 3545 * section 8.69. 3546 * <p> 3547 * See CellSignalStrengthWcdma#WCDMA_RSCP_MAX and CellSignalStrengthWcdma#WCDMA_RSCP_MIN. 3548 * Any signal level outside these boundaries is considered invalid. 3549 * @hide 3550 */ 3551 public static final String KEY_WCDMA_RSCP_THRESHOLDS_INT_ARRAY = 3552 "wcdma_rscp_thresholds_int_array"; 3553 3554 /** 3555 * A list of 4 WCDMA ECNO thresholds above which a signal level is considered POOR, 3556 * MODERATE, GOOD, or EXCELLENT, to be used in SignalStrength reporting. 3557 * 3558 * Note that the min and max thresholds are fixed at -24 and 1, as set in 3GPP TS 25.215 3559 * section 5.1.5. 3560 * Any signal level outside these boundaries is considered invalid. 3561 * <p> 3562 * 3563 * The default value is {@code {-24, -14, -6, 1}}. 3564 * @hide 3565 */ 3566 public static final String KEY_WCDMA_ECNO_THRESHOLDS_INT_ARRAY = 3567 "wcdma_ecno_thresholds_int_array"; 3568 3569 /** 3570 * An interval in dB for {@link SignalThresholdInfo#SIGNAL_MEASUREMENT_TYPE_RSCP} measurement 3571 * type defining the required magnitude change between reports. 3572 * 3573 * <p>The default value is 2 and the minimum allowed value is 0. If no value or negative value 3574 * is set, the default value 2 is used. 3575 * @hide 3576 */ 3577 public static final String KEY_UTRAN_RSCP_HYSTERESIS_DB_INT = "utran_rscp_hysteresis_db_int"; 3578 3579 /** 3580 * An interval in dB for {@link SignalThresholdInfo#SIGNAL_MEASUREMENT_TYPE_ECNO} measurement 3581 * type defining the required magnitude change between reports. 3582 * 3583 * <p>The default value is 2 and the minimum allowed value is 0. If no value or negative value 3584 * is set, the default value 2 is used. 3585 * @hide 3586 */ 3587 public static final String KEY_UTRAN_ECNO_HYSTERESIS_DB_INT = "utran_ecno_hysteresis_db_int"; 3588 3589 /** 3590 * The default measurement to use for signal strength reporting. If this is not specified, the 3591 * RSSI is used. 3592 * <p> 3593 * e.g.) To use RSCP by default, set the value to "rscp". The signal strength level will 3594 * then be determined by #KEY_WCDMA_RSCP_THRESHOLDS_INT_ARRAY 3595 * <p> 3596 * Currently this supports the value "rscp","rssi" and "ecno". 3597 * @hide 3598 */ 3599 // FIXME: this key and related keys must not be exposed without a consistent philosophy for 3600 // all RATs. 3601 public static final String KEY_WCDMA_DEFAULT_SIGNAL_STRENGTH_MEASUREMENT_STRING = 3602 "wcdma_default_signal_strength_measurement_string"; 3603 3604 /** 3605 * When a partial sms / mms message stay in raw table for too long without being completed, 3606 * we expire them and delete them from the raw table. This carrier config defines the 3607 * expiration time. The default value is milliseconds in 7 days. 3608 * @hide 3609 */ 3610 public static final String KEY_UNDELIVERED_SMS_MESSAGE_EXPIRATION_TIME = 3611 "undelivered_sms_message_expiration_time"; 3612 3613 /** 3614 * Specifies a carrier-defined {@link android.telecom.CallRedirectionService} which Telecom 3615 * will bind to for outgoing calls. An empty string indicates that no carrier-defined 3616 * {@link android.telecom.CallRedirectionService} is specified. 3617 */ 3618 public static final String KEY_CALL_REDIRECTION_SERVICE_COMPONENT_NAME_STRING = 3619 "call_redirection_service_component_name_string"; 3620 3621 /** 3622 * Support for the original string display of CDMA MO call. 3623 * By default, it is disabled. 3624 * @hide 3625 */ 3626 public static final String KEY_CONFIG_SHOW_ORIG_DIAL_STRING_FOR_CDMA_BOOL = 3627 "config_show_orig_dial_string_for_cdma"; 3628 3629 /** 3630 * Flag specifying whether to show notification(call blocking disabled) when Enhanced Call 3631 * Blocking(KEY_SUPPORT_ENHANCED_CALL_BLOCKING_BOOL) is enabled and making emergency call. 3632 * When true, notification is shown always. 3633 * When false, notification is shown only when any setting of "Enhanced Blocked number" is 3634 * enabled. 3635 */ 3636 public static final String KEY_SHOW_CALL_BLOCKING_DISABLED_NOTIFICATION_ALWAYS_BOOL = 3637 "show_call_blocking_disabled_notification_always_bool"; 3638 3639 /** 3640 * Some carriers only support SS over UT via INTERNET PDN. 3641 * When mobile data is OFF or data roaming OFF during roaming, 3642 * UI should block the call forwarding operation and notify the user 3643 * that the function only works if data is available. 3644 * @hide 3645 */ 3646 public static final String KEY_CALL_FORWARDING_OVER_UT_WARNING_BOOL = 3647 "call_forwarding_over_ut_warning_bool"; 3648 3649 /** 3650 * Some carriers only support SS over UT via INTERNET PDN. 3651 * When mobile data is OFF or data roaming OFF during roaming, 3652 * UI should block the call barring operation and notify the user 3653 * that the function only works if data is available. 3654 * @hide 3655 */ 3656 public static final String KEY_CALL_BARRING_OVER_UT_WARNING_BOOL = 3657 "call_barring_over_ut_warning_bool"; 3658 3659 /** 3660 * Some carriers only support SS over UT via INTERNET PDN. 3661 * When mobile data is OFF or data roaming OFF during roaming, 3662 * UI should block the caller id operation and notify the user 3663 * that the function only works if data is available. 3664 * @hide 3665 */ 3666 public static final String KEY_CALLER_ID_OVER_UT_WARNING_BOOL = 3667 "caller_id_over_ut_warning_bool"; 3668 3669 /** 3670 * Some carriers only support SS over UT via INTERNET PDN. 3671 * When mobile data is OFF or data roaming OFF during roaming, 3672 * UI should block the call waiting operation and notify the user 3673 * that the function only works if data is available. 3674 * @hide 3675 */ 3676 public static final String KEY_CALL_WAITING_OVER_UT_WARNING_BOOL = 3677 "call_waiting_over_ut_warning_bool"; 3678 3679 /** 3680 * Flag indicating whether to support "Network default" option in Caller ID settings for Calling 3681 * Line Identification Restriction (CLIR). 3682 */ 3683 public static final String KEY_SUPPORT_CLIR_NETWORK_DEFAULT_BOOL = 3684 "support_clir_network_default_bool"; 3685 3686 /** 3687 * Determines whether the carrier want to support emergency dialer shortcut. 3688 * @hide 3689 */ 3690 public static final String KEY_SUPPORT_EMERGENCY_DIALER_SHORTCUT_BOOL = 3691 "support_emergency_dialer_shortcut_bool"; 3692 3693 /** 3694 * Call forwarding uses USSD command without SS command. 3695 * When {@code true}, the call forwarding query/set by ussd command and UI only display Call 3696 * Forwarding when unanswered. 3697 * When {@code false}, don't use USSD to query/set call forwarding. 3698 * @hide 3699 */ 3700 public static final String KEY_USE_CALL_FORWARDING_USSD_BOOL = "use_call_forwarding_ussd_bool"; 3701 3702 /** 3703 * This flag specifies whether to support for the caller id set command by ussd. 3704 * When {@code true}, device shall sync caller id ussd result to ss command. 3705 * When {@code false}, caller id don't support ussd command. 3706 * @hide 3707 */ 3708 public static final String KEY_USE_CALLER_ID_USSD_BOOL = "use_caller_id_ussd_bool"; 3709 3710 /** 3711 * Call waiting uses USSD command without SS command. 3712 * When {@code true}, the call waiting query/set by ussd command. 3713 * When {@code false}, doesn't use USSD to query/set call waiting. 3714 * @hide 3715 */ 3716 public static final String KEY_USE_CALL_WAITING_USSD_BOOL = "use_call_waiting_ussd_bool"; 3717 3718 /** 3719 * Specifies the service class for call waiting service. 3720 * Default value is 3721 * {@link com.android.internal.telephony.CommandsInterface#SERVICE_CLASS_VOICE}. 3722 * <p> 3723 * See 27.007 +CCFC or +CLCK. 3724 * The value set as below: 3725 * {@link com.android.internal.telephony.CommandsInterface#SERVICE_CLASS_NONE} 3726 * {@link com.android.internal.telephony.CommandsInterface#SERVICE_CLASS_VOICE} 3727 * {@link com.android.internal.telephony.CommandsInterface#SERVICE_CLASS_DATA} 3728 * {@link com.android.internal.telephony.CommandsInterface#SERVICE_CLASS_FAX} 3729 * {@link com.android.internal.telephony.CommandsInterface#SERVICE_CLASS_SMS} 3730 * {@link com.android.internal.telephony.CommandsInterface#SERVICE_CLASS_DATA_SYNC} 3731 * {@link com.android.internal.telephony.CommandsInterface#SERVICE_CLASS_DATA_ASYNC} 3732 * {@link com.android.internal.telephony.CommandsInterface#SERVICE_CLASS_PACKET} 3733 * {@link com.android.internal.telephony.CommandsInterface#SERVICE_CLASS_PAD} 3734 * {@link com.android.internal.telephony.CommandsInterface#SERVICE_CLASS_MAX} 3735 * @hide 3736 */ 3737 public static final String KEY_CALL_WAITING_SERVICE_CLASS_INT = 3738 "call_waiting_service_class_int"; 3739 3740 /** 3741 * This configuration allows the system UI to display different 5G icons for different 5G 3742 * scenarios. 3743 * 3744 * There are six 5G scenarios for icon configuration: 3745 * 1. connected_mmwave: device currently connected to 5G cell as the primary or secondary cell 3746 * and considered NR advanced. 3747 * 2. connected: device currently connected to 5G cell as the primary or secondary cell but not 3748 * considered NR advanced. 3749 * 3. connected_rrc_idle: device currently connected to 5G cell as the primary or secondary cell 3750 * and RRC currently in IDLE state. 3751 * 4. not_restricted_rrc_idle: device camped on a network that has 5G capability and the use of 3752 * 5G is not restricted and RRC currently in IDLE state. 3753 * 5. not_restricted_rrc_con: device camped on a network that has 5G capability and the use of 3754 * 5G is not restricted and RRC currently in CONNECTED state. 3755 * 6. restricted: device camped on a network that has 5G capability but the use of 5G is 3756 * restricted. 3757 * 3758 * The configured string contains multiple key-value pairs separated by comma. For each pair, 3759 * the key and value are separated by a colon. The key corresponds to a 5G status above and 3760 * the value is the icon name. Use "None" as the icon name if no icon should be shown in a 3761 * specific 5G scenario. If the scenario is "None", config can skip this key and value. 3762 * 3763 * Icon name options: "5G_Plus", "5G". 3764 * 3765 * Here is an example: 3766 * UE wants to display 5G_Plus icon for scenario#1, and 5G icon for scenario#2; otherwise not 3767 * define. 3768 * The configuration is: "connected_mmwave:5G_Plus,connected:5G" 3769 * @hide 3770 */ 3771 public static final String KEY_5G_ICON_CONFIGURATION_STRING = "5g_icon_configuration_string"; 3772 3773 /** 3774 * This configuration allows the system UI to determine how long to continue to display 5G icons 3775 * when the device switches between different 5G scenarios. 3776 * 3777 * There are eight 5G scenarios: 3778 * 1. connected_mmwave: device currently connected to 5G cell as the primary or secondary cell 3779 * and considered NR advanced. 3780 * 2. connected: device currently connected to 5G cell as the primary or secondary cell but not 3781 * considered NR advanced. 3782 * 3. connected_rrc_idle: device currently connected to 5G cell as the primary or secondary cell 3783 * and RRC currently in IDLE state. 3784 * 4. not_restricted_rrc_idle: device camped on a network that has 5G capability and the use of 3785 * 5G is not restricted and RRC currently in IDLE state. 3786 * 5. not_restricted_rrc_con: device camped on a network that has 5G capability and the use of 3787 * 5G is not restricted and RRC currently in CONNECTED state. 3788 * 6. restricted: device camped on a network that has 5G capability but the use of 5G is 3789 * restricted. 3790 * 7. legacy: device is not camped on a network that has 5G capability 3791 * 8. any: any of the above scenarios 3792 * 3793 * The configured string contains various timer rules separated by a semicolon. 3794 * Each rule will have three items: prior 5G scenario, current 5G scenario, and grace period 3795 * in seconds before changing the icon. When the 5G state changes from the prior to the current 3796 * 5G scenario, the system UI will continue to show the icon for the prior 5G scenario (defined 3797 * in {@link #KEY_5G_ICON_CONFIGURATION_STRING}) for the amount of time specified by the grace 3798 * period. If the prior 5G scenario is reestablished, the timer will reset and start again if 3799 * the UE changes 5G scenarios again. Defined states (5G scenarios #1-7) take precedence over 3800 * 'any' (5G scenario #8), and unspecified transitions have a default grace period of 0. 3801 * The order of rules in the configuration determines the priority (the first applicable timer 3802 * rule will be used). 3803 * 3804 * Here is an example: "connected_mmwave,connected,30;connected_mmwave,any,10;connected,any,10" 3805 * This configuration defines 3 timers: 3806 * 1. When UE goes from 'connected_mmwave' to 'connected', system UI will continue to display 3807 * the 5G icon for 'connected_mmwave' for 30 seconds. 3808 * 2. When UE goes from 'connected_mmwave' to any other state (except for connected, since 3809 * rule 1 would be used instead), system UI will continue to display the 5G icon for 3810 * 'connected_mmwave' for 10 seconds. 3811 * 3. When UE goes from 'connected' to any other state, system UI will continue to display the 3812 * 5G icon for 'connected' for 10 seconds. 3813 * 3814 * @hide 3815 */ 3816 public static final String KEY_5G_ICON_DISPLAY_GRACE_PERIOD_STRING = 3817 "5g_icon_display_grace_period_string"; 3818 3819 /** 3820 * This configuration extends {@link #KEY_5G_ICON_DISPLAY_GRACE_PERIOD_STRING} to allow the 3821 * system UI to continue displaying 5G icons after the initial timer expires. 3822 * 3823 * There are eight 5G scenarios: 3824 * 1. connected_mmwave: device currently connected to 5G cell as the primary or secondary cell 3825 * and considered NR advanced. 3826 * 2. connected: device currently connected to 5G cell as the primary or secondary cell but not 3827 * considered NR advanced. 3828 * 3. connected_rrc_idle: device currently connected to 5G cell as the primary or secondary cell 3829 * and RRC currently in IDLE state. 3830 * 4. not_restricted_rrc_idle: device camped on a network that has 5G capability and the use of 3831 * 5G is not restricted and RRC currently in IDLE state. 3832 * 5. not_restricted_rrc_con: device camped on a network that has 5G capability and the use of 3833 * 5G is not restricted and RRC currently in CONNECTED state. 3834 * 6. restricted: device camped on a network that has 5G capability but the use of 5G is 3835 * restricted. 3836 * 7. legacy: device is not camped on a network that has 5G capability 3837 * 8. any: any of the above scenarios 3838 * 3839 * The configured string contains various timer rules separated by a semicolon. 3840 * Each rule will have three items: primary 5G scenario, secondary 5G scenario, and 3841 * grace period in seconds before changing the icon. When the timer for the primary 5G timer 3842 * expires, the system UI will continue to show the icon for the primary 5G scenario (defined 3843 * in {@link #KEY_5G_ICON_CONFIGURATION_STRING}) for the amount of time specified by the grace 3844 * period. If the primary 5G scenario is reestablished, the timers will reset and the system UI 3845 * will continue to display the icon for the primary 5G scenario without interruption. If the 3846 * secondary 5G scenario is lost, the timer will reset and the icon will reflect the true state. 3847 * Defined states (5G scenarios #1-7) take precedence over 'any' (5G scenario #8), and 3848 * unspecified transitions have a default grace period of 0. The order of rules in the 3849 * configuration determines the priority (the first applicable timer rule will be used). 3850 * 3851 * Here is an example: "connected,not_restricted_rrc_idle,30" 3852 * This configuration defines a secondary timer that extends the primary 'connected' timer. 3853 * When the primary 'connected' timer expires while the UE is in the 'not_restricted_rrc_idle' 3854 * 5G state, system UI will continue to display the 5G icon for 'connected' for 30 seconds. 3855 * If the 5G state returns to 'connected', the timer will be reset without change to the icon, 3856 * and if the 5G state changes to neither 'connected' not 'not_restricted_rrc_idle', the icon 3857 * will change to reflect the true state. 3858 * 3859 * The value can be overridden by {@link #KEY_NR_ADVANCED_BANDS_SECONDARY_TIMER_SECONDS_INT} 3860 * @hide 3861 */ 3862 public static final String KEY_5G_ICON_DISPLAY_SECONDARY_GRACE_PERIOD_STRING = 3863 "5g_icon_display_secondary_grace_period_string"; 3864 3865 /** 3866 * The secondary grace periods in seconds to use if NR advanced icon was shown due to connecting 3867 * to bands specified in {@link #KEY_ADDITIONAL_NR_ADVANCED_BANDS_INT_ARRAY}. 3868 * 3869 * The default value is 0, meaning the original value in 3870 * {@link #KEY_5G_ICON_DISPLAY_SECONDARY_GRACE_PERIOD_STRING} is used. Otherwise, it overrides 3871 * the value in {@link #KEY_5G_ICON_DISPLAY_SECONDARY_GRACE_PERIOD_STRING}. 3872 * 3873 * @hide 3874 */ 3875 public static final String KEY_NR_ADVANCED_BANDS_SECONDARY_TIMER_SECONDS_INT = 3876 "nr_advanced_bands_secondary_timer_seconds_int"; 3877 3878 /** 3879 * Whether device resets all of NR timers when device camped on a network that haven't 5G 3880 * capability and RRC currently in IDLE state. 3881 * 3882 * The default value is false; 3883 * 3884 * @hide 3885 */ 3886 public static final String KEY_NR_TIMERS_RESET_IF_NON_ENDC_AND_RRC_IDLE_BOOL = 3887 "nr_timers_reset_if_non_endc_and_rrc_idle_bool"; 3888 3889 /** 3890 * Whether device resets all of NR timers when device is in a voice call and QOS is established. 3891 * The default value is true; 3892 * 3893 * @see #KEY_5G_ICON_DISPLAY_GRACE_PERIOD_STRING 3894 * @see #KEY_5G_ICON_DISPLAY_SECONDARY_GRACE_PERIOD_STRING 3895 * 3896 * @hide 3897 */ 3898 public static final String KEY_NR_TIMERS_RESET_ON_VOICE_QOS_BOOL = 3899 "nr_timers_reset_on_voice_qos_bool"; 3900 3901 /** 3902 * Whether device resets all of NR timers when the PLMN changes. 3903 * The default value is false; 3904 * 3905 * @see #KEY_5G_ICON_DISPLAY_GRACE_PERIOD_STRING 3906 * @see #KEY_5G_ICON_DISPLAY_SECONDARY_GRACE_PERIOD_STRING 3907 * 3908 * @hide 3909 */ 3910 public static final String KEY_NR_TIMERS_RESET_ON_PLMN_CHANGE_BOOL = 3911 "nr_timers_reset_on_plmn_change_bool"; 3912 3913 /** 3914 * A list of additional NR advanced band would map to 3915 * {@link TelephonyDisplayInfo#OVERRIDE_NETWORK_TYPE_NR_ADVANCED} when the device is on that 3916 * band. 3917 * 3918 * @hide 3919 */ 3920 public static final String KEY_ADDITIONAL_NR_ADVANCED_BANDS_INT_ARRAY = 3921 "additional_nr_advanced_bands_int_array"; 3922 3923 /** 3924 * This configuration allows the framework to control the NR advanced capable by protocol 3925 * configuration options(PCO). 3926 * 3927 * If this config is 0, then the nr advanced capable is enabled. 3928 * If this config is not 0 and PCO container with this config's address is 1, then the nr 3929 * advanced capable is enabled. 3930 * If this config is not 0 and PCO container with this config's address is 0, then the nr 3931 * advanced capable is disabled. 3932 * 3933 * @hide 3934 */ 3935 public static final String KEY_NR_ADVANCED_CAPABLE_PCO_ID_INT = 3936 "nr_advanced_capable_pco_id_int"; 3937 3938 /** 3939 * Enabled NR advanced (i.e. 5G+) icon while roaming. The default value is {@code true}, meaming 3940 * the same NR advanced logic used for home network will be used for roaming network as well. 3941 * Set this to {@code false} will disable NR advanced icon while the device is roaming, 3942 * regardless meeting NR advanced criteria or not. 3943 * 3944 * @hide 3945 */ 3946 public static final String KEY_ENABLE_NR_ADVANCED_WHILE_ROAMING_BOOL = 3947 "enable_nr_advanced_for_roaming_bool"; 3948 3949 /** 3950 * This configuration allows the framework to use user data communication to detect Idle state, 3951 * and this is used on the 5G icon. 3952 * 3953 * There is a new way for RRC state detection at Android 12. If 3954 * {@link android.telephony.TelephonyManager#isRadioInterfaceCapabilitySupported}( 3955 * {@link TelephonyManager#CAPABILITY_PHYSICAL_CHANNEL_CONFIG_1_6_SUPPORTED}) returns true, 3956 * then framework can use PHYSICAL_CHANNEL_CONFIG for RRC state detection. Based on this 3957 * condition, some carriers want to use the legacy behavior that way is using user data 3958 * communication to detect the Idle state. Therefore, this configuration allows the framework 3959 * to use user data communication to detect Idle state. 3960 * 3961 * There are 3 situations reflects the carrier define Idle state. 3962 * 1. using PHYSICAL_CHANNEL_CONFIG to detect RRC Idle 3963 * 2. using all of data connections to detect RRC Idle. 3964 * 3. using data communication(consider internet data connection only) to detect data Idle. 3965 * 3966 * How to setup for above 3 cases? 3967 * For below part, we call the condition#1 is device support 3968 * {@link android.telephony.TelephonyManager#isRadioInterfaceCapabilitySupported}( 3969 * {@link TelephonyManager#CAPABILITY_PHYSICAL_CHANNEL_CONFIG_1_6_SUPPORTED}). 3970 * The condition#2 is carrier enable the KEY_LTE_ENDC_USING_USER_DATA_FOR_RRC_DETECTION_BOOL. 3971 * 3972 * For case#1, the condition#1 is true and the condition#2 is false. 3973 * For case#2, the condition#1 is false and the condition#2 is false. 3974 * For case#3, the condition#2 is true. 3975 * @hide 3976 */ 3977 public static final String KEY_LTE_ENDC_USING_USER_DATA_FOR_RRC_DETECTION_BOOL = 3978 "lte_endc_using_user_data_for_rrc_detection_bool"; 3979 3980 /** 3981 * Controls time in milliseconds until DcTracker reevaluates 5G connection state. 3982 * @hide 3983 */ 3984 public static final String KEY_5G_WATCHDOG_TIME_MS_LONG = "5g_watchdog_time_ms_long"; 3985 3986 /** 3987 * Which network types are unmetered. A string array that can contain network type names from 3988 * {@link TelephonyManager#getNetworkTypeName(int)} in addition to the following NR keys: 3989 * NR_NSA - NR NSA is unmetered for sub-6 frequencies 3990 * NR_NSA_MMWAVE - NR NSA is unmetered for mmwave frequencies 3991 * NR_SA - NR SA is unmetered for sub-6 frequencies 3992 * NR_SA_MMWAVE - NR SA is unmetered for mmwave frequencies 3993 * 3994 * Note that this config only applies if an unmetered SubscriptionPlan is set via {@link 3995 * SubscriptionManager#setSubscriptionPlans(int, List, long)} or an unmetered override is set 3996 * via {@link SubscriptionManager#setSubscriptionOverrideUnmetered(int, boolean, int[], long)} 3997 * or {@link SubscriptionManager#setSubscriptionOverrideUnmetered(int, boolean, long)}. 3998 * If neither SubscriptionPlans nor an override are set, then no network types can be unmetered 3999 * regardless of the value of this config. 4000 * @hide 4001 */ 4002 public static final String KEY_UNMETERED_NETWORK_TYPES_STRING_ARRAY = 4003 "unmetered_network_types_string_array"; 4004 4005 /** 4006 * Which network types are unmetered when roaming. A string array that can contain network type 4007 * names from {@link TelephonyManager#getNetworkTypeName(int)} in addition to the following 4008 * NR keys: 4009 * NR_NSA - NR NSA is unmetered when roaming for sub-6 frequencies 4010 * NR_NSA_MMWAVE - NR NSA is unmetered when roaming for mmwave frequencies 4011 * NR_SA - NR SA is unmetered when roaming for sub-6 frequencies 4012 * NR_SA_MMWAVE - NR SA is unmetered when roaming for mmwave frequencies 4013 * 4014 * Note that this config only applies if an unmetered SubscriptionPlan is set via {@link 4015 * SubscriptionManager#setSubscriptionPlans(int, List, long)} or an unmetered override is set 4016 * via {@link SubscriptionManager#setSubscriptionOverrideUnmetered(int, boolean, int[], long)} 4017 * or {@link SubscriptionManager#setSubscriptionOverrideUnmetered(int, boolean, long)}. 4018 * If neither SubscriptionPlans nor an override are set, then no network types can be unmetered 4019 * when roaming regardless of the value of this config. 4020 * @hide 4021 */ 4022 public static final String KEY_ROAMING_UNMETERED_NETWORK_TYPES_STRING_ARRAY = 4023 "roaming_unmetered_network_types_string_array"; 4024 4025 /** 4026 * Support ASCII 7-BIT encoding for long SMS. This carrier config is used to enable 4027 * this feature. 4028 * @hide 4029 */ 4030 public static final String KEY_ASCII_7_BIT_SUPPORT_FOR_LONG_MESSAGE_BOOL = 4031 "ascii_7_bit_support_for_long_message_bool"; 4032 4033 /** 4034 * Controls whether to show wifi calling icon in statusbar when wifi calling is available. 4035 * @hide 4036 */ 4037 public static final String KEY_SHOW_WIFI_CALLING_ICON_IN_STATUS_BAR_BOOL = 4038 "show_wifi_calling_icon_in_status_bar_bool"; 4039 4040 /** 4041 * Configuration to indicate that the carrier supports opportunistic data 4042 * auto provisioning. Based on this flag, the device downloads and activates 4043 * corresponding opportunistic profile. 4044 */ 4045 public static final String KEY_CARRIER_SUPPORTS_OPP_DATA_AUTO_PROVISIONING_BOOL = 4046 "carrier_supports_opp_data_auto_provisioning_bool"; 4047 4048 /** 4049 * SMDP+ server address for downloading opportunistic eSIM profile. 4050 * FQDN (Fully Qualified Domain Name) of the SM-DP+ (e.g., smdp.gsma.com) restricted to the 4051 * Alphanumeric mode character set defined in table 5 of ISO/IEC 18004 excluding '$'. 4052 */ 4053 public static final String KEY_SMDP_SERVER_ADDRESS_STRING = "smdp_server_address_string"; 4054 4055 /** 4056 * This timer value is used in the eSIM Exponential Backoff download retry algorithm. 4057 * Value should be in seconds. 4058 * <OL> 4059 * <LI>When the first download failure occurs, retry download after BACKOFF_TIMER_VALUE 4060 * seconds.</LI> 4061 * 4062 * <LI>If download fails again then, retry after either BACKOFF_TIMER_VALUE, 4063 * 2xBACKOFF_TIMER_VALUE, or 3xBACKOFF_TIMER_VALUE seconds.</LI> 4064 * 4065 * <LI>In general after the cth failed attempt, retry after k * BACKOFF_TIMER_VALUE 4066 * seconds, where k is a random integer between 1 and 2^c − 1. Max c value is 4067 * {@link #KEY_ESIM_MAX_DOWNLOAD_RETRY_ATTEMPTS_INT}</LI> 4068 * </OL> 4069 */ 4070 public static final String KEY_ESIM_DOWNLOAD_RETRY_BACKOFF_TIMER_SEC_INT = 4071 "esim_download_retry_backoff_timer_sec_int"; 4072 4073 /** 4074 * If eSIM profile download fails then, the number of retry attempts by UE 4075 * will be based on this configuration. If download still fails even after the 4076 * MAX attempts configured by this item then the retry is postponed until next 4077 * device bootup. 4078 */ 4079 public static final String KEY_ESIM_MAX_DOWNLOAD_RETRY_ATTEMPTS_INT = 4080 "esim_max_download_retry_attempts_int"; 4081 4082 /** 4083 * List of opportunistic carrier-ids associated with CBRS Primary SIM. When CBRS pSIM is 4084 * inserted, opportunistic eSIM is download and this configuration is used for grouping pSIM 4085 * and opportunistic eSIM. Also when a new CBRS pSIM is inserted, old opportunistic eSIMs are 4086 * deleted using the carrier-ids in this configuration. 4087 * 4088 * @hide 4089 */ 4090 public static final String KEY_OPPORTUNISTIC_CARRIER_IDS_INT_ARRAY = 4091 "opportunistic_carrier_ids_int_array"; 4092 4093 /** 4094 * Boolean configuration to control auto provisioning eSIM download in 4095 * OpportunisticNetworkService using only WiFi or both WiFi/Data. 4096 * True will download esim only via WiFi. 4097 * False will use both WiFi and Data connection. 4098 * 4099 * @hide 4100 */ 4101 public static final String KEY_OPPORTUNISTIC_ESIM_DOWNLOAD_VIA_WIFI_ONLY_BOOL = 4102 "opportunistic_esim_download_via_wifi_only_bool"; 4103 4104 /** 4105 * Controls RSRP threshold, in dBm, at which OpportunisticNetworkService will decide whether 4106 * the opportunistic network is good enough for internet data. 4107 * 4108 * <p>The value of {@link CellSignalStrengthLte#getRsrp()} will be compared with this 4109 * threshold. 4110 */ 4111 public static final String KEY_OPPORTUNISTIC_NETWORK_ENTRY_THRESHOLD_RSRP_INT = 4112 "opportunistic_network_entry_threshold_rsrp_int"; 4113 4114 /** 4115 * Controls RSSNR threshold, in dB, at which OpportunisticNetworkService will 4116 * decide whether the opportunistic network is good enough for internet data. 4117 * 4118 * <p>The value of {@link CellSignalStrengthLte#getRssnr()} will be compared with this 4119 * threshold. 4120 */ 4121 public static final String KEY_OPPORTUNISTIC_NETWORK_ENTRY_THRESHOLD_RSSNR_INT = 4122 "opportunistic_network_entry_threshold_rssnr_int"; 4123 4124 /** 4125 * Controls RSRP threshold, in dBm, below which OpportunisticNetworkService will decide whether 4126 * the opportunistic network available is not good enough for internet data. 4127 * 4128 * <p>The value of {@link CellSignalStrengthLte#getRsrp()} will be compared with this 4129 * threshold. 4130 */ 4131 public static final String KEY_OPPORTUNISTIC_NETWORK_EXIT_THRESHOLD_RSRP_INT = 4132 "opportunistic_network_exit_threshold_rsrp_int"; 4133 4134 /** 4135 * Controls RSSNR threshold, in dB, below which OpportunisticNetworkService will 4136 * decide whether the opportunistic network available is not good enough for internet data. 4137 * 4138 * <p>The value of {@link CellSignalStrengthLte#getRssnr()} will be compared with this 4139 * threshold. 4140 */ 4141 public static final String KEY_OPPORTUNISTIC_NETWORK_EXIT_THRESHOLD_RSSNR_INT = 4142 "opportunistic_network_exit_threshold_rssnr_int"; 4143 4144 /** 4145 * Controls bandwidth threshold in Kbps at which OpportunisticNetworkService will decide whether 4146 * the opportunistic network is good enough for internet data. 4147 */ 4148 public static final String KEY_OPPORTUNISTIC_NETWORK_ENTRY_THRESHOLD_BANDWIDTH_INT = 4149 "opportunistic_network_entry_threshold_bandwidth_int"; 4150 4151 /** 4152 * Controls hysteresis time in milli seconds for which OpportunisticNetworkService 4153 * will wait before attaching to a network. 4154 */ 4155 public static final String KEY_OPPORTUNISTIC_NETWORK_ENTRY_OR_EXIT_HYSTERESIS_TIME_LONG = 4156 "opportunistic_network_entry_or_exit_hysteresis_time_long"; 4157 4158 /** 4159 * Controls hysteresis time in milli seconds for which OpportunisticNetworkService 4160 * will wait before switching data to an opportunistic network. 4161 */ 4162 public static final String KEY_OPPORTUNISTIC_NETWORK_DATA_SWITCH_HYSTERESIS_TIME_LONG = 4163 "opportunistic_network_data_switch_hysteresis_time_long"; 4164 4165 /** 4166 * Controls hysteresis time in milli seconds for which OpportunisticNetworkService 4167 * will wait before switching data from opportunistic network to primary network. 4168 */ 4169 public static final String KEY_OPPORTUNISTIC_NETWORK_DATA_SWITCH_EXIT_HYSTERESIS_TIME_LONG = 4170 "opportunistic_network_data_switch_exit_hysteresis_time_long"; 4171 4172 /** 4173 * Controls whether to do ping test before switching data to opportunistic network. 4174 * This carrier config is used to disable this feature. 4175 */ 4176 public static final String KEY_PING_TEST_BEFORE_DATA_SWITCH_BOOL = 4177 "ping_test_before_data_switch_bool"; 4178 4179 /** 4180 * Controls whether to switch data to primary from opportunistic subscription 4181 * if primary is out of service. This control only affects system or 1st party app 4182 * initiated data switch, but will not override data switch initiated by privileged carrier apps 4183 * This carrier config is used to disable this feature. 4184 */ 4185 public static final String KEY_SWITCH_DATA_TO_PRIMARY_IF_PRIMARY_IS_OOS_BOOL = 4186 "switch_data_to_primary_if_primary_is_oos_bool"; 4187 4188 /** 4189 * Controls the ping pong determination of opportunistic network. 4190 * If opportunistic network is determined as out of service or below 4191 * #KEY_OPPORTUNISTIC_NETWORK_EXIT_THRESHOLD_RSRP_INT or 4192 * #KEY_OPPORTUNISTIC_NETWORK_EXIT_THRESHOLD_RSSNR_INT within 4193 * #KEY_OPPORTUNISTIC_NETWORK_PING_PONG_TIME_LONG of switching to opportunistic network, 4194 * it will be determined as ping pong situation by system app or 1st party app. 4195 */ 4196 public static final String KEY_OPPORTUNISTIC_NETWORK_PING_PONG_TIME_LONG = 4197 "opportunistic_network_ping_pong_time_long"; 4198 4199 /** 4200 * Controls back off time in milli seconds for switching back to 4201 * opportunistic subscription. This time will be added to 4202 * {@link CarrierConfigManager#KEY_OPPORTUNISTIC_NETWORK_DATA_SWITCH_HYSTERESIS_TIME_LONG} to 4203 * determine hysteresis time if there is ping pong situation 4204 * (determined by system app or 1st party app) between primary and opportunistic 4205 * subscription. Ping ping situation is defined in 4206 * #KEY_OPPORTUNISTIC_NETWORK_PING_PONG_TIME_LONG. 4207 * If ping pong situation continuous #KEY_OPPORTUNISTIC_NETWORK_BACKOFF_TIME_LONG 4208 * will be added to previously determined hysteresis time. 4209 */ 4210 public static final String KEY_OPPORTUNISTIC_NETWORK_BACKOFF_TIME_LONG = 4211 "opportunistic_network_backoff_time_long"; 4212 4213 /** 4214 * Controls the max back off time in milli seconds for switching back to 4215 * opportunistic subscription. 4216 * This time will be the max hysteresis that can be determined irrespective of there is 4217 * continuous ping pong situation or not as described in 4218 * #KEY_OPPORTUNISTIC_NETWORK_PING_PONG_TIME_LONG and 4219 * #KEY_OPPORTUNISTIC_NETWORK_BACKOFF_TIME_LONG. 4220 */ 4221 public static final String KEY_OPPORTUNISTIC_NETWORK_MAX_BACKOFF_TIME_LONG = 4222 "opportunistic_network_max_backoff_time_long"; 4223 4224 /** @hide */ 4225 public static class OpportunisticNetwork { 4226 /** 4227 * Prefix of all {@code OpportunisticNetwork.KEY_*} constants. 4228 * 4229 * @hide 4230 */ 4231 public static final String PREFIX = "opportunistic."; 4232 4233 /** 4234 * Controls SS-RSRP threshold in dBm at which 5G opportunistic network will be considered 4235 * good enough for internet data. Note other factors may be considered for the final 4236 * decision. 4237 * 4238 * <p>The value of {@link CellSignalStrengthNr#getSsRsrp()} will be compared with this 4239 * threshold. 4240 * 4241 * @hide 4242 */ 4243 public static final String KEY_ENTRY_THRESHOLD_SS_RSRP_INT = 4244 PREFIX + "entry_threshold_ss_rsrp_int"; 4245 4246 /** 4247 * Similar to {@link #KEY_ENTRY_THRESHOLD_SS_RSRP_INT} but supports different 4248 * thresholds for different 5G bands. For bands not specified here, the threshold 4249 * will be {@link #KEY_ENTRY_THRESHOLD_SS_RSRP_INT}. 4250 * 4251 * <p>For each key-value in the bundle: the key is the band number in string, which 4252 * shall be a decimal integer as defined in {@code NgranBands.BAND_*} constants; 4253 * the value is the threshold in int. 4254 * 4255 * @hide 4256 */ 4257 public static final String KEY_ENTRY_THRESHOLD_SS_RSRP_INT_BUNDLE = 4258 PREFIX + "entry_threshold_ss_rsrp_int_bundle"; 4259 4260 /** 4261 * Controls SS-RSRQ threshold in dB at which 5G opportunistic network will be considered 4262 * good enough for internet data. Note other factors may be considered for the final 4263 * decision. 4264 * 4265 * <p>The value of {@link CellSignalStrengthNr#getSsRsrq()} will be compared with this 4266 * threshold. 4267 * 4268 * @hide 4269 */ 4270 public static final String KEY_ENTRY_THRESHOLD_SS_RSRQ_DOUBLE = 4271 PREFIX + "entry_threshold_ss_rsrq_double"; 4272 4273 /** 4274 * Similar to {@link #KEY_ENTRY_THRESHOLD_SS_RSRQ_DOUBLE} but supports different 4275 * thresholds for different 5G bands. For bands not specified here, the threshold 4276 * will be {@link #KEY_ENTRY_THRESHOLD_SS_RSRQ_DOUBLE}. 4277 * 4278 * <p>For each key-value in the bundle: the key is the band number in string, which 4279 * shall be a decimal integer as defined in {@code NgranBands.BAND_*} constants; 4280 * the value is the threshold in double. 4281 * 4282 * @hide 4283 */ 4284 public static final String KEY_ENTRY_THRESHOLD_SS_RSRQ_DOUBLE_BUNDLE = 4285 PREFIX + "entry_threshold_ss_rsrq_double_bundle"; 4286 4287 /** 4288 * Controls SS-RSRP threshold in dBm below which 5G opportunistic network available will not 4289 * be considered good enough for internet data. Note other factors may be considered 4290 * for the final decision. 4291 * 4292 * <p>The value of {@link CellSignalStrengthNr#getSsRsrp()} will be compared with this 4293 * threshold. 4294 * 4295 * @hide 4296 */ 4297 public static final String KEY_EXIT_THRESHOLD_SS_RSRP_INT = 4298 PREFIX + "exit_threshold_ss_rsrp_int"; 4299 4300 /** 4301 * Similar to {@link #KEY_EXIT_THRESHOLD_SS_RSRP_INT} but supports different 4302 * thresholds for different 5G bands. For bands not specified here, the threshold 4303 * will be {@link #KEY_EXIT_THRESHOLD_SS_RSRP_INT}. 4304 * 4305 * <p>The syntax of its value is similar to 4306 * {@link #KEY_ENTRY_THRESHOLD_SS_RSRP_INT_BUNDLE}. 4307 * 4308 * @hide 4309 */ 4310 public static final String KEY_EXIT_THRESHOLD_SS_RSRP_INT_BUNDLE = 4311 PREFIX + "exit_threshold_ss_rsrp_int_bundle"; 4312 4313 /** 4314 * Controls SS-RSRQ threshold in dB below which 5G opportunistic network available will not 4315 * be considered good enough for internet data. Note other factors may be considered 4316 * for the final decision. 4317 * 4318 * <p>The value of {@link CellSignalStrengthNr#getSsRsrq()} will be compared with this 4319 * threshold. 4320 * 4321 * @hide 4322 */ 4323 public static final String KEY_EXIT_THRESHOLD_SS_RSRQ_DOUBLE = 4324 PREFIX + "exit_threshold_ss_rsrq_double"; 4325 4326 /** 4327 * Similar to {@link #KEY_EXIT_THRESHOLD_SS_RSRQ_DOUBLE} but supports different 4328 * thresholds for different 5G bands. For bands not specified here, the threshold 4329 * will be {@link #KEY_EXIT_THRESHOLD_SS_RSRQ_DOUBLE}. 4330 * 4331 * <p>The syntax of its value is similar to 4332 * {@link #KEY_ENTRY_THRESHOLD_SS_RSRQ_DOUBLE_BUNDLE}. 4333 * 4334 * @hide 4335 */ 4336 public static final String KEY_EXIT_THRESHOLD_SS_RSRQ_DOUBLE_BUNDLE = 4337 PREFIX + "exit_threshold_ss_rsrq_double_bundle"; 4338 4339 /** 4340 * Controls hysteresis time in milliseconds for which will be waited before switching 4341 * data to a 5G opportunistic network. 4342 * 4343 * @hide 4344 */ 4345 public static final String KEY_5G_DATA_SWITCH_HYSTERESIS_TIME_LONG = 4346 PREFIX + "5g_data_switch_hysteresis_time_long"; 4347 4348 /** 4349 * Similar to {@link #KEY_5G_DATA_SWITCH_HYSTERESIS_TIME_LONG} but supports 4350 * different values for different 5G bands. For bands not specified here, the threshold 4351 * will be {@link #KEY_5G_DATA_SWITCH_HYSTERESIS_TIME_LONG}. 4352 * 4353 * <p>For each key-value in the bundle: the key is the band number in string, which 4354 * shall be a decimal integer as defined in {@code NgranBands.BAND_*} constants; 4355 * the value is the time in long. 4356 * 4357 * @hide 4358 */ 4359 public static final String KEY_5G_DATA_SWITCH_HYSTERESIS_TIME_LONG_BUNDLE = 4360 PREFIX + "5g_data_switch_hysteresis_time_long_bundle"; 4361 4362 /** 4363 * Controls hysteresis time in milliseconds for which will be waited before switching from 4364 * 5G opportunistic network to primary network. 4365 * 4366 * @hide 4367 */ 4368 public static final String KEY_5G_DATA_SWITCH_EXIT_HYSTERESIS_TIME_LONG = 4369 PREFIX + "5g_data_switch_exit_hysteresis_time_long"; 4370 4371 /** 4372 * Similar to {@link #KEY_5G_DATA_SWITCH_EXIT_HYSTERESIS_TIME_LONG} but supports 4373 * different values for different 5G bands. For bands not specified here, the threshold 4374 * will be {@link #KEY_5G_DATA_SWITCH_EXIT_HYSTERESIS_TIME_LONG}. 4375 * 4376 * <p>The syntax is similar to 4377 * {@link KEY_5G_DATA_SWITCH_HYSTERESIS_TIME_LONG_BUNDLE}. 4378 * 4379 * @hide 4380 */ 4381 public static final String KEY_5G_DATA_SWITCH_EXIT_HYSTERESIS_TIME_LONG_BUNDLE = 4382 PREFIX + "5g_data_switch_exit_hysteresis_time_long_bundle"; 4383 4384 /** 4385 * Controls back off time in milliseconds for switching back to 4386 * 5G opportunistic subscription. This time will be added to 4387 * {@link #KEY_5G_DATA_SWITCH_HYSTERESIS_TIME_LONG} to 4388 * determine hysteresis time if there is ping pong situation 4389 * (determined by system app or 1st party app) between primary and 5G opportunistic 4390 * subscription. Ping ping situation is defined in 4391 * {@link #KEY_5G_PING_PONG_TIME_LONG}. 4392 * If ping pong situation continuous {@link #KEY_5G_NETWORK_BACKOFF_TIME_LONG} 4393 * will be added to previously determined hysteresis time. 4394 * 4395 * @hide 4396 */ 4397 public static final String KEY_5G_BACKOFF_TIME_LONG = 4398 PREFIX + "5g_backoff_time_long"; 4399 4400 /** 4401 * Controls the max back off time in milliseconds for switching back to 4402 * 5G opportunistic subscription. 4403 * This time will be the max hysteresis that can be determined irrespective of there is 4404 * continuous ping pong situation or not as described in 4405 * {@link #KEY_5G_PING_PONG_TIME_LONG} and 4406 * {@link #KEY_5G_BACKOFF_TIME_LONG}. 4407 * 4408 * @hide 4409 */ 4410 public static final String KEY_5G_MAX_BACKOFF_TIME_LONG = 4411 PREFIX + "5g_max_backoff_time_long"; 4412 4413 /** 4414 * Controls the ping pong determination of 5G opportunistic network. 4415 * If opportunistic network is determined as out of service or below 4416 * {@link #KEY_EXIT_THRESHOLD_SS_RSRP_INT} or 4417 * {@link #KEY_EXIT_THRESHOLD_SS_RSRQ_DOUBLE} within 4418 * the time specified by this carrier config of switching to opportunistic network, 4419 * it will be determined as ping pong situation by system app or 1st party app. 4420 * 4421 * @hide 4422 */ 4423 public static final String KEY_5G_PING_PONG_TIME_LONG = 4424 PREFIX + "5g_ping_pong_time_long"; 4425 getDefaults()4426 private static PersistableBundle getDefaults() { 4427 PersistableBundle defaults = new PersistableBundle(); 4428 // Default value is -111 dBm for all bands. 4429 sDefaults.putInt(KEY_ENTRY_THRESHOLD_SS_RSRP_INT, -111); 4430 sDefaults.putPersistableBundle(KEY_ENTRY_THRESHOLD_SS_RSRP_INT_BUNDLE, 4431 PersistableBundle.EMPTY); 4432 // Default value is -18.5 dB for all bands. 4433 sDefaults.putDouble(KEY_ENTRY_THRESHOLD_SS_RSRQ_DOUBLE, -18.5); 4434 sDefaults.putPersistableBundle( 4435 KEY_ENTRY_THRESHOLD_SS_RSRQ_DOUBLE_BUNDLE, 4436 PersistableBundle.EMPTY); 4437 // Default value is -120 dBm for all bands. 4438 sDefaults.putInt(KEY_EXIT_THRESHOLD_SS_RSRP_INT, -120); 4439 sDefaults.putPersistableBundle(KEY_EXIT_THRESHOLD_SS_RSRP_INT_BUNDLE, 4440 PersistableBundle.EMPTY); 4441 // Default value is -18.5 dB for all bands. 4442 sDefaults.putDouble(KEY_EXIT_THRESHOLD_SS_RSRQ_DOUBLE, -18.5); 4443 sDefaults.putPersistableBundle( 4444 KEY_EXIT_THRESHOLD_SS_RSRQ_DOUBLE_BUNDLE, 4445 PersistableBundle.EMPTY); 4446 // Default value is 2 seconds for all bands. 4447 defaults.putLong(KEY_5G_DATA_SWITCH_HYSTERESIS_TIME_LONG, 2000); 4448 defaults.putPersistableBundle( 4449 KEY_5G_DATA_SWITCH_HYSTERESIS_TIME_LONG_BUNDLE, 4450 PersistableBundle.EMPTY); 4451 // Default value is 2 seconds for all bands. 4452 defaults.putLong(KEY_5G_DATA_SWITCH_EXIT_HYSTERESIS_TIME_LONG, 2000); 4453 defaults.putPersistableBundle( 4454 KEY_5G_DATA_SWITCH_EXIT_HYSTERESIS_TIME_LONG_BUNDLE, 4455 PersistableBundle.EMPTY); 4456 // Default value is 10 seconds. 4457 sDefaults.putLong(KEY_5G_BACKOFF_TIME_LONG, 10000); 4458 // Default value is 60 seconds. 4459 sDefaults.putLong(KEY_5G_MAX_BACKOFF_TIME_LONG, 60000); 4460 // Default value is 60 seconds. 4461 sDefaults.putLong(KEY_5G_PING_PONG_TIME_LONG, 60000); 4462 return defaults; 4463 } 4464 } 4465 4466 /** 4467 * Controls whether 4G opportunistic networks should be scanned for possible data switch. 4468 * 4469 * @hide 4470 */ 4471 public static final String KEY_ENABLE_4G_OPPORTUNISTIC_NETWORK_SCAN_BOOL = 4472 "enabled_4g_opportunistic_network_scan_bool"; 4473 4474 /** 4475 * Only relevant when the device supports opportunistic networks but does not support 4476 * simultaneous 5G+5G. Controls how long, in milliseconds, to wait before opportunistic network 4477 * goes out of service before switching the 5G capability back to primary stack. The idea of 4478 * waiting a few seconds is to minimize the calling of the expensive capability switching 4479 * operation in the case where CBRS goes back into service shortly after going out of it. 4480 * 4481 * @hide 4482 */ 4483 public static final String KEY_TIME_TO_SWITCH_BACK_TO_PRIMARY_IF_OPPORTUNISTIC_OOS_LONG = 4484 "time_to_switch_back_to_primary_if_opportunistic_oos_long"; 4485 4486 /** 4487 * Only relevant when the device supports opportunistic networks but does not support 4488 * simultaneous 5G+5G. Controls how long, in milliseconds, after 5G capability has switched back 4489 * to primary stack due to opportunistic network being OOS. The idea is to minimizing the 4490 * 'ping-ponging' effect where device is constantly witching capability back and forth between 4491 * primary and opportunistic stack. 4492 * 4493 * @hide 4494 */ 4495 public static final String 4496 KEY_OPPORTUNISTIC_TIME_TO_SCAN_AFTER_CAPABILITY_SWITCH_TO_PRIMARY_LONG = 4497 "opportunistic_time_to_scan_after_capability_switch_to_primary_long"; 4498 4499 /** 4500 * Indicates zero or more emergency number prefix(es), because some carrier requires 4501 * if users dial an emergency number address with a specific prefix, the combination of the 4502 * prefix and the address is also a valid emergency number to dial. For example, an emergency 4503 * number prefix is 318, and the emergency number is 911. Both 318911 and 911 can be dialed by 4504 * users for emergency call. An empty array of string indicates that current carrier does not 4505 * have this requirement. 4506 */ 4507 public static final String KEY_EMERGENCY_NUMBER_PREFIX_STRING_ARRAY = 4508 "emergency_number_prefix_string_array"; 4509 4510 /** 4511 * Indicates whether carrier treats "*67" or "*82" as a temporary mode CLIR. 4512 * @hide 4513 */ 4514 public static final String KEY_CARRIER_SUPPORTS_CALLER_ID_VERTICAL_SERVICE_CODES_BOOL = 4515 "carrier_supports_caller_id_vertical_service_codes_bool"; 4516 4517 /** 4518 * Smart forwarding config. Smart forwarding is a feature to configure call forwarding to a 4519 * different SIM in the device when one SIM is not reachable. The config here specifies a smart 4520 * forwarding component that will launch UI for changing the configuration. An empty string 4521 * indicates that no smart forwarding component is specified. 4522 * 4523 * Currently, only one non-empty configuration of smart forwarding component within system will 4524 * be used when multiple SIMs are inserted. 4525 * 4526 * Empty string by default. 4527 * 4528 * @hide 4529 */ 4530 public static final String KEY_SMART_FORWARDING_CONFIG_COMPONENT_NAME_STRING = 4531 "smart_forwarding_config_component_name_string"; 4532 4533 /** 4534 * Indicates when a carrier has a primary subscription and an opportunistic subscription active, 4535 * and when Internet data is switched to opportunistic network, whether to still show 4536 * signal bar of primary network. By default it will be false, meaning whenever data 4537 * is going over opportunistic network, signal bar will reflect signal strength and rat 4538 * icon of that network. 4539 */ 4540 public static final String KEY_ALWAYS_SHOW_PRIMARY_SIGNAL_BAR_IN_OPPORTUNISTIC_NETWORK_BOOLEAN = 4541 "always_show_primary_signal_bar_in_opportunistic_network_boolean"; 4542 4543 /** 4544 * Upon data switching between subscriptions within a carrier group, if switch depends on 4545 * validation result, this value defines customized value of how long we wait for validation 4546 * success before we fail and revoke the switch. 4547 * Time out is in milliseconds. 4548 */ 4549 public static final String KEY_DATA_SWITCH_VALIDATION_TIMEOUT_LONG = 4550 "data_switch_validation_timeout_long"; 4551 4552 /** 4553 * The minimum timeout of UDP port 4500 NAT / firewall entries on the Internet PDN of this 4554 * carrier network. This will be used by Android platform VPNs to tune IPsec NAT keepalive 4555 * interval. If this value is too low to provide uninterrupted inbound connectivity, then 4556 * Android system VPNs may indicate to applications that the VPN cannot support long-lived 4557 * TCP connections. 4558 * @hide 4559 */ 4560 @SystemApi(client = SystemApi.Client.MODULE_LIBRARIES) 4561 public static final String KEY_MIN_UDP_PORT_4500_NAT_TIMEOUT_SEC_INT = 4562 "min_udp_port_4500_nat_timeout_sec_int"; 4563 4564 /** 4565 * The preferred IKE protocol for ESP packets. 4566 * 4567 * This will be used by Android platform VPNs to select preferred encapsulation type and IP 4568 * protocol type. The possible customization values are: 4569 * 4570 * AUTO IP VERSION and ENCAPSULATION TYPE SELECTION : "0" 4571 * IPv4 UDP : "40" 4572 * IPv6 ESP : "61" 4573 * 4574 * See the {@code PREFERRED_IKE_PROTOCOL_} constants in 4575 * {@link com.android.server.connectivity.Vpn}. 4576 * @hide 4577 */ 4578 public static final String KEY_PREFERRED_IKE_PROTOCOL_INT = "preferred_ike_protocol_int"; 4579 4580 /** 4581 * Specifies whether the system should prefix the EAP method to the anonymous identity. 4582 * The following prefix will be added if this key is set to TRUE: 4583 * EAP-AKA: "0" 4584 * EAP-SIM: "1" 4585 * EAP-AKA_PRIME: "6" 4586 */ 4587 public static final String ENABLE_EAP_METHOD_PREFIX_BOOL = "enable_eap_method_prefix_bool"; 4588 4589 /** 4590 * Indicates that GBA_ME should be used for GBA authentication, as defined in 3GPP TS 33.220. 4591 * @hide 4592 */ 4593 @SystemApi 4594 public static final int GBA_ME = 1; 4595 4596 /** 4597 * Indicates that GBA_U should be used for GBA authentication, as defined in 3GPP TS 33.220. 4598 * @hide 4599 */ 4600 @SystemApi 4601 public static final int GBA_U = 2; 4602 4603 /** 4604 * Indicates that GBA_Digest should be used for GBA authentication, as defined 4605 * in 3GPP TS 33.220. 4606 * @hide 4607 */ 4608 @SystemApi 4609 public static final int GBA_DIGEST = 3; 4610 4611 /** 4612 * An integer representing the GBA mode to use for requesting credentials 4613 * via {@link TelephonyManager#bootstrapAuthenticationRequest}. 4614 * 4615 * One of {@link #GBA_ME}, {@link #GBA_U}, or {@link #GBA_DIGEST}. 4616 * @hide 4617 */ 4618 @SystemApi 4619 public static final String KEY_GBA_MODE_INT = "gba_mode_int"; 4620 4621 /** 4622 * An integer representing the organization code to be used when building the 4623 * {@link UaSecurityProtocolIdentifier} used when requesting GBA authentication. 4624 * 4625 * See the {@code ORG_} constants in {@link UaSecurityProtocolIdentifier}. 4626 * @hide 4627 */ 4628 @SystemApi 4629 public static final String KEY_GBA_UA_SECURITY_ORGANIZATION_INT = 4630 "gba_ua_security_organization_int"; 4631 4632 /** 4633 * An integer representing the security protocol to be used when building the 4634 * {@link UaSecurityProtocolIdentifier} used when requesting GBA authentication. 4635 * 4636 * See the {@code UA_SECURITY_PROTOCOL_} constants in {@link UaSecurityProtocolIdentifier}. 4637 * @hide 4638 */ 4639 @SystemApi 4640 public static final String KEY_GBA_UA_SECURITY_PROTOCOL_INT = "gba_ua_security_protocol_int"; 4641 4642 /** 4643 * An integer representing the cipher suite to be used when building the 4644 * {@link UaSecurityProtocolIdentifier} used when requesting GBA authentication. 4645 * 4646 * See the {@code TLS_} constants in {@link android.telephony.gba.TlsParams}. 4647 * @hide 4648 */ 4649 @SystemApi 4650 public static final String KEY_GBA_UA_TLS_CIPHER_SUITE_INT = "gba_ua_tls_cipher_suite_int"; 4651 4652 /** 4653 * The data stall recovery timers array in milliseconds, each element is the delay before 4654 * performining next recovery action. 4655 * 4656 * The default value of timers array are: [180000ms, 180000ms, 180000ms, 180000ms] (3 minutes) 4657 * Array[0]: It's the timer between RECOVERY_ACTION GET_DATA_CALL_LIST and CLEANUP, if data 4658 * stall symptom still occurred, it will perform next recovery action after 180000ms. 4659 * Array[1]: It's the timer between RECOVERY_ACTION CLEANUP and RE-REGISTER, if data stall 4660 * symptom still occurred, it will perform next recovery action after 180000ms. 4661 * Array[2]: It's the timer between RECOVERY_ACTION RE-REGISTER and RADIO_RESTART, if data stall 4662 * symptom still occurred, it will perform next recovery action after 180000ms. 4663 * Array[3]: It's the timer between RECOVERY_ACTION RADIO_RESTART and RESET_MODEM, if data stall 4664 * symptom still occurred, it will perform next recovery action after 180000ms. 4665 * 4666 * See the {@code RECOVERY_ACTION_*} constants in 4667 * {@link com.android.internal.telephony.data.DataStallRecoveryManager} 4668 * @hide 4669 */ 4670 public static final String KEY_DATA_STALL_RECOVERY_TIMERS_LONG_ARRAY = 4671 "data_stall_recovery_timers_long_array"; 4672 4673 /** 4674 * The data stall recovery action boolean array, we use this array to determine if the 4675 * data stall recovery action needs to be skipped. 4676 * 4677 * For example, if the carrier use the same APN for both of IA and default type, 4678 * the data call will not disconnect in modem side (so the RECOVERY_ACTION_CLEANUP 4679 * did not effect). In this case, we can config the boolean variable of action 4680 * RECOVERY_ACTION_CLEANUP to true, then it can be ignored to speed up the recovery 4681 * action procedure. 4682 * 4683 * The default value of boolean array are: [false, false, true, false, false] 4684 * Array[0]: When performing the recovery action, we can use this boolean value to determine 4685 * if we need to perform RECOVERY_ACTION_GET_DATA_CALL_LIST. 4686 * Array[1]: If data stall symptom still occurred, we can use this boolean value to determine 4687 * if we need to perform RECOVERY_ACTION_CLEANUP. For example, if the carrier use the same APN 4688 * for both of IA and default type, the data call will not disconnect in modem side 4689 * (so the RECOVERY_ACTION_CLEANUP did not effect). In this case, we can config the boolean 4690 * variable of action RECOVERY_ACTION_CLEANUP to true, then it can be ignored to speed up the 4691 * recovery action procedure. 4692 * Array[2]: If data stall symptom still occurred, we can use this boolean value to determine 4693 * if we need to perform RE-REGISTER. 4694 * Array[3]: If data stall symptom still occurred, we can use this boolean value to determine 4695 * if we need to perform RECOVERY_ACTION_RADIO_RESTART. 4696 * Array[4]: If data stall symptom still occurred, we can use this boolean value to determine 4697 * if we need to perform RECOVERY_ACTION_MODEM_RESET. 4698 * 4699 * See the {@code RECOVERY_ACTION_*} constants in 4700 * {@link com.android.internal.telephony.data.DataStallRecoveryManager} 4701 * @hide 4702 */ 4703 public static final String KEY_DATA_STALL_RECOVERY_SHOULD_SKIP_BOOL_ARRAY = 4704 "data_stall_recovery_should_skip_bool_array"; 4705 4706 /** 4707 * String array containing the list of names for service numbers provided by carriers. This key 4708 * should be used with {@link #KEY_CARRIER_SERVICE_NUMBER_STRING_ARRAY}. The names provided in 4709 * this array will be mapped 1:1 with the numbers provided in the {@link 4710 * #KEY_CARRIER_SERVICE_NUMBER_STRING_ARRAY} array. 4711 * 4712 * <p>The data would be considered valid if and only if: 4713 * 4714 * <ul> 4715 * <li>The number of items in both the arrays are equal 4716 * <li>The data added to the {@link #KEY_CARRIER_SERVICE_NUMBER_STRING_ARRAY} array is valid. 4717 * See {@link #KEY_CARRIER_SERVICE_NUMBER_STRING_ARRAY} for more information. 4718 * </ul> 4719 * 4720 * <p>Example: 4721 * 4722 * <pre>{@code 4723 * <string-array name="carrier_service_name_array" num="2"> 4724 * <item value="Police"/> 4725 * <item value="Ambulance"/> 4726 * </string-array> 4727 * }</pre> 4728 */ 4729 public static final String KEY_CARRIER_SERVICE_NAME_STRING_ARRAY = "carrier_service_name_array"; 4730 4731 /** 4732 * String array containing the list of service numbers provided by carriers. This key should be 4733 * used with {@link #KEY_CARRIER_SERVICE_NAME_STRING_ARRAY}. The numbers provided in this array 4734 * will be mapped 1:1 with the names provided in the {@link 4735 * #KEY_CARRIER_SERVICE_NAME_STRING_ARRAY} array. 4736 * 4737 * <p>The data would be considered valid if and only if: 4738 * 4739 * <ul> 4740 * <li>The number of items in both the arrays are equal 4741 * <li>The item should contain dialable characters only which includes 0-9, -, *, #, (, ), 4742 * SPACE. 4743 * </ul> 4744 * 4745 * <p>Example: 4746 * 4747 * <pre>{@code 4748 * <string-array name="carrier_service_number_array" num="2"> 4749 * <item value="*123"/> 4750 * <item value="+ (111) 111-111"/> 4751 * </string-array> 4752 * }</pre> 4753 */ 4754 public static final String KEY_CARRIER_SERVICE_NUMBER_STRING_ARRAY = 4755 "carrier_service_number_array"; 4756 4757 /** 4758 * Configs used by ImsServiceEntitlement. 4759 */ 4760 public static final class ImsServiceEntitlement { ImsServiceEntitlement()4761 private ImsServiceEntitlement() {} 4762 4763 /** Prefix of all ImsServiceEntitlement.KEY_* constants. */ 4764 public static final String KEY_PREFIX = "imsserviceentitlement."; 4765 4766 /** 4767 * The address of the entitlement configuration server. 4768 * 4769 * Reference: GSMA TS.43-v5, section 2.1 Default Entitlement Configuration Server. 4770 */ 4771 public static final String KEY_ENTITLEMENT_SERVER_URL_STRING = 4772 KEY_PREFIX + "entitlement_server_url_string"; 4773 4774 /** 4775 * For some carriers, end-users may be presented with a web portal of the carrier before 4776 * being allowed to use the VoWiFi service. 4777 * To support this feature, the app hosts a {@link android.webkit.WebView} in the foreground 4778 * VoWiFi entitlement configuration flow to show the web portal. 4779 * 4780 * {@code true} - show the VoWiFi portal in a webview. 4781 * 4782 * Note: this is effective only if the {@link #KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING} 4783 * is set to this app. 4784 * 4785 * Reference: GSMA TS.43-v5, section 3, VoWiFi entitlement configuration. 4786 */ 4787 public static final String KEY_SHOW_VOWIFI_WEBVIEW_BOOL = 4788 KEY_PREFIX + "show_vowifi_webview_bool"; 4789 4790 /** 4791 * For some carriers, the network is not provisioned by default to support 4792 * IMS (VoLTE/VoWiFi/SMSoIP) service for all end users. Some type of network-side 4793 * provisioning must then take place before offering the IMS service to the end-user. 4794 * 4795 * {@code true} - need this ImsServiceEntitlement app to do IMS (VoLTE/VoWiFi/SMSoIP) 4796 * provisioning in the background before offering the IMS service to the end-user. 4797 * 4798 * Note: this is effective only if the carrier needs IMS provisioning, i.e. 4799 * {@link #KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL} is set to true. 4800 * 4801 * Reference: GSMA TS.43-v5, section 3 - 5, VoWiFi/VoLTE/SMSoIP entitlement configuration. 4802 */ 4803 public static final String KEY_IMS_PROVISIONING_BOOL = KEY_PREFIX + "ims_provisioning_bool"; 4804 4805 /** 4806 * The FCM sender ID for the carrier. 4807 * Used to trigger a carrier network requested entitlement configuration 4808 * via Firebase Cloud Messaging (FCM). Do not set if the carrier doesn't use FCM for network 4809 * requested entitlement configuration. 4810 * 4811 * Reference: GSMA TS.43-v5, section 2.4, Network Requested Entitlement Configuration. 4812 * 4813 * @see <a href="https://firebase.google.com/docs/cloud-messaging/concept-options#senderid"> 4814 * About FCM messages - Credentials</a> 4815 */ 4816 public static final String KEY_FCM_SENDER_ID_STRING = KEY_PREFIX + "fcm_sender_id_string"; 4817 4818 /** 4819 * Indicates the supported protocol version in the parameter entitlement_version. 4820 * The default value is 2. The possible value is 2 and 8. 4821 * 4822 * Reference: GSMA TS.43-v8 section 2.5 Protocol version control and 4823 * Table 3. GET Parameters for Entitlement Configuration in section 2.3 4824 * HTTP GET method Parameters. 4825 * @hide 4826 */ 4827 public static final String KEY_ENTITLEMENT_VERSION_INT = 4828 KEY_PREFIX + "entitlement_version_int"; 4829 4830 /** 4831 * Controls the service entitlement status when receiving the VERS characteristic 4832 * with both version and validity set to -1 or -2. 4833 * If {@code true}, default service entitlement status is enabled. 4834 * If {@code false}, default service entitlement status is disabled. 4835 * 4836 * Reference: GSMA TS.14-v8 section 2.1, overview 4837 * @hide 4838 */ 4839 public static final String KEY_DEFAULT_SERVICE_ENTITLEMENT_STATUS_BOOL = 4840 KEY_PREFIX + "default_service_entitlement_status_bool"; 4841 4842 /** 4843 * Indicates if UE can skip service entitlement check when the user turns on Wi-Fi Calling. 4844 * UE still shows Wi-Fi Calling emergency address update web view when the user clicks 4845 * "Update Emergency Address" on the WiFi calling setting. 4846 * 4847 * Note: this is effective only if the {@link #KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING} 4848 * is set to this app. 4849 * @hide 4850 */ 4851 public static final String KEY_SKIP_WFC_ACTIVATION_BOOL = 4852 KEY_PREFIX + "skip_wfc_activation_bool"; 4853 getDefaults()4854 private static PersistableBundle getDefaults() { 4855 PersistableBundle defaults = new PersistableBundle(); 4856 defaults.putString(KEY_ENTITLEMENT_SERVER_URL_STRING, ""); 4857 defaults.putString(KEY_FCM_SENDER_ID_STRING, ""); 4858 defaults.putBoolean(KEY_SHOW_VOWIFI_WEBVIEW_BOOL, false); 4859 defaults.putBoolean(KEY_IMS_PROVISIONING_BOOL, false); 4860 defaults.putBoolean(KEY_DEFAULT_SERVICE_ENTITLEMENT_STATUS_BOOL, false); 4861 defaults.putBoolean(KEY_SKIP_WFC_ACTIVATION_BOOL, false); 4862 defaults.putInt(KEY_ENTITLEMENT_VERSION_INT, 2); 4863 return defaults; 4864 } 4865 } 4866 4867 /** 4868 * GPS configs. See the GNSS HAL documentation for more details. 4869 */ 4870 public static final class Gps { Gps()4871 private Gps() {} 4872 4873 /** Prefix of all Gps.KEY_* constants. */ 4874 public static final String KEY_PREFIX = "gps."; 4875 4876 /** 4877 * Location information during (and after) an emergency call is only provided over control 4878 * plane signaling from the network. 4879 * @hide 4880 */ 4881 public static final int SUPL_EMERGENCY_MODE_TYPE_CP_ONLY = 0; 4882 4883 /** 4884 * Location information during (and after) an emergency call is provided over the data 4885 * plane and serviced by the framework GNSS service, but if it fails, the carrier also 4886 * supports control plane backup signaling. 4887 * @hide 4888 */ 4889 public static final int SUPL_EMERGENCY_MODE_TYPE_CP_FALLBACK = 1; 4890 4891 /** 4892 * Location information during (and after) an emergency call is provided over the data plane 4893 * and serviced by the framework GNSS service only. There is no backup signalling over the 4894 * control plane if it fails. 4895 * @hide 4896 */ 4897 public static final int SUPL_EMERGENCY_MODE_TYPE_DP_ONLY = 2; 4898 4899 /** 4900 * Determine whether current lpp_mode used for E-911 needs to be kept persistently. 4901 * {@code false} - not keeping the lpp_mode means using default configuration of gps.conf 4902 * when sim is not presented. 4903 * {@code true} - current lpp_profile of carrier will be kepted persistently 4904 * even after sim is removed. This is default. 4905 */ 4906 public static final String KEY_PERSIST_LPP_MODE_BOOL = KEY_PREFIX + "persist_lpp_mode_bool"; 4907 4908 /** 4909 * SUPL server host for SET Initiated & non-ES Network-Initiated SUPL requests. 4910 * Default to supl.google.com 4911 * @hide 4912 */ 4913 public static final String KEY_SUPL_HOST_STRING = KEY_PREFIX + "supl_host"; 4914 4915 /** 4916 * SUPL server port. Default to 7275. 4917 * @hide 4918 */ 4919 public static final String KEY_SUPL_PORT_STRING = KEY_PREFIX + "supl_port"; 4920 4921 /** 4922 * The SUPL version requested by Carrier. This is a bit mask 4923 * with bits 0:7 representing a service indicator field, bits 8:15 4924 * representing the minor version and bits 16:23 representing the 4925 * major version. Default to 0x20000. 4926 * @hide 4927 */ 4928 public static final String KEY_SUPL_VER_STRING = KEY_PREFIX + "supl_ver"; 4929 4930 /** 4931 * SUPL_MODE configuration bit mask 4932 * 1 - Mobile Station Based. This is default. 4933 * 2 - Mobile Station Assisted. 4934 * @hide 4935 */ 4936 public static final String KEY_SUPL_MODE_STRING = KEY_PREFIX + "supl_mode"; 4937 4938 /** 4939 * Whether to limit responses to SUPL ES mode requests only during user emergency sessions 4940 * (e.g. E911), and SUPL non-ES requests to only outside of non user emergency sessions. 4941 * 0 - no. 4942 * 1 - yes. This is default. 4943 * @hide 4944 */ 4945 public static final String KEY_SUPL_ES_STRING = KEY_PREFIX + "supl_es"; 4946 4947 /** 4948 * LTE Positioning Profile settings bit mask. 4949 * 0 - Radio Resource Location Protocol in user plane and control plane. This is default. 4950 * 1 - Enable LTE Positioning Protocol in user plane. 4951 * 2 - Enable LTE Positioning Protocol in control plane. 4952 * @hide 4953 */ 4954 public static final String KEY_LPP_PROFILE_STRING = KEY_PREFIX + "lpp_profile"; 4955 4956 /** 4957 * Determine whether to use emergency PDN for emergency SUPL. 4958 * 0 - no. 4959 * 1 - yes. This is default. 4960 * @hide 4961 */ 4962 public static final String KEY_USE_EMERGENCY_PDN_FOR_EMERGENCY_SUPL_STRING = 4963 KEY_PREFIX + "use_emergency_pdn_for_emergency_supl"; 4964 4965 /** 4966 * A_GLONASS_POS_PROTOCOL_SELECT bit mask. 4967 * 0 - Don't use A-GLONASS. This is default. 4968 * 1 - Use A-GLONASS in Radio Resource Control(RRC) control-plane. 4969 * 2 - Use A-GLONASS in Radio Resource Location user-plane. 4970 * 4 - Use A-GLONASS in LTE Positioning Protocol User plane. 4971 * @hide 4972 */ 4973 public static final String KEY_A_GLONASS_POS_PROTOCOL_SELECT_STRING = 4974 KEY_PREFIX + "a_glonass_pos_protocol_select"; 4975 4976 /** 4977 * GPS_LOCK configuration bit mask to specify GPS device behavior toward other services, 4978 * when Location Settings are off. 4979 * "0" - No lock. 4980 * "1" - Lock Mobile Originated GPS functionalities. 4981 * "2" - Lock Network initiated GPS functionalities. 4982 * "3" - Lock both. This is default. 4983 * @hide 4984 */ 4985 public static final String KEY_GPS_LOCK_STRING = KEY_PREFIX + "gps_lock"; 4986 4987 /** 4988 * Control Plane / SUPL NI emergency extension time in seconds. Default to "0". 4989 * @hide 4990 */ 4991 public static final String KEY_ES_EXTENSION_SEC_STRING = KEY_PREFIX + "es_extension_sec"; 4992 4993 /** 4994 * Space separated list of Android package names of proxy applications representing 4995 * the non-framework entities requesting location directly from GNSS without involving 4996 * the framework, as managed by IGnssVisibilityControl.hal. For example, 4997 * "com.example.mdt com.example.ims". 4998 * @hide 4999 */ 5000 public static final String KEY_NFW_PROXY_APPS_STRING = KEY_PREFIX + "nfw_proxy_apps"; 5001 5002 /** 5003 * Determines whether or not SUPL ES mode supports a control-plane mechanism to get a user's 5004 * location in the event that data plane SUPL fails or is otherwise unavailable. 5005 * <p> 5006 * An integer value determines the support type of this carrier. If this carrier only 5007 * supports data plane SUPL ES, then the value will be 5008 * {@link #SUPL_EMERGENCY_MODE_TYPE_DP_ONLY}. If the carrier supports control plane fallback 5009 * for emergency SUPL, the value will be {@link #SUPL_EMERGENCY_MODE_TYPE_CP_FALLBACK}. 5010 * If the carrier does not support data plane SUPL using the framework, the value will be 5011 * {@link #SUPL_EMERGENCY_MODE_TYPE_CP_ONLY}. 5012 * <p> 5013 * The default value for this configuration is {@link #SUPL_EMERGENCY_MODE_TYPE_CP_ONLY}. 5014 * @hide 5015 */ 5016 public static final String KEY_ES_SUPL_CONTROL_PLANE_SUPPORT_INT = 5017 KEY_PREFIX + "es_supl_control_plane_support_int"; 5018 5019 /** 5020 * A list of roaming PLMNs where SUPL ES mode does not support a control-plane mechanism to 5021 * get a user's location in the event that data plane SUPL fails or is otherwise 5022 * unavailable. 5023 * <p> 5024 * A string array of PLMNs that do not support a control-plane mechanism for getting a 5025 * user's location for SUPL ES. 5026 * @hide 5027 */ 5028 public static final String KEY_ES_SUPL_DATA_PLANE_ONLY_ROAMING_PLMN_STRING_ARRAY = 5029 KEY_PREFIX + "es_supl_data_plane_only_roaming_plmn_string_array"; 5030 getDefaults()5031 private static PersistableBundle getDefaults() { 5032 PersistableBundle defaults = new PersistableBundle(); 5033 defaults.putBoolean(KEY_PERSIST_LPP_MODE_BOOL, true); 5034 defaults.putString(KEY_SUPL_HOST_STRING, "supl.google.com"); 5035 defaults.putString(KEY_SUPL_PORT_STRING, "7275"); 5036 defaults.putString(KEY_SUPL_VER_STRING, "0x20000"); 5037 defaults.putString(KEY_SUPL_MODE_STRING, "1"); 5038 defaults.putString(KEY_SUPL_ES_STRING, "1"); 5039 defaults.putString(KEY_LPP_PROFILE_STRING, "2"); 5040 defaults.putString(KEY_USE_EMERGENCY_PDN_FOR_EMERGENCY_SUPL_STRING, "1"); 5041 defaults.putString(KEY_A_GLONASS_POS_PROTOCOL_SELECT_STRING, "0"); 5042 defaults.putString(KEY_GPS_LOCK_STRING, "3"); 5043 defaults.putString(KEY_ES_EXTENSION_SEC_STRING, "0"); 5044 defaults.putString(KEY_NFW_PROXY_APPS_STRING, ""); 5045 defaults.putInt(KEY_ES_SUPL_CONTROL_PLANE_SUPPORT_INT, 5046 SUPL_EMERGENCY_MODE_TYPE_CP_ONLY); 5047 defaults.putStringArray(KEY_ES_SUPL_DATA_PLANE_ONLY_ROAMING_PLMN_STRING_ARRAY, null); 5048 return defaults; 5049 } 5050 } 5051 5052 /** 5053 * An int array containing CDMA enhanced roaming indicator values for Home (non-roaming) 5054 * network. 5055 * The default values come from 3GPP2 C.R1001 table 8.1-1. 5056 * Enhanced Roaming Indicator Number Assignments 5057 * 5058 * @hide 5059 */ 5060 public static final String KEY_CDMA_ENHANCED_ROAMING_INDICATOR_FOR_HOME_NETWORK_INT_ARRAY = 5061 "cdma_enhanced_roaming_indicator_for_home_network_int_array"; 5062 5063 /** 5064 * Determines whether wifi calling location privacy policy is shown. 5065 */ 5066 public static final String KEY_SHOW_WFC_LOCATION_PRIVACY_POLICY_BOOL = 5067 "show_wfc_location_privacy_policy_bool"; 5068 5069 /** 5070 * Indicates use 3GPP application to replace 3GPP2 application even if it's a CDMA/CDMA-LTE 5071 * phone, because some carriers' CSIM application is present but not supported. 5072 * @hide 5073 */ 5074 public static final String KEY_USE_USIM_BOOL = "use_usim_bool"; 5075 5076 /** 5077 * Determines whether the carrier wants to cancel the cs reject notification automatically 5078 * when the voice registration state changes. 5079 * If true, the notification will be automatically removed 5080 * when the voice registration state changes. 5081 * If false, the notification will persist until the user dismisses it, 5082 * the SIM is removed, or the device is rebooted. 5083 * @hide 5084 */ 5085 public static final String KEY_AUTO_CANCEL_CS_REJECT_NOTIFICATION = 5086 "carrier_auto_cancel_cs_notification"; 5087 5088 /** 5089 * Passing this value as {@link #KEY_SUBSCRIPTION_GROUP_UUID_STRING} will remove the 5090 * subscription from a group instead of adding it to a group. 5091 * 5092 * <p>This value will work all the way back to {@link android.os.Build.VERSION_CODES#Q}. 5093 */ 5094 public static final String REMOVE_GROUP_UUID_STRING = "00000000-0000-0000-0000-000000000000"; 5095 5096 /** 5097 * The UUID of a Group of related subscriptions in which to place the current subscription. 5098 * 5099 * A grouped subscription will behave for billing purposes and other UI purposes as though it 5100 * is a transparent extension of other subscriptions in the group. 5101 * 5102 * <p>If set to {@link #REMOVE_GROUP_UUID_STRING}, then the subscription will be removed from 5103 * its current group. 5104 * 5105 * <p>This key will work all the way back to {@link android.os.Build.VERSION_CODES#Q}. 5106 */ 5107 public static final String KEY_SUBSCRIPTION_GROUP_UUID_STRING = 5108 "subscription_group_uuid_string"; 5109 5110 /** 5111 * Controls the cellular usage setting. 5112 * 5113 * The usage setting indicates whether a device will remain attached to a network based on 5114 * the primary use case for the service. A device will detach and search for a more-preferred 5115 * network if the primary use case (voice or data) is not satisfied. Depending on the type 5116 * of device, it may operate in a voice or data-centric mode by default. 5117 * 5118 * <p>Sets the usage setting in accordance with 3gpp 24.301 sec 4.3 and 3gpp 24.501 sec 4.3. 5119 * Also refer to "UE's usage setting" as defined in 3gpp 24.301 section 3.1 and 3gpp 23.221 5120 * Annex A. 5121 * 5122 * Either omit this key or pass a value of 5123 * {@link SubscriptionManager#USAGE_SETTING_UNKNOWN unknown} to preserve the current setting. 5124 * 5125 * <p>Devices that support configuration of the cellular usage setting, including devices 5126 * with HAL capability to set the cellular usage setting, must honor this setting accordingly. 5127 * 5128 * {@link SubscriptionManager#USAGE_SETTING_DEFAULT default}, 5129 * {@link SubscriptionManager#USAGE_SETTING_VOICE_CENTRIC voice-centric}, 5130 * or {@link SubscriptionManager#USAGE_SETTING_DATA_CENTRIC data-centric}. 5131 * {@see SubscriptionInfo#getUsageSetting} 5132 * 5133 */ 5134 public static final String KEY_CELLULAR_USAGE_SETTING_INT = "cellular_usage_setting_int"; 5135 5136 /** 5137 * Data switch validation minimal gap time, in milliseconds. 5138 * 5139 * Which means, if the same subscription on the same network (based on MCC+MNC+TAC+subId) 5140 * was recently validated (within this time gap), and Telephony receives a request to switch to 5141 * it again, Telephony will skip the validation part and switch to it as soon as connection 5142 * is setup, as if it's already validated. 5143 * 5144 * If the network was validated within the gap but the latest validation result is false, the 5145 * validation will not be skipped. 5146 * 5147 * If not set or set to 0, validation will never be skipped. 5148 * The max acceptable value of this config is 24 hours. 5149 * 5150 * @hide 5151 * @deprecated Use {@link #KEY_DATA_SWITCH_VALIDATION_MIN_INTERVAL_MILLIS_LONG} instead. 5152 */ 5153 @Deprecated 5154 public static final String KEY_DATA_SWITCH_VALIDATION_MIN_GAP_LONG = 5155 "data_switch_validation_min_gap_long"; 5156 5157 /** 5158 * Data switch validation minimal interval, in milliseconds. 5159 * 5160 * If a connection to the default (Internet) PDN for the current subscription is validated on 5161 * a given operator within a given tracking area, re-validations to that matching operator will 5162 * be skipped if they would occur within the specified interval. Instead, the connection will 5163 * automatically considered validated. 5164 * 5165 * If the network was validated within the interval but the latest validation result was false, 5166 * the validation will not be skipped. If not set or set to 0, validation will not be skipped. 5167 * 5168 * The valid range of value is between 0 millisecond and 24 hours, inclusive in both sides. The 5169 * default value is 24 hours. 5170 * 5171 * @see android.net.NetworkCapabilities#NET_CAPABILITY_VALIDATED 5172 */ 5173 public static final String KEY_DATA_SWITCH_VALIDATION_MIN_INTERVAL_MILLIS_LONG = 5174 KEY_DATA_SWITCH_VALIDATION_MIN_GAP_LONG; 5175 5176 /** 5177 * A boolean property indicating whether this subscription should be managed as an opportunistic 5178 * subscription. 5179 * 5180 * If true, then this subscription will be selected based on available coverage and will not be 5181 * available for a user in settings menus for selecting macro network providers. If unset, 5182 * defaults to “false”. 5183 * 5184 * <p>This key will work all the way back to {@link android.os.Build.VERSION_CODES#Q}. 5185 */ 5186 public static final String KEY_IS_OPPORTUNISTIC_SUBSCRIPTION_BOOL = 5187 "is_opportunistic_subscription_bool"; 5188 5189 /** 5190 * The flatten string {@link android.content.ComponentName componentName} of carrier 5191 * provisioning app receiver. 5192 * 5193 * <p> 5194 * The RadioInfo activity(*#*#INFO#*#*) will broadcast an intent to this receiver when the 5195 * "Carrier Provisioning Info" or "Trigger Carrier Provisioning" button clicked. 5196 * 5197 * <p> 5198 * e.g., com.google.android.carrierPackageName/.CarrierReceiverName 5199 * 5200 * @hide 5201 */ 5202 public static final String KEY_CARRIER_PROVISIONING_APP_STRING = 5203 "carrier_provisioning_app_string"; 5204 5205 /** 5206 * Configs used by the IMS stack. 5207 */ 5208 public static final class Ims { 5209 /** Prefix of all Ims.KEY_* constants. */ 5210 public static final String KEY_PREFIX = "ims."; 5211 5212 /** 5213 * Delay in milliseconds to turn off wifi when IMS is registered over wifi. 5214 */ 5215 public static final String KEY_WIFI_OFF_DEFERRING_TIME_MILLIS_INT = 5216 KEY_PREFIX + "wifi_off_deferring_time_millis_int"; 5217 5218 /** 5219 * A boolean flag specifying whether or not this carrier requires one IMS registration for 5220 * all IMS services (MMTEL and RCS). 5221 * <p> 5222 * If set to {@code true}, the IMS Service must use one IMS registration for all IMS 5223 * services. If set to {@code false}, IMS services may use separate IMS registrations for 5224 * MMTEL and RCS. 5225 * <p> 5226 * The default value for this configuration is {@code false}. 5227 */ 5228 public static final String KEY_IMS_SINGLE_REGISTRATION_REQUIRED_BOOL = 5229 KEY_PREFIX + "ims_single_registration_required_bool"; 5230 5231 /** 5232 * A boolean flag specifying whether or not this carrier supports the device notifying the 5233 * network of its RCS capabilities using the SIP PUBLISH procedure defined for User 5234 * Capability Exchange (UCE). See RCC.71, section 3 for more information. 5235 * <p> 5236 * If this key's value is set to false, the procedure for RCS contact capability exchange 5237 * via SIP SUBSCRIBE/NOTIFY will also be disabled internally, and this key must also be set 5238 * to false to ensure apps do not improperly think that capability exchange via SIP PUBLISH 5239 * is enabled. 5240 * <p> The default value for this key is {@code false}. 5241 */ 5242 public static final String KEY_ENABLE_PRESENCE_PUBLISH_BOOL = 5243 KEY_PREFIX + "enable_presence_publish_bool"; 5244 5245 /** 5246 * Each string in this array contains a mapping between the service-id and version portion 5247 * of the service-description element and the associated IMS feature tag(s) that are 5248 * associated with each element (see RCC.07 Table 7). 5249 * <p> 5250 * Each string contains 3 parts, which define the mapping between service-description and 5251 * feature tag(s) that must be present in the IMS REGISTER for the RCS service to be 5252 * published as part of the RCS PUBLISH procedure: 5253 * [service-id]|[version]|[desc]|[feature_tag];[feature_tag];... 5254 * <ul> 5255 * <li>[service-id]: the service-id element associated with the RCS capability.</li> 5256 * <li>[version]: The version element associated with that service-id</li> 5257 * <li>[desc]: The optional desecription element associated with that service-id</li> 5258 * <li>[feature_tag];[feature_tag]: The list of all feature tags associated with this 5259 * capability that MUST ALL be present in the IMS registration for this this 5260 * capability to be published to the network.</li> 5261 * </ul> 5262 * <p> 5263 * Features managed by the framework will be considered capable when the ImsService reports 5264 * that those services are capable via the 5265 * {@link MmTelFeature#notifyCapabilitiesStatusChanged(MmTelFeature.MmTelCapabilities)} or 5266 * {@link RcsFeature#notifyCapabilitiesStatusChanged(RcsFeature.RcsImsCapabilities)} APIs. 5267 * For RCS services not managed by the framework, the capability of these services are 5268 * determined by looking at the feature tags associated with the IMS registration using the 5269 * {@link ImsRegistrationAttributes} API and mapping them to the service-description map. 5270 * <p> 5271 * The framework contains a default value of this key, which is based off of RCC.07 5272 * specification. Capabilities based of carrier extensions may be added to this list on a 5273 * carrier-by-carrier basis as required in order to support additional services in the 5274 * PUBLISH. If this list contains a service-id and version that overlaps with the default, 5275 * it will override the framework default. 5276 * @hide 5277 */ 5278 public static final String KEY_PUBLISH_SERVICE_DESC_FEATURE_TAG_MAP_OVERRIDE_STRING_ARRAY = 5279 KEY_PREFIX + "publish_service_desc_feature_tag_map_override_string_array"; 5280 5281 /** 5282 * Flag indicating whether or not this carrier supports the exchange of phone numbers with 5283 * the carrier's RCS presence server in order to retrieve the RCS capabilities of requested 5284 * contacts used in the RCS User Capability Exchange (UCE) procedure. See RCC.71, section 3 5285 * for more information. 5286 * <p> 5287 * When presence is supported, the device uses the SIP SUBSCRIBE/NOTIFY procedure internally 5288 * to retrieve the requested RCS capabilities. See 5289 * {@link android.telephony.ims.RcsUceAdapter} for more information on how RCS capabilities 5290 * can be retrieved from the carrier's network. 5291 */ 5292 public static final String KEY_ENABLE_PRESENCE_CAPABILITY_EXCHANGE_BOOL = 5293 KEY_PREFIX + "enable_presence_capability_exchange_bool"; 5294 5295 /** 5296 * Flag indicating whether or not the carrier expects the RCS UCE service to periodically 5297 * refresh the RCS capabilities cache of the user's contacts as well as request the 5298 * capabilities of call contacts when the SIM card is first inserted or when a new contact 5299 * is added, removed, or modified. This corresponds to the RCC.07 A.19 5300 * "DISABLE INITIAL ADDRESS BOOK SCAN" parameter. 5301 * <p> 5302 * If this flag is disabled, the capabilities cache will not be refreshed internally at all 5303 * and will only be updated if the cached capabilities are stale when an application 5304 * requests them. 5305 * 5306 * @see RcsUceAdapter#isUceSettingEnabled() more information about this feature and how 5307 * it is enabled by the user. 5308 */ 5309 public static final String KEY_RCS_BULK_CAPABILITY_EXCHANGE_BOOL = 5310 KEY_PREFIX + "rcs_bulk_capability_exchange_bool"; 5311 5312 /** 5313 * Flag indicating whether or not the carrier supports capability exchange with a list of 5314 * contacts. When {@code true}, the device will batch together multiple requests and 5315 * construct a RLMI document in the SIP SUBSCRIBE request (see RFC 4662). If {@code false}, 5316 * the request will be split up into one SIP SUBSCRIBE request per contact. 5317 */ 5318 public static final String KEY_ENABLE_PRESENCE_GROUP_SUBSCRIBE_BOOL = 5319 KEY_PREFIX + "enable_presence_group_subscribe_bool"; 5320 5321 /** 5322 * SIP SUBSCRIBE retry duration used when device doesn't receive a response to SIP 5323 * SUBSCRIBE request. 5324 * If this value is not defined or defined as negative value, the device does not retry 5325 * the SIP SUBSCRIBE. 5326 * If the value is 0 then device retries immediately upon timeout. 5327 * If the value is > 0 then device waits for configured duration and retries after timeout 5328 * is detected 5329 * @hide 5330 */ 5331 public static final String KEY_SUBSCRIBE_RETRY_DURATION_MILLIS_LONG = 5332 KEY_PREFIX + "subscribe_retry_duration_millis_long"; 5333 5334 /** 5335 * Flag indicating whether or not to use SIP URI when send a presence subscribe. 5336 * When {@code true}, the device sets the To and Contact header to be SIP URI using 5337 * the TelephonyManager#getIsimDomain" API. 5338 * If {@code false}, the device uses a TEL URI. 5339 */ 5340 public static final String KEY_USE_SIP_URI_FOR_PRESENCE_SUBSCRIBE_BOOL = 5341 KEY_PREFIX + "use_sip_uri_for_presence_subscribe_bool"; 5342 5343 /** 5344 * Flag indicating whether or not to use TEL URI when setting the entity uri field and 5345 * contact element of each tuple. 5346 * 5347 * When {@code true}, the device sets the entity uri field and contact element to be 5348 * TEL URI. This is done by first searching for the first TEL URI provided in 5349 * p-associated-uri header. If there are no TEL URIs in the p-associated-uri header, we will 5350 * convert the first SIP URI provided in the header to a TEL URI. If there are no URIs in 5351 * the p-associated-uri header, we will then fall back to using the SIM card to generate the 5352 * TEL URI. 5353 * If {@code false}, the first URI provided in the p-associated-uri header is used, 5354 * independent of the URI scheme. If there are no URIs available from p-associated-uri 5355 * header, we will try to generate a SIP URI or TEL URI from the information provided by the 5356 * SIM card, depending on the information available. 5357 * @hide 5358 */ 5359 public static final String KEY_USE_TEL_URI_FOR_PIDF_XML_BOOL = 5360 KEY_PREFIX + "use_tel_uri_for_pidf_xml"; 5361 5362 /** 5363 * An integer key associated with the period of time in seconds the non-rcs capability 5364 * information of each contact is cached on the device. 5365 * <p> 5366 * The rcs capability cache expiration sec is managed by 5367 * {@code android.telephony.ims.ProvisioningManager} but non-rcs capability is managed by 5368 * {@link CarrierConfigManager} since non-rcs capability will be provided via ACS or carrier 5369 * config. 5370 * <p> 5371 * The default value is 2592000 secs (30 days), see RCC.07 Annex A.1.9. 5372 */ 5373 public static final String KEY_NON_RCS_CAPABILITIES_CACHE_EXPIRATION_SEC_INT = 5374 KEY_PREFIX + "non_rcs_capabilities_cache_expiration_sec_int"; 5375 5376 /** 5377 * Specifies the RCS feature tag allowed for the carrier. 5378 * 5379 * <p>The values refer to RCC.07 2.4.4. 5380 */ 5381 public static final String KEY_RCS_FEATURE_TAG_ALLOWED_STRING_ARRAY = 5382 KEY_PREFIX + "rcs_feature_tag_allowed_string_array"; 5383 5384 /** 5385 * Flag indicating whether or not carrier forbids device send the RCS request when the 5386 * device receive the network response with the SIP code 489 BAD EVENT. 5387 * <p> 5388 * The default value for this key is {@code false}. 5389 * @hide 5390 */ 5391 public static final String KEY_RCS_REQUEST_FORBIDDEN_BY_SIP_489_BOOL = 5392 KEY_PREFIX + "rcs_request_forbidden_by_sip_489_bool"; 5393 5394 /** 5395 * Indicates the interval that SUBSCRIBE requests from applications will be retried at when 5396 * the carrier network has responded to a previous request with a forbidden error. 5397 * <p> 5398 * The default value for this key is 20 minutes. 5399 * @hide 5400 */ 5401 public static final String KEY_RCS_REQUEST_RETRY_INTERVAL_MILLIS_LONG = 5402 KEY_PREFIX + "rcs_request_retry_interval_millis_long"; 5403 5404 /** SIP timer T1 as per 3GPP TS 24.229 Table 7.7.1 */ 5405 public static final String KEY_SIP_TIMER_T1_MILLIS_INT = 5406 KEY_PREFIX + "sip_timer_t1_millis_int"; 5407 5408 /** SIP timer T2 as per 3GPP TS 24.229 Table 7.7.1 */ 5409 public static final String KEY_SIP_TIMER_T2_MILLIS_INT = 5410 KEY_PREFIX + "sip_timer_t2_millis_int"; 5411 5412 /** SIP timer T4 as per 3GPP TS 24.229 Table 7.7.1 */ 5413 public static final String KEY_SIP_TIMER_T4_MILLIS_INT = 5414 KEY_PREFIX + "sip_timer_t4_millis_int"; 5415 5416 /** SIP timer B as per 3GPP TS 24.229 Table 7.7.1 */ 5417 public static final String KEY_SIP_TIMER_B_MILLIS_INT = 5418 KEY_PREFIX + "sip_timer_b_millis_int"; 5419 5420 /** SIP timer C as per 3GPP TS 24.229 Table 7.7.1 */ 5421 public static final String KEY_SIP_TIMER_C_MILLIS_INT = 5422 KEY_PREFIX + "sip_timer_c_millis_int"; 5423 5424 /** SIP timer D as per 3GPP TS 24.229 Table 7.7.1 */ 5425 public static final String KEY_SIP_TIMER_D_MILLIS_INT = 5426 KEY_PREFIX + "sip_timer_d_millis_int"; 5427 5428 /** SIP timer F as per 3GPP TS 24.229 Table 7.7.1 */ 5429 public static final String KEY_SIP_TIMER_F_MILLIS_INT = 5430 KEY_PREFIX + "sip_timer_f_millis_int"; 5431 5432 /** SIP timer H as per 3GPP TS 24.229 Table 7.7.1 */ 5433 public static final String KEY_SIP_TIMER_H_MILLIS_INT = 5434 KEY_PREFIX + "sip_timer_h_millis_int"; 5435 5436 /** SIP timer J as per 3GPP TS 24.229 Table 7.7.1 */ 5437 public static final String KEY_SIP_TIMER_J_MILLIS_INT = 5438 KEY_PREFIX + "sip_timer_j_millis_int"; 5439 5440 /** Specifies the SIP Server default port. */ 5441 public static final String KEY_SIP_SERVER_PORT_NUMBER_INT = 5442 KEY_PREFIX + "sip_server_port_number_int"; 5443 5444 /** 5445 * Specify the “phone-context” parameter as defined in 5446 * section 7.2A.10 in 3GPP TS 24.229. 5447 */ 5448 public static final String KEY_PHONE_CONTEXT_DOMAIN_NAME_STRING = 5449 KEY_PREFIX + "phone_context_domain_name_string"; 5450 5451 /** @hide */ 5452 @IntDef({REQUEST_URI_FORMAT_TEL, REQUEST_URI_FORMAT_SIP}) 5453 public @interface RequestUriFormatType {} 5454 5455 /** 5456 * Request URI is of type TEL URI. 5457 */ 5458 public static final int REQUEST_URI_FORMAT_TEL = 0; 5459 5460 /** 5461 * Request URI is of type SIP URI. 5462 */ 5463 public static final int REQUEST_URI_FORMAT_SIP = 1; 5464 5465 /** 5466 * Specify whether the request URI is SIP URI 5467 * {@link #REQUEST_URI_FORMAT_SIP} or 5468 * TEL URI {@link #REQUEST_URI_FORMAT_TEL}. 5469 */ 5470 public static final String KEY_REQUEST_URI_TYPE_INT = 5471 KEY_PREFIX + "request_uri_type_int"; 5472 5473 /** 5474 * Flag indicating whether Globally Routable User agent (GRUU) 5475 * in supported HEADER is included or not. 5476 * 5477 * <p> Reference: RFC 5627. 5478 */ 5479 public static final String KEY_GRUU_ENABLED_BOOL = 5480 KEY_PREFIX + "gruu_enabled_bool"; 5481 5482 /** 5483 * Flag indicating whether to keep/release IMS PDN in case of 5484 * moving to non VOPS area. 5485 * 5486 * <p>if {@code True}, keep IMS PDN in case of moving to non VOPS area. 5487 * if {@code false}, otherwise. 5488 */ 5489 public static final String KEY_KEEP_PDN_UP_IN_NO_VOPS_BOOL = 5490 KEY_PREFIX + "keep_pdn_up_in_no_vops_bool"; 5491 5492 /** @hide */ 5493 @IntDef({ 5494 PREFERRED_TRANSPORT_UDP, 5495 PREFERRED_TRANSPORT_TCP, 5496 PREFERRED_TRANSPORT_DYNAMIC_UDP_TCP, 5497 PREFERRED_TRANSPORT_TLS 5498 }) 5499 public @interface PreferredTransportType {} 5500 5501 /** Preferred Transport is always UDP. */ 5502 public static final int PREFERRED_TRANSPORT_UDP = 0; 5503 5504 /** Preferred Transport is always TCP. */ 5505 public static final int PREFERRED_TRANSPORT_TCP = 1; 5506 5507 /** 5508 * Preferred Transport is both UDP and TCP and selected based 5509 * on MTU size specified in {@link #KEY_IPV4_SIP_MTU_SIZE_CELLULAR_INT} 5510 * and {@link #KEY_IPV6_SIP_MTU_SIZE_CELLULAR_INT}. 5511 * 5512 * <p>Default transport is UDP. If message size is larger 5513 * than MTU, then TCP shall be used. 5514 */ 5515 public static final int PREFERRED_TRANSPORT_DYNAMIC_UDP_TCP = 2; 5516 5517 /** Preferred Transport is TLS. */ 5518 public static final int PREFERRED_TRANSPORT_TLS = 3; 5519 5520 /** 5521 * Specify the preferred transport protocol for SIP messages. 5522 * 5523 * <p>Possible values are, 5524 * {@link #PREFERRED_TRANSPORT_UDP}, 5525 * {@link #PREFERRED_TRANSPORT_TCP}, 5526 * {@link #PREFERRED_TRANSPORT_DYNAMIC_UDP_TCP} 5527 */ 5528 public static final String KEY_SIP_PREFERRED_TRANSPORT_INT = 5529 KEY_PREFIX + "sip_preferred_transport_int"; 5530 5531 /** 5532 * Specify the maximum IPV4 MTU size of SIP message on Cellular. 5533 * 5534 * <p>If {@link #KEY_SIP_PREFERRED_TRANSPORT_INT} is 5535 * {@link #PREFERRED_TRANSPORT_DYNAMIC_UDP_TCP} and SIP message MTU size 5536 * is more than this value, then SIP transport will be TCP, else the 5537 * SIP transport is UDP. 5538 */ 5539 public static final String KEY_IPV4_SIP_MTU_SIZE_CELLULAR_INT = 5540 KEY_PREFIX + "ipv4_sip_mtu_size_cellular_int"; 5541 5542 /** 5543 * Specify the maximum IPV6 MTU size of SIP message on Cellular. 5544 * 5545 * <p>If {@link #KEY_SIP_PREFERRED_TRANSPORT_INT} is 5546 * {@link #PREFERRED_TRANSPORT_DYNAMIC_UDP_TCP} and SIP message MTU size 5547 * is more than this value, then SIP transport will be TCP, else the 5548 * SIP transport is UDP. 5549 */ 5550 public static final String KEY_IPV6_SIP_MTU_SIZE_CELLULAR_INT = 5551 KEY_PREFIX + "ipv6_sip_mtu_size_cellular_int"; 5552 5553 /** 5554 * This config determines whether IMS PDN needs to be enabled 5555 * when VOPS support is not available in both home and roaming scenarios. 5556 * 5557 * <p>This is applicable before IMS PDN is up, to decide whether 5558 * IMS PDN needs to be enabled based on VOPS support in home/roaming. 5559 * 5560 * <p>Possible values are, 5561 * {@link #NETWORK_TYPE_HOME}, 5562 * {@link #NETWORK_TYPE_ROAMING} 5563 * An empty array indicates IMS PDN depends on VOPS on both home 5564 * and roaming scenarios. 5565 */ 5566 public static final String KEY_IMS_PDN_ENABLED_IN_NO_VOPS_SUPPORT_INT_ARRAY = 5567 KEY_PREFIX + "ims_pdn_enabled_in_no_vops_support_int_array"; 5568 5569 /** 5570 * Flag indicating whether IPSec enabled for SIP messages. 5571 * 5572 * <p> Reference: 3GPP TS 33.203 and RFC 3329. 5573 */ 5574 public static final String KEY_SIP_OVER_IPSEC_ENABLED_BOOL = 5575 KEY_PREFIX + "sip_over_ipsec_enabled_bool"; 5576 5577 /** @hide */ 5578 @IntDef({IPSEC_AUTHENTICATION_ALGORITHM_HMAC_MD5, IPSEC_AUTHENTICATION_ALGORITHM_HMAC_SHA1}) 5579 public @interface IpsecAuthenticationAlgorithmType {} 5580 5581 /** IPSec Authentication algorithm is HMAC-MD5. see Annex H of TS 33.203 */ 5582 public static final int IPSEC_AUTHENTICATION_ALGORITHM_HMAC_MD5 = 0; 5583 5584 /** IPSec Authentication algorithm is HMAC-SHA1. see Annex H of TS 33.203 */ 5585 public static final int IPSEC_AUTHENTICATION_ALGORITHM_HMAC_SHA1 = 1; 5586 5587 /** 5588 * List of supported IPSEC Authentication algorithms. 5589 * 5590 * <p>Possible values are, 5591 * {@link #IPSEC_AUTHENTICATION_ALGORITHM_HMAC_MD5}, 5592 * {@link #IPSEC_AUTHENTICATION_ALGORITHM_HMAC_SHA1} 5593 */ 5594 public static final String KEY_IPSEC_AUTHENTICATION_ALGORITHMS_INT_ARRAY = 5595 KEY_PREFIX + "ipsec_authentication_algorithms_int_array"; 5596 5597 /** @hide */ 5598 @IntDef({ 5599 IPSEC_ENCRYPTION_ALGORITHM_NULL, 5600 IPSEC_ENCRYPTION_ALGORITHM_DES_EDE3_CBC, 5601 IPSEC_ENCRYPTION_ALGORITHM_AES_CBC 5602 }) 5603 public @interface IpsecEncryptionAlgorithmType {} 5604 5605 /** IPSec Encryption algorithm is NULL. see Annex H of TS 33.203 */ 5606 public static final int IPSEC_ENCRYPTION_ALGORITHM_NULL = 0; 5607 5608 /** IPSec Encryption algorithm is DES_EDE3_CBC. see Annex H of TS 33.203 */ 5609 public static final int IPSEC_ENCRYPTION_ALGORITHM_DES_EDE3_CBC = 1; 5610 5611 /** IPSec Encryption algorithm is AES_CBC. see Annex H of TS 33.203 */ 5612 public static final int IPSEC_ENCRYPTION_ALGORITHM_AES_CBC = 2; 5613 5614 /** 5615 * List of supported IPSEC encryption algorithms. 5616 * 5617 * <p>Possible values are, 5618 * {@link #IPSEC_ENCRYPTION_ALGORITHM_NULL}, 5619 * {@link #IPSEC_ENCRYPTION_ALGORITHM_DES_EDE3_CBC}, 5620 * {@link #IPSEC_ENCRYPTION_ALGORITHM_AES_CBC} 5621 */ 5622 public static final String KEY_IPSEC_ENCRYPTION_ALGORITHMS_INT_ARRAY = 5623 KEY_PREFIX + "ipsec_encryption_algorithms_int_array"; 5624 5625 /** 5626 * Expiry timer for IMS Registration in seconds. 5627 * <p>Reference: RFC 3261 Section 20.19. 5628 */ 5629 public static final String KEY_REGISTRATION_EXPIRY_TIMER_SEC_INT = 5630 KEY_PREFIX + "registration_expiry_timer_sec_int"; 5631 5632 /** Registration Retry Base-time as per RFC 5626 Section 4.5. */ 5633 public static final String KEY_REGISTRATION_RETRY_BASE_TIMER_MILLIS_INT = 5634 KEY_PREFIX + "registration_retry_base_timer_millis_int"; 5635 5636 /** Registration Retry max-time as per RFC 5626 Section 4.5. */ 5637 public static final String KEY_REGISTRATION_RETRY_MAX_TIMER_MILLIS_INT = 5638 KEY_PREFIX + "registration_retry_max_timer_millis_int"; 5639 5640 /** 5641 * Flag indicating whether subscription to registration event package 5642 * is supported or not. 5643 */ 5644 public static final String KEY_REGISTRATION_EVENT_PACKAGE_SUPPORTED_BOOL = 5645 KEY_PREFIX + "registration_event_package_supported_bool"; 5646 5647 /** 5648 * Expiry timer for SUBSCRIBE in seconds. 5649 * <p>Reference: RFC 3261 Section 20.19. 5650 */ 5651 public static final String KEY_REGISTRATION_SUBSCRIBE_EXPIRY_TIMER_SEC_INT = 5652 KEY_PREFIX + "registration_subscribe_expiry_timer_sec_int"; 5653 5654 /** @hide */ 5655 @IntDef({ 5656 GEOLOCATION_PIDF_FOR_NON_EMERGENCY_ON_WIFI, 5657 GEOLOCATION_PIDF_FOR_EMERGENCY_ON_WIFI, 5658 GEOLOCATION_PIDF_FOR_NON_EMERGENCY_ON_CELLULAR, 5659 GEOLOCATION_PIDF_FOR_EMERGENCY_ON_CELLULAR 5660 }) 5661 public @interface GeolocationPidfAllowedType {} 5662 5663 /** 5664 * Indicates geolocation PIDF XML needs to be included for 5665 * normal/non-emergency call scenario on WiFi 5666 * 5667 * <p>Geolocation for normal/non-emergency call should only include 5668 * country code. 5669 */ 5670 public static final int GEOLOCATION_PIDF_FOR_NON_EMERGENCY_ON_WIFI = 1; 5671 5672 /** 5673 * Indicates geolocation PIDF XML needs to be included for emergency 5674 * call scenario on WiFi 5675 */ 5676 public static final int GEOLOCATION_PIDF_FOR_EMERGENCY_ON_WIFI = 2; 5677 5678 /** 5679 * Indicates geolocation PIDF XML needs to be included for normal/non-emergency 5680 * call scenario on Cellular 5681 * 5682 * <p>Geolocation for normal/non-emergency call should only include 5683 * country code. 5684 */ 5685 public static final int GEOLOCATION_PIDF_FOR_NON_EMERGENCY_ON_CELLULAR = 3; 5686 5687 /** 5688 * Indicates geolocation PIDF XML needs to be included for emergency 5689 * call scenario on Cellular 5690 */ 5691 public static final int GEOLOCATION_PIDF_FOR_EMERGENCY_ON_CELLULAR = 4; 5692 5693 /** 5694 * List of cases where geolocation PIDF XML needs to be included in the 5695 * SIP REGISTER over WiFi and Cellular. 5696 * 5697 * <p>Possible values are, 5698 * {@link #GEOLOCATION_PIDF_FOR_NON_EMERGENCY_ON_WIFI}, 5699 * {@link #GEOLOCATION_PIDF_FOR_EMERGENCY_ON_WIFI}, 5700 * {@link #GEOLOCATION_PIDF_FOR_NON_EMERGENCY_ON_CELLULAR}, 5701 * {@link #GEOLOCATION_PIDF_FOR_EMERGENCY_ON_CELLULAR} 5702 * 5703 * <p>An empty array indicates geolocation PIDF XML should not be included in 5704 * the SIP REGISTER over WiFi and Cellular. 5705 */ 5706 public static final String KEY_GEOLOCATION_PIDF_IN_SIP_REGISTER_SUPPORT_INT_ARRAY = 5707 KEY_PREFIX + "geolocation_pidf_in_sip_register_support_int_array"; 5708 5709 /** 5710 * List of cases where geolocation PIDF XML needs to be included in the 5711 * SIP INVITE over WiFi and Cellular. 5712 * 5713 * <p>Possible values are, 5714 * {@link #GEOLOCATION_PIDF_FOR_NON_EMERGENCY_ON_WIFI}, 5715 * {@link #GEOLOCATION_PIDF_FOR_EMERGENCY_ON_WIFI}, 5716 * {@link #GEOLOCATION_PIDF_FOR_NON_EMERGENCY_ON_CELLULAR}, 5717 * {@link #GEOLOCATION_PIDF_FOR_EMERGENCY_ON_CELLULAR} 5718 * 5719 * <p>An empty array indicates geolocation PIDF XML should not be included 5720 * in the SIP INVITE over WiFi and Cellular. 5721 */ 5722 public static final String KEY_GEOLOCATION_PIDF_IN_SIP_INVITE_SUPPORT_INT_ARRAY = 5723 KEY_PREFIX + "geolocation_pidf_in_sip_invite_support_int_array"; 5724 5725 /** 5726 * Specifies the IMS User Agent in template format. 5727 * 5728 * <p>Example: #MANUFACTURER#_#MODEL#_Android#AV#_#BUILD#". 5729 * IMS Stack should internally substitute the tokens with the 5730 * values from the respective android properties. 5731 * 5732 * <p>List of allowed tokens and the corresponding android properties are, 5733 * <UL> 5734 * <LI>MANUFACTURER : ro.product.manufacturer</LI> 5735 * <LI>MODEL : ro.product.model</LI> 5736 * <LI>AV : ro.build.version.release"</LI> 5737 * <LI>BUILD : ro.build.id</LI> 5738 * </UL> 5739 * <p> Vendor IMS Stack should strip any whitespace characters present 5740 * in the android properties values before replacing the token. 5741 * 5742 * <p> An empty string is invalid as per IR92 section 2.6. This key is 5743 * considered invalid if the format is violated. If the key is invalid or 5744 * not configured, IMS stack should use internal default values. 5745 */ 5746 public static final String KEY_IMS_USER_AGENT_STRING = 5747 KEY_PREFIX + "ims_user_agent_string"; 5748 5749 /** @hide */ 5750 @IntDef({ 5751 NETWORK_TYPE_HOME, 5752 NETWORK_TYPE_ROAMING 5753 }) 5754 public @interface NetworkType {} 5755 5756 /** Indicates HOME Network. */ 5757 public static final int NETWORK_TYPE_HOME = 0; 5758 5759 /** Indicates Roaming Network. */ 5760 public static final int NETWORK_TYPE_ROAMING = 1; 5761 5762 /** @hide */ 5763 @IntDef({ 5764 RTCP_INACTIVITY_ON_HOLD, 5765 RTCP_INACTIVITY_ON_CONNECTED, 5766 RTP_INACTIVITY_ON_CONNECTED, 5767 E911_RTCP_INACTIVITY_ON_CONNECTED, 5768 E911_RTP_INACTIVITY_ON_CONNECTED 5769 }) 5770 public @interface MediaInactivityReason {} 5771 5772 /** RTCP inactivity occurred when call is on HOLD. */ 5773 public static final int RTCP_INACTIVITY_ON_HOLD = 0; 5774 5775 /** RTCP inactivity occurred when call is connected. */ 5776 public static final int RTCP_INACTIVITY_ON_CONNECTED = 1; 5777 5778 /** RTP inactivity occurred when call is connected. */ 5779 public static final int RTP_INACTIVITY_ON_CONNECTED = 2; 5780 5781 /** E911 RTCP inactivity occurred when call is connected. */ 5782 public static final int E911_RTCP_INACTIVITY_ON_CONNECTED = 3; 5783 5784 /** E911 RTP inactivity occurred when call is connected. */ 5785 public static final int E911_RTP_INACTIVITY_ON_CONNECTED = 4; 5786 5787 /** 5788 * List of different RAT technologies on which IMS 5789 * is supported. 5790 * 5791 * <p>Possible values are, 5792 * {@link AccessNetworkConstants.AccessNetworkType#NGRAN} 5793 * {@link AccessNetworkConstants.AccessNetworkType#EUTRAN} 5794 * {@link AccessNetworkConstants.AccessNetworkType#IWLAN} 5795 * {@link AccessNetworkConstants.AccessNetworkType#UTRAN} 5796 * {@link AccessNetworkConstants.AccessNetworkType#GERAN} 5797 */ 5798 public static final String KEY_SUPPORTED_RATS_INT_ARRAY = 5799 KEY_PREFIX + "supported_rats_int_array"; 5800 5801 /** 5802 * A bundle which specifies the MMTEL capability and registration technology 5803 * that requires provisioning. If a tuple is not present, the 5804 * framework will not require that the tuple requires provisioning before 5805 * enabling the capability. 5806 * <p> Possible keys in this bundle are 5807 * <ul> 5808 * <li>{@link #KEY_CAPABILITY_TYPE_VOICE_INT_ARRAY}</li> 5809 * <li>{@link #KEY_CAPABILITY_TYPE_VIDEO_INT_ARRAY}</li> 5810 * <li>{@link #KEY_CAPABILITY_TYPE_UT_INT_ARRAY}</li> 5811 * <li>{@link #KEY_CAPABILITY_TYPE_SMS_INT_ARRAY}</li> 5812 * <li>{@link #KEY_CAPABILITY_TYPE_CALL_COMPOSER_INT_ARRAY}</li> 5813 * </ul> 5814 * <p> The values are defined as {@code REGISTRATION_TECH_*} constants in 5815 * {@link android.telephony.ims.stub.ImsRegistrationImplBase}. 5816 * 5817 * changing mmtel_requires_provisioning_bundle requires changes to 5818 * carrier_volte_provisioning_required_bool and vice versa 5819 * {@link Ims#KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL} 5820 */ 5821 public static final String KEY_MMTEL_REQUIRES_PROVISIONING_BUNDLE = 5822 KEY_PREFIX + "mmtel_requires_provisioning_bundle"; 5823 5824 /** 5825 * List of different RAT technologies on which Provisioning for Voice calling (IR.92) 5826 * is supported. 5827 * <p>Possible values are, 5828 * {@link android.telephony.ims.stub.ImsRegistrationImplBase#REGISTRATION_TECH_LTE} 5829 * {@link android.telephony.ims.stub.ImsRegistrationImplBase#REGISTRATION_TECH_IWLAN} 5830 * {@link android.telephony.ims.stub.ImsRegistrationImplBase#REGISTRATION_TECH_CROSS_SIM} 5831 * {@link android.telephony.ims.stub.ImsRegistrationImplBase#REGISTRATION_TECH_NR} 5832 * @see MmTelFeature.MmTelCapabilities#CAPABILITY_TYPE_VOICE 5833 */ 5834 public static final String KEY_CAPABILITY_TYPE_VOICE_INT_ARRAY = 5835 KEY_PREFIX + "capability_type_voice_int_array"; 5836 5837 /** 5838 * List of different RAT technologies on which Provisioning for Video Telephony (IR.94) 5839 * is supported. 5840 * <p>Possible values are, 5841 * {@link android.telephony.ims.stub.ImsRegistrationImplBase#REGISTRATION_TECH_LTE} 5842 * {@link android.telephony.ims.stub.ImsRegistrationImplBase#REGISTRATION_TECH_IWLAN} 5843 * {@link android.telephony.ims.stub.ImsRegistrationImplBase#REGISTRATION_TECH_CROSS_SIM} 5844 * {@link android.telephony.ims.stub.ImsRegistrationImplBase#REGISTRATION_TECH_NR} 5845 * @see MmTelFeature.MmTelCapabilities#CAPABILITY_TYPE_VIDEO 5846 */ 5847 public static final String KEY_CAPABILITY_TYPE_VIDEO_INT_ARRAY = 5848 KEY_PREFIX + "capability_type_video_int_array"; 5849 5850 /** 5851 * List of different RAT technologies on which Provisioning for XCAP over Ut for 5852 * supplementary services. (IR.92) is supported. 5853 * <p>Possible values are, 5854 * {@link android.telephony.ims.stub.ImsRegistrationImplBase#REGISTRATION_TECH_LTE} 5855 * {@link android.telephony.ims.stub.ImsRegistrationImplBase#REGISTRATION_TECH_IWLAN} 5856 * {@link android.telephony.ims.stub.ImsRegistrationImplBase#REGISTRATION_TECH_CROSS_SIM} 5857 * {@link android.telephony.ims.stub.ImsRegistrationImplBase#REGISTRATION_TECH_NR} 5858 * @see MmTelFeature.MmTelCapabilities#CAPABILITY_TYPE_UT 5859 */ 5860 public static final String KEY_CAPABILITY_TYPE_UT_INT_ARRAY = 5861 KEY_PREFIX + "capability_type_ut_int_array"; 5862 5863 /** 5864 * List of different RAT technologies on which Provisioning for SMS (IR.92) is supported. 5865 * <p>Possible values are, 5866 * {@link android.telephony.ims.stub.ImsRegistrationImplBase#REGISTRATION_TECH_LTE} 5867 * {@link android.telephony.ims.stub.ImsRegistrationImplBase#REGISTRATION_TECH_IWLAN} 5868 * {@link android.telephony.ims.stub.ImsRegistrationImplBase#REGISTRATION_TECH_CROSS_SIM} 5869 * {@link android.telephony.ims.stub.ImsRegistrationImplBase#REGISTRATION_TECH_NR} 5870 * @see MmTelFeature.MmTelCapabilities#CAPABILITY_TYPE_SMS 5871 */ 5872 public static final String KEY_CAPABILITY_TYPE_SMS_INT_ARRAY = 5873 KEY_PREFIX + "capability_type_sms_int_array"; 5874 5875 /** 5876 * List of different RAT technologies on which Provisioning for Call Composer 5877 * (section 2.4 of RCC.20) is supported. 5878 * <p>Possible values are, 5879 * {@link android.telephony.ims.stub.ImsRegistrationImplBase#REGISTRATION_TECH_LTE} 5880 * {@link android.telephony.ims.stub.ImsRegistrationImplBase#REGISTRATION_TECH_IWLAN} 5881 * {@link android.telephony.ims.stub.ImsRegistrationImplBase#REGISTRATION_TECH_CROSS_SIM} 5882 * {@link android.telephony.ims.stub.ImsRegistrationImplBase#REGISTRATION_TECH_NR} 5883 * @see MmTelFeature.MmTelCapabilities#CAPABILITY_TYPE_CALL_COMPOSER 5884 */ 5885 public static final String KEY_CAPABILITY_TYPE_CALL_COMPOSER_INT_ARRAY = 5886 KEY_PREFIX + "capability_type_call_composer_int_array"; 5887 5888 /** 5889 * A bundle which specifies the RCS capability and registration technology 5890 * that requires provisioning. If a tuple is not present, the 5891 * framework will not require that the tuple requires provisioning before 5892 * enabling the capability. 5893 * <p> Possible keys in this bundle are 5894 * <ul> 5895 * <li>{@link #KEY_CAPABILITY_TYPE_OPTIONS_UCE_INT_ARRAY}</li> 5896 * <li>{@link #KEY_CAPABILITY_TYPE_PRESENCE_UCE_INT_ARRAY}</li> 5897 * </ul> 5898 * <p> The values are defined as {@code REGISTRATION_TECH_*} constants in 5899 * {@link android.telephony.ims.stub.ImsRegistrationImplBase}. 5900 */ 5901 public static final String KEY_RCS_REQUIRES_PROVISIONING_BUNDLE = 5902 KEY_PREFIX + "rcs_requires_provisioning_bundle"; 5903 5904 /** 5905 * This carrier supports User Capability Exchange using SIP OPTIONS as defined by the 5906 * framework. If set, the RcsFeature should support capability exchange using SIP OPTIONS. 5907 * If not set, this RcsFeature should not service capability requests. 5908 * <p>Possible values are, 5909 * {@link android.telephony.ims.stub.ImsRegistrationImplBase#REGISTRATION_TECH_LTE} 5910 * {@link android.telephony.ims.stub.ImsRegistrationImplBase#REGISTRATION_TECH_IWLAN} 5911 * {@link android.telephony.ims.stub.ImsRegistrationImplBase#REGISTRATION_TECH_CROSS_SIM} 5912 * {@link android.telephony.ims.stub.ImsRegistrationImplBase#REGISTRATION_TECH_NR} 5913 */ 5914 public static final String KEY_CAPABILITY_TYPE_OPTIONS_UCE_INT_ARRAY = 5915 KEY_PREFIX + "capability_type_options_uce_int_array"; 5916 5917 /** 5918 * This carrier supports User Capability Exchange using a presence server as defined by the 5919 * framework. If set, the RcsFeature should support capability exchange using a presence 5920 * server. If not set, this RcsFeature should not publish capabilities or service capability 5921 * requests using presence. 5922 * <p>Possible values are, 5923 * {@link android.telephony.ims.stub.ImsRegistrationImplBase#REGISTRATION_TECH_LTE} 5924 * {@link android.telephony.ims.stub.ImsRegistrationImplBase#REGISTRATION_TECH_IWLAN} 5925 * {@link android.telephony.ims.stub.ImsRegistrationImplBase#REGISTRATION_TECH_CROSS_SIM} 5926 * {@link android.telephony.ims.stub.ImsRegistrationImplBase#REGISTRATION_TECH_NR} 5927 */ 5928 public static final String KEY_CAPABILITY_TYPE_PRESENCE_UCE_INT_ARRAY = 5929 KEY_PREFIX + "capability_type_presence_uce_int_array"; 5930 5931 /** 5932 * Specifies the policy for disabling NR SA mode. Default value is 5933 *{@link #SA_DISABLE_POLICY_NONE}. 5934 * The value set as below: 5935 * <ul> 5936 * <li>0: {@link #SA_DISABLE_POLICY_NONE }</li> 5937 * <li>1: {@link #SA_DISABLE_POLICY_WFC_ESTABLISHED }</li> 5938 * <li>2: {@link #SA_DISABLE_POLICY_WFC_ESTABLISHED_WHEN_VONR_DISABLED }</li> 5939 * <li>3: {@link #SA_DISABLE_POLICY_VOWIFI_REGISTERED }</li> 5940 * </ul> 5941 * @hide 5942 */ 5943 public static final String KEY_NR_SA_DISABLE_POLICY_INT = 5944 KEY_PREFIX + "sa_disable_policy_int"; 5945 5946 /** @hide */ 5947 @IntDef({ 5948 NR_SA_DISABLE_POLICY_NONE, 5949 NR_SA_DISABLE_POLICY_WFC_ESTABLISHED, 5950 NR_SA_DISABLE_POLICY_WFC_ESTABLISHED_WHEN_VONR_DISABLED, 5951 NR_SA_DISABLE_POLICY_VOWIFI_REGISTERED 5952 }) 5953 public @interface NrSaDisablePolicy {} 5954 5955 /** 5956 * Do not disables NR SA mode. 5957 * @hide 5958 */ 5959 public static final int NR_SA_DISABLE_POLICY_NONE = 0; 5960 5961 /** 5962 * Disables NR SA mode when VoWiFi call is established in order to improve the delay or 5963 * voice mute when the handover from ePDG to NR is not supported in UE or network. 5964 * @hide 5965 */ 5966 public static final int NR_SA_DISABLE_POLICY_WFC_ESTABLISHED = 1; 5967 5968 /** 5969 * Disables NR SA mode when VoWiFi call is established when VoNR is disabled in order to 5970 * improve the delay or voice mute when the handover from ePDG to NR is not supported 5971 * in UE or network. 5972 * @hide 5973 */ 5974 public static final int NR_SA_DISABLE_POLICY_WFC_ESTABLISHED_WHEN_VONR_DISABLED = 2; 5975 5976 /** 5977 * Disables NR SA mode when IMS is registered over WiFi in order to improve the delay or 5978 * voice mute when the handover from ePDG to NR is not supported in UE or network. 5979 * @hide 5980 */ 5981 public static final int NR_SA_DISABLE_POLICY_VOWIFI_REGISTERED = 3; 5982 5983 /** 5984 * This specifies whether the carrier support the global number format or not. 5985 * {@link SubscriptionManager#getPhoneNumber(int)}, 5986 * {@link SubscriptionManager#getPhoneNumber(int, int)} with 5987 * {@link SubscriptionManager#PHONE_NUMBER_SOURCE_IMS} 5988 * In order to provide the phone number to the APIs, the framework extracts the phone 5989 * number from the message received from the carrier server. If the carrier does not use 5990 * global number format, the framework could not provide phone number. 5991 * <p> 5992 * If not set or set to false value, the framework handle only global number format URI. 5993 * @hide 5994 */ 5995 public static final String KEY_ALLOW_NON_GLOBAL_PHONE_NUMBER_FORMAT_BOOL = 5996 KEY_PREFIX + "allow_non_global_phone_number_format_bool"; 5997 Ims()5998 private Ims() {} 5999 getDefaults()6000 private static PersistableBundle getDefaults() { 6001 PersistableBundle defaults = new PersistableBundle(); 6002 defaults.putInt(KEY_WIFI_OFF_DEFERRING_TIME_MILLIS_INT, 4000); 6003 defaults.putBoolean(KEY_IMS_SINGLE_REGISTRATION_REQUIRED_BOOL, false); 6004 defaults.putBoolean(KEY_ENABLE_PRESENCE_PUBLISH_BOOL, false); 6005 defaults.putStringArray(KEY_PUBLISH_SERVICE_DESC_FEATURE_TAG_MAP_OVERRIDE_STRING_ARRAY, 6006 new String[0]); 6007 defaults.putBoolean(KEY_ENABLE_PRESENCE_CAPABILITY_EXCHANGE_BOOL, false); 6008 defaults.putBoolean(KEY_RCS_BULK_CAPABILITY_EXCHANGE_BOOL, false); 6009 defaults.putBoolean(KEY_ENABLE_PRESENCE_GROUP_SUBSCRIBE_BOOL, false); 6010 defaults.putLong(KEY_SUBSCRIBE_RETRY_DURATION_MILLIS_LONG, -1); 6011 defaults.putBoolean(KEY_USE_SIP_URI_FOR_PRESENCE_SUBSCRIBE_BOOL, false); 6012 defaults.putInt(KEY_NON_RCS_CAPABILITIES_CACHE_EXPIRATION_SEC_INT, 30 * 24 * 60 * 60); 6013 defaults.putBoolean(KEY_RCS_REQUEST_FORBIDDEN_BY_SIP_489_BOOL, false); 6014 defaults.putLong(KEY_RCS_REQUEST_RETRY_INTERVAL_MILLIS_LONG, 20 * 60 * 1000); 6015 defaults.putStringArray(KEY_RCS_FEATURE_TAG_ALLOWED_STRING_ARRAY, new String[]{ 6016 "+g.3gpp.icsi-ref=\"urn%3Aurn-7%3A3gpp-service.ims.icsi.oma.cpm.msg\"", 6017 "+g.3gpp.icsi-ref=\"urn%3Aurn-7%3A3gpp-service.ims.icsi.oma.cpm.largemsg\"", 6018 "+g.3gpp.icsi-ref=\"urn%3Aurn-7%3A3gpp-service.ims.icsi.oma.cpm.deferred\"", 6019 "+g.gsma.rcs.cpm.pager-large", 6020 "+g.3gpp.icsi-ref=\"urn%3Aurn-7%3A3gpp-service.ims.icsi.oma.cpm.session\"", 6021 "+g.3gpp.icsi-ref=\"urn%3Aurn-7%3A3gpp-service.ims.icsi.oma.cpm.filetransfer\"", 6022 "+g.3gpp.iari-ref=\"urn%3Aurn-7%3A3gpp-application.ims.iari.rcs.fthttp\"", 6023 "+g.3gpp.iari-ref=\"urn%3Aurn-7%3A3gpp-application.ims.iari.rcs.ftsms\"", 6024 "+g.3gpp.iari-ref=\"urn%3Aurn-7%3A3gpp-service.ims.icsi.gsma.callcomposer\"", 6025 "+g.gsma.callcomposer", 6026 "+g.3gpp.icsi-ref=\"urn%3Aurn-7%3A3gpp-service.ims.icsi.gsma.callunanswered\"", 6027 "+g.3gpp.icsi-ref=\"urn%3Aurn-7%3A3gpp-service.ims.icsi.gsma.sharedmap\"", 6028 "+g.3gpp.icsi-ref=\"urn%3Aurn-7%3A3gpp-service.ims.icsi.gsma.sharedsketch\"", 6029 "+g.3gpp.iari-ref=\"urn%3Aurn-7%3A3gpp-application.ims.iari.rcs.geopush\"", 6030 "+g.3gpp.iari-ref=\"urn%3Aurn-7%3A3gpp-application.ims.iari.rcs.geosms\"", 6031 "+g.3gpp.iari-ref=\"urn%3Aurn-7%3A3gpp-application.ims.iari.rcs.chatbot\"", 6032 "+g.3gpp.iari-ref=\"urn%3Aurn-7%3A3gpp-application.ims.iari.rcs.chatbot.sa\"", 6033 "+g.gsma.rcs.botversion=\"#=1,#=2\"", 6034 "+g.gsma.rcs.cpimext"}); 6035 6036 /** 6037 * @see #KEY_MMTEL_REQUIRES_PROVISIONING_BUNDLE 6038 */ 6039 defaults.putPersistableBundle( 6040 KEY_MMTEL_REQUIRES_PROVISIONING_BUNDLE, new PersistableBundle()); 6041 /** 6042 * @see #KEY_RCS_REQUIRES_PROVISIONING_BUNDLE 6043 */ 6044 defaults.putPersistableBundle( 6045 KEY_RCS_REQUIRES_PROVISIONING_BUNDLE, new PersistableBundle()); 6046 6047 defaults.putBoolean(KEY_GRUU_ENABLED_BOOL, false); 6048 defaults.putBoolean(KEY_SIP_OVER_IPSEC_ENABLED_BOOL, true); 6049 defaults.putBoolean(KEY_KEEP_PDN_UP_IN_NO_VOPS_BOOL, false); 6050 defaults.putBoolean(KEY_REGISTRATION_EVENT_PACKAGE_SUPPORTED_BOOL, true); 6051 6052 defaults.putInt(KEY_SIP_TIMER_T1_MILLIS_INT, 2000); 6053 defaults.putInt(KEY_SIP_TIMER_T2_MILLIS_INT, 16000); 6054 defaults.putInt(KEY_SIP_TIMER_T4_MILLIS_INT, 17000); 6055 defaults.putInt(KEY_SIP_TIMER_B_MILLIS_INT, 128000); 6056 defaults.putInt(KEY_SIP_TIMER_C_MILLIS_INT, 210000); 6057 defaults.putInt(KEY_SIP_TIMER_D_MILLIS_INT, 130000); 6058 defaults.putInt(KEY_SIP_TIMER_F_MILLIS_INT, 128000); 6059 defaults.putInt(KEY_SIP_TIMER_H_MILLIS_INT, 128000); 6060 defaults.putInt(KEY_SIP_TIMER_J_MILLIS_INT, 128000); 6061 defaults.putInt(KEY_SIP_SERVER_PORT_NUMBER_INT, 5060); 6062 defaults.putInt(KEY_REQUEST_URI_TYPE_INT, REQUEST_URI_FORMAT_TEL); 6063 defaults.putInt(KEY_SIP_PREFERRED_TRANSPORT_INT, PREFERRED_TRANSPORT_DYNAMIC_UDP_TCP); 6064 defaults.putInt(KEY_IPV4_SIP_MTU_SIZE_CELLULAR_INT, 1500); 6065 defaults.putInt(KEY_IPV6_SIP_MTU_SIZE_CELLULAR_INT, 1500); 6066 defaults.putInt(KEY_REGISTRATION_EXPIRY_TIMER_SEC_INT, 600000); 6067 defaults.putInt(KEY_REGISTRATION_RETRY_BASE_TIMER_MILLIS_INT, 30000); 6068 defaults.putInt(KEY_REGISTRATION_RETRY_MAX_TIMER_MILLIS_INT, 1800000); 6069 defaults.putInt(KEY_REGISTRATION_SUBSCRIBE_EXPIRY_TIMER_SEC_INT, 600000); 6070 defaults.putInt(KEY_NR_SA_DISABLE_POLICY_INT, NR_SA_DISABLE_POLICY_NONE); 6071 6072 defaults.putIntArray( 6073 KEY_IPSEC_AUTHENTICATION_ALGORITHMS_INT_ARRAY, 6074 new int[] { 6075 IPSEC_AUTHENTICATION_ALGORITHM_HMAC_MD5, 6076 IPSEC_AUTHENTICATION_ALGORITHM_HMAC_SHA1 6077 }); 6078 defaults.putIntArray( 6079 KEY_IPSEC_ENCRYPTION_ALGORITHMS_INT_ARRAY, 6080 new int[] { 6081 IPSEC_ENCRYPTION_ALGORITHM_NULL, 6082 IPSEC_ENCRYPTION_ALGORITHM_DES_EDE3_CBC, 6083 IPSEC_ENCRYPTION_ALGORITHM_AES_CBC 6084 }); 6085 defaults.putIntArray( 6086 KEY_IMS_PDN_ENABLED_IN_NO_VOPS_SUPPORT_INT_ARRAY, 6087 new int[] { 6088 }); 6089 defaults.putIntArray( 6090 KEY_GEOLOCATION_PIDF_IN_SIP_REGISTER_SUPPORT_INT_ARRAY, 6091 new int[] { 6092 GEOLOCATION_PIDF_FOR_EMERGENCY_ON_WIFI 6093 }); 6094 defaults.putIntArray( 6095 KEY_GEOLOCATION_PIDF_IN_SIP_INVITE_SUPPORT_INT_ARRAY, 6096 new int[] { 6097 GEOLOCATION_PIDF_FOR_EMERGENCY_ON_WIFI 6098 }); 6099 defaults.putIntArray( 6100 KEY_SUPPORTED_RATS_INT_ARRAY, 6101 new int[] { 6102 AccessNetworkType.NGRAN, 6103 AccessNetworkType.EUTRAN, 6104 AccessNetworkType.IWLAN 6105 }); 6106 6107 defaults.putString(KEY_PHONE_CONTEXT_DOMAIN_NAME_STRING, ""); 6108 defaults.putString(KEY_IMS_USER_AGENT_STRING, 6109 "#MANUFACTURER#_#MODEL#_Android#AV#_#BUILD#"); 6110 6111 defaults.putBoolean(KEY_ALLOW_NON_GLOBAL_PHONE_NUMBER_FORMAT_BOOL, false); 6112 6113 return defaults; 6114 } 6115 } 6116 6117 /** 6118 * IMS Voice configs. This groups the configs required for IMS Voice - VoNR/VoLTE 6119 * 6120 * <p>Reference: IR.92 6121 */ 6122 public static final class ImsVoice { ImsVoice()6123 private ImsVoice() {} 6124 6125 /** Prefix of all imsvoice.KEY_* constants. */ 6126 public static final String KEY_PREFIX = "imsvoice."; 6127 6128 /** 6129 * Flag specifying whether VoLTE should be available when on 6130 * roaming network. 6131 * 6132 * <p>If {@code false}: hard disabled. 6133 * If {@code true}: then depends on availability, etc. 6134 */ 6135 public static final String KEY_CARRIER_VOLTE_ROAMING_AVAILABLE_BOOL = 6136 KEY_PREFIX + "carrier_volte_roaming_available_bool"; 6137 6138 /** 6139 * Flag specifying whether to send vertical caller id service codes 6140 * (*67 and *82) in the dialed string in the SIP:INVITE. 6141 * 6142 * <p>If {@code true}, vertical caller id service codes *67 and *82 6143 * will be sent in the dialed string in the SIP:INVITE. 6144 * If {@code false}, *67 and *82 will be removed. 6145 */ 6146 public static final String KEY_INCLUDE_CALLER_ID_SERVICE_CODES_IN_SIP_INVITE_BOOL = 6147 KEY_PREFIX + "include_caller_id_service_codes_in_sip_invite_bool"; 6148 6149 /** 6150 * Flag indicating whether Multi-end point setting is enabled or not. 6151 */ 6152 public static final String KEY_MULTIENDPOINT_SUPPORTED_BOOL = 6153 KEY_PREFIX + "multiendpoint_supported_bool"; 6154 6155 /** 6156 * Flag indicating whether Supported header field with the option tag 6157 * 'timer' is enabled or not. 6158 * 6159 * <p>If {@code true}, session timer support is available.{@code false} otherwise. 6160 * 6161 * Reference: RFC 4028 Section 3 6162 */ 6163 public static final String KEY_SESSION_TIMER_SUPPORTED_BOOL = 6164 KEY_PREFIX + "session_timer_supported_bool"; 6165 6166 /** 6167 * Session-expires header field expressed in seconds as per 6168 * RFC 4028 Section 3. 6169 * 6170 * <p>This establishes the upper bound for the session refresh interval. 6171 */ 6172 public static final String KEY_SESSION_EXPIRES_TIMER_SEC_INT = 6173 KEY_PREFIX + "session_expires_timer_sec_int"; 6174 6175 /** 6176 * Indicates the minimum value for the session interval in seconds. 6177 * Represented as min-SE header field as per RFC 4028 Section 3. 6178 * 6179 * <p>This establishes the lower bound for the session refresh interval. 6180 */ 6181 public static final String KEY_MINIMUM_SESSION_EXPIRES_TIMER_SEC_INT = 6182 KEY_PREFIX + "minimum_session_expires_timer_sec_int"; 6183 6184 /** @hide */ 6185 @IntDef({ 6186 SESSION_REFRESHER_TYPE_UNKNOWN, 6187 SESSION_REFRESHER_TYPE_UAC, 6188 SESSION_REFRESHER_TYPE_UAS 6189 }) 6190 public @interface SessionRefresherType {} 6191 6192 /** 6193 * Session Refresher entity is unknown. This means UE does not include the 6194 * "refresher" parameter in the Session-Expires header field of 6195 * the SIP INVITE request. 6196 */ 6197 public static final int SESSION_REFRESHER_TYPE_UNKNOWN = 0; 6198 6199 /** 6200 * Session Refresher entity is User Agent Client (UAC). 6201 * 6202 * <p>Type of "refresher" parameter in the Session-Expires header field 6203 * of the SIP INVITE request is UAC. 6204 */ 6205 public static final int SESSION_REFRESHER_TYPE_UAC = 1; 6206 6207 /** 6208 * Session Refresher entity is User Agent Server (UAS). 6209 * 6210 * <p>Type of "refresher" parameter in the Session-Expires header field 6211 * of the SIP INVITE request is UAS. 6212 */ 6213 public static final int SESSION_REFRESHER_TYPE_UAS = 2; 6214 6215 /** 6216 * Session Refresher entity as per RFC 4028 and IR.92 Section 2.2.8. 6217 * 6218 * <p>This determines, 6219 * a) whether to include the "refresher" parameter 6220 * b) Type of refresher" parameter 6221 * in the Session-Expires header field of the SIP INVITE request. 6222 * 6223 * <p>Possible values are, 6224 * {@link #SESSION_REFRESHER_TYPE_UNKNOWN}, 6225 * {@link #SESSION_REFRESHER_TYPE_UAC}, 6226 * {@link #SESSION_REFRESHER_TYPE_UAS} 6227 */ 6228 public static final String KEY_SESSION_REFRESHER_TYPE_INT = 6229 KEY_PREFIX + "session_refresher_type_int"; 6230 6231 /** @hide */ 6232 @IntDef({ 6233 SESSION_PRIVACY_TYPE_HEADER, 6234 SESSION_PRIVACY_TYPE_NONE, 6235 SESSION_PRIVACY_TYPE_ID 6236 }) 6237 public @interface SessionPrivacyType {} 6238 6239 /** 6240 * Session privacy type is HEADER as per RFC 3323 Section 4.2. 6241 */ 6242 public static final int SESSION_PRIVACY_TYPE_HEADER = 0; 6243 6244 /** 6245 * Session privacy type is NONE as per RFC 3323 Section 4.2. 6246 */ 6247 public static final int SESSION_PRIVACY_TYPE_NONE = 1; 6248 6249 /** 6250 * Session privacy type is ID as per RFC 3325 Section 9.3. 6251 */ 6252 public static final int SESSION_PRIVACY_TYPE_ID = 2; 6253 6254 /** 6255 * Specify the session privacy type. 6256 * 6257 * <p>Reference: RFC 3323 Section 4.2, RFC 3325 Section 9.3. 6258 * 6259 * <p>Possible values are, 6260 * {@link #SESSION_PRIVACY_TYPE_HEADER}, 6261 * {@link #SESSION_PRIVACY_TYPE_NONE}, 6262 * {@link #SESSION_PRIVACY_TYPE_ID} 6263 */ 6264 public static final String KEY_SESSION_PRIVACY_TYPE_INT = 6265 KEY_PREFIX + "session_privacy_type_int"; 6266 6267 /** 6268 * Flag indicating whether PRACK must be enabled for all 18x messages. 6269 * 6270 * <p>If {@code false}, only 18x responses with SDP are sent reliably. 6271 * If {@code true}, SIP 18x responses (other than SIP 183 response) 6272 * are sent reliably. 6273 */ 6274 public static final String KEY_PRACK_SUPPORTED_FOR_18X_BOOL = 6275 KEY_PREFIX + "prack_supported_for_18x_bool"; 6276 6277 /** @hide */ 6278 @IntDef({ 6279 CONFERENCE_SUBSCRIBE_TYPE_IN_DIALOG, 6280 CONFERENCE_SUBSCRIBE_TYPE_OUT_OF_DIALOG 6281 }) 6282 public @interface ConferenceSubscribeType {} 6283 6284 /** 6285 * The SIP SUBSCRIBE to conference state events is sent in the 6286 * SIP INVITE dialog between the UE and the conference server. 6287 * 6288 * <p>Reference: IR.92 Section 2.3.3. 6289 */ 6290 public static final int CONFERENCE_SUBSCRIBE_TYPE_IN_DIALOG = 0; 6291 6292 /** 6293 * The SIP SUBSCRIBE to conference state events is sent out of 6294 * the SIP INVITE dialog between the UE and the conference server. 6295 * 6296 * <p>Reference: IR.92 Section 2.3.3. 6297 */ 6298 public static final int CONFERENCE_SUBSCRIBE_TYPE_OUT_OF_DIALOG = 1; 6299 6300 /** 6301 * This is used to specify whether the SIP SUBSCRIBE to conference state events, 6302 * is sent in or out of the SIP INVITE dialog between the UE and the 6303 * conference server. 6304 * 6305 * <p>Reference: IR.92 Section 2.3.3. 6306 * 6307 * <p>Possible values are, 6308 * {@link #CONFERENCE_SUBSCRIBE_TYPE_IN_DIALOG}, 6309 * {@link #CONFERENCE_SUBSCRIBE_TYPE_OUT_OF_DIALOG} 6310 * 6311 * An empty array indicates SUBSCRIBE to conference event package 6312 * is not required. 6313 */ 6314 public static final String KEY_CONFERENCE_SUBSCRIBE_TYPE_INT = 6315 KEY_PREFIX + "conference_subscribe_type_int"; 6316 6317 /** 6318 * Flag specifying whether QoS preconditions are supported during call setup. 6319 * 6320 * <p>If {@code true}: QoS Preconditions are supported during call setup and 6321 * 'precondition' tag is included in the SIP INVITE header and precondition 6322 * parameters are sent in SDP as required. 6323 * <p>If {@code false}: QoS Preconditions are not supported during call setup. 6324 * 6325 * <p>Reference: 3GPP TS 24.229 6326 */ 6327 public static final String KEY_VOICE_QOS_PRECONDITION_SUPPORTED_BOOL = 6328 KEY_PREFIX + "voice_qos_precondition_supported_bool"; 6329 6330 /** 6331 * Flag specifying whether voice is allowed on default bearer. 6332 * 6333 * <p>If {@code true}: voice packets can be sent on default bearer. {@code false} otherwise. 6334 */ 6335 public static final String KEY_VOICE_ON_DEFAULT_BEARER_SUPPORTED_BOOL = 6336 KEY_PREFIX + "voice_on_default_bearer_supported_bool"; 6337 6338 /** 6339 * Specifies the dedicated bearer wait time during call establishment. 6340 * 6341 * <p>If dedicated bearer is not established within this time and if 6342 * {@link #KEY_VOICE_ON_DEFAULT_BEARER_SUPPORTED_BOOL} is false, then call setup would fail. 6343 * <p>If dedicated bearer is not established within this time and if 6344 * {@link #KEY_VOICE_ON_DEFAULT_BEARER_SUPPORTED_BOOL} is true, then the media is allowed 6345 * on default bearer. 6346 */ 6347 public static final String KEY_DEDICATED_BEARER_WAIT_TIMER_MILLIS_INT = 6348 KEY_PREFIX + "dedicated_bearer_wait_timer_millis_int"; 6349 6350 /** @hide */ 6351 @IntDef({ 6352 BASIC_SRVCC_SUPPORT, 6353 ALERTING_SRVCC_SUPPORT, 6354 PREALERTING_SRVCC_SUPPORT, 6355 MIDCALL_SRVCC_SUPPORT 6356 }) 6357 public @interface SrvccType {} 6358 6359 /** 6360 * Indicates support for basic SRVCC, typically 1 active call 6361 * as detailed in IR.92 Section A.3. 6362 */ 6363 public static final int BASIC_SRVCC_SUPPORT = 0; 6364 6365 /** 6366 * SRVCC access transfer for calls in alerting phase as per 3GPP 24.237 6367 * and IR.64 Section 4.4. 6368 * Media feature tag used: g.3gpp.srvcc-alerting. 6369 */ 6370 public static final int ALERTING_SRVCC_SUPPORT = 1; 6371 6372 /** 6373 * SRVCC access transfer for calls in pre-alerting phase as per 3GPP 24.237. 6374 * Media feature tag used: g.3gpp.ps2cs-srvcc-orig-pre-alerting. 6375 */ 6376 public static final int PREALERTING_SRVCC_SUPPORT = 2; 6377 6378 /** 6379 * SRVCC access transfer for calls in mid-call phase as per 3GPP 24.237. 6380 * and IR.64 Section 4.4. 6381 * <p>This means UE supports the MSC server assisted mid-call feature. 6382 * Media feature tag used: g.3gpp.mid-call. 6383 */ 6384 public static final int MIDCALL_SRVCC_SUPPORT = 3; 6385 6386 /** 6387 * List of different SRVCC types supported as defined in 3GPP 24.237. 6388 * 6389 * <p> Possible values are, 6390 * {@link #BASIC_SRVCC_SUPPORT}, 6391 * {@link #ALERTING_SRVCC_SUPPORT}, 6392 * {@link #PREALERTING_SRVCC_SUPPORT}, 6393 * {@link #MIDCALL_SRVCC_SUPPORT} 6394 * 6395 * <p> Reference: IR.64, 3GPP 24.237, 3GPP 23.216 6396 */ 6397 public static final String KEY_SRVCC_TYPE_INT_ARRAY = 6398 KEY_PREFIX + "srvcc_type_int_array"; 6399 6400 /** 6401 * Specifies the ringing timer for Mobile terminated calls. 6402 * 6403 * <p>Ringing timer starts when the device sends SIP 180 Ringing in 6404 * response to a received SIP INVITE. If Ringing timer expires, 6405 * the device sends SIP 486 response. 6406 */ 6407 public static final String KEY_RINGING_TIMER_MILLIS_INT = 6408 KEY_PREFIX + "ringing_timer_millis_int"; 6409 6410 /** 6411 * Specifies the ringback timer for Mobile originated calls. 6412 * 6413 * <p>Ringback timer starts when the device receives SIP 180 Ringing 6414 * in response to its SIP INVITE. If Ringback timer expires, 6415 * the device sends SIP CANCEL. 6416 */ 6417 public static final String KEY_RINGBACK_TIMER_MILLIS_INT = 6418 KEY_PREFIX + "ringback_timer_millis_int"; 6419 6420 /** 6421 * Specifies the timeout value for RTP inactivity for audio media. 6422 * <p>On timer expiry, call will end. 6423 * See {@link #KEY_AUDIO_INACTIVITY_CALL_END_REASONS_INT_ARRAY} for more 6424 * details. 6425 * <p> Value of 0 means this timer is not enabled. 6426 */ 6427 public static final String KEY_AUDIO_RTP_INACTIVITY_TIMER_MILLIS_INT = 6428 KEY_PREFIX + "audio_rtp_inactivity_timer_millis_int"; 6429 6430 /** 6431 * Specifies the timeout value for RTCP inactivity for audio media. 6432 * <p>On timer expiry, call will end. 6433 * See {@link #KEY_AUDIO_INACTIVITY_CALL_END_REASONS_INT_ARRAY} for more 6434 * details. 6435 * <p> Value of 0 means this timer is not enabled. 6436 */ 6437 public static final String KEY_AUDIO_RTCP_INACTIVITY_TIMER_MILLIS_INT = 6438 KEY_PREFIX + "audio_rtcp_inactivity_timer_millis_int"; 6439 6440 /** 6441 * Used to specify the conference factory URI. 6442 * 6443 * <p>If this is empty, then conference URI is generated from MCC/MNC as 6444 * specified in clause 13.10 of 3GPP 23.003. 6445 */ 6446 public static final String KEY_CONFERENCE_FACTORY_URI_STRING = 6447 KEY_PREFIX + "conference_factory_uri_string"; 6448 6449 /** @hide */ 6450 @IntDef({ 6451 SESSION_REFRESH_METHOD_INVITE, 6452 SESSION_REFRESH_METHOD_UPDATE_PREFERRED 6453 }) 6454 public @interface SessionRefreshMethod {} 6455 6456 /** 6457 * SIP INVITE is used for Session Refresh 6458 */ 6459 public static final int SESSION_REFRESH_METHOD_INVITE = 0; 6460 6461 /** 6462 * Both SIP INVITE and UPDATE are used for session refresh. 6463 * 6464 * <p>SIP UPDATE will be used if UPDATE is in 'Allow' header. 6465 * If UPDATE is not in 'Allow' header, then INVITE will be used. 6466 */ 6467 public static final int SESSION_REFRESH_METHOD_UPDATE_PREFERRED = 1; 6468 6469 /** 6470 * This is used to specify the method used for session refresh. 6471 * 6472 * <p>Possible values are, 6473 * {@link #SESSION_REFRESH_METHOD_INVITE}, 6474 * {@link #SESSION_REFRESH_METHOD_UPDATE_PREFERRED} 6475 */ 6476 public static final String KEY_SESSION_REFRESH_METHOD_INT = 6477 KEY_PREFIX + "session_refresh_method_int"; 6478 6479 /** 6480 * Flag specifying whether the 'From' header field is used for determination of 6481 * the originating party identity in Originating Identification Presentation(OIP) 6482 * service. 6483 * 6484 * <p>If {@code true}: Indicates that the 'From' header field is used for 6485 * determination of the originating party identity in OIP. 6486 * {@code false} otherwise. 6487 */ 6488 public static final String KEY_OIP_SOURCE_FROM_HEADER_BOOL = 6489 KEY_PREFIX + "oip_source_from_header_bool"; 6490 6491 /** 6492 * Specifies the timer value for INVITE to the first 1xx response 6493 * (including 100 trying). If no response is received at timer expiry, 6494 * call is redialed over CS. 6495 * 6496 * <p> Reference: 24.173 Table L.1 6497 */ 6498 public static final String KEY_MO_CALL_REQUEST_TIMEOUT_MILLIS_INT = 6499 KEY_PREFIX + "mo_call_request_timeout_millis_int"; 6500 6501 /** 6502 * List of various reasons of media inactivity for which 6503 * voice/emergency call will end. 6504 * 6505 * <p>Possible values are, 6506 * {@link Ims#RTCP_INACTIVITY_ON_HOLD}, 6507 * {@link Ims#RTCP_INACTIVITY_ON_CONNECTED}, 6508 * {@link Ims#RTP_INACTIVITY_ON_CONNECTED} 6509 * {@link Ims#E911_RTCP_INACTIVITY_ON_CONNECTED}, 6510 * {@link Ims#E911_RTP_INACTIVITY_ON_CONNECTED} 6511 */ 6512 public static final String KEY_AUDIO_INACTIVITY_CALL_END_REASONS_INT_ARRAY = 6513 KEY_PREFIX + "audio_inactivity_call_end_reasons_int_array"; 6514 6515 /** 6516 * Specifies the AS (Application Specific) SDP modifier for audio media. 6517 * 6518 * <p>This value is expressed in kilobits per second. 6519 * Reference: RFC 3556 Section 2. 6520 */ 6521 public static final String KEY_AUDIO_AS_BANDWIDTH_KBPS_INT = 6522 KEY_PREFIX + "audio_as_bandwidth_kbps_int"; 6523 6524 /** 6525 * Specifies the RS SDP modifier for audio media. This indicates the RTCP 6526 * bandwidth allocated to active data senders for audio media. 6527 * 6528 * <p>This value is expressed in bits per second. 6529 * Reference: RFC 3556 Section 2. 6530 */ 6531 public static final String KEY_AUDIO_RS_BANDWIDTH_BPS_INT = 6532 KEY_PREFIX + "audio_rs_bandwidth_bps_int"; 6533 6534 /** 6535 * Specifies the RR SDP modifier for audio media. This indicates the RTCP 6536 * bandwidth allocated to receivers for audio media. 6537 * 6538 * <p>This value is expressed in bits per second. 6539 * Reference: RFC 3556 Section 2. 6540 */ 6541 public static final String KEY_AUDIO_RR_BANDWIDTH_BPS_INT = 6542 KEY_PREFIX + "audio_rr_bandwidth_bps_int"; 6543 6544 /** 6545 * Specifies the Audio Codec capability. This contains a list of payload types 6546 * representing different audio codec instances. 6547 * 6548 * <p> The priority of the codecs is EVS, AMRWB, AMRNB, DTMF WB, DTMF NB 6549 * from highest to lowest. In each individual codec, the priority is determined 6550 * by the order of the payload types from highest to lowest. 6551 * 6552 * <p>Possible keys in this bundle are, 6553 * <UL> 6554 * <LI>{@link #KEY_EVS_PAYLOAD_TYPE_INT_ARRAY}</LI> 6555 * <LI>{@link #KEY_AMRWB_PAYLOAD_TYPE_INT_ARRAY}</LI> 6556 * <LI>{@link #KEY_AMRNB_PAYLOAD_TYPE_INT_ARRAY}</LI> 6557 * <LI>{@link #KEY_DTMFWB_PAYLOAD_TYPE_INT_ARRAY}</LI> 6558 * <LI>{@link #KEY_DTMFNB_PAYLOAD_TYPE_INT_ARRAY}</LI> 6559 * </UL> 6560 * <p>To specify payload descriptions for each of the audio payload types, see 6561 * <UL> 6562 * <LI>{@link #KEY_EVS_PAYLOAD_DESCRIPTION_BUNDLE}</LI> 6563 * <LI>{@link #KEY_AMRNB_PAYLOAD_DESCRIPTION_BUNDLE}</LI> 6564 * <LI>{@link #KEY_AMRWB_PAYLOAD_DESCRIPTION_BUNDLE}</LI> 6565 * </UL> 6566 */ 6567 public static final String KEY_AUDIO_CODEC_CAPABILITY_PAYLOAD_TYPES_BUNDLE = 6568 KEY_PREFIX + "audio_codec_capability_payload_types_bundle"; 6569 6570 /** 6571 * A list of integers representing the different payload types 6572 * in EVS codec in priority order from highest to lowest. 6573 * <p>Payload type is an integer in dynamic payload type range 96-127 6574 * as per RFC RFC 3551 Section 6. 6575 */ 6576 public static final String KEY_EVS_PAYLOAD_TYPE_INT_ARRAY = 6577 KEY_PREFIX + "evs_payload_type_int_array"; 6578 6579 /** 6580 * A list of integers representing the different payload types 6581 * in AMR-WB codec in priority order from highest to lowest. 6582 * <p>Payload type is an integer in dynamic payload type range 96-127 6583 * as per RFC RFC 3551 Section 6. 6584 */ 6585 public static final String KEY_AMRWB_PAYLOAD_TYPE_INT_ARRAY = 6586 KEY_PREFIX + "amrwb_payload_type_int_array"; 6587 6588 /** 6589 * A list of integers representing the different payload types 6590 * in AMR-NB codec in priority order from highest to lowest. 6591 * <p>Payload type is an integer in dynamic payload type range 96-127 6592 * as per RFC RFC 3551 Section 6. 6593 */ 6594 public static final String KEY_AMRNB_PAYLOAD_TYPE_INT_ARRAY = 6595 KEY_PREFIX + "amrnb_payload_type_int_array"; 6596 6597 /** 6598 * A list of integers representing the different payload types 6599 * in DTMF WB codec in priority order from highest to lowest. 6600 * <p>Payload type is an integer in dynamic payload type range 96-127 6601 * as per RFC RFC 3551 Section 6. 6602 */ 6603 public static final String KEY_DTMFWB_PAYLOAD_TYPE_INT_ARRAY = 6604 KEY_PREFIX + "dtmfwb_payload_type_int_array"; 6605 6606 /** 6607 * A list of integers representing the different payload types 6608 * in DTMF NB codec in priority order from highest to lowest. 6609 * <p>Payload type is an integer in dynamic payload type range 96-127 6610 * as per RFC RFC 3551 Section 6. 6611 */ 6612 public static final String KEY_DTMFNB_PAYLOAD_TYPE_INT_ARRAY = 6613 KEY_PREFIX + "dtmfnb_payload_type_int_array"; 6614 6615 /** 6616 * This indicates the threshold for RTP packet loss rate in percentage. If measured packet 6617 * loss rate crosses this, a callback with {@link MediaQualityStatus} will be invoked to 6618 * listeners. 6619 * See {@link android.telephony.TelephonyCallback.MediaQualityStatusChangedListener} 6620 * 6621 * <p/> 6622 * Valid threshold range : 0 ~ 100 6623 * 6624 * @hide 6625 */ 6626 public static final String KEY_VOICE_RTP_PACKET_LOSS_RATE_THRESHOLD_INT = 6627 KEY_PREFIX + "rtp_packet_loss_rate_threshold_int"; 6628 6629 /** 6630 * This indicates the threshold for RTP jitter value in milliseconds (RFC3550). If measured 6631 * jitter value crosses this, a callback with {@link MediaQualityStatus} will be invoked 6632 * to listeners. 6633 * See {@link android.telephony.TelephonyCallback.MediaQualityStatusChangedListener} 6634 * 6635 * <p/> 6636 * Valid threshold range : 0 ~ 10000 6637 * 6638 * @hide 6639 */ 6640 public static final String KEY_VOICE_RTP_JITTER_THRESHOLD_MILLIS_INT = 6641 KEY_PREFIX + "rtp_jitter_threshold_millis_int"; 6642 6643 /** 6644 * This indicates the threshold for RTP inactivity time in milliseconds. If measured 6645 * inactivity timer crosses this, a callback with {@link MediaQualityStatus} will be invoked 6646 * to listeners. 6647 * See {@link android.telephony.TelephonyCallback.MediaQualityStatusChangedListener} 6648 * 6649 * <p/> 6650 * Valid threshold range : 0 ~ 60000 6651 * 6652 * @hide 6653 */ 6654 public static final String KEY_VOICE_RTP_INACTIVITY_TIME_THRESHOLD_MILLIS_LONG = 6655 KEY_PREFIX + "rtp_inactivity_time_threshold_millis_long"; 6656 6657 /** @hide */ 6658 @IntDef({ 6659 BANDWIDTH_EFFICIENT, 6660 OCTET_ALIGNED 6661 }) 6662 public @interface AmrPayloadFormat {} 6663 6664 /** AMR NB/WB Payload format is bandwidth-efficient. */ 6665 public static final int BANDWIDTH_EFFICIENT = 0; 6666 6667 /** AMR NB/WB Payload format is octet-aligned. */ 6668 public static final int OCTET_ALIGNED = 1; 6669 6670 /** 6671 * Specifies the payload format of the AMR-NB/AMR-WB codec. 6672 * 6673 * <p>Possible values are, 6674 * {@link #BANDWIDTH_EFFICIENT}, 6675 * {@link #OCTET_ALIGNED} 6676 6677 * <p>If value is not specified, payload format is 6678 * {@link #BANDWIDTH_EFFICIENT}. 6679 * 6680 * <p>Reference: RFC 4867 Section 8.1. 6681 */ 6682 public static final String KEY_AMR_CODEC_ATTRIBUTE_PAYLOAD_FORMAT_INT = 6683 KEY_PREFIX + "amr_codec_attribute_payload_format_int"; 6684 6685 /** 6686 * Restricts the active mode set to a subset of all modes in the codec. 6687 * 6688 * <p>This attribute is optional. If value is set, then session mode 6689 * set is restricted to the modes specified in this list. If this value 6690 * is not specified, then all available modes in the codec are allowed. 6691 * This attribute is applicable for AMR-WB, AMR-NB, 6692 * and EVS codec (operating in AMR-WB IO Mode). 6693 * 6694 * <p>Possible values are subset of, 6695 * [0,1,2,3,4,5,6,7,8] - AMRWB with the modes representing nine speech codec modes 6696 * with bit rates of 6.6, 8.85, 12.65, 14.25, 15.85, 18.25, 19.85, 23.05, 23.85 kbps. 6697 * [0,1,2,3,4,5,6,7] - AMRNB with the modes representing eight speech codec modes 6698 * with bit rates of 4.75, 5.15, 5.90, 6.70, 7.40, 7.95, 10.2, 12.2 kbps. 6699 * 6700 * <p>If value is not specified, then it means device supports all 6701 * modes in the codec but not included in SDP. 6702 * 6703 * <p>Reference: RFC 4867 Section 8.1, 3GPP 26.445 A.3.1 6704 */ 6705 public static final String KEY_AMR_CODEC_ATTRIBUTE_MODESET_INT_ARRAY = 6706 KEY_PREFIX + "amr_codec_attribute_modeset_int_array"; 6707 6708 /** 6709 * Specifies the codec attributes of different payload types in 6710 * the AMR NarrowBand (AMR-NB) codec. 6711 * 6712 * <p> The keys in this bundle are payload types specified 6713 * in {@link #KEY_AMRNB_PAYLOAD_TYPE_INT_ARRAY}. 6714 * 6715 * <p>Codec attributes allowed as part of AMR-NB codec bundle are, 6716 * <UL> 6717 * <LI>{@link #KEY_AMR_CODEC_ATTRIBUTE_PAYLOAD_FORMAT_INT}</LI> 6718 * <LI>{@link #KEY_AMR_CODEC_ATTRIBUTE_MODESET_INT_ARRAY}</LI> 6719 * </UL> 6720 * 6721 * <p> If this bundle is not configured and AMRNB payload type is added 6722 * in {@link #KEY_AMRNB_PAYLOAD_TYPE_INT_ARRAY}, then default 6723 * values as in the individual codec attribute to be used 6724 * for that payload type. 6725 */ 6726 public static final String KEY_AMRNB_PAYLOAD_DESCRIPTION_BUNDLE = 6727 KEY_PREFIX + "amrnb_payload_description_bundle"; 6728 6729 /** 6730 * Specifies the codec attributes of different payload types in 6731 * the AMR WideBand (AMR-WB) codec. 6732 * 6733 * <p> The keys in this bundle are payload types specified 6734 * in {@link #KEY_AMRWB_PAYLOAD_TYPE_INT_ARRAY}. 6735 * 6736 * <p>Codec attributes allowed as part of AMR-NB codec bundle are, 6737 * <UL> 6738 * <LI>{@link #KEY_AMR_CODEC_ATTRIBUTE_PAYLOAD_FORMAT_INT}</LI> 6739 * <LI>{@link #KEY_AMR_CODEC_ATTRIBUTE_MODESET_INT_ARRAY}</LI> 6740 * </UL> 6741 * 6742 * <p> If this bundle is not configured and AMRWB payload type is added 6743 * in {@link #KEY_AMRWB_PAYLOAD_TYPE_INT_ARRAY}, then default 6744 * values as in the individual codec attribute to be used 6745 * for that payload type. 6746 */ 6747 public static final String KEY_AMRWB_PAYLOAD_DESCRIPTION_BUNDLE = 6748 KEY_PREFIX + "amrwb_payload_description_bundle"; 6749 6750 /** @hide */ 6751 @IntDef({ 6752 EVS_OPERATIONAL_MODE_PRIMARY, 6753 EVS_OPERATIONAL_MODE_AMRWB_IO 6754 }) 6755 public @interface EvsOperationalMode {} 6756 6757 /** Indicates the EVS primary mode. 3GPP 26.445 Section 3.1 */ 6758 public static final int EVS_OPERATIONAL_MODE_PRIMARY = 0; 6759 6760 /** Indicates the EVS AMR-WB IO mode. 3GPP 26.445 Section 3.1 */ 6761 public static final int EVS_OPERATIONAL_MODE_AMRWB_IO = 1; 6762 6763 /** 6764 * Specifies if the EVS mode used is EVS primary mode 6765 * or EVS AMR-WB IO mode. 6766 * 6767 * <p>Possible values are, 6768 * {@link #EVS_OPERATIONAL_MODE_PRIMARY}, 6769 * {@link #EVS_OPERATIONAL_MODE_AMRWB_IO} 6770 * 6771 * <p>If this is not present, then {@link #EVS_OPERATIONAL_MODE_PRIMARY} is used. 6772 * <p>Reference: 3GPP 26.445 Section 3.1. 6773 */ 6774 public static final String KEY_EVS_CODEC_ATTRIBUTE_MODE_SWITCH_INT = 6775 KEY_PREFIX + "evs_codec_attribute_mode_switch_int"; 6776 6777 /** @hide */ 6778 @IntDef({ 6779 EVS_ENCODED_BW_TYPE_NB, 6780 EVS_ENCODED_BW_TYPE_WB, 6781 EVS_ENCODED_BW_TYPE_SWB, 6782 EVS_ENCODED_BW_TYPE_FB, 6783 EVS_ENCODED_BW_TYPE_NB_WB, 6784 EVS_ENCODED_BW_TYPE_NB_WB_SWB, 6785 EVS_ENCODED_BW_TYPE_NB_WB_SWB_FB, 6786 EVS_ENCODED_BW_TYPE_WB_SWB, 6787 EVS_ENCODED_BW_TYPE_WB_SWB_FB 6788 }) 6789 public @interface EvsEncodedBwType {} 6790 6791 /** 6792 * EVS encoded Bandwidth is Narrow Band (NB). 6793 * Reference: 3GPP 26.441 Table 1. 6794 */ 6795 public static final int EVS_ENCODED_BW_TYPE_NB = 0; 6796 6797 /** 6798 * EVS encoded Bandwidth is Wide Band (WB). 6799 * Reference: 3GPP 26.441 Table 1. 6800 */ 6801 public static final int EVS_ENCODED_BW_TYPE_WB = 1; 6802 6803 /** 6804 * EVS encoded Bandwidth is Super WideBand (SWB). 6805 * Reference: 3GPP 26.441 Table 1. 6806 */ 6807 public static final int EVS_ENCODED_BW_TYPE_SWB = 2; 6808 6809 /** 6810 * EVS encoded Bandwidth is Full Band (FB). 6811 * Reference: 3GPP 26.441 Table 1. 6812 */ 6813 public static final int EVS_ENCODED_BW_TYPE_FB = 3; 6814 6815 /** 6816 * EVS encoded Bandwidth is in the range NB,WB. 6817 * Reference: 3GPP 26.441 Table 1. 6818 */ 6819 public static final int EVS_ENCODED_BW_TYPE_NB_WB = 4; 6820 6821 /** 6822 * EVS encoded Bandwidth is in the range NB,WB,SWB. 6823 * Reference: 3GPP 26.441 Table 1. 6824 */ 6825 public static final int EVS_ENCODED_BW_TYPE_NB_WB_SWB = 5; 6826 6827 /** 6828 * EVS encoded Bandwidth is in the range NB,WB,SWB,FB. 6829 * Reference: 3GPP 26.441 Table 1. 6830 */ 6831 public static final int EVS_ENCODED_BW_TYPE_NB_WB_SWB_FB = 6; 6832 6833 /** 6834 * EVS encoded Bandwidth is in the range WB,SWB. 6835 * Reference: 3GPP 26.441 Table 1. 6836 */ 6837 public static final int EVS_ENCODED_BW_TYPE_WB_SWB = 7; 6838 6839 /** 6840 * EVS encoded Bandwidth is in the range WB,SWB,FB. 6841 * Reference: 3GPP 26.441 Table 1. 6842 */ 6843 public static final int EVS_ENCODED_BW_TYPE_WB_SWB_FB = 8; 6844 6845 /** 6846 * Specifies the EVS codec encoding bandwidth options. 6847 * 6848 * Possible values are, 6849 * {@link #EVS_ENCODED_BW_TYPE_NB}, 6850 * {@link #EVS_ENCODED_BW_TYPE_WB}, 6851 * {@link #EVS_ENCODED_BW_TYPE_SWB}, 6852 * {@link #EVS_ENCODED_BW_TYPE_FB}, 6853 * {@link #EVS_ENCODED_BW_TYPE_NB_WB}, 6854 * {@link #EVS_ENCODED_BW_TYPE_NB_WB_SWB}, 6855 * {@link #EVS_ENCODED_BW_TYPE_NB_WB_SWB_FB}, 6856 * {@link #EVS_ENCODED_BW_TYPE_WB_SWB}, 6857 * {@link #EVS_ENCODED_BW_TYPE_WB_SWB_FB} 6858 * 6859 * If this key is not specified, then the behavior is same as 6860 * value {@link #EVS_ENCODED_BW_TYPE_NB_WB_SWB} 6861 * 6862 * <p>Reference: 3GPP 26.441 Table 1. 6863 */ 6864 public static final String KEY_EVS_CODEC_ATTRIBUTE_BANDWIDTH_INT = 6865 KEY_PREFIX + "evs_codec_attribute_bandwidth_int"; 6866 6867 /** @hide */ 6868 @IntDef({ 6869 EVS_PRIMARY_MODE_BITRATE_5_9_KBPS, 6870 EVS_PRIMARY_MODE_BITRATE_7_2_KBPS, 6871 EVS_PRIMARY_MODE_BITRATE_8_0_KBPS, 6872 EVS_PRIMARY_MODE_BITRATE_9_6_KBPS, 6873 EVS_PRIMARY_MODE_BITRATE_13_2_KBPS, 6874 EVS_PRIMARY_MODE_BITRATE_16_4_KBPS, 6875 EVS_PRIMARY_MODE_BITRATE_24_4_KBPS, 6876 EVS_PRIMARY_MODE_BITRATE_32_0_KBPS, 6877 EVS_PRIMARY_MODE_BITRATE_48_0_KBPS, 6878 EVS_PRIMARY_MODE_BITRATE_64_0_KBPS, 6879 EVS_PRIMARY_MODE_BITRATE_96_0_KBPS, 6880 EVS_PRIMARY_MODE_BITRATE_128_0_KBPS 6881 }) 6882 public @interface EvsPrimaryModeBitRate {} 6883 6884 /** EVS primary mode with bitrate 5.9 kbps */ 6885 public static final int EVS_PRIMARY_MODE_BITRATE_5_9_KBPS = 0; 6886 6887 /** EVS primary mode with bitrate 7.2 kbps */ 6888 public static final int EVS_PRIMARY_MODE_BITRATE_7_2_KBPS = 1; 6889 6890 /** EVS primary mode with bitrate 8.0 kbps */ 6891 public static final int EVS_PRIMARY_MODE_BITRATE_8_0_KBPS = 2; 6892 6893 /** EVS primary mode with bitrate 9.6 kbps */ 6894 public static final int EVS_PRIMARY_MODE_BITRATE_9_6_KBPS = 3; 6895 6896 /** EVS primary mode with bitrate 13.2 kbps */ 6897 public static final int EVS_PRIMARY_MODE_BITRATE_13_2_KBPS = 4; 6898 6899 /** EVS primary mode with bitrate 16.4 kbps */ 6900 public static final int EVS_PRIMARY_MODE_BITRATE_16_4_KBPS = 5; 6901 6902 /** EVS primary mode with bitrate 24.4 kbps */ 6903 public static final int EVS_PRIMARY_MODE_BITRATE_24_4_KBPS = 6; 6904 6905 /** EVS primary mode with bitrate 32.0 kbps */ 6906 public static final int EVS_PRIMARY_MODE_BITRATE_32_0_KBPS = 7; 6907 6908 /** EVS primary mode with bitrate 48.0 kbps */ 6909 public static final int EVS_PRIMARY_MODE_BITRATE_48_0_KBPS = 8; 6910 6911 /** EVS primary mode with bitrate 64.0 kbps */ 6912 public static final int EVS_PRIMARY_MODE_BITRATE_64_0_KBPS = 9; 6913 6914 /** EVS primary mode with bitrate 96.0 kbps */ 6915 public static final int EVS_PRIMARY_MODE_BITRATE_96_0_KBPS = 10; 6916 6917 /** EVS primary mode with bitrate 128.0 kbps */ 6918 public static final int EVS_PRIMARY_MODE_BITRATE_128_0_KBPS = 11; 6919 6920 /** 6921 * Specifies the range of source codec bit-rate for EVS Primary mode 6922 * in the session. This is expressed in kilobits per second and 6923 * applicable for both the send and the receive directions. 6924 * 6925 * <p>The range is specified as integer aray of size 2, 6926 * represented as [low, high], where low <= high 6927 * 6928 * <p>Possible values for low and high are, 6929 * {@link #EVS_PRIMARY_MODE_BITRATE_5_9_KBPS}, 6930 * {@link #EVS_PRIMARY_MODE_BITRATE_7_2_KBPS}, 6931 * {@link #EVS_PRIMARY_MODE_BITRATE_8_0_KBPS}, 6932 * {@link #EVS_PRIMARY_MODE_BITRATE_9_6_KBPS}, 6933 * {@link #EVS_PRIMARY_MODE_BITRATE_13_2_KBPS}, 6934 * {@link #EVS_PRIMARY_MODE_BITRATE_16_4_KBPS}, 6935 * {@link #EVS_PRIMARY_MODE_BITRATE_24_4_KBPS}, 6936 * {@link #EVS_PRIMARY_MODE_BITRATE_32_0_KBPS}, 6937 * {@link #EVS_PRIMARY_MODE_BITRATE_48_0_KBPS}, 6938 * {@link #EVS_PRIMARY_MODE_BITRATE_64_0_KBPS}, 6939 * {@link #EVS_PRIMARY_MODE_BITRATE_96_0_KBPS}, 6940 * {@link #EVS_PRIMARY_MODE_BITRATE_128_0_KBPS} 6941 * 6942 * If this key is not specified, then the behavior is same as 6943 * value {@link #EVS_PRIMARY_MODE_BITRATE_24_4_KBPS} 6944 * 6945 * <p>Reference: 3GPP 26.445 Section A.3.1 6946 */ 6947 public static final String KEY_EVS_CODEC_ATTRIBUTE_BITRATE_INT_ARRAY = 6948 KEY_PREFIX + "evs_codec_attribute_bitrate_int_array"; 6949 6950 /** 6951 * Specifies the Channel aware mode (ch-aw-recv) for the receive direction. 6952 * This is applicable for EVS codec. 6953 * 6954 * <p> Permissible values are -1, 0, 2, 3, 5, and 7. 6955 * If this key is not specified, then the behavior is same as value 0 6956 * (channel aware mode disabled). 6957 * <p> If this key is configured, then device is expected to send 6958 * this parameter in the SDP offer. 6959 * 6960 * <p>Reference: 3GPP TS 26.445 section 4.4.5, 3GPP 26.445 Section A.3.1 6961 */ 6962 public static final String KEY_EVS_CODEC_ATTRIBUTE_CH_AW_RECV_INT = 6963 KEY_PREFIX + "evs_codec_attribute_ch_aw_recv_int"; 6964 6965 /** 6966 * Specifies whether to limit the session to header-full format. 6967 * This applies to both directions in the session. This attribute 6968 * is applicable for EVS codec. 6969 * 6970 * <p>Permissible values are 0, 1 6971 * If hf-only is 1, only Header-Full format is used and hf-only is 6972 * included in the SDP. 6973 * <p>If hf-only is 0, both Compact and Header-Full formats are used 6974 * and hf-only is included in the SDP. 6975 * <p>If this key is not present, then both Compact 6976 * and Header-Full formats are used and hf-only is not included in 6977 * the SDP. 6978 * <p> If this key is configured, then device is expected to send 6979 * this parameter in the SDP offer if operator required it. 6980 * 6981 * <p>Reference: 3GPP 26.445 Section A.3.1. 6982 */ 6983 public static final String KEY_EVS_CODEC_ATTRIBUTE_HF_ONLY_INT = 6984 KEY_PREFIX + "evs_codec_attribute_hf_only_int"; 6985 6986 /** 6987 * Specifies whether DTX (Discontinuous transmission) is enabled 6988 * or not. This applies to both directions in the session. 6989 * This attribute is applicable for EVS codec and can be used 6990 * in both EVS Primary mode and EVS AMR-WB IO mode. 6991 * 6992 * <p>If {@code true}: Indicates DTX is enabled. 6993 * If {@code false}: Indicates DTX is disabled. 6994 * 6995 * <p>If this is not present, then default value of {@code true} 6996 * will apply. 6997 * <p>Reference: 3GPP TS 26.445 Section A.3.1. 6998 */ 6999 public static final String KEY_EVS_CODEC_ATTRIBUTE_DTX_BOOL = 7000 KEY_PREFIX + "evs_codec_attribute_dtx_bool"; 7001 7002 /** 7003 * This is used if further restriction is required on DTX in the 7004 * receive direction. This attribute is applicable for EVS codec 7005 * and can be used in both EVS Primary mode and EVS AMR-WB IO mode. 7006 * 7007 * <p> If this value is true or not present, then DTX setting is 7008 * dependent on {@link #KEY_EVS_CODEC_ATTRIBUTE_DTX_BOOL}. 7009 * 7010 * <p> If this is not present, then default value of {@code true} 7011 * will apply. 7012 * 7013 * <p>Reference: 3GPP TS 26.445 Section A.3.1. 7014 */ 7015 public static final String KEY_EVS_CODEC_ATTRIBUTE_DTX_RECV_BOOL = 7016 KEY_PREFIX + "evs_codec_attribute_dtx_recv_bool"; 7017 7018 /** 7019 * Specifies the number of audio channels. 7020 * If this is not present, then default value of 1 will apply. 7021 * 7022 * <p>Reference: RFC 3551 7023 */ 7024 public static final String KEY_EVS_CODEC_ATTRIBUTE_CHANNELS_INT = 7025 KEY_PREFIX + "evs_codec_attribute_channels_int"; 7026 7027 /** 7028 * Indicates whether the Codec Mode Request (CMR) is supported 7029 * for the session. 7030 * This attribute is applicable for EVS codec in Primary Mode only. 7031 * 7032 * <p>Possible values are -1, 0, 1. If this key is not present, 7033 * then behavior as per value 0 is applicable. 7034 * 7035 * <p>Reference: 3GPP 26.445 Section A.3.1, 3GPP 26.114 Table 6.2a 7036 */ 7037 public static final String KEY_EVS_CODEC_ATTRIBUTE_CMR_INT = 7038 KEY_PREFIX + "codec_attribute_cmr_int"; 7039 7040 /** 7041 * Specifies the number of frame-blocks. This indicates the frame-block period 7042 * at which codec mode changes are allowed for the sender. This attribute is 7043 * applicable for EVS codec in AMR-WB IO mode and AMR-WB. 7044 * 7045 * <p>Possible values are 1, 2. 7046 * If the key is not present, behavior as per value 1 is applicable and this 7047 * parameter is not included in SDP. 7048 * 7049 * <p>Reference: RFC 4867 Section 8.1. 7050 */ 7051 public static final String KEY_CODEC_ATTRIBUTE_MODE_CHANGE_PERIOD_INT = 7052 KEY_PREFIX + "codec_attribute_mode_change_period_int"; 7053 7054 /** 7055 * Specifies if the client is capable to transmit with a restricted mode 7056 * change period. This attribute is applicable for EVS codec in 7057 * AMR-WB IO mode and AMR-WB. 7058 * 7059 * <p>Possible values are 1, 2. If this key is not present, 7060 * then behavior as per value 1 is applicable and this 7061 * parameter is not included in SDP. 7062 * 7063 * <p>Reference: RFC 4867 Section 8.1. 7064 */ 7065 public static final String KEY_CODEC_ATTRIBUTE_MODE_CHANGE_CAPABILITY_INT = 7066 KEY_PREFIX + "codec_attribute_mode_change_capability_int"; 7067 7068 /** 7069 * Specifies the allowed mode changes for the sender in the active mode set. 7070 * This attribute is applicable for EVS codec in AMR-WB IO mode 7071 * and AMR-WB. 7072 * 7073 * <p>Possible values are 0, 1. If value is 1, then the sender should only 7074 * perform mode changes to the neighboring modes in the active codec mode set. 7075 * If value is 0, then mode changes between any two modes 7076 * in the active codec mode set is allowed. 7077 * If the key is not present, behavior as per value 0 is applicable and this 7078 * parameter is not included in SDP. 7079 * 7080 * <p>Reference: RFC 4867 Section 8.1. 7081 */ 7082 public static final String KEY_CODEC_ATTRIBUTE_MODE_CHANGE_NEIGHBOR_INT = 7083 KEY_PREFIX + "codec_attribute_mode_change_neighbor_int"; 7084 7085 /** 7086 * Specifies the codec attributes of different payload types in 7087 * the EVS codec. 7088 * 7089 * <p> The keys in this bundle are payload types specified 7090 * in {@link #KEY_EVS_PAYLOAD_TYPE_INT_ARRAY}. 7091 * 7092 * <p>Codec attributes allowed as part of EVS codec are, 7093 * <UL> 7094 * <LI>{@link #KEY_EVS_CODEC_ATTRIBUTE_BANDWIDTH_INT}</LI> 7095 * <LI>{@link #KEY_EVS_CODEC_ATTRIBUTE_BITRATE_INT_ARRAY}</LI> 7096 * <LI>{@link #KEY_EVS_CODEC_ATTRIBUTE_CH_AW_RECV_INT}</LI> 7097 * <LI>{@link #KEY_EVS_CODEC_ATTRIBUTE_HF_ONLY_INT}</LI> 7098 * <LI>{@link #KEY_EVS_CODEC_ATTRIBUTE_DTX_BOOL}</LI> 7099 * <LI>{@link #KEY_EVS_CODEC_ATTRIBUTE_DTX_RECV_BOOL}</LI> 7100 * <LI>{@link #KEY_EVS_CODEC_ATTRIBUTE_MODE_SWITCH_INT}</LI> 7101 * <LI>{@link #KEY_EVS_CODEC_ATTRIBUTE_CMR_INT}</LI> 7102 * <LI>{@link #KEY_EVS_CODEC_ATTRIBUTE_CHANNELS_INT}</LI> 7103 * <LI>{@link #KEY_CODEC_ATTRIBUTE_MODE_CHANGE_PERIOD_INT}</LI> 7104 * <LI>{@link #KEY_CODEC_ATTRIBUTE_MODE_CHANGE_CAPABILITY_INT}</LI> 7105 * <LI>{@link #KEY_CODEC_ATTRIBUTE_MODE_CHANGE_NEIGHBOR_INT}</LI> 7106 * </UL> 7107 */ 7108 public static final String KEY_EVS_PAYLOAD_DESCRIPTION_BUNDLE = 7109 KEY_PREFIX + "evs_payload_description_bundle"; 7110 getDefaults()7111 private static PersistableBundle getDefaults() { 7112 PersistableBundle defaults = new PersistableBundle(); 7113 defaults.putBoolean(KEY_CARRIER_VOLTE_ROAMING_AVAILABLE_BOOL, true); 7114 defaults.putBoolean(KEY_INCLUDE_CALLER_ID_SERVICE_CODES_IN_SIP_INVITE_BOOL, false); 7115 defaults.putBoolean(KEY_MULTIENDPOINT_SUPPORTED_BOOL, false); 7116 defaults.putBoolean(KEY_SESSION_TIMER_SUPPORTED_BOOL, true); 7117 defaults.putBoolean(KEY_OIP_SOURCE_FROM_HEADER_BOOL, false); 7118 defaults.putBoolean(KEY_PRACK_SUPPORTED_FOR_18X_BOOL, false); 7119 defaults.putBoolean(KEY_VOICE_QOS_PRECONDITION_SUPPORTED_BOOL, true); 7120 defaults.putBoolean(KEY_VOICE_ON_DEFAULT_BEARER_SUPPORTED_BOOL, false); 7121 7122 defaults.putInt(KEY_SESSION_REFRESHER_TYPE_INT, SESSION_REFRESHER_TYPE_UAC); 7123 defaults.putInt(KEY_SESSION_PRIVACY_TYPE_INT, SESSION_PRIVACY_TYPE_HEADER); 7124 defaults.putInt(KEY_SESSION_REFRESH_METHOD_INT, 7125 SESSION_REFRESH_METHOD_UPDATE_PREFERRED); 7126 defaults.putInt(KEY_CONFERENCE_SUBSCRIBE_TYPE_INT, 7127 CONFERENCE_SUBSCRIBE_TYPE_OUT_OF_DIALOG); 7128 defaults.putInt(KEY_AUDIO_RTP_INACTIVITY_TIMER_MILLIS_INT, 20000); 7129 defaults.putInt(KEY_AUDIO_RTCP_INACTIVITY_TIMER_MILLIS_INT, 20000); 7130 defaults.putInt(KEY_DEDICATED_BEARER_WAIT_TIMER_MILLIS_INT, 8000); 7131 defaults.putInt(KEY_RINGING_TIMER_MILLIS_INT, 90000); 7132 defaults.putInt(KEY_RINGBACK_TIMER_MILLIS_INT, 90000); 7133 defaults.putInt(KEY_MO_CALL_REQUEST_TIMEOUT_MILLIS_INT, 5000); 7134 defaults.putInt(KEY_SESSION_EXPIRES_TIMER_SEC_INT, 1800); 7135 defaults.putInt(KEY_MINIMUM_SESSION_EXPIRES_TIMER_SEC_INT, 90); 7136 defaults.putInt(KEY_AUDIO_AS_BANDWIDTH_KBPS_INT, 41); 7137 defaults.putInt(KEY_AUDIO_RS_BANDWIDTH_BPS_INT, 600); 7138 defaults.putInt(KEY_AUDIO_RR_BANDWIDTH_BPS_INT, 2000); 7139 defaults.putInt(KEY_VOICE_RTP_PACKET_LOSS_RATE_THRESHOLD_INT, 40); 7140 defaults.putInt(KEY_VOICE_RTP_JITTER_THRESHOLD_MILLIS_INT, 120); 7141 defaults.putLong(KEY_VOICE_RTP_INACTIVITY_TIME_THRESHOLD_MILLIS_LONG, 5000); 7142 7143 defaults.putIntArray( 7144 KEY_AUDIO_INACTIVITY_CALL_END_REASONS_INT_ARRAY, 7145 new int[] { 7146 Ims.RTCP_INACTIVITY_ON_CONNECTED, 7147 Ims.RTP_INACTIVITY_ON_CONNECTED, 7148 Ims.E911_RTCP_INACTIVITY_ON_CONNECTED, 7149 Ims.RTCP_INACTIVITY_ON_HOLD 7150 }); 7151 7152 defaults.putIntArray( 7153 KEY_SRVCC_TYPE_INT_ARRAY, 7154 new int[] { 7155 BASIC_SRVCC_SUPPORT, 7156 ALERTING_SRVCC_SUPPORT, 7157 PREALERTING_SRVCC_SUPPORT, 7158 MIDCALL_SRVCC_SUPPORT 7159 }); 7160 7161 defaults.putString(KEY_CONFERENCE_FACTORY_URI_STRING, ""); 7162 7163 PersistableBundle audio_codec_capability_payload_types = new PersistableBundle(); 7164 7165 audio_codec_capability_payload_types.putIntArray( 7166 KEY_AMRWB_PAYLOAD_TYPE_INT_ARRAY, 7167 new int[] { 97, 98 }); 7168 7169 audio_codec_capability_payload_types.putIntArray( 7170 KEY_AMRNB_PAYLOAD_TYPE_INT_ARRAY, 7171 new int[] { 99, 100 }); 7172 7173 audio_codec_capability_payload_types.putIntArray( 7174 KEY_DTMFWB_PAYLOAD_TYPE_INT_ARRAY, 7175 new int[] { 101 }); 7176 7177 audio_codec_capability_payload_types.putIntArray( 7178 KEY_DTMFNB_PAYLOAD_TYPE_INT_ARRAY, 7179 new int[] { 102 }); 7180 7181 defaults.putPersistableBundle( 7182 KEY_AUDIO_CODEC_CAPABILITY_PAYLOAD_TYPES_BUNDLE, 7183 audio_codec_capability_payload_types); 7184 7185 /* Setting defaults for AMRWB */ 7186 PersistableBundle all_amrwb_payload_bundles = new PersistableBundle(); 7187 PersistableBundle amrwb_bundle_instance1 = new PersistableBundle(); 7188 7189 all_amrwb_payload_bundles.putPersistableBundle( 7190 "97", /* Same value of payload type as in KEY_AMRWB_PAYLOAD_TYPE_INT_ARRAY */ 7191 amrwb_bundle_instance1); 7192 7193 PersistableBundle amrwb_bundle_instance2 = new PersistableBundle(); 7194 7195 amrwb_bundle_instance2.putInt(KEY_AMR_CODEC_ATTRIBUTE_PAYLOAD_FORMAT_INT, 7196 OCTET_ALIGNED); 7197 7198 all_amrwb_payload_bundles.putPersistableBundle( 7199 "98", /* Same value of payload type as in KEY_AMRWB_PAYLOAD_TYPE_INT_ARRAY */ 7200 amrwb_bundle_instance2); 7201 7202 defaults.putPersistableBundle( 7203 KEY_AMRWB_PAYLOAD_DESCRIPTION_BUNDLE, 7204 all_amrwb_payload_bundles); 7205 7206 /* Setting defaults for AMRNB */ 7207 PersistableBundle all_amrnb_payload_bundles = new PersistableBundle(); 7208 PersistableBundle amrnb_bundle_instance1 = new PersistableBundle(); 7209 7210 all_amrnb_payload_bundles.putPersistableBundle( 7211 "99", /* Same value of payload type as in KEY_AMRNB_PAYLOAD_TYPE_INT_ARRAY */ 7212 amrnb_bundle_instance1); 7213 7214 PersistableBundle amrnb_bundle_instance2 = new PersistableBundle(); 7215 7216 amrnb_bundle_instance2.putInt(KEY_AMR_CODEC_ATTRIBUTE_PAYLOAD_FORMAT_INT, 7217 OCTET_ALIGNED); 7218 7219 all_amrnb_payload_bundles.putPersistableBundle( 7220 "100", /* Same value of payload type as in KEY_AMRNB_PAYLOAD_TYPE_INT_ARRAY */ 7221 amrnb_bundle_instance2); 7222 7223 defaults.putPersistableBundle( 7224 KEY_AMRNB_PAYLOAD_DESCRIPTION_BUNDLE, 7225 all_amrnb_payload_bundles); 7226 7227 return defaults; 7228 } 7229 } 7230 7231 /** 7232 * IMS SMS configs. This groups the configs specific for SMS over IMS 7233 */ 7234 public static final class ImsSms { ImsSms()7235 private ImsSms() {} 7236 7237 /** Prefix of all imssms.KEY_* constants. */ 7238 public static final String KEY_PREFIX = "imssms."; 7239 7240 /** 7241 * Flag specifying if SMS over IMS support is available or not. 7242 * 7243 * <p>If {@code true}: SMS over IMS support available. 7244 * {@code false}: otherwise. 7245 */ 7246 public static final String KEY_SMS_OVER_IMS_SUPPORTED_BOOL = 7247 KEY_PREFIX + "sms_over_ims_supported_bool"; 7248 7249 /** 7250 * Flag specifying whether to allow SMS CSFB in case of 7251 * SMS over PS failure. 7252 * 7253 * <p>If {@code true}: allow SMS CSFB in case of SMS over PS failure. 7254 * {@code false} otherwise. 7255 */ 7256 public static final String KEY_SMS_CSFB_RETRY_ON_FAILURE_BOOL = 7257 KEY_PREFIX + "sms_csfb_retry_on_failure_bool"; 7258 7259 /** @hide */ 7260 @IntDef({ 7261 SMS_FORMAT_3GPP, 7262 SMS_FORMAT_3GPP2 7263 }) 7264 public @interface SmsFormat {} 7265 7266 /** SMS format is 3GPP. */ 7267 public static final int SMS_FORMAT_3GPP = 0; 7268 7269 /** SMS format is 3GPP2. */ 7270 public static final int SMS_FORMAT_3GPP2 = 1; 7271 7272 /** 7273 * Specifies the SMS over IMS format. 7274 * 7275 * <p>Possible values are, 7276 * {@link #SMS_FORMAT_3GPP}, 7277 * {@link #SMS_FORMAT_3GPP2} 7278 */ 7279 public static final String KEY_SMS_OVER_IMS_FORMAT_INT = 7280 KEY_PREFIX + "sms_over_ims_format_int"; 7281 7282 /** 7283 * List of different RAT technologies on which SMS over IMS 7284 * is supported. 7285 * 7286 * <p>Possible values are, 7287 * {@link AccessNetworkConstants.AccessNetworkType#NGRAN} 7288 * {@link AccessNetworkConstants.AccessNetworkType#EUTRAN} 7289 * {@link AccessNetworkConstants.AccessNetworkType#IWLAN} 7290 * {@link AccessNetworkConstants.AccessNetworkType#UTRAN} 7291 * {@link AccessNetworkConstants.AccessNetworkType#GERAN} 7292 */ 7293 public static final String KEY_SMS_OVER_IMS_SUPPORTED_RATS_INT_ARRAY = 7294 KEY_PREFIX + "sms_over_ims_supported_rats_int_array"; 7295 7296 /** 7297 * Maximum Retry Count for Failure, If the Retry Count exceeds this value, 7298 * it must display to User Interface as sending failed 7299 */ 7300 public static final String KEY_SMS_MAX_RETRY_COUNT_INT = 7301 KEY_PREFIX + "sms_max_retry_count_int"; 7302 7303 /** 7304 * Maximum Retry Count for SMS over IMS on Failure, If the Retry Count exceeds this value, 7305 * and if the retry count is less than {@link #KEY_SMS_MAX_RETRY_COUNT_INT} 7306 * sending SMS should fallback to CS 7307 */ 7308 public static final String KEY_SMS_MAX_RETRY_OVER_IMS_COUNT_INT = 7309 KEY_PREFIX + "sms_max_retry_over_ims_count_int"; 7310 7311 /** 7312 * Delay Timer Value in milliseconds 7313 * Retry SMS over IMS after this Timer expires 7314 */ 7315 public static final String KEY_SMS_OVER_IMS_SEND_RETRY_DELAY_MILLIS_INT = 7316 KEY_PREFIX + "sms_over_ims_send_retry_delay_millis_int"; 7317 7318 /** 7319 * TR1 Timer Value in milliseconds, 7320 * Waits for RP-Ack from network for MO SMS. 7321 */ 7322 public static final String KEY_SMS_TR1_TIMER_MILLIS_INT = 7323 KEY_PREFIX + "sms_tr1_timer_millis_int"; 7324 7325 /** 7326 * TR2 Timer Value in milliseconds, 7327 * Waits for RP-Ack from Transfer Layer for MT SMS. 7328 */ 7329 public static final String KEY_SMS_TR2_TIMER_MILLIS_INT = 7330 KEY_PREFIX + "sms_tr2_timer_millis_int"; 7331 7332 /** 7333 * SMS RP-Cause Values for which SMS should be retried over IMS 7334 * 7335 * <p>Possible values are, 7336 * {@link SmsManager#SMS_RP_CAUSE_UNALLOCATED_NUMBER} 7337 * {@link SmsManager#SMS_RP_CAUSE_OPERATOR_DETERMINED_BARRING} 7338 * {@link SmsManager#SMS_RP_CAUSE_CALL_BARRING} 7339 * {@link SmsManager#SMS_RP_CAUSE_RESERVED} 7340 * {@link SmsManager#SMS_RP_CAUSE_SHORT_MESSAGE_TRANSFER_REJECTED} 7341 * {@link SmsManager#SMS_RP_CAUSE_DESTINATION_OUT_OF_ORDER} 7342 * {@link SmsManager#SMS_RP_CAUSE_UNIDENTIFIED_SUBSCRIBER} 7343 * {@link SmsManager#SMS_RP_CAUSE_FACILITY_REJECTED} 7344 * {@link SmsManager#SMS_RP_CAUSE_UNKNOWN_SUBSCRIBER} 7345 * {@link SmsManager#SMS_RP_CAUSE_NETWORK_OUT_OF_ORDER} 7346 * {@link SmsManager#SMS_RP_CAUSE_TEMPORARY_FAILURE} 7347 * {@link SmsManager#SMS_RP_CAUSE_CONGESTION} 7348 * {@link SmsManager#SMS_RP_CAUSE_RESOURCES_UNAVAILABLE} 7349 * {@link SmsManager#SMS_RP_CAUSE_FACILITY_NOT_SUBSCRIBED} 7350 * {@link SmsManager#SMS_RP_CAUSE_FACILITY_NOT_IMPLEMENTED} 7351 * {@link SmsManager#SMS_RP_CAUSE_INVALID_MESSAGE_REFERENCE_VALUE} 7352 * {@link SmsManager#SMS_RP_CAUSE_SEMANTICALLY_INCORRECT_MESSAGE} 7353 * {@link SmsManager#SMS_RP_CAUSE_INVALID_MANDATORY_INFORMATION} 7354 * {@link SmsManager#SMS_RP_CAUSE_MESSAGE_TYPE_NON_EXISTENT} 7355 * {@link SmsManager#SMS_RP_CAUSE_MESSAGE_INCOMPATIBLE_WITH_PROTOCOL_STATE} 7356 * {@link SmsManager#SMS_RP_CAUSE_INFORMATION_ELEMENT_NON_EXISTENT} 7357 * {@link SmsManager#SMS_RP_CAUSE_PROTOCOL_ERROR} 7358 * {@link SmsManager#SMS_RP_CAUSE_INTERWORKING_UNSPECIFIED 7359 */ 7360 public static final String KEY_SMS_RP_CAUSE_VALUES_TO_RETRY_OVER_IMS_INT_ARRAY = 7361 KEY_PREFIX + "sms_rp_cause_values_to_retry_over_ims_int_array"; 7362 7363 /** 7364 * SMS RP-Cause Values for which Sending SMS should fallback 7365 */ 7366 public static final String KEY_SMS_RP_CAUSE_VALUES_TO_FALLBACK_INT_ARRAY = 7367 KEY_PREFIX + "sms_rp_cause_values_to_fallback_int_array"; 7368 getDefaults()7369 private static PersistableBundle getDefaults() { 7370 PersistableBundle defaults = new PersistableBundle(); 7371 defaults.putBoolean(KEY_SMS_OVER_IMS_SUPPORTED_BOOL, true); 7372 defaults.putBoolean(KEY_SMS_CSFB_RETRY_ON_FAILURE_BOOL, true); 7373 7374 defaults.putInt(KEY_SMS_OVER_IMS_FORMAT_INT, SMS_FORMAT_3GPP); 7375 7376 defaults.putInt(KEY_SMS_MAX_RETRY_COUNT_INT, 3); 7377 defaults.putInt(KEY_SMS_MAX_RETRY_OVER_IMS_COUNT_INT, 3); 7378 defaults.putInt(KEY_SMS_OVER_IMS_SEND_RETRY_DELAY_MILLIS_INT, 7379 2000); 7380 defaults.putInt(KEY_SMS_TR1_TIMER_MILLIS_INT, 130000); 7381 defaults.putInt(KEY_SMS_TR2_TIMER_MILLIS_INT, 15000); 7382 7383 defaults.putIntArray( 7384 KEY_SMS_RP_CAUSE_VALUES_TO_RETRY_OVER_IMS_INT_ARRAY, 7385 new int[] { 7386 SmsManager.SMS_RP_CAUSE_TEMPORARY_FAILURE 7387 }); 7388 defaults.putIntArray( 7389 KEY_SMS_RP_CAUSE_VALUES_TO_FALLBACK_INT_ARRAY, 7390 new int[] { 7391 SmsManager.SMS_RP_CAUSE_UNALLOCATED_NUMBER, 7392 SmsManager.SMS_RP_CAUSE_OPERATOR_DETERMINED_BARRING, 7393 SmsManager.SMS_RP_CAUSE_CALL_BARRING, 7394 SmsManager.SMS_RP_CAUSE_RESERVED, 7395 SmsManager.SMS_RP_CAUSE_SHORT_MESSAGE_TRANSFER_REJECTED, 7396 SmsManager.SMS_RP_CAUSE_DESTINATION_OUT_OF_ORDER, 7397 SmsManager.SMS_RP_CAUSE_UNIDENTIFIED_SUBSCRIBER, 7398 SmsManager.SMS_RP_CAUSE_FACILITY_REJECTED, 7399 SmsManager.SMS_RP_CAUSE_UNKNOWN_SUBSCRIBER, 7400 SmsManager.SMS_RP_CAUSE_NETWORK_OUT_OF_ORDER, 7401 SmsManager.SMS_RP_CAUSE_CONGESTION, 7402 SmsManager.SMS_RP_CAUSE_RESOURCES_UNAVAILABLE, 7403 SmsManager.SMS_RP_CAUSE_FACILITY_NOT_SUBSCRIBED, 7404 SmsManager.SMS_RP_CAUSE_FACILITY_NOT_IMPLEMENTED, 7405 SmsManager.SMS_RP_CAUSE_INVALID_MESSAGE_REFERENCE_VALUE, 7406 SmsManager.SMS_RP_CAUSE_SEMANTICALLY_INCORRECT_MESSAGE, 7407 SmsManager.SMS_RP_CAUSE_INVALID_MANDATORY_INFORMATION, 7408 SmsManager.SMS_RP_CAUSE_MESSAGE_TYPE_NON_EXISTENT, 7409 SmsManager.SMS_RP_CAUSE_MESSAGE_INCOMPATIBLE_WITH_PROTOCOL_STATE, 7410 SmsManager.SMS_RP_CAUSE_INFORMATION_ELEMENT_NON_EXISTENT, 7411 SmsManager.SMS_RP_CAUSE_PROTOCOL_ERROR, 7412 SmsManager.SMS_RP_CAUSE_INTERWORKING_UNSPECIFIED 7413 }); 7414 7415 defaults.putIntArray( 7416 KEY_SMS_OVER_IMS_SUPPORTED_RATS_INT_ARRAY, 7417 new int[] { 7418 AccessNetworkType.EUTRAN, 7419 AccessNetworkType.IWLAN 7420 }); 7421 7422 return defaults; 7423 } 7424 } 7425 7426 /** 7427 * IMS RTT configs. This groups the configs specific for text media, 7428 * RTT (Real Time Text). 7429 */ 7430 public static final class ImsRtt { ImsRtt()7431 private ImsRtt() {} 7432 7433 /** Prefix of all imsrtt.KEY_* constants. */ 7434 public static final String KEY_PREFIX = "imsrtt."; 7435 7436 /** 7437 * Flag specifying whether text media is allowed on default bearer. 7438 * 7439 * <p>If {@code true}: text media can be sent on default bearer. 7440 * {@code false} otherwise. 7441 */ 7442 public static final String KEY_TEXT_ON_DEFAULT_BEARER_SUPPORTED_BOOL = 7443 KEY_PREFIX + "text_on_default_bearer_supported_bool"; 7444 7445 /** 7446 * Flag specifying whether QoS preconditions are supported for text. 7447 * 7448 * <p>If {@code true}: QoS Preconditions are supported. 7449 * {@code false} otherwise. 7450 * <p>Reference: 3GPP TS 24.229 7451 */ 7452 public static final String KEY_TEXT_QOS_PRECONDITION_SUPPORTED_BOOL = 7453 KEY_PREFIX + "text_qos_precondition_supported_bool"; 7454 7455 /** 7456 * Specifies the AS (Application Specific) SDP modifier for text media. 7457 * 7458 * <p>Expressed in kilobits per second as per RFC 3556 Section 2. 7459 */ 7460 public static final String KEY_TEXT_AS_BANDWIDTH_KBPS_INT = 7461 KEY_PREFIX + "text_as_bandwidth_kbps_int"; 7462 7463 /** 7464 * Specifies the RS (RTCP bandwidth-Sender) SDP modifier for text media. 7465 * 7466 * <p>This indicates the RTCP bandwidth allocated to active data senders 7467 * for text media. 7468 * 7469 * <p>Expressed in bits per second as per RFC 3556 Section 2. 7470 */ 7471 public static final String KEY_TEXT_RS_BANDWIDTH_BPS_INT = 7472 KEY_PREFIX + "text_rs_bandwidth_bps_int"; 7473 7474 /** 7475 * Specifies the RR (RTCP bandwidth-Receiver) SDP modifier for 7476 * text media. 7477 * 7478 * <p>This indicates the RTCP bandwidth allocated to receivers 7479 * for text media. 7480 * 7481 * <p>Expressed in bits per second as per RFC 3556 Section 2. 7482 */ 7483 public static final String KEY_TEXT_RR_BANDWIDTH_BPS_INT = 7484 KEY_PREFIX + "text_rr_bandwidth_bps_int"; 7485 7486 /** 7487 * Specifies the Text Codec capability. 7488 * 7489 * <p>Possible keys in this bundle are, 7490 * <UL> 7491 * <LI>{@link #KEY_T140_PAYLOAD_TYPE_INT}</LI> 7492 * <LI>{@link #KEY_RED_PAYLOAD_TYPE_INT}</LI> 7493 * </UL> 7494 */ 7495 public static final String KEY_TEXT_CODEC_CAPABILITY_PAYLOAD_TYPES_BUNDLE = 7496 KEY_PREFIX + "text_codec_capability_payload_types_bundle"; 7497 7498 /** Integer representing payload type for T140 codec. 7499 * <p>Payload type is an integer in dynamic payload type range 96-127 7500 * as per RFC RFC 3551 Section 6. 7501 */ 7502 public static final String KEY_T140_PAYLOAD_TYPE_INT = 7503 KEY_PREFIX + "t140_payload_type_int"; 7504 7505 /** Integer representing payload type for RED/redundancy codec. 7506 * <p>Payload type is an integer in dynamic payload type range 96-127 7507 * as per RFC RFC 3551 Section 6. 7508 */ 7509 public static final String KEY_RED_PAYLOAD_TYPE_INT = 7510 KEY_PREFIX + "red_payload_type_int"; 7511 getDefaults()7512 private static PersistableBundle getDefaults() { 7513 PersistableBundle defaults = new PersistableBundle(); 7514 defaults.putBoolean(KEY_TEXT_ON_DEFAULT_BEARER_SUPPORTED_BOOL, false); 7515 defaults.putBoolean(KEY_TEXT_QOS_PRECONDITION_SUPPORTED_BOOL, true); 7516 7517 defaults.putInt(KEY_TEXT_AS_BANDWIDTH_KBPS_INT, 4); 7518 defaults.putInt(KEY_TEXT_RS_BANDWIDTH_BPS_INT, 100); 7519 defaults.putInt(KEY_TEXT_RR_BANDWIDTH_BPS_INT, 300); 7520 7521 PersistableBundle text_codec_capability_payload_types = new PersistableBundle(); 7522 7523 text_codec_capability_payload_types.putInt( 7524 KEY_RED_PAYLOAD_TYPE_INT, 7525 112); 7526 7527 text_codec_capability_payload_types.putInt( 7528 KEY_T140_PAYLOAD_TYPE_INT, 7529 111); 7530 7531 defaults.putPersistableBundle( 7532 KEY_TEXT_CODEC_CAPABILITY_PAYLOAD_TYPES_BUNDLE, 7533 text_codec_capability_payload_types); 7534 7535 return defaults; 7536 } 7537 } 7538 7539 /** 7540 * Emergency Call/E911. This groups the configs specific for emergency call 7541 * over IMS. 7542 * 7543 * <p> Reference: 3GPP 24.229, 3GPP 23.167 Annex H, 3GPP 24.301. 7544 */ 7545 public static final class ImsEmergency { ImsEmergency()7546 private ImsEmergency() {} 7547 7548 /** Prefix of all imsemergency.KEY_* constants. */ 7549 public static final String KEY_PREFIX = "imsemergency."; 7550 7551 /** 7552 * Flag specifying whether UE would retry E911 call on 7553 * IMS PDN if emergency PDN setup failed. 7554 * 7555 * <p>If {@code true}: Allow UE to retry emergency call on 7556 * IMS PDN if emergency PDN setup failed.{@code false} otherwise. 7557 */ 7558 public static final String KEY_RETRY_EMERGENCY_ON_IMS_PDN_BOOL = 7559 KEY_PREFIX + "retry_emergency_on_ims_pdn_bool"; 7560 7561 /** 7562 * Flag specifying whether UE should enter Emergency CallBack Mode(ECBM) 7563 * after E911 call is ended. 7564 * 7565 * <p>If {@code true}: Enter ECBM mode after E911 call is ended. 7566 * {@code false} otherwise. 7567 */ 7568 public static final String KEY_EMERGENCY_CALLBACK_MODE_SUPPORTED_BOOL = 7569 KEY_PREFIX + "emergency_callback_mode_supported_bool"; 7570 7571 /** 7572 * Flag specifying whether QoS preconditions are supported for emergency 7573 * call setup. 7574 * 7575 * <p>If {@code true}: QoS Preconditions are supported. 7576 * {@code false} otherwise. 7577 * 7578 * <p>Reference: 3GPP TS 24.229 7579 */ 7580 public static final String KEY_EMERGENCY_QOS_PRECONDITION_SUPPORTED_BOOL = 7581 KEY_PREFIX + "emergency_qos_precondition_supported_bool"; 7582 7583 /** 7584 * List of different RAT technologies on which emergency call using IMS 7585 * is supported. 7586 * 7587 * <p>Possible values are, 7588 * {@link AccessNetworkConstants.AccessNetworkType#NGRAN} 7589 * {@link AccessNetworkConstants.AccessNetworkType#EUTRAN} 7590 * {@link AccessNetworkConstants.AccessNetworkType#IWLAN} 7591 */ 7592 public static final String KEY_EMERGENCY_OVER_IMS_SUPPORTED_RATS_INT_ARRAY = 7593 KEY_PREFIX + "emergency_over_ims_supported_rats_int_array"; 7594 7595 /** 7596 * Specifies the maximum time from deciding that an emergency service is to 7597 * be established until completion of the emergency registration procedure. 7598 * Upon timer expiry, the UE considers the emergency REGISTER request or 7599 * the emergency call attempt as failed. 7600 */ 7601 public static final String KEY_EMERGENCY_REGISTRATION_TIMER_MILLIS_INT = 7602 KEY_PREFIX + "emergency_registration_timer_millis_int"; 7603 7604 /** 7605 * This setting will be specify the wait time for refreshing 7606 * geolocation information before dialing emergency call. 7607 */ 7608 public static final String KEY_REFRESH_GEOLOCATION_TIMEOUT_MILLIS_INT = 7609 KEY_PREFIX + "refresh_geolocation_timeout_millis_int"; 7610 7611 /** 7612 * List of 3GPP access network technologies where e911 over IMS is supported 7613 * in the home network and domestic 3rd-party networks. The order in the list represents 7614 * the preference. The domain selection service shall scan the network type in the order 7615 * of the preference. 7616 * 7617 * <p>Possible values are, 7618 * {@link AccessNetworkConstants.AccessNetworkType#NGRAN} 7619 * {@link AccessNetworkConstants.AccessNetworkType#EUTRAN} 7620 * 7621 * The default value for this key is 7622 * {{@link AccessNetworkConstants.AccessNetworkType#EUTRAN}, 7623 */ 7624 @FlaggedApi(Flags.FLAG_USE_OEM_DOMAIN_SELECTION_SERVICE) 7625 public static final String 7626 KEY_EMERGENCY_OVER_IMS_SUPPORTED_3GPP_NETWORK_TYPES_INT_ARRAY = KEY_PREFIX 7627 + "emergency_over_ims_supported_3gpp_network_types_int_array"; 7628 7629 /** 7630 * List of 3GPP access network technologies where e911 over IMS is supported 7631 * in the roaming network and non-domestic 3rd-party networks. The order in the list 7632 * represents the preference. The domain selection service shall scan the network type 7633 * in the order of the preference. 7634 * 7635 * <p>Possible values are, 7636 * {@link AccessNetworkConstants.AccessNetworkType#NGRAN} 7637 * {@link AccessNetworkConstants.AccessNetworkType#EUTRAN} 7638 * 7639 * The default value for this key is 7640 * {{@link AccessNetworkConstants.AccessNetworkType#EUTRAN}, 7641 */ 7642 @FlaggedApi(Flags.FLAG_USE_OEM_DOMAIN_SELECTION_SERVICE) 7643 public static final String 7644 KEY_EMERGENCY_OVER_IMS_ROAMING_SUPPORTED_3GPP_NETWORK_TYPES_INT_ARRAY = KEY_PREFIX 7645 + "emergency_over_ims_roaming_supported_3gpp_network_types_int_array"; 7646 7647 /** 7648 * List of CS access network technologies where circuit-switched emergency calls are 7649 * supported in the home network and domestic 3rd-party networks. The order in the list 7650 * represents the preference. The domain selection service shall scan the network type 7651 * in the order of the preference. 7652 * 7653 * <p>Possible values are, 7654 * {@link AccessNetworkConstants.AccessNetworkType#GERAN} 7655 * {@link AccessNetworkConstants.AccessNetworkType#UTRAN} 7656 * {@link AccessNetworkConstants.AccessNetworkType#CDMA2000} 7657 * 7658 * The default value for this key is 7659 * {{@link AccessNetworkConstants.AccessNetworkType#UTRAN}, 7660 * {@link AccessNetworkConstants.AccessNetworkType#GERAN}}. 7661 */ 7662 @FlaggedApi(Flags.FLAG_USE_OEM_DOMAIN_SELECTION_SERVICE) 7663 public static final String KEY_EMERGENCY_OVER_CS_SUPPORTED_ACCESS_NETWORK_TYPES_INT_ARRAY = 7664 KEY_PREFIX + "emergency_over_cs_supported_access_network_types_int_array"; 7665 7666 /** 7667 * List of CS access network technologies where circuit-switched emergency calls are 7668 * supported in the roaming network and non-domestic 3rd-party networks. The order 7669 * in the list represents the preference. The domain selection service shall scan 7670 * the network type in the order of the preference. 7671 * 7672 * <p>Possible values are, 7673 * {@link AccessNetworkConstants.AccessNetworkType#GERAN} 7674 * {@link AccessNetworkConstants.AccessNetworkType#UTRAN} 7675 * {@link AccessNetworkConstants.AccessNetworkType#CDMA2000} 7676 * 7677 * The default value for this key is 7678 * {{@link AccessNetworkConstants.AccessNetworkType#UTRAN}, 7679 * {@link AccessNetworkConstants.AccessNetworkType#GERAN}}. 7680 */ 7681 @FlaggedApi(Flags.FLAG_USE_OEM_DOMAIN_SELECTION_SERVICE) 7682 public static final String 7683 KEY_EMERGENCY_OVER_CS_ROAMING_SUPPORTED_ACCESS_NETWORK_TYPES_INT_ARRAY = KEY_PREFIX 7684 + "emergency_over_cs_roaming_supported_access_network_types_int_array"; 7685 7686 /** @hide */ 7687 @IntDef({ 7688 DOMAIN_CS, 7689 DOMAIN_PS_3GPP, 7690 DOMAIN_PS_NON_3GPP 7691 }) 7692 public @interface EmergencyDomain {} 7693 7694 /** 7695 * Circuit switched domain. 7696 */ 7697 @FlaggedApi(Flags.FLAG_USE_OEM_DOMAIN_SELECTION_SERVICE) 7698 public static final int DOMAIN_CS = 1; 7699 7700 /** 7701 * Packet switched domain over 3GPP networks. 7702 */ 7703 @FlaggedApi(Flags.FLAG_USE_OEM_DOMAIN_SELECTION_SERVICE) 7704 public static final int DOMAIN_PS_3GPP = 2; 7705 7706 /** 7707 * Packet switched domain over non-3GPP networks such as Wi-Fi. 7708 */ 7709 @FlaggedApi(Flags.FLAG_USE_OEM_DOMAIN_SELECTION_SERVICE) 7710 public static final int DOMAIN_PS_NON_3GPP = 3; 7711 7712 /** 7713 * Specifies the emergency call domain preference for the home network. 7714 * The domain selection service shall choose the domain in the order 7715 * for attempting the emergency call 7716 * 7717 * <p>Possible values are, 7718 * {@link #DOMAIN_CS} 7719 * {@link #DOMAIN_PS_3GPP} 7720 * {@link #DOMAIN_PS_NON_3GPP}. 7721 * 7722 * The default value for this key is 7723 * {{@link #DOMAIN_PS_3GPP}, 7724 * {@link #DOMAIN_CS}, 7725 * {@link #DOMAIN_PS_NON_3GPP}}. 7726 */ 7727 @FlaggedApi(Flags.FLAG_USE_OEM_DOMAIN_SELECTION_SERVICE) 7728 public static final String KEY_EMERGENCY_DOMAIN_PREFERENCE_INT_ARRAY = 7729 KEY_PREFIX + "emergency_domain_preference_int_array"; 7730 7731 /** 7732 * Specifies the emergency call domain preference for the roaming network. 7733 * The domain selection service shall choose the domain in the order 7734 * for attempting the emergency call. 7735 * 7736 * <p>Possible values are, 7737 * {@link #DOMAIN_CS} 7738 * {@link #DOMAIN_PS_3GPP} 7739 * {@link #DOMAIN_PS_NON_3GPP}. 7740 * 7741 * The default value for this key is 7742 * {{@link #DOMAIN_PS_3GPP}, 7743 * {@link #DOMAIN_CS}, 7744 * {@link #DOMAIN_PS_NON_3GPP}}. 7745 */ 7746 @FlaggedApi(Flags.FLAG_USE_OEM_DOMAIN_SELECTION_SERVICE) 7747 public static final String KEY_EMERGENCY_DOMAIN_PREFERENCE_ROAMING_INT_ARRAY = 7748 KEY_PREFIX + "emergency_domain_preference_roaming_int_array"; 7749 7750 /** 7751 * Specifies whether the emergency call shall be preferred over IMS or not 7752 * irrespective of IMS registration status. 7753 * If the value of the config is {@code true} then emergency calls shall prefer IMS 7754 * when device is combined-attached in LTE network and IMS is not registered. 7755 * If the value of the config is {@code false} then emergency calls use CS domain 7756 * in the same scenario. 7757 * 7758 * The default value for this key is {@code false}. 7759 */ 7760 @FlaggedApi(Flags.FLAG_USE_OEM_DOMAIN_SELECTION_SERVICE) 7761 public static final String KEY_PREFER_IMS_EMERGENCY_WHEN_VOICE_CALLS_ON_CS_BOOL = 7762 KEY_PREFIX + "prefer_ims_emergency_when_voice_calls_on_cs_bool"; 7763 7764 /** @hide */ 7765 @IntDef({ 7766 VOWIFI_REQUIRES_NONE, 7767 VOWIFI_REQUIRES_SETTING_ENABLED, 7768 VOWIFI_REQUIRES_VALID_EID, 7769 }) 7770 public @interface VoWiFiRequires {} 7771 7772 /** 7773 * Default value. 7774 * If {@link ImsWfc#KEY_EMERGENCY_CALL_OVER_EMERGENCY_PDN_BOOL} is {@code true}, 7775 * VoWi-Fi emergency call shall be attempted if Wi-Fi network is connected. 7776 * Otherwise, it shall be attempted if IMS is registered over Wi-Fi. 7777 */ 7778 @FlaggedApi(Flags.FLAG_USE_OEM_DOMAIN_SELECTION_SERVICE) 7779 public static final int VOWIFI_REQUIRES_NONE = 0; 7780 7781 /** 7782 * VoWi-Fi emergency call shall be attempted on IMS over Wi-Fi if Wi-Fi network is connected 7783 * and Wi-Fi calling setting is enabled. This value is applicable if the value of 7784 * {@link ImsWfc#KEY_EMERGENCY_CALL_OVER_EMERGENCY_PDN_BOOL} is {@code true}. 7785 */ 7786 @FlaggedApi(Flags.FLAG_USE_OEM_DOMAIN_SELECTION_SERVICE) 7787 public static final int VOWIFI_REQUIRES_SETTING_ENABLED = 1; 7788 7789 /** 7790 * VoWi-Fi emergency call shall be attempted on IMS over Wi-Fi if Wi-Fi network is connected 7791 * and Wi-Fi calling is activated successfully. The device shall have the valid 7792 * Entitlement ID if the user activates VoWi-Fi emergency calling successfully. 7793 * This value is applicable if the value of 7794 * {@link ImsWfc#KEY_EMERGENCY_CALL_OVER_EMERGENCY_PDN_BOOL} is {@code true}. 7795 */ 7796 @FlaggedApi(Flags.FLAG_USE_OEM_DOMAIN_SELECTION_SERVICE) 7797 public static final int VOWIFI_REQUIRES_VALID_EID = 2; 7798 7799 /** 7800 * Specifies the condition when emergency call shall be attempted on IMS over Wi-Fi. 7801 * 7802 * <p>Possible values are, 7803 * {@link #VOWIFI_REQUIRES_NONE} 7804 * {@link #VOWIFI_REQUIRES_SETTING_ENABLED} 7805 * {@link #VOWIFI_REQUIRES_VALID_EID} 7806 * 7807 * The default value for this key is {@link #VOWIFI_REQUIRES_NONE}. 7808 */ 7809 @FlaggedApi(Flags.FLAG_USE_OEM_DOMAIN_SELECTION_SERVICE) 7810 public static final String KEY_EMERGENCY_VOWIFI_REQUIRES_CONDITION_INT = 7811 KEY_PREFIX + "emergency_vowifi_requires_condition_int"; 7812 7813 /** 7814 * Specifies maximum number of emergency call retries over Wi-Fi. 7815 * This is valid only when {@link #DOMAIN_PS_NON_3GPP} is included in 7816 * {@link #KEY_EMERGENCY_DOMAIN_PREFERENCE_INT_ARRAY} or 7817 * {@link #KEY_EMERGENCY_DOMAIN_PREFERENCE_ROAMING_INT_ARRAY}. 7818 * 7819 * The default value for this key is 1. 7820 */ 7821 @FlaggedApi(Flags.FLAG_USE_OEM_DOMAIN_SELECTION_SERVICE) 7822 public static final String KEY_MAXIMUM_NUMBER_OF_EMERGENCY_TRIES_OVER_VOWIFI_INT = 7823 KEY_PREFIX + "maximum_number_of_emergency_tries_over_vowifi_int"; 7824 7825 /** 7826 * Emergency scan timer to wait for scan results from radio before attempting the call 7827 * over Wi-Fi. On timer expiry, if emergency call on Wi-Fi is allowed and possible, 7828 * telephony shall cancel the scan and place the call on Wi-Fi. If emergency call on Wi-Fi 7829 * is not possible, then domain selection continues to wait for the scan result from the 7830 * radio. If an emergency scan result is received before the timer expires, the timer shall 7831 * be stopped and no dialing over Wi-Fi will be tried. If this value is set to 0, then 7832 * the timer is never started and domain selection waits for the scan result from the radio. 7833 * 7834 * The default value for the timer is 10 seconds. 7835 */ 7836 @FlaggedApi(Flags.FLAG_USE_OEM_DOMAIN_SELECTION_SERVICE) 7837 public static final String KEY_EMERGENCY_SCAN_TIMER_SEC_INT = 7838 KEY_PREFIX + "emergency_scan_timer_sec_int"; 7839 7840 /** 7841 * The timer to wait for the call completion on the cellular network before attempting the 7842 * call over Wi-Fi. On timer expiry, if emergency call on Wi-Fi is allowed and possible, 7843 * telephony shall cancel the scan on the cellular network and place the call on Wi-Fi. 7844 * If dialing over cellular network is ongoing when timer expires, dialing over Wi-Fi 7845 * will be requested only when the ongoing dialing fails. If emergency call on Wi-Fi is not 7846 * possible, then domain selection continues to try dialing from the radio and the timer 7847 * remains expired. Later when calling over Wi-Fi is possible and dialing over cellular 7848 * networks fails, calling over Wi-Fi will be requested. The timer shall be restarted from 7849 * initial state if calling over Wi-Fi fails. 7850 * If this value is set to {@link #REDIAL_TIMER_DISABLED}, then the timer will never be 7851 * started. 7852 * 7853 * The default value for the timer is {@link #REDIAL_TIMER_DISABLED}. 7854 */ 7855 @FlaggedApi(Flags.FLAG_USE_OEM_DOMAIN_SELECTION_SERVICE) 7856 public static final String KEY_MAXIMUM_CELLULAR_SEARCH_TIMER_SEC_INT = 7857 KEY_PREFIX + "maximum_cellular_search_timer_sec_int"; 7858 7859 /** @hide */ 7860 @IntDef(prefix = "SCAN_TYPE_", 7861 value = { 7862 SCAN_TYPE_NO_PREFERENCE, 7863 SCAN_TYPE_FULL_SERVICE, 7864 SCAN_TYPE_FULL_SERVICE_FOLLOWED_BY_LIMITED_SERVICE}) 7865 public @interface EmergencyScanType {} 7866 7867 /** 7868 * No specific preference given to the modem. Modem can return an emergency 7869 * capable network either with limited service or full service. 7870 */ 7871 @FlaggedApi(Flags.FLAG_USE_OEM_DOMAIN_SELECTION_SERVICE) 7872 public static final int SCAN_TYPE_NO_PREFERENCE = 0; 7873 7874 /** 7875 * Modem will attempt to camp on a network with full service only. 7876 */ 7877 @FlaggedApi(Flags.FLAG_USE_OEM_DOMAIN_SELECTION_SERVICE) 7878 public static final int SCAN_TYPE_FULL_SERVICE = 1; 7879 7880 /** 7881 * Telephony shall attempt full service scan first. 7882 * If a full service network is not found, telephony shall attempt a limited service scan. 7883 */ 7884 @FlaggedApi(Flags.FLAG_USE_OEM_DOMAIN_SELECTION_SERVICE) 7885 public static final int SCAN_TYPE_FULL_SERVICE_FOLLOWED_BY_LIMITED_SERVICE = 2; 7886 7887 /** 7888 * Specifies the preferred emergency network scanning type. 7889 * 7890 * <p>Possible values are, 7891 * {@link #SCAN_TYPE_NO_PREFERENCE} 7892 * {@link #SCAN_TYPE_FULL_SERVICE} 7893 * {@link #SCAN_TYPE_FULL_SERVICE_FOLLOWED_BY_LIMITED_SERVICE} 7894 * 7895 * The default value for this key is {@link #SCAN_TYPE_NO_PREFERENCE}. 7896 */ 7897 @FlaggedApi(Flags.FLAG_USE_OEM_DOMAIN_SELECTION_SERVICE) 7898 public static final String KEY_EMERGENCY_NETWORK_SCAN_TYPE_INT = 7899 KEY_PREFIX + "emergency_network_scan_type_int"; 7900 7901 /** 7902 * Specifies the time by which a call should be set up on the current network 7903 * once the call is routed on the network. If the call cannot be set up by timer expiry, 7904 * call shall be re-dialed on the next available network. 7905 * If this value is set to 0, the timer shall be disabled. 7906 * 7907 * The default value for this key is 0. 7908 */ 7909 @FlaggedApi(Flags.FLAG_USE_OEM_DOMAIN_SELECTION_SERVICE) 7910 public static final String KEY_EMERGENCY_CALL_SETUP_TIMER_ON_CURRENT_NETWORK_SEC_INT = 7911 KEY_PREFIX + "emergency_call_setup_timer_on_current_network_sec_int"; 7912 7913 /** 7914 * Specifies if emergency call shall be attempted on IMS only when IMS is registered. 7915 * This is applicable only for the case PS is in service. 7916 * 7917 * The default value for this key is {@code false}. 7918 */ 7919 @FlaggedApi(Flags.FLAG_USE_OEM_DOMAIN_SELECTION_SERVICE) 7920 public static final String KEY_EMERGENCY_REQUIRES_IMS_REGISTRATION_BOOL = 7921 KEY_PREFIX + "emergency_requires_ims_registration_bool"; 7922 7923 /** 7924 * Specifies if LTE is preferred when re-scanning networks after the failure of dialing 7925 * over NR. If not, CS will be preferred. 7926 * 7927 * The default value for this key is {@code false}. 7928 */ 7929 @FlaggedApi(Flags.FLAG_USE_OEM_DOMAIN_SELECTION_SERVICE) 7930 public static final String KEY_EMERGENCY_LTE_PREFERRED_AFTER_NR_FAILED_BOOL = 7931 KEY_PREFIX + "emergency_lte_preferred_after_nr_failed_bool"; 7932 7933 /** 7934 * Specifies the numbers to be dialed over CDMA network in case of dialing over CS network. 7935 * 7936 * The default value for this key is an empty string array. 7937 */ 7938 @FlaggedApi(Flags.FLAG_USE_OEM_DOMAIN_SELECTION_SERVICE) 7939 public static final String KEY_EMERGENCY_CDMA_PREFERRED_NUMBERS_STRING_ARRAY = 7940 KEY_PREFIX + "emergency_cdma_preferred_numbers_string_array"; 7941 7942 /** 7943 * Specifies if emergency call shall be attempted on IMS over cellular network 7944 * only when VoLTE is enabled. 7945 * 7946 * The default value for this key is {@code false}. 7947 */ 7948 @FlaggedApi(Flags.FLAG_USE_OEM_DOMAIN_SELECTION_SERVICE) 7949 public static final String KEY_EMERGENCY_REQUIRES_VOLTE_ENABLED_BOOL = 7950 KEY_PREFIX + "emergency_requires_volte_enabled_bool"; 7951 7952 /** 7953 * This values indicates that the cross SIM redialing timer and maximum celluar search 7954 * timer shall be disabled. 7955 * 7956 * @see #KEY_CROSS_STACK_REDIAL_TIMER_SEC_INT 7957 * @see #KEY_QUICK_CROSS_STACK_REDIAL_TIMER_SEC_INT 7958 * @see #KEY_MAXIMUM_CELLULAR_SEARCH_TIMER_SEC_INT 7959 */ 7960 @FlaggedApi(Flags.FLAG_USE_OEM_DOMAIN_SELECTION_SERVICE) 7961 public static final int REDIAL_TIMER_DISABLED = 0; 7962 7963 /** 7964 * A timer to guard the max attempting time on current SIM slot so that modem will not 7965 * stuck in current SIM slot for long time. On timer expiry, if emergency call on the 7966 * other SIM slot is preferable, telephony shall cancel the emergency call and place the 7967 * call on the other SIM slot. If this value is set to {@link #REDIAL_TIMER_DISABLED}, then 7968 * the timer will never be started and domain selection continues on the current SIM slot. 7969 * This value should be greater than the value of {@link #KEY_EMERGENCY_SCAN_TIMER_SEC_INT}. 7970 * 7971 * The default value for the timer is 120 seconds. 7972 */ 7973 @FlaggedApi(Flags.FLAG_USE_OEM_DOMAIN_SELECTION_SERVICE) 7974 public static final String KEY_CROSS_STACK_REDIAL_TIMER_SEC_INT = 7975 KEY_PREFIX + "cross_stack_redial_timer_sec_int"; 7976 7977 /** 7978 * If emergency calls are only allowed with normal-registered service and UE should get 7979 * normal service in a short time with acquired band information, telephony 7980 * expects dialing emergency call will be completed in a short time. 7981 * If dialing is not completed with in a certain timeout, telephony shall place on 7982 * another SIM slot. If this value is set to {@link #REDIAL_TIMER_DISABLED}, then the timer 7983 * will never be started and domain selection continues on the current SIM slot. 7984 * The timer shall be started for the first trial of each subscription and shall be ignored 7985 * in the roaming networks and non-domestic networks. 7986 * 7987 * The default value for the timer is {@link #REDIAL_TIMER_DISABLED}. 7988 */ 7989 @FlaggedApi(Flags.FLAG_USE_OEM_DOMAIN_SELECTION_SERVICE) 7990 public static final String KEY_QUICK_CROSS_STACK_REDIAL_TIMER_SEC_INT = 7991 KEY_PREFIX + "quick_cross_stack_redial_timer_sec_int"; 7992 7993 /** 7994 * Indicates whether the quick cross stack redial timer will be triggered only when 7995 * the device is registered to the network. 7996 * 7997 * The default value is {@code true}. 7998 */ 7999 @FlaggedApi(Flags.FLAG_USE_OEM_DOMAIN_SELECTION_SERVICE) 8000 public static final String KEY_START_QUICK_CROSS_STACK_REDIAL_TIMER_WHEN_REGISTERED_BOOL = 8001 KEY_PREFIX + "start_quick_cross_stack_redial_timer_when_registered_bool"; 8002 8003 /** 8004 * Indicates whether limited service only scanning will be requested after VoLTE fails. 8005 * This value is applicable if the value of 8006 * {@link #KEY_EMERGENCY_NETWORK_SCAN_TYPE_INT} is any of {@link #SCAN_TYPE_NO_PREFERENCE} 8007 * or {@link #SCAN_TYPE_FULL_SERVICE_FOLLOWED_BY_LIMITED_SERVICE}. 8008 * 8009 * The default value is {@code false}. 8010 */ 8011 @FlaggedApi(Flags.FLAG_USE_OEM_DOMAIN_SELECTION_SERVICE) 8012 public static final String 8013 KEY_SCAN_LIMITED_SERVICE_AFTER_VOLTE_FAILURE_BOOL = 8014 KEY_PREFIX + "scan_limited_service_after_volte_failure_bool"; 8015 8016 /** 8017 * This config defines {@link ImsReasonInfo} code with which the emergency call 8018 * shall be retried. 8019 * 8020 * <p> 8021 * If the reason code is one of the following, the emergency call shall be retried 8022 * regardless of this configuration. 8023 * <ul> 8024 * <li>{@link ImsReasonInfo#CODE_LOCAL_CALL_CS_RETRY_REQUIRED}</li> 8025 * <li>{@link ImsReasonInfo#CODE_LOCAL_NOT_REGISTERED}</li> 8026 * <li>{@link ImsReasonInfo#CODE_SIP_ALTERNATE_EMERGENCY_CALL}</li> 8027 * </ul> 8028 * <p> 8029 * 8030 * This config is empty by default. 8031 * 8032 * @hide 8033 */ 8034 public static final String KEY_IMS_REASONINFO_CODE_TO_RETRY_EMERGENCY_INT_ARRAY = 8035 KEY_PREFIX + "ims_reasoninfo_code_to_retry_emergency_int_array"; 8036 getDefaults()8037 private static PersistableBundle getDefaults() { 8038 PersistableBundle defaults = new PersistableBundle(); 8039 defaults.putBoolean(KEY_RETRY_EMERGENCY_ON_IMS_PDN_BOOL, false); 8040 defaults.putBoolean(KEY_EMERGENCY_CALLBACK_MODE_SUPPORTED_BOOL, false); 8041 defaults.putBoolean(KEY_EMERGENCY_QOS_PRECONDITION_SUPPORTED_BOOL, true); 8042 8043 defaults.putIntArray( 8044 KEY_EMERGENCY_OVER_IMS_SUPPORTED_RATS_INT_ARRAY, 8045 new int[] { 8046 AccessNetworkType.EUTRAN, 8047 AccessNetworkType.IWLAN 8048 }); 8049 8050 defaults.putInt(KEY_EMERGENCY_REGISTRATION_TIMER_MILLIS_INT, 10000); 8051 defaults.putInt(KEY_REFRESH_GEOLOCATION_TIMEOUT_MILLIS_INT, 5000); 8052 8053 defaults.putIntArray( 8054 KEY_EMERGENCY_OVER_IMS_SUPPORTED_3GPP_NETWORK_TYPES_INT_ARRAY, 8055 new int[] { 8056 AccessNetworkType.EUTRAN, 8057 }); 8058 8059 defaults.putIntArray( 8060 KEY_EMERGENCY_OVER_IMS_ROAMING_SUPPORTED_3GPP_NETWORK_TYPES_INT_ARRAY, 8061 new int[] { 8062 AccessNetworkType.EUTRAN, 8063 }); 8064 8065 defaults.putIntArray( 8066 KEY_EMERGENCY_OVER_CS_SUPPORTED_ACCESS_NETWORK_TYPES_INT_ARRAY, 8067 new int[] { 8068 AccessNetworkType.UTRAN, 8069 AccessNetworkType.GERAN, 8070 }); 8071 8072 defaults.putIntArray( 8073 KEY_EMERGENCY_OVER_CS_ROAMING_SUPPORTED_ACCESS_NETWORK_TYPES_INT_ARRAY, 8074 new int[] { 8075 AccessNetworkType.UTRAN, 8076 AccessNetworkType.GERAN, 8077 }); 8078 8079 defaults.putIntArray(KEY_EMERGENCY_DOMAIN_PREFERENCE_INT_ARRAY, 8080 new int[] { 8081 DOMAIN_PS_3GPP, 8082 DOMAIN_CS, 8083 DOMAIN_PS_NON_3GPP 8084 }); 8085 defaults.putIntArray(KEY_EMERGENCY_DOMAIN_PREFERENCE_ROAMING_INT_ARRAY, 8086 new int[] { 8087 DOMAIN_PS_3GPP, 8088 DOMAIN_CS, 8089 DOMAIN_PS_NON_3GPP 8090 }); 8091 8092 defaults.putBoolean(KEY_PREFER_IMS_EMERGENCY_WHEN_VOICE_CALLS_ON_CS_BOOL, false); 8093 defaults.putInt(KEY_EMERGENCY_VOWIFI_REQUIRES_CONDITION_INT, VOWIFI_REQUIRES_NONE); 8094 defaults.putInt(KEY_MAXIMUM_NUMBER_OF_EMERGENCY_TRIES_OVER_VOWIFI_INT, 1); 8095 defaults.putInt(KEY_EMERGENCY_SCAN_TIMER_SEC_INT, 10); 8096 defaults.putInt(KEY_MAXIMUM_CELLULAR_SEARCH_TIMER_SEC_INT, REDIAL_TIMER_DISABLED); 8097 defaults.putInt(KEY_EMERGENCY_NETWORK_SCAN_TYPE_INT, SCAN_TYPE_NO_PREFERENCE); 8098 defaults.putInt(KEY_EMERGENCY_CALL_SETUP_TIMER_ON_CURRENT_NETWORK_SEC_INT, 0); 8099 defaults.putBoolean(KEY_EMERGENCY_REQUIRES_IMS_REGISTRATION_BOOL, false); 8100 defaults.putBoolean(KEY_EMERGENCY_LTE_PREFERRED_AFTER_NR_FAILED_BOOL, false); 8101 defaults.putBoolean(KEY_EMERGENCY_REQUIRES_VOLTE_ENABLED_BOOL, false); 8102 defaults.putStringArray(KEY_EMERGENCY_CDMA_PREFERRED_NUMBERS_STRING_ARRAY, 8103 new String[0]); 8104 defaults.putInt(KEY_CROSS_STACK_REDIAL_TIMER_SEC_INT, 120); 8105 defaults.putInt(KEY_QUICK_CROSS_STACK_REDIAL_TIMER_SEC_INT, REDIAL_TIMER_DISABLED); 8106 defaults.putBoolean(KEY_START_QUICK_CROSS_STACK_REDIAL_TIMER_WHEN_REGISTERED_BOOL, 8107 true); 8108 defaults.putBoolean(KEY_SCAN_LIMITED_SERVICE_AFTER_VOLTE_FAILURE_BOOL, false); 8109 defaults.putIntArray(KEY_IMS_REASONINFO_CODE_TO_RETRY_EMERGENCY_INT_ARRAY, 8110 new int[0]); 8111 8112 return defaults; 8113 } 8114 } 8115 8116 /** 8117 * IMS Video Telephony configs. This groups the configs that are specific for video call. 8118 */ 8119 public static final class ImsVt { ImsVt()8120 private ImsVt() {} 8121 8122 /** Prefix of all imsvt.KEY_* constants. */ 8123 public static final String KEY_PREFIX = "imsvt."; 8124 8125 /** 8126 * Flag specifying whether video media is allowed on default bearer. 8127 * 8128 * <p>If {@code true}: video media can be sent on default bearer. 8129 * {@code false} otherwise. 8130 */ 8131 public static final String KEY_VIDEO_ON_DEFAULT_BEARER_SUPPORTED_BOOL = 8132 KEY_PREFIX + "video_on_default_bearer_supported_bool"; 8133 8134 /** 8135 * Specifies the timeout value for no video RTP packets received. 8136 * <p>On timer expiry, VT call can downgrade to voice call or end 8137 * or continue depending on the operator requirement. 8138 */ 8139 public static final String KEY_VIDEO_RTP_INACTIVITY_TIMER_MILLIS_INT = 8140 KEY_PREFIX + "video_rtp_inactivity_timer_millis_int"; 8141 8142 /** 8143 * Specifies the timeout value for no video RTCP packets received. 8144 * <p>On timer expiry, VT call can downgrade to voice call or end 8145 * or continue depending on the operator requirement. 8146 */ 8147 public static final String KEY_VIDEO_RTCP_INACTIVITY_TIMER_MILLIS_INT = 8148 KEY_PREFIX + "video_rtcp_inactivity_timer_millis_int"; 8149 8150 /** 8151 * Specifies the AS (Application Specific) SDP modifier for video media. 8152 * 8153 * <p>Expressed in kilobits per second as per RFC 3556 Section 2. 8154 */ 8155 public static final String KEY_VIDEO_AS_BANDWIDTH_KBPS_INT = 8156 KEY_PREFIX + "video_as_bandwidth_kbps_int"; 8157 8158 /** 8159 * Specifies the RS (RTCP bandwidth-Sender) SDP modifier for video media. 8160 * 8161 * <p>This indicates the RTCP bandwidth allocated to active data senders 8162 * for video media. 8163 * 8164 * <p>Expressed in bits per second as per RFC 3556 Section 2. 8165 */ 8166 public static final String KEY_VIDEO_RS_BANDWIDTH_BPS_INT = 8167 KEY_PREFIX + "video_rs_bandwidth_bps_int"; 8168 8169 /** 8170 * Specifies the RR (RTCP bandwidth-Receiver) SDP modifier 8171 * for video media. 8172 * 8173 * <p>This indicates the RTCP bandwidth allocated to receivers 8174 * for video media. 8175 * 8176 * <p>Expressed in bits per second as per RFC 3556 Section 2. 8177 */ 8178 public static final String KEY_VIDEO_RR_BANDWIDTH_BPS_INT = 8179 KEY_PREFIX + "video_rr_bandwidth_bps_int"; 8180 8181 /** 8182 * Specifies the differentiated services code point (DSCP) value 8183 * for Video RTP. 8184 * 8185 * <p>Reference: RFC 4594 Section 1.4.4 8186 */ 8187 public static final String KEY_VIDEO_RTP_DSCP_INT = 8188 KEY_PREFIX + "video_rtp_dscp_int"; 8189 8190 /** 8191 * Flag specifying whether QoS preconditions are supported for Video. 8192 * 8193 * <p>If {@code true}: QoS Preconditions are supported. 8194 * {@code false} otherwise. 8195 * <p>Reference: 3GPP TS 24.229 8196 */ 8197 public static final String KEY_VIDEO_QOS_PRECONDITION_SUPPORTED_BOOL = 8198 KEY_PREFIX + "video_qos_precondition_supported_bool"; 8199 8200 /** 8201 * Specifies the Video Codec capability. This contains a list of 8202 * payload types representing different Video codec instances. 8203 8204 * <p>Possible key(s) in this bundle are, 8205 * <UL> 8206 * <LI>{@link #KEY_H264_PAYLOAD_TYPE_INT_ARRAY}</LI> 8207 * </UL> 8208 * <p>To specify payload descriptions for each of the payload types, see 8209 * <UL> 8210 * <LI>{@link #KEY_H264_PAYLOAD_DESCRIPTION_BUNDLE}</LI> 8211 * </UL> 8212 */ 8213 public static final String KEY_VIDEO_CODEC_CAPABILITY_PAYLOAD_TYPES_BUNDLE = 8214 KEY_PREFIX + "video_codec_capability_payload_types_bundle"; 8215 8216 /** 8217 * A list of integers representing the different payload types 8218 * in H264 video codec in priority order from highest to lowest. 8219 * <p>Payload type is an integer in dynamic payload type range 96-127 8220 * as per RFC RFC 3551 Section 6. 8221 */ 8222 public static final String KEY_H264_PAYLOAD_TYPE_INT_ARRAY = 8223 KEY_PREFIX + "h264_payload_type_int_array"; 8224 8225 /** 8226 * Specifies the codec attributes of different payload types 8227 * representing H264 video codec instances. 8228 * 8229 * <p> The allowed payload types of the video codecs are specified in, 8230 * {@link #KEY_H264_PAYLOAD_TYPE_INT_ARRAY}. 8231 * 8232 * <p>Codec attributes allowed as part of H264 codec bundle are, 8233 * <UL> 8234 * <LI>{@link #KEY_H264_VIDEO_CODEC_ATTRIBUTE_PROFILE_LEVEL_ID_STRING}</LI> 8235 * <LI>{@link #KEY_VIDEO_CODEC_ATTRIBUTE_PACKETIZATION_MODE_INT}</LI> 8236 * <LI>{@link #KEY_VIDEO_CODEC_ATTRIBUTE_FRAME_RATE_INT}</LI> 8237 * <LI>{@link #KEY_VIDEO_CODEC_ATTRIBUTE_RESOLUTION_INT_ARRAY}</LI> 8238 * </UL> 8239 * 8240 * <p>If this bundle is not configured and 8241 * {@link #KEY_H264_PAYLOAD_TYPE_INT_ARRAY} is not empty, 8242 * then default values as in the individual codec attributes to 8243 * be used for that payload type. 8244 * <p>If the codec attributes in a particular codec instance bundle 8245 * is not valid together, then that codec instance should not be used. 8246 */ 8247 public static final String KEY_H264_PAYLOAD_DESCRIPTION_BUNDLE = 8248 KEY_PREFIX + "h264_payload_description_bundle"; 8249 8250 /** 8251 * Specifies the packetization mode of the video codec. 8252 * 8253 * <p>Permissible values are 0 (Single NAL unit mode), 8254 * 1(Non-interleaved mode). 8255 * 8256 * <p>If this key is not specified or invalid, then the following 8257 * default value to be used. 8258 * <UL> 8259 * <LI>For H264: 1(Non-interleaved mode)</LI> 8260 * <UL> 8261 * 8262 * <p>Reference: RFC 6184 Section 5.4 8263 */ 8264 public static final String KEY_VIDEO_CODEC_ATTRIBUTE_PACKETIZATION_MODE_INT = 8265 KEY_PREFIX + "video_codec_attribute_packetization_mode_int"; 8266 8267 /** 8268 * Specifies the maximum frame rate the offerer wishes to receive. 8269 * This gives the maximum video frame rate in frames/sec. 8270 * 8271 * <p>If this key is not specified or invalid, then the following 8272 * default value to be used. 8273 * <UL> 8274 * <LI>For H264: 15 </LI> 8275 * <UL> 8276 * <p>Reference: RFC 4566 Section 6, 3GPP 26.114 Section 6.2.3.2 8277 */ 8278 public static final String KEY_VIDEO_CODEC_ATTRIBUTE_FRAME_RATE_INT = 8279 KEY_PREFIX + "video_codec_attribute_frame_rate_int"; 8280 8281 /** 8282 * Specifies the maximum resolution allowed for the video codec 8283 * instance. 8284 * 8285 * <p>This is specified as an array of two integers, with 8286 * index 0 : Width, 8287 * index 1 : Height 8288 * 8289 * <p>If this key is not specified or invalid as per the video codec, 8290 * then the following default value to be used. 8291 * <UL> 8292 * <LI>For H264: 240 (WIDTH) x 320 (HEIGHT) </LI> 8293 * <UL> 8294 * <p>Reference: RFC 4566 Section 6, 3GPP 26.114 Section 6.2.3.2 8295 * 8296 */ 8297 public static final String KEY_VIDEO_CODEC_ATTRIBUTE_RESOLUTION_INT_ARRAY = 8298 KEY_PREFIX + "video_codec_attribute_resolution_int_array"; 8299 8300 /** 8301 * Specifies the profile level id of the H264 video codec. 8302 * This value is represented as "profile-level-id" in the SDP offer 8303 * as per RFC 6184 Section 8.1. 8304 * 8305 * <p>If this key is not specified or invalid as per the video codec, 8306 * then default value of 42C00C to be used. 8307 * 8308 * <p>Reference: RFC 6184 Section 8.1, ITU-T Recommendation H.264 8309 */ 8310 public static final String KEY_H264_VIDEO_CODEC_ATTRIBUTE_PROFILE_LEVEL_ID_STRING = 8311 KEY_PREFIX + "h264_video_codec_attribute_profile_level_id_string"; 8312 getDefaults()8313 private static PersistableBundle getDefaults() { 8314 PersistableBundle defaults = new PersistableBundle(); 8315 defaults.putBoolean(KEY_VIDEO_ON_DEFAULT_BEARER_SUPPORTED_BOOL, false); 8316 defaults.putBoolean(KEY_VIDEO_QOS_PRECONDITION_SUPPORTED_BOOL, true); 8317 8318 defaults.putInt(KEY_VIDEO_RTP_INACTIVITY_TIMER_MILLIS_INT, 0); 8319 defaults.putInt(KEY_VIDEO_RTCP_INACTIVITY_TIMER_MILLIS_INT, 0); 8320 8321 defaults.putInt(KEY_VIDEO_AS_BANDWIDTH_KBPS_INT, 960); 8322 defaults.putInt(KEY_VIDEO_RS_BANDWIDTH_BPS_INT, 8000); 8323 defaults.putInt(KEY_VIDEO_RR_BANDWIDTH_BPS_INT, 6000); 8324 defaults.putInt(KEY_VIDEO_RTP_DSCP_INT, 40); 8325 8326 PersistableBundle video_codec_capability_payload_types = new PersistableBundle(); 8327 8328 video_codec_capability_payload_types.putIntArray( 8329 KEY_H264_PAYLOAD_TYPE_INT_ARRAY, 8330 new int[] { 99, 100 }); 8331 8332 defaults.putPersistableBundle( 8333 KEY_VIDEO_CODEC_CAPABILITY_PAYLOAD_TYPES_BUNDLE, 8334 video_codec_capability_payload_types); 8335 8336 PersistableBundle all_h264_payload_bundles = new PersistableBundle(); 8337 8338 /* Setting default codec attributes for individual H264 profiles*/ 8339 8340 /* For H264 profile-level-id: 42C00C, frame rate:15, Resolution: 240x320 */ 8341 PersistableBundle h264_bundle_instance1 = new PersistableBundle(); 8342 all_h264_payload_bundles.putPersistableBundle( 8343 "99", /* Same value of payload type as in KEY_H264_PAYLOAD_TYPE_INT_ARRAY */ 8344 h264_bundle_instance1); 8345 8346 /* For H264 profile-level-id: 42C00C, packetisation mode:0, frame rate:15, 8347 * Resolution: 240x320 */ 8348 PersistableBundle h264_bundle_instance2 = new PersistableBundle(); 8349 h264_bundle_instance2.putInt( 8350 KEY_VIDEO_CODEC_ATTRIBUTE_PACKETIZATION_MODE_INT, 8351 0); 8352 8353 all_h264_payload_bundles.putPersistableBundle( 8354 "100", /* Same value of payload type as in KEY_H264_PAYLOAD_TYPE_INT_ARRAY */ 8355 h264_bundle_instance2); 8356 8357 defaults.putPersistableBundle( 8358 KEY_H264_PAYLOAD_DESCRIPTION_BUNDLE, 8359 all_h264_payload_bundles); 8360 8361 return defaults; 8362 } 8363 } 8364 8365 /** 8366 * WiFi Calling. This groups the configs specific for Voice over WiFi/WFC call. 8367 */ 8368 public static final class ImsWfc { ImsWfc()8369 private ImsWfc() {} 8370 8371 /** Prefix of all imswfc.KEY_* constants. */ 8372 public static final String KEY_PREFIX = "imswfc."; 8373 8374 /** 8375 * List of MDNs for which Geo-location PIDF XML with country info 8376 * needs to included for normal calls involving short code. 8377 */ 8378 public static final String KEY_PIDF_SHORT_CODE_STRING_ARRAY = 8379 KEY_PREFIX + "pidf_short_code_string_array"; 8380 8381 /** 8382 * Flag specifying whether emergency call over VoWiFi is requested over 8383 * emergency PDN or IMS PDN. 8384 * 8385 * <p>If {@code false}: E911 call uses IMS PDN for E911 call over VoWiFi. 8386 * If {@code true}: E911 call uses Emergency PDN for E911 call over VoWiFi. 8387 */ 8388 public static final String KEY_EMERGENCY_CALL_OVER_EMERGENCY_PDN_BOOL = 8389 KEY_PREFIX + "emergency_call_over_emergency_pdn_bool"; 8390 getDefaults()8391 private static PersistableBundle getDefaults() { 8392 PersistableBundle defaults = new PersistableBundle(); 8393 8394 defaults.putBoolean(KEY_EMERGENCY_CALL_OVER_EMERGENCY_PDN_BOOL, false); 8395 defaults.putStringArray(KEY_PIDF_SHORT_CODE_STRING_ARRAY, new String[0]); 8396 8397 return defaults; 8398 } 8399 } 8400 8401 /** 8402 * IMS supplementary services configs. This groups the configs required for 8403 * supplementary services (SS) like XCAP over UT, 8404 * Unstructured Supplementary Service Data(USSD). 8405 */ 8406 public static final class ImsSs { ImsSs()8407 private ImsSs() {} 8408 8409 /** Prefix of all imsss.KEY_* constants. */ 8410 public static final String KEY_PREFIX = "imsss."; 8411 8412 /** 8413 * Flag that controls whether XCAP over UT status need to be 8414 * dependent on IMS registration. 8415 * 8416 * <p>If {@code true}: XCAP over UT status need to be 8417 * dependent on IMS registration. 8418 * {@code false} otherwise. 8419 */ 8420 public static final String KEY_UT_REQUIRES_IMS_REGISTRATION_BOOL = 8421 KEY_PREFIX + "ut_requires_ims_registration_bool"; 8422 8423 /** 8424 * Flag that controls whether XCAP over UT is supported 8425 * when on roaming network. 8426 * 8427 * <p>If {@code true}: XCAP over UT is supported when on 8428 * roaming network. 8429 * {@code false} otherwise. 8430 */ 8431 public static final String KEY_UT_SUPPORTED_WHEN_ROAMING_BOOL = 8432 KEY_PREFIX + "ut_supported_when_roaming_bool"; 8433 8434 /** 8435 * Flag that controls whether Circuit Switched Fallback (CSFB) 8436 * option is available when XCAP over UT fails. 8437 * 8438 * <p>If {@code false}: XCAP over UT only with no CSFB option. 8439 * If XCAP over UT fails, return error. 8440 * if {@code true}, Use CSFB if XCAP over UT fails. 8441 */ 8442 public static final String KEY_USE_CSFB_ON_XCAP_OVER_UT_FAILURE_BOOL = 8443 KEY_PREFIX + "use_csfb_on_xcap_over_ut_failure_bool"; 8444 8445 /** 8446 * Flag that controls whether XCAP over UT is enabled or not 8447 * when PS data is turned off. 8448 * 8449 * <p>If {@code true}: XCAP over UT is enabled when PS data is off. 8450 * {@code false}: Otherwise. 8451 * 8452 * Reference: IR.92 Section 5.5.1 8453 */ 8454 public static final String KEY_UT_SUPPORTED_WHEN_PS_DATA_OFF_BOOL = 8455 KEY_PREFIX + "ut_supported_when_ps_data_off_bool"; 8456 8457 /** 8458 * Flag that controls whether network initiated USSD over IMS is 8459 * supported by the UE. 8460 * 8461 * <p>If {@code true}: Support Available.{@code false}: Otherwise. 8462 * Reference: 3GPP 24.390. 8463 */ 8464 public static final String KEY_NETWORK_INITIATED_USSD_OVER_IMS_SUPPORTED_BOOL = 8465 KEY_PREFIX + "network_initiated_ussd_over_ims_supported_bool"; 8466 8467 /** 8468 * Specifies the 'XCAP over UT' IP Type when device is 8469 * on Home Network. 8470 * 8471 * <p>Possible values are, 8472 * {@link ApnSetting#PROTOCOL_IPV4V6}, 8473 * {@link ApnSetting#PROTOCOL_IP}, 8474 * {@link ApnSetting#PROTOCOL_IPV6} 8475 * 8476 * If key is invalid or not configured, the default value 8477 * {@link ApnSetting#PROTOCOL_IPV4V6} will apply. 8478 */ 8479 public static final String KEY_UT_IPTYPE_HOME_INT = 8480 KEY_PREFIX + "ut_iptype_home_int"; 8481 8482 /** 8483 * Specifies the 'XCAP over UT' IP Type when device is roaming. 8484 * 8485 * <p>Possible values are, 8486 * {@link ApnSetting#PROTOCOL_IPV4V6}, 8487 * {@link ApnSetting#PROTOCOL_IP}, 8488 * {@link ApnSetting#PROTOCOL_IPV6} 8489 8490 * If key is invalid or not configured, the default value 8491 * {@link ApnSetting#PROTOCOL_IPV4V6} will apply. 8492 */ 8493 public static final String KEY_UT_IPTYPE_ROAMING_INT = 8494 KEY_PREFIX + "ut_iptype_roaming_int"; 8495 8496 /** 8497 * Specifies the XCAP Application Server fully qualified domain name (FQDN). 8498 * <p> Reference: 24.623 Section 5.2.3. 8499 */ 8500 public static final String KEY_UT_AS_SERVER_FQDN_STRING = 8501 KEY_PREFIX + "ut_as_server_fqdn_string"; 8502 8503 /** 8504 * Specifies the XCAP Application Server Remote port. 8505 * As XCAP is a usage of HTTP, the default value is same as HTTP, i.e. 80. 8506 */ 8507 public static final String KEY_UT_AS_SERVER_PORT_INT = 8508 KEY_PREFIX + "ut_as_server_port_int"; 8509 8510 /** 8511 * Specifies the preferred transport to be used for XCAP over UT. 8512 * 8513 * <p>Possible values are, 8514 * {@link Ims#PREFERRED_TRANSPORT_TCP}, 8515 * {@link Ims#PREFERRED_TRANSPORT_TLS} 8516 * 8517 * <p>If key is invalid or not configured, the default value 8518 * {@link Ims#PREFERRED_TRANSPORT_TCP} will apply. 8519 */ 8520 public static final String KEY_UT_TRANSPORT_TYPE_INT = 8521 KEY_PREFIX + "ut_transport_type_int"; 8522 8523 /** @hide */ 8524 @IntDef({ 8525 SUPPLEMENTARY_SERVICE_CW, 8526 SUPPLEMENTARY_SERVICE_CF_ALL, 8527 SUPPLEMENTARY_SERVICE_CF_CFU, 8528 SUPPLEMENTARY_SERVICE_CF_ALL_CONDITONAL_FORWARDING, 8529 SUPPLEMENTARY_SERVICE_CF_CFB, 8530 SUPPLEMENTARY_SERVICE_CF_CFNRY, 8531 SUPPLEMENTARY_SERVICE_CF_CFNRC, 8532 SUPPLEMENTARY_SERVICE_CF_CFNL, 8533 SUPPLEMENTARY_SERVICE_IDENTIFICATION_OIP, 8534 SUPPLEMENTARY_SERVICE_IDENTIFICATION_TIP, 8535 SUPPLEMENTARY_SERVICE_IDENTIFICATION_OIR, 8536 SUPPLEMENTARY_SERVICE_IDENTIFICATION_TIR, 8537 SUPPLEMENTARY_SERVICE_CB_ALL, 8538 SUPPLEMENTARY_SERVICE_CB_OBS, 8539 SUPPLEMENTARY_SERVICE_CB_BAOC, 8540 SUPPLEMENTARY_SERVICE_CB_BOIC, 8541 SUPPLEMENTARY_SERVICE_CB_BOIC_EXHC, 8542 SUPPLEMENTARY_SERVICE_CB_IBS, 8543 SUPPLEMENTARY_SERVICE_CB_BAIC, 8544 SUPPLEMENTARY_SERVICE_CB_BIC_ROAM, 8545 SUPPLEMENTARY_SERVICE_CB_ACR, 8546 SUPPLEMENTARY_SERVICE_CB_BIL 8547 }) 8548 public @interface SsType {} 8549 8550 /** Communication Waiting (CW) support as per 3GPP 24.615. */ 8551 public static final int SUPPLEMENTARY_SERVICE_CW = 0; 8552 8553 /** 8554 * Call Diversion - All call forwarding support as per 3GPP 24.604. 8555 * 8556 * <p>This value is associated with MMI support service code 002 8557 * as indicated in TS 22.030 Table B.1 8558 */ 8559 public static final int SUPPLEMENTARY_SERVICE_CF_ALL = 1; 8560 8561 /** 8562 * Call Diversion - All Unconditional call forwarding support (CFU) as 8563 * per 3GPP 24.604. 8564 * 8565 * <p>This value is associated with MMI support service code 21 8566 * as indicated in TS 22.030 Table B.1 8567 */ 8568 public static final int SUPPLEMENTARY_SERVICE_CF_CFU = 2; 8569 8570 /** 8571 * Call Diversion - All conditional call forwarding support as 8572 * per 3GPP 24.604. 8573 * 8574 * <p>This value is associated with MMI support service code 004 8575 * as indicated in TS 22.030 Table B.1 8576 */ 8577 public static final int SUPPLEMENTARY_SERVICE_CF_ALL_CONDITONAL_FORWARDING = 3; 8578 8579 /** 8580 * Call Diversion - Call forwarding on mobile subscriber busy (CFB) 8581 * support as per 3GPP 24.604. 8582 * 8583 * <p>This value is associated with MMI support service code 67 8584 * as indicated in TS 22.030 Table B.1 8585 */ 8586 public static final int SUPPLEMENTARY_SERVICE_CF_CFB = 4; 8587 8588 /** 8589 * Call Diversion - Call forwarding on no reply (CFNRY) 8590 * support as per 3GPP 24.604. 8591 * 8592 * <p>This value is associated with MMI support service code 61 8593 * as indicated in TS 22.030 Table B.1 8594 */ 8595 public static final int SUPPLEMENTARY_SERVICE_CF_CFNRY = 5; 8596 8597 /** 8598 * Call Diversion - Call forwarding on mobile subscriber not reachable 8599 * (CFNRC) support as per 3GPP 24.604. 8600 * 8601 * <p>This value is associated with MMI support service code 62 8602 * as indicated in TS 22.030 Table B.1 8603 */ 8604 public static final int SUPPLEMENTARY_SERVICE_CF_CFNRC = 6; 8605 8606 /** 8607 * Communication Forwarding on Not Logged-in (CFNL). 8608 * support as per 3GPP 24.604 Section 4.2.1.7 8609 * 8610 */ 8611 public static final int SUPPLEMENTARY_SERVICE_CF_CFNL = 7; 8612 8613 /** 8614 * Originating Identification Presentation (OIP) support 8615 * as per 3GPP 24.607. 8616 * 8617 */ 8618 public static final int SUPPLEMENTARY_SERVICE_IDENTIFICATION_OIP = 8; 8619 8620 /** 8621 * Terminating Identification Presentation (TIP) support 8622 * as per 3GPP 24.608. 8623 */ 8624 public static final int SUPPLEMENTARY_SERVICE_IDENTIFICATION_TIP = 9; 8625 8626 /** 8627 * Originating Identification Restriction (OIR) support 8628 * as per 3GPP 24.607. 8629 */ 8630 public static final int SUPPLEMENTARY_SERVICE_IDENTIFICATION_OIR = 10; 8631 8632 /** 8633 * Terminating Identification Restriction (TIR) support 8634 * as per 3GPP 24.608. 8635 */ 8636 public static final int SUPPLEMENTARY_SERVICE_IDENTIFICATION_TIR = 11; 8637 8638 /** 8639 * Call Barring - All barring services, 8640 * This value is associated with MMI support service code 330 8641 * as indicated TS 22.030 Table B.1 8642 */ 8643 public static final int SUPPLEMENTARY_SERVICE_CB_ALL = 12; 8644 8645 /** 8646 * Call Barring - Outgoing barring services, 8647 * This value is associated with MMI support service code 333 8648 * as indicated TS 22.030 Table B.1 8649 */ 8650 public static final int SUPPLEMENTARY_SERVICE_CB_OBS = 13; 8651 8652 /** 8653 * Call Barring - Barring of all outgoing calls (BAOC) 8654 * support as per 3GPP TS 24.611. 8655 * 8656 * <p>This value is associated with MMI support service code 33 8657 * as indicated TS 22.030 Table B.1 8658 */ 8659 public static final int SUPPLEMENTARY_SERVICE_CB_BAOC = 14; 8660 8661 /** 8662 * Call Barring - Barring of outgoing international calls 8663 * (BOIC) support as per 3GPP TS 24.611. 8664 * 8665 * <p>This value is associated with MMI support service code 331 8666 * as indicated TS 22.030 Table B.1 8667 */ 8668 public static final int SUPPLEMENTARY_SERVICE_CB_BOIC = 15; 8669 8670 /** 8671 * Call Barring - Barring of outgoing international calls 8672 * except those directed to the home PLMN country (BOIC-EXHC) support 8673 * as per 3GPP TS 24.611. 8674 * 8675 * <p>This value is associated with MMI support service code 332 8676 * as indicated TS 22.030 Table B.1 8677 */ 8678 public static final int SUPPLEMENTARY_SERVICE_CB_BOIC_EXHC = 16; 8679 8680 /** 8681 * Call Barring - Incoming barring services, 8682 * This value is associated with MMI support service code 353 8683 * as indicated TS 22.030 Table B.1 8684 */ 8685 public static final int SUPPLEMENTARY_SERVICE_CB_IBS = 17; 8686 8687 /** 8688 * Call Barring - Barring of all incoming calls (BAIC) 8689 * support as per 3GPP TS 24.611. 8690 * 8691 * <p>This value is associated with MMI support service code 35 8692 * as indicated TS 22.030 Table B.1 8693 */ 8694 public static final int SUPPLEMENTARY_SERVICE_CB_BAIC = 18; 8695 8696 /** 8697 * Call Barring - Barring of incoming calls when roaming outside 8698 * the home PLMN country (BIC-ROAM) support as per 3GPP TS 24.611. 8699 * 8700 * <p>This value is associated with MMI support service code 351 8701 * as indicated TS 22.030 Table B.1 8702 */ 8703 public static final int SUPPLEMENTARY_SERVICE_CB_BIC_ROAM = 19; 8704 8705 /** 8706 * Call Barring - Anonymous Call Rejection/Barring of all anonymous 8707 * incoming number support as per 3GPP TS 24.611. 8708 */ 8709 public static final int SUPPLEMENTARY_SERVICE_CB_ACR = 20; 8710 8711 /** 8712 * Call Barring - Barring list of incoming numbers support. 8713 */ 8714 public static final int SUPPLEMENTARY_SERVICE_CB_BIL = 21; 8715 8716 /** 8717 * List of UT services that are Server based. 8718 * 8719 * <p>Possible values are, 8720 * <UL> 8721 * <LI>{@link #SUPPLEMENTARY_SERVICE_CW}</LI> 8722 * <LI>{@link #SUPPLEMENTARY_SERVICE_CF_ALL}</LI> 8723 * <LI>{@link #SUPPLEMENTARY_SERVICE_CF_CFU}</LI> 8724 * <LI>{@link #SUPPLEMENTARY_SERVICE_CF_ALL_CONDITONAL_FORWARDING}</LI> 8725 * <LI>{@link #SUPPLEMENTARY_SERVICE_CF_CFB}</LI> 8726 * <LI>{@link #SUPPLEMENTARY_SERVICE_CF_CFNRY}</LI> 8727 * <LI>{@link #SUPPLEMENTARY_SERVICE_CF_CFNRC}</LI> 8728 * <LI>{@link #SUPPLEMENTARY_SERVICE_CF_CFNL}</LI> 8729 * <LI>{@link #SUPPLEMENTARY_SERVICE_IDENTIFICATION_OIP}</LI> 8730 * <LI>{@link #SUPPLEMENTARY_SERVICE_IDENTIFICATION_TIP}</LI> 8731 * <LI>{@link #SUPPLEMENTARY_SERVICE_IDENTIFICATION_OIR}</LI> 8732 * <LI>{@link #SUPPLEMENTARY_SERVICE_IDENTIFICATION_TIR}</LI> 8733 * <LI>{@link #SUPPLEMENTARY_SERVICE_CB_ALL}</LI> 8734 * <LI>{@link #SUPPLEMENTARY_SERVICE_CB_OBS}</LI> 8735 * <LI>{@link #SUPPLEMENTARY_SERVICE_CB_IBS}</LI> 8736 * <LI>{@link #SUPPLEMENTARY_SERVICE_CB_BAOC}</LI> 8737 * <LI>{@link #SUPPLEMENTARY_SERVICE_CB_BOIC}</LI> 8738 * <LI>{@link #SUPPLEMENTARY_SERVICE_CB_BOIC_EXHC}</LI> 8739 * <LI>{@link #SUPPLEMENTARY_SERVICE_CB_BAIC}</LI> 8740 * <LI>{@link #SUPPLEMENTARY_SERVICE_CB_BIC_ROAM}</LI> 8741 * <LI>{@link #SUPPLEMENTARY_SERVICE_CB_ACR}</LI> 8742 * <LI>{@link #SUPPLEMENTARY_SERVICE_CB_BIL}</LI> 8743 * </UL> 8744 */ 8745 public static final String KEY_UT_SERVER_BASED_SERVICES_INT_ARRAY = 8746 KEY_PREFIX + "ut_server_based_services_int_array"; 8747 8748 /** 8749 * List of UT services that are terminal based. 8750 * 8751 * By default, all services are server based and defined in 8752 * {@link #KEY_UT_SERVER_BASED_SERVICES_INT_ARRAY}. 8753 * Adding here will override that service setting to terminal based. 8754 * 8755 * <p>Possible values are, 8756 * <UL> 8757 * <LI>{@link #SUPPLEMENTARY_SERVICE_CW}</LI> 8758 * <LI>{@link #SUPPLEMENTARY_SERVICE_IDENTIFICATION_OIR}</LI> 8759 * </UL> 8760 */ 8761 public static final String KEY_UT_TERMINAL_BASED_SERVICES_INT_ARRAY = 8762 KEY_PREFIX + "ut_terminal_based_services_int_array"; 8763 8764 /** 8765 * List of different RAT technologies on which XCAP over UT 8766 * is supported. 8767 * 8768 * <p>Possible values are, 8769 * {@link AccessNetworkConstants.AccessNetworkType#NGRAN} 8770 * {@link AccessNetworkConstants.AccessNetworkType#EUTRAN} 8771 * {@link AccessNetworkConstants.AccessNetworkType#IWLAN} 8772 * {@link AccessNetworkConstants.AccessNetworkType#UTRAN} 8773 * {@link AccessNetworkConstants.AccessNetworkType#GERAN} 8774 */ 8775 public static final String KEY_XCAP_OVER_UT_SUPPORTED_RATS_INT_ARRAY = 8776 KEY_PREFIX + "xcap_over_ut_supported_rats_int_array"; 8777 8778 /** @hide */ 8779 @IntDef({ 8780 CALL_WAITING_SYNC_NONE, 8781 CALL_WAITING_SYNC_USER_CHANGE, 8782 CALL_WAITING_SYNC_FIRST_POWER_UP, 8783 CALL_WAITING_SYNC_FIRST_CHANGE, 8784 CALL_WAITING_SYNC_IMS_ONLY 8785 }) 8786 public @interface CwSyncType {} 8787 8788 /** 8789 * Do not synchronize the user's call waiting setting with the network. Call waiting is 8790 * always enabled on the carrier network and the user setting for call waiting is applied 8791 * on the terminal side. If the user disables call waiting, the call will be rejected on 8792 * the terminal. 8793 */ 8794 public static final int CALL_WAITING_SYNC_NONE = 0; 8795 8796 /** 8797 * The change of user’s setting is always passed to the carrier network 8798 * and then synchronized to the terminal based call waiting solution over IMS. 8799 * If changing the service over the carrier network is not successful, 8800 * the setting over IMS shall not be changed. 8801 */ 8802 public static final int CALL_WAITING_SYNC_USER_CHANGE = 1; 8803 8804 /** 8805 * Activate call waiting on the carrier network when the device boots or a subscription 8806 * using this carrier is loaded. Call waiting is always considered enabled on the carrier 8807 * network and the user setting for call waiting is applied on the terminal side only. If 8808 * the user disables call waiting, the call will be rejected on the terminal. 8809 * The mismatch between CS calls and IMS calls can happen when the network based call 8810 * waiting service is in disabled state in the legacy 3G/2G networks while it's enabled 8811 * in the terminal side. 8812 */ 8813 public static final int CALL_WAITING_SYNC_FIRST_POWER_UP = 2; 8814 8815 /** 8816 * Activate call waiting on the carrier network when the user enables call waiting the 8817 * first time. Call waiting is then always considered enabled on the carrier network. If 8818 * the user disables call waiting, the setting will only be applied to the terminal based 8819 * call waiting service and the call will be rejected on the terminal. 8820 * The mismatch between CS calls and IMS calls can happen when the network based call 8821 * waiting service is in disabled state in the legacy 3G/2G networks while it's enabled 8822 * in the terminal side. However, if the user retrieves the setting again when the device 8823 * is in the legacy 3G/2G networks, the correct state will be shown to the user. 8824 */ 8825 public static final int CALL_WAITING_SYNC_FIRST_CHANGE = 3; 8826 8827 /** 8828 * Do not synchronize the call waiting service state between the carrier network and 8829 * the terminal based IMS call waiting service. If the user changes the call waiting setting 8830 * when IMS is registered, the change will only be applied to the terminal based call 8831 * waiting service. If IMS is not registered when call waiting is changed, synchronize this 8832 * setting with the carrier network. 8833 */ 8834 public static final int CALL_WAITING_SYNC_IMS_ONLY = 4; 8835 8836 /** @hide */ 8837 public static final int CALL_WAITING_SYNC_MAX = CALL_WAITING_SYNC_IMS_ONLY; 8838 8839 /** 8840 * Flag indicating the way to synchronize the setting between CS and IMS. 8841 * 8842 * <p>Possible values are, 8843 * {@link #CALL_WAITING_SYNC_NONE}, 8844 * {@link #CALL_WAITING_SYNC_USER_CHANGE}, 8845 * {@link #CALL_WAITING_SYNC_FIRST_POWER_UP}, 8846 * {@link #CALL_WAITING_SYNC_FIRST_CHANGE}, 8847 * {@link #CALL_WAITING_SYNC_IMS_ONLY}. 8848 * 8849 * This configuration is valid only when 8850 * {@link #KEY_UT_TERMINAL_BASED_SERVICES_INT_ARRAY} includes 8851 * {@link #SUPPLEMENTARY_SERVICE_CW}. 8852 * 8853 * <p>If key is invalid or not configured, the default value 8854 * {@link #CALL_WAITING_SYNC_FIRST_CHANGE} will apply. 8855 */ 8856 public static final String KEY_TERMINAL_BASED_CALL_WAITING_SYNC_TYPE_INT = 8857 KEY_PREFIX + "terminal_based_call_waiting_sync_type_int"; 8858 8859 /** 8860 * Flag indicating whether the user setting for terminal-based call waiting 8861 * is enabled by default or not. 8862 * This configuration is valid only when 8863 * {@link #KEY_UT_TERMINAL_BASED_SERVICES_INT_ARRAY} includes 8864 * {@link #SUPPLEMENTARY_SERVICE_CW}. 8865 * 8866 * The default value for this key is {@code true}. 8867 */ 8868 public static final String KEY_TERMINAL_BASED_CALL_WAITING_DEFAULT_ENABLED_BOOL = 8869 KEY_PREFIX + "terminal_based_call_waiting_default_enabled_bool"; 8870 getDefaults()8871 private static PersistableBundle getDefaults() { 8872 PersistableBundle defaults = new PersistableBundle(); 8873 defaults.putBoolean(KEY_UT_REQUIRES_IMS_REGISTRATION_BOOL, false); 8874 defaults.putBoolean(KEY_USE_CSFB_ON_XCAP_OVER_UT_FAILURE_BOOL, true); 8875 defaults.putBoolean(KEY_UT_SUPPORTED_WHEN_PS_DATA_OFF_BOOL, true); 8876 defaults.putBoolean(KEY_NETWORK_INITIATED_USSD_OVER_IMS_SUPPORTED_BOOL, true); 8877 defaults.putBoolean(KEY_UT_SUPPORTED_WHEN_ROAMING_BOOL, true); 8878 8879 defaults.putInt(KEY_UT_IPTYPE_HOME_INT, ApnSetting.PROTOCOL_IPV4V6); 8880 defaults.putInt(KEY_UT_IPTYPE_ROAMING_INT, ApnSetting.PROTOCOL_IPV4V6); 8881 defaults.putInt(KEY_UT_AS_SERVER_PORT_INT, 80); 8882 defaults.putInt(KEY_UT_TRANSPORT_TYPE_INT, Ims.PREFERRED_TRANSPORT_TCP); 8883 8884 defaults.putIntArray( 8885 KEY_UT_SERVER_BASED_SERVICES_INT_ARRAY, 8886 new int[] { 8887 SUPPLEMENTARY_SERVICE_CW, 8888 SUPPLEMENTARY_SERVICE_CF_ALL, 8889 SUPPLEMENTARY_SERVICE_CF_CFU, 8890 SUPPLEMENTARY_SERVICE_CF_CFNRC, 8891 SUPPLEMENTARY_SERVICE_CF_ALL_CONDITONAL_FORWARDING, 8892 SUPPLEMENTARY_SERVICE_CF_CFB, 8893 SUPPLEMENTARY_SERVICE_CF_CFNRY, 8894 SUPPLEMENTARY_SERVICE_CF_CFNL, 8895 SUPPLEMENTARY_SERVICE_IDENTIFICATION_OIP, 8896 SUPPLEMENTARY_SERVICE_IDENTIFICATION_TIP, 8897 SUPPLEMENTARY_SERVICE_IDENTIFICATION_OIR, 8898 SUPPLEMENTARY_SERVICE_IDENTIFICATION_TIR, 8899 SUPPLEMENTARY_SERVICE_CB_ALL, 8900 SUPPLEMENTARY_SERVICE_CB_OBS, 8901 SUPPLEMENTARY_SERVICE_CB_IBS, 8902 SUPPLEMENTARY_SERVICE_CB_BAOC, 8903 SUPPLEMENTARY_SERVICE_CB_BOIC, 8904 SUPPLEMENTARY_SERVICE_CB_BOIC_EXHC, 8905 SUPPLEMENTARY_SERVICE_CB_BAIC, 8906 SUPPLEMENTARY_SERVICE_CB_BIC_ROAM, 8907 SUPPLEMENTARY_SERVICE_CB_ACR, 8908 SUPPLEMENTARY_SERVICE_CB_BIL 8909 }); 8910 defaults.putIntArray(KEY_UT_TERMINAL_BASED_SERVICES_INT_ARRAY, new int[0]); 8911 8912 defaults.putIntArray( 8913 KEY_XCAP_OVER_UT_SUPPORTED_RATS_INT_ARRAY, 8914 new int[] { 8915 AccessNetworkType.EUTRAN, 8916 AccessNetworkType.IWLAN, 8917 AccessNetworkType.NGRAN 8918 }); 8919 defaults.putString(KEY_UT_AS_SERVER_FQDN_STRING, ""); 8920 defaults.putBoolean(KEY_TERMINAL_BASED_CALL_WAITING_DEFAULT_ENABLED_BOOL, true); 8921 defaults.putInt(KEY_TERMINAL_BASED_CALL_WAITING_SYNC_TYPE_INT, 8922 CALL_WAITING_SYNC_FIRST_CHANGE); 8923 8924 return defaults; 8925 } 8926 } 8927 8928 /** 8929 * This groups the BSF (BootStrapping Function) related configs. 8930 * Reference: 3GPP TS 24.109. 8931 */ 8932 public static final class Bsf { Bsf()8933 private Bsf() {} 8934 8935 /** Prefix of all bsf.KEY_* constants. */ 8936 public static final String KEY_PREFIX = "bsf."; 8937 8938 /** Specifies the fully qualified domain name (FQDN) of BSF Server 8939 * as per 3GPP 24.109. 8940 */ 8941 public static final String KEY_BSF_SERVER_FQDN_STRING = 8942 KEY_PREFIX + "bsf_server_fqdn_string"; 8943 8944 /** 8945 * Specifies the port number of the BSF server as per 3GPP 24.109. 8946 * This is usually default port number of HTTP, i.e. 80. 8947 */ 8948 public static final String KEY_BSF_SERVER_PORT_INT = 8949 KEY_PREFIX + "bsf_server_port_int"; 8950 8951 /** 8952 * Specifies the transport type used in communication with 8953 * BSF server. 8954 * 8955 * <p>Possible values are, 8956 * {@link Ims#PREFERRED_TRANSPORT_TCP}, 8957 * {@link Ims#PREFERRED_TRANSPORT_TLS} 8958 * 8959 * <p>If key is invalid or not configured, the default value 8960 * {@link Ims#PREFERRED_TRANSPORT_TCP} will apply. 8961 */ 8962 public static final String KEY_BSF_TRANSPORT_TYPE_INT = 8963 KEY_PREFIX + "bsf_transport_type_int"; 8964 getDefaults()8965 private static PersistableBundle getDefaults() { 8966 PersistableBundle defaults = new PersistableBundle(); 8967 8968 defaults.putInt(KEY_BSF_SERVER_PORT_INT, 80); 8969 defaults.putInt(KEY_BSF_TRANSPORT_TYPE_INT, Ims.PREFERRED_TRANSPORT_TCP); 8970 defaults.putString(KEY_BSF_SERVER_FQDN_STRING, ""); 8971 8972 return defaults; 8973 } 8974 } 8975 8976 /** 8977 * Configs used for epdg tunnel bring up. 8978 * 8979 * @see <a href="https://tools.ietf.org/html/rfc7296">RFC 7296, Internet Key Exchange Protocol 8980 * Version 2 (IKEv2)</a> 8981 */ 8982 public static final class Iwlan { 8983 /** Prefix of all Epdg.KEY_* constants. */ 8984 public static final String KEY_PREFIX = "iwlan."; 8985 8986 /** 8987 * Time in seconds after which the child security association session is terminated if rekey 8988 * procedure is not successful. If not set or set to <= 0, the default value is 3600 8989 * seconds. 8990 */ 8991 public static final String KEY_CHILD_SA_REKEY_HARD_TIMER_SEC_INT = 8992 KEY_PREFIX + "child_sa_rekey_hard_timer_sec_int"; 8993 8994 /** 8995 * Time in seconds after which the child session rekey procedure is started. If not set or 8996 * set to <= 0, default value is 3000 seconds. 8997 */ 8998 public static final String KEY_CHILD_SA_REKEY_SOFT_TIMER_SEC_INT = 8999 KEY_PREFIX + "child_sa_rekey_soft_timer_sec_int"; 9000 9001 /** 9002 * Supported DH groups for IKE negotiation. Possible values are: 9003 * {@link android.net.ipsec.ike.SaProposal#DH_GROUP_NONE}, 9004 * {@link android.net.ipsec.ike.SaProposal#DH_GROUP_1024_BIT_MODP}, 9005 * {@link android.net.ipsec.ike.SaProposal#DH_GROUP_1536_BIT_MODP}, 9006 * {@link android.net.ipsec.ike.SaProposal#DH_GROUP_2048_BIT_MODP}, 9007 * {@link android.net.ipsec.ike.SaProposal#DH_GROUP_3072_BIT_MODP}, 9008 * {@link android.net.ipsec.ike.SaProposal#DH_GROUP_4096_BIT_MODP} 9009 */ 9010 public static final String KEY_DIFFIE_HELLMAN_GROUPS_INT_ARRAY = 9011 KEY_PREFIX + "diffie_hellman_groups_int_array"; 9012 9013 /** 9014 * Time in seconds after which a dead peer detection (DPD) request is sent. If not set or 9015 * set to <= 0, default value is 120 seconds. 9016 */ 9017 public static final String KEY_DPD_TIMER_SEC_INT = KEY_PREFIX + "dpd_timer_sec_int"; 9018 9019 /** 9020 * Method used to authenticate epdg server. Possible values are {@link 9021 * #AUTHENTICATION_METHOD_EAP_ONLY}, {@link #AUTHENTICATION_METHOD_CERT} 9022 */ 9023 public static final String KEY_EPDG_AUTHENTICATION_METHOD_INT = 9024 KEY_PREFIX + "epdg_authentication_method_int"; 9025 9026 /** 9027 * A priority list of ePDG addresses to be used. Possible values are {@link 9028 * #EPDG_ADDRESS_STATIC}, {@link #EPDG_ADDRESS_PLMN}, {@link #EPDG_ADDRESS_PCO}, {@link 9029 * #EPDG_ADDRESS_CELLULAR_LOC}, {@link #EPDG_ADDRESS_VISITED_COUNTRY} 9030 */ 9031 public static final String KEY_EPDG_ADDRESS_PRIORITY_INT_ARRAY = 9032 KEY_PREFIX + "epdg_address_priority_int_array"; 9033 9034 /** 9035 * A priority list of PLMN to be used in EPDG_ADDRESS_PLMN. Possible values are {@link 9036 * #EPDG_PLMN_RPLMN}, {@link #EPDG_PLMN_HPLMN}, {@link #EPDG_PLMN_EHPLMN_ALL}, {@link 9037 * #EPDG_PLMN_EHPLMN_FIRST} 9038 * 9039 * @hide 9040 */ 9041 public static final String KEY_EPDG_PLMN_PRIORITY_INT_ARRAY = 9042 KEY_PREFIX + "epdg_plmn_priority_int_array"; 9043 9044 /** Epdg static IP address or FQDN */ 9045 public static final String KEY_EPDG_STATIC_ADDRESS_STRING = 9046 KEY_PREFIX + "epdg_static_address_string"; 9047 9048 /** Epdg static IP address or FQDN for roaming */ 9049 public static final String KEY_EPDG_STATIC_ADDRESS_ROAMING_STRING = 9050 KEY_PREFIX + "epdg_static_address_roaming_string"; 9051 9052 /** 9053 * Enables the use of multiple IKE SA proposals, encompassing both carrier-preferred 9054 * ciphers and all supported ciphers from 3GPP TS 33.210 and RFC 8221, 9055 * as defined in RFC 7296. 9056 */ 9057 @FlaggedApi(Flags.FLAG_ENABLE_MULTIPLE_SA_PROPOSALS) 9058 public static final String KEY_SUPPORTS_IKE_SESSION_MULTIPLE_SA_PROPOSALS_BOOL = 9059 KEY_PREFIX + "supports_ike_session_multiple_sa_proposals_bool"; 9060 9061 /** 9062 * Enables the use of multiple Child SA proposals, encompassing both carrier-preferred 9063 * ciphers and all supported ciphers from 3GPP TS 33.210 and RFC 8221, 9064 * as defined in RFC 7296. 9065 */ 9066 @FlaggedApi(Flags.FLAG_ENABLE_MULTIPLE_SA_PROPOSALS) 9067 public static final String KEY_SUPPORTS_CHILD_SESSION_MULTIPLE_SA_PROPOSALS_BOOL = 9068 KEY_PREFIX + "supports_child_session_multiple_sa_proposals_bool"; 9069 9070 /** 9071 * List of supported key sizes for AES Cipher Block Chaining (CBC) encryption mode of child 9072 * session. Possible values are: 9073 * {@link android.net.ipsec.ike.SaProposal#KEY_LEN_UNUSED}, 9074 * {@link android.net.ipsec.ike.SaProposal#KEY_LEN_AES_128}, 9075 * {@link android.net.ipsec.ike.SaProposal#KEY_LEN_AES_192}, 9076 * {@link android.net.ipsec.ike.SaProposal#KEY_LEN_AES_256} 9077 */ 9078 public static final String KEY_CHILD_SESSION_AES_CBC_KEY_SIZE_INT_ARRAY = 9079 KEY_PREFIX + "child_session_aes_cbc_key_size_int_array"; 9080 9081 /** 9082 * List of supported key sizes for AES Counter (CTR) encryption mode of child session. 9083 * Possible values are: 9084 * {@link android.net.ipsec.ike.SaProposal#KEY_LEN_UNUSED}, 9085 * {@link android.net.ipsec.ike.SaProposal#KEY_LEN_AES_128}, 9086 * {@link android.net.ipsec.ike.SaProposal#KEY_LEN_AES_192}, 9087 * {@link android.net.ipsec.ike.SaProposal#KEY_LEN_AES_256} 9088 */ 9089 public static final String KEY_CHILD_SESSION_AES_CTR_KEY_SIZE_INT_ARRAY = 9090 KEY_PREFIX + "child_session_aes_ctr_key_size_int_array"; 9091 9092 /** 9093 * List of supported key sizes for AES Galois/Counter Mode (GCM) encryption mode 9094 * of child session. 9095 * Possible values are: 9096 * {@link android.net.ipsec.ike.SaProposal#KEY_LEN_UNUSED}, 9097 * {@link android.net.ipsec.ike.SaProposal#KEY_LEN_AES_128}, 9098 * {@link android.net.ipsec.ike.SaProposal#KEY_LEN_AES_192}, 9099 * {@link android.net.ipsec.ike.SaProposal#KEY_LEN_AES_256} 9100 */ 9101 @FlaggedApi(Flags.FLAG_ENABLE_AEAD_ALGORITHMS) 9102 public static final String KEY_CHILD_SESSION_AES_GCM_KEY_SIZE_INT_ARRAY = 9103 KEY_PREFIX + "child_session_aes_gcm_key_size_int_array"; 9104 9105 /** 9106 * List of supported encryption algorithms for child session. Possible values are 9107 * {@link android.net.ipsec.ike.SaProposal#ENCRYPTION_ALGORITHM_AES_CBC}, 9108 * {@link android.net.ipsec.ike.SaProposal#ENCRYPTION_ALGORITHM_AES_CTR} 9109 */ 9110 public static final String KEY_SUPPORTED_CHILD_SESSION_ENCRYPTION_ALGORITHMS_INT_ARRAY = 9111 KEY_PREFIX + "supported_child_session_encryption_algorithms_int_array"; 9112 9113 /** 9114 * List of supported AEAD algorithms for child session. Possible values are 9115 * {@link android.net.ipsec.ike.SaProposal#ENCRYPTION_ALGORITHM_AES_GCM_8}, 9116 * {@link android.net.ipsec.ike.SaProposal#ENCRYPTION_ALGORITHM_AES_GCM_12}, 9117 * {@link android.net.ipsec.ike.SaProposal#ENCRYPTION_ALGORITHM_AES_GCM_16} 9118 */ 9119 @FlaggedApi(Flags.FLAG_ENABLE_AEAD_ALGORITHMS) 9120 public static final String KEY_SUPPORTED_CHILD_SESSION_AEAD_ALGORITHMS_INT_ARRAY = 9121 KEY_PREFIX + "supported_child_session_aead_algorithms_int_array"; 9122 9123 /** 9124 * Time in seconds after which the IKE session is terminated if rekey procedure is not 9125 * successful. If not set or set to <= 0, default value is 3600 seconds. 9126 */ 9127 public static final String KEY_IKE_REKEY_HARD_TIMER_SEC_INT = 9128 KEY_PREFIX + "ike_rekey_hard_timer_in_sec"; 9129 9130 /** 9131 * Time in seconds after which the IKE session rekey procedure is started. If not set or set 9132 * to <= 0, default value is 3000 seconds. 9133 */ 9134 public static final String KEY_IKE_REKEY_SOFT_TIMER_SEC_INT = 9135 KEY_PREFIX + "ike_rekey_soft_timer_sec_int"; 9136 9137 /** 9138 * List of supported key sizes for AES Cipher Block Chaining (CBC) encryption mode of IKE 9139 * session. Possible values: 9140 * {@link android.net.ipsec.ike.SaProposal#KEY_LEN_UNUSED}, 9141 * {@link android.net.ipsec.ike.SaProposal#KEY_LEN_AES_128}, 9142 * {@link android.net.ipsec.ike.SaProposal#KEY_LEN_AES_192}, 9143 * {@link android.net.ipsec.ike.SaProposal#KEY_LEN_AES_256} 9144 */ 9145 public static final String KEY_IKE_SESSION_AES_CBC_KEY_SIZE_INT_ARRAY = 9146 KEY_PREFIX + "ike_session_encryption_aes_cbc_key_size_int_array"; 9147 9148 /** 9149 * List of supported key sizes for AES Counter (CTR) encryption mode of IKE session. 9150 * Possible values - 9151 * {@link android.net.ipsec.ike.SaProposal#KEY_LEN_UNUSED}, 9152 * {@link android.net.ipsec.ike.SaProposal#KEY_LEN_AES_128}, 9153 * {@link android.net.ipsec.ike.SaProposal#KEY_LEN_AES_192}, 9154 * {@link android.net.ipsec.ike.SaProposal#KEY_LEN_AES_256} 9155 */ 9156 public static final String KEY_IKE_SESSION_AES_CTR_KEY_SIZE_INT_ARRAY = 9157 KEY_PREFIX + "ike_session_encryption_aes_ctr_key_size_int_array"; 9158 9159 /** 9160 * List of supported key sizes for AES Galois/Counter Mode (GCM) encryption mode 9161 * of IKE session. 9162 * Possible values - 9163 * {@link android.net.ipsec.ike.SaProposal#KEY_LEN_UNUSED}, 9164 * {@link android.net.ipsec.ike.SaProposal#KEY_LEN_AES_128}, 9165 * {@link android.net.ipsec.ike.SaProposal#KEY_LEN_AES_192}, 9166 * {@link android.net.ipsec.ike.SaProposal#KEY_LEN_AES_256} 9167 */ 9168 @FlaggedApi(Flags.FLAG_ENABLE_AEAD_ALGORITHMS) 9169 public static final String KEY_IKE_SESSION_AES_GCM_KEY_SIZE_INT_ARRAY = 9170 KEY_PREFIX + "ike_session_encryption_aes_gcm_key_size_int_array"; 9171 9172 /** 9173 * List of supported encryption algorithms for IKE session. Possible values are 9174 * {@link android.net.ipsec.ike.SaProposal#ENCRYPTION_ALGORITHM_AES_CBC}, 9175 * {@link android.net.ipsec.ike.SaProposal#ENCRYPTION_ALGORITHM_AES_CTR} 9176 */ 9177 public static final String KEY_SUPPORTED_IKE_SESSION_ENCRYPTION_ALGORITHMS_INT_ARRAY = 9178 KEY_PREFIX + "supported_ike_session_encryption_algorithms_int_array"; 9179 9180 /** 9181 * List of supported AEAD algorithms for IKE session. Possible values are 9182 * {@link android.net.ipsec.ike.SaProposal#ENCRYPTION_ALGORITHM_AES_GCM_8}, 9183 * {@link android.net.ipsec.ike.SaProposal#ENCRYPTION_ALGORITHM_AES_GCM_12}, 9184 * {@link android.net.ipsec.ike.SaProposal#ENCRYPTION_ALGORITHM_AES_GCM_16} 9185 */ 9186 @FlaggedApi(Flags.FLAG_ENABLE_AEAD_ALGORITHMS) 9187 public static final String KEY_SUPPORTED_IKE_SESSION_AEAD_ALGORITHMS_INT_ARRAY = 9188 KEY_PREFIX + "supported_ike_session_aead_algorithms_int_array"; 9189 9190 /** 9191 * List of supported integrity algorithms for IKE session. Possible values are 9192 * {@link android.net.ipsec.ike.SaProposal#INTEGRITY_ALGORITHM_NONE}, 9193 * {@link android.net.ipsec.ike.SaProposal#INTEGRITY_ALGORITHM_HMAC_SHA1_96}, 9194 * {@link android.net.ipsec.ike.SaProposal#INTEGRITY_ALGORITHM_AES_XCBC_96}, 9195 * {@link android.net.ipsec.ike.SaProposal#INTEGRITY_ALGORITHM_HMAC_SHA2_256_128}, 9196 * {@link android.net.ipsec.ike.SaProposal#INTEGRITY_ALGORITHM_HMAC_SHA2_384_192}, 9197 * {@link android.net.ipsec.ike.SaProposal#INTEGRITY_ALGORITHM_HMAC_SHA2_512_256} 9198 */ 9199 public static final String KEY_SUPPORTED_INTEGRITY_ALGORITHMS_INT_ARRAY = 9200 KEY_PREFIX + "supported_integrity_algorithms_int_array"; 9201 9202 /** Maximum number of retries for tunnel establishment. */ 9203 public static final String KEY_MAX_RETRIES_INT = KEY_PREFIX + "max_retries_int"; 9204 9205 /** 9206 * Time in seconds after which a NATT keep alive message is sent. If not set or set to <= 0, 9207 * default value is 20 seconds. 9208 */ 9209 public static final String KEY_NATT_KEEP_ALIVE_TIMER_SEC_INT = 9210 KEY_PREFIX + "natt_keep_alive_timer_sec_int"; 9211 9212 /** List of '-' separated MCC/MNCs used to create ePDG FQDN as per 3GPP TS 23.003 */ 9213 public static final String KEY_MCC_MNCS_STRING_ARRAY = KEY_PREFIX + "mcc_mncs_string_array"; 9214 9215 /** 9216 * List of supported pseudo random function algorithms for IKE session. Possible values are 9217 * {@link android.net.ipsec.ike.SaProposal#PSEUDORANDOM_FUNCTION_HMAC_SHA1}, 9218 * {@link android.net.ipsec.ike.SaProposal#PSEUDORANDOM_FUNCTION_AES128_XCBC}, 9219 * {@link android.net.ipsec.ike.SaProposal#PSEUDORANDOM_FUNCTION_SHA2_256}, 9220 * {@link android.net.ipsec.ike.SaProposal#PSEUDORANDOM_FUNCTION_SHA2_384}, 9221 * {@link android.net.ipsec.ike.SaProposal#PSEUDORANDOM_FUNCTION_SHA2_512} 9222 */ 9223 public static final String KEY_SUPPORTED_PRF_ALGORITHMS_INT_ARRAY = 9224 KEY_PREFIX + "supported_prf_algorithms_int_array"; 9225 9226 /** 9227 * List of IKE message retransmission timeouts in milliseconds, where each timeout 9228 * is the waiting time before next retry, except the last timeout which is the waiting time 9229 * before terminating the IKE Session. Min list length = 1, Max 9230 * list length = 10 Min timeout = 500 ms, Max timeout = 1800000 ms 9231 */ 9232 public static final String KEY_RETRANSMIT_TIMER_MSEC_INT_ARRAY = 9233 KEY_PREFIX + "retransmit_timer_sec_int_array"; 9234 9235 /** 9236 * Specifies the local identity type for IKE negotiations. Possible values are {@link 9237 * #ID_TYPE_FQDN}, {@link #ID_TYPE_RFC822_ADDR}, {@link #ID_TYPE_KEY_ID} 9238 */ 9239 public static final String KEY_IKE_LOCAL_ID_TYPE_INT = KEY_PREFIX + "ike_local_id_type_int"; 9240 9241 /** 9242 * Specifies the remote identity type for IKE negotiations. Possible values are {@link 9243 * #ID_TYPE_FQDN}, {@link #ID_TYPE_RFC822_ADDR}, {@link #ID_TYPE_KEY_ID} 9244 */ 9245 public static final String KEY_IKE_REMOTE_ID_TYPE_INT = 9246 KEY_PREFIX + "ike_remote_id_type_int"; 9247 9248 /** Controls if KE payload should be added during child session local rekey procedure. */ 9249 public static final String KEY_ADD_KE_TO_CHILD_SESSION_REKEY_BOOL = 9250 KEY_PREFIX + "add_ke_to_child_session_rekey_bool"; 9251 9252 /** Specifies the PCO id for IPv6 Epdg server address */ 9253 public static final String KEY_EPDG_PCO_ID_IPV6_INT = KEY_PREFIX + "epdg_pco_id_ipv6_int"; 9254 9255 /** Specifies the PCO id for IPv4 Epdg server address */ 9256 public static final String KEY_EPDG_PCO_ID_IPV4_INT = KEY_PREFIX + "epdg_pco_id_ipv4_int"; 9257 9258 /** Controls if the IKE tunnel setup supports EAP-AKA fast reauth */ 9259 public static final String KEY_SUPPORTS_EAP_AKA_FAST_REAUTH_BOOL = 9260 KEY_PREFIX + "supports_eap_aka_fast_reauth_bool"; 9261 9262 /** 9263 * Type of IP preference used to prioritize ePDG servers. Possible values are 9264 * {@link #EPDG_ADDRESS_IPV4_PREFERRED}, {@link #EPDG_ADDRESS_IPV6_PREFERRED}, 9265 * {@link #EPDG_ADDRESS_IPV4_ONLY} 9266 */ 9267 public static final String KEY_EPDG_ADDRESS_IP_TYPE_PREFERENCE_INT = 9268 KEY_PREFIX + "epdg_address_ip_type_preference_int"; 9269 9270 /** @hide */ 9271 @IntDef({AUTHENTICATION_METHOD_EAP_ONLY, AUTHENTICATION_METHOD_CERT}) 9272 public @interface AuthenticationMethodType {} 9273 9274 /** 9275 * Certificate sent from the server is ignored. Only Extensible Authentication Protocol 9276 * (EAP) is used to authenticate the server. EAP_ONLY_AUTH payload is added to IKE_AUTH 9277 * request if supported. 9278 * 9279 * @see <a href="https://tools.ietf.org/html/rfc5998">RFC 5998</a> 9280 */ 9281 public static final int AUTHENTICATION_METHOD_EAP_ONLY = 0; 9282 /** Server is authenticated using its certificate. */ 9283 public static final int AUTHENTICATION_METHOD_CERT = 1; 9284 9285 /** @hide */ 9286 @IntDef({ 9287 EPDG_ADDRESS_STATIC, 9288 EPDG_ADDRESS_PLMN, 9289 EPDG_ADDRESS_PCO, 9290 EPDG_ADDRESS_CELLULAR_LOC, 9291 EPDG_ADDRESS_VISITED_COUNTRY 9292 }) 9293 public @interface EpdgAddressType {} 9294 9295 /** Use static epdg address. */ 9296 public static final int EPDG_ADDRESS_STATIC = 0; 9297 /** Construct the epdg address using plmn. */ 9298 public static final int EPDG_ADDRESS_PLMN = 1; 9299 /** 9300 * Use the epdg address received in protocol configuration options (PCO) from the network. 9301 */ 9302 public static final int EPDG_ADDRESS_PCO = 2; 9303 /** Use cellular location to chose epdg server */ 9304 public static final int EPDG_ADDRESS_CELLULAR_LOC = 3; 9305 /** Use Visited Country FQDN rule*/ 9306 public static final int EPDG_ADDRESS_VISITED_COUNTRY = 4; 9307 9308 /** @hide */ 9309 @IntDef({ 9310 EPDG_PLMN_RPLMN, 9311 EPDG_PLMN_HPLMN, 9312 EPDG_PLMN_EHPLMN_ALL, 9313 EPDG_PLMN_EHPLMN_FIRST 9314 }) 9315 public @interface EpdgAddressPlmnType {} 9316 9317 /** 9318 * Use the Registered PLMN 9319 * @hide 9320 */ 9321 public static final int EPDG_PLMN_RPLMN = 0; 9322 /** 9323 * Use the PLMN derived from IMSI 9324 * @hide 9325 */ 9326 public static final int EPDG_PLMN_HPLMN = 1; 9327 /** 9328 * Use all EHPLMN from SIM EF files 9329 * @hide 9330 */ 9331 public static final int EPDG_PLMN_EHPLMN_ALL = 2; 9332 /** 9333 * Use the first EHPLMN from SIM EF files 9334 * @hide 9335 */ 9336 public static final int EPDG_PLMN_EHPLMN_FIRST = 3; 9337 9338 /** @hide */ 9339 @IntDef({ID_TYPE_FQDN, ID_TYPE_RFC822_ADDR, ID_TYPE_KEY_ID}) 9340 public @interface IkeIdType {} 9341 9342 /** 9343 * Ike Identification Fully Qualified Domain Name 9344 * 9345 * @see <a href="https://tools.ietf.org/html/rfc7296#section-3.5">RFC 7296, Internet Key 9346 * Exchange Protocol Version 2 (IKEv2)</a> 9347 */ 9348 public static final int ID_TYPE_FQDN = 2; 9349 /** 9350 * Ike Identification Fully Qualified RFC 822 email address. 9351 * 9352 * @see <a href="https://tools.ietf.org/html/rfc7296#section-3.5">RFC 7296, Internet Key 9353 * Exchange Protocol Version 2 (IKEv2)</a> 9354 */ 9355 public static final int ID_TYPE_RFC822_ADDR = 3; 9356 /** 9357 * Ike Identification opaque octet stream for vendor specific information 9358 * 9359 * @see <a href="https://tools.ietf.org/html/rfc7296#section-3.5">RFC 7296, Internet Key 9360 * Exchange Protocol Version 2 (IKEv2)</a> 9361 */ 9362 public static final int ID_TYPE_KEY_ID = 11; 9363 9364 /** @hide */ 9365 @IntDef({ 9366 EPDG_ADDRESS_IPV4_PREFERRED, 9367 EPDG_ADDRESS_IPV6_PREFERRED, 9368 EPDG_ADDRESS_IPV4_ONLY, 9369 EPDG_ADDRESS_IPV6_ONLY, 9370 EPDG_ADDRESS_SYSTEM_PREFERRED 9371 }) 9372 public @interface EpdgAddressIpPreference {} 9373 9374 /** Prioritize IPv4 ePDG addresses. */ 9375 public static final int EPDG_ADDRESS_IPV4_PREFERRED = 0; 9376 9377 /** Prioritize IPv6 ePDG addresses */ 9378 public static final int EPDG_ADDRESS_IPV6_PREFERRED = 1; 9379 9380 /** Use IPv4 ePDG addresses only. */ 9381 public static final int EPDG_ADDRESS_IPV4_ONLY = 2; 9382 9383 /** Use IPv6 ePDG addresses only. 9384 * @hide 9385 */ 9386 public static final int EPDG_ADDRESS_IPV6_ONLY = 3; 9387 9388 /** Follow the priority from DNS resolution results, which are sorted by using RFC6724 9389 * algorithm. 9390 * 9391 * @see <a href="https://tools.ietf.org/html/rfc6724#section-6">RFC 6724, Default Address 9392 * Selection for Internet Protocol Version 6 (IPv6)</a> 9393 * @hide 9394 */ 9395 public static final int EPDG_ADDRESS_SYSTEM_PREFERRED = 4; 9396 Iwlan()9397 private Iwlan() {} 9398 getDefaults()9399 private static PersistableBundle getDefaults() { 9400 PersistableBundle defaults = new PersistableBundle(); 9401 defaults.putInt(KEY_IKE_REKEY_SOFT_TIMER_SEC_INT, 7200); 9402 defaults.putInt(KEY_IKE_REKEY_HARD_TIMER_SEC_INT, 14400); 9403 defaults.putInt(KEY_CHILD_SA_REKEY_SOFT_TIMER_SEC_INT, 3600); 9404 defaults.putInt(KEY_CHILD_SA_REKEY_HARD_TIMER_SEC_INT, 7200); 9405 defaults.putBoolean(KEY_SUPPORTS_IKE_SESSION_MULTIPLE_SA_PROPOSALS_BOOL, false); 9406 defaults.putBoolean(KEY_SUPPORTS_CHILD_SESSION_MULTIPLE_SA_PROPOSALS_BOOL, false); 9407 defaults.putIntArray( 9408 KEY_RETRANSMIT_TIMER_MSEC_INT_ARRAY, new int[] {500, 1000, 2000, 4000, 8000}); 9409 defaults.putInt(KEY_DPD_TIMER_SEC_INT, 120); 9410 defaults.putInt(KEY_MAX_RETRIES_INT, 3); 9411 defaults.putIntArray( 9412 KEY_DIFFIE_HELLMAN_GROUPS_INT_ARRAY, 9413 new int[] { 9414 SaProposal.DH_GROUP_1024_BIT_MODP, 9415 SaProposal.DH_GROUP_1536_BIT_MODP, 9416 SaProposal.DH_GROUP_2048_BIT_MODP 9417 }); 9418 defaults.putIntArray( 9419 KEY_SUPPORTED_IKE_SESSION_ENCRYPTION_ALGORITHMS_INT_ARRAY, 9420 new int[] {SaProposal.ENCRYPTION_ALGORITHM_AES_CBC}); 9421 defaults.putIntArray( 9422 KEY_SUPPORTED_IKE_SESSION_AEAD_ALGORITHMS_INT_ARRAY, new int[] {}); 9423 defaults.putIntArray( 9424 KEY_SUPPORTED_CHILD_SESSION_ENCRYPTION_ALGORITHMS_INT_ARRAY, 9425 new int[] {SaProposal.ENCRYPTION_ALGORITHM_AES_CBC}); 9426 defaults.putIntArray( 9427 KEY_SUPPORTED_CHILD_SESSION_AEAD_ALGORITHMS_INT_ARRAY, new int[] {}); 9428 defaults.putIntArray( 9429 KEY_SUPPORTED_INTEGRITY_ALGORITHMS_INT_ARRAY, 9430 new int[] { 9431 SaProposal.INTEGRITY_ALGORITHM_AES_XCBC_96, 9432 SaProposal.INTEGRITY_ALGORITHM_HMAC_SHA1_96, 9433 SaProposal.INTEGRITY_ALGORITHM_HMAC_SHA2_256_128, 9434 SaProposal.INTEGRITY_ALGORITHM_HMAC_SHA2_384_192, 9435 SaProposal.INTEGRITY_ALGORITHM_HMAC_SHA2_512_256, 9436 }); 9437 defaults.putIntArray( 9438 KEY_SUPPORTED_PRF_ALGORITHMS_INT_ARRAY, 9439 new int[] { 9440 SaProposal.PSEUDORANDOM_FUNCTION_HMAC_SHA1, 9441 SaProposal.PSEUDORANDOM_FUNCTION_AES128_XCBC, 9442 SaProposal.PSEUDORANDOM_FUNCTION_SHA2_256, 9443 SaProposal.PSEUDORANDOM_FUNCTION_SHA2_384, 9444 SaProposal.PSEUDORANDOM_FUNCTION_SHA2_512 9445 }); 9446 9447 defaults.putInt(KEY_EPDG_AUTHENTICATION_METHOD_INT, AUTHENTICATION_METHOD_EAP_ONLY); 9448 defaults.putString(KEY_EPDG_STATIC_ADDRESS_STRING, ""); 9449 defaults.putString(KEY_EPDG_STATIC_ADDRESS_ROAMING_STRING, ""); 9450 // will be used after b/158036773 is fixed 9451 defaults.putInt(KEY_NATT_KEEP_ALIVE_TIMER_SEC_INT, 20); 9452 defaults.putIntArray( 9453 KEY_IKE_SESSION_AES_CBC_KEY_SIZE_INT_ARRAY, 9454 new int[] { 9455 SaProposal.KEY_LEN_AES_128, 9456 SaProposal.KEY_LEN_AES_192, 9457 SaProposal.KEY_LEN_AES_256}); 9458 defaults.putIntArray( 9459 KEY_CHILD_SESSION_AES_CBC_KEY_SIZE_INT_ARRAY, 9460 new int[] { 9461 SaProposal.KEY_LEN_AES_128, 9462 SaProposal.KEY_LEN_AES_192, 9463 SaProposal.KEY_LEN_AES_256}); 9464 defaults.putIntArray( 9465 KEY_IKE_SESSION_AES_CTR_KEY_SIZE_INT_ARRAY, 9466 new int[] { 9467 SaProposal.KEY_LEN_AES_128, 9468 SaProposal.KEY_LEN_AES_192, 9469 SaProposal.KEY_LEN_AES_256}); 9470 defaults.putIntArray( 9471 KEY_CHILD_SESSION_AES_CTR_KEY_SIZE_INT_ARRAY, 9472 new int[] { 9473 SaProposal.KEY_LEN_AES_128, 9474 SaProposal.KEY_LEN_AES_192, 9475 SaProposal.KEY_LEN_AES_256}); 9476 defaults.putIntArray( 9477 KEY_IKE_SESSION_AES_GCM_KEY_SIZE_INT_ARRAY, new int[] {}); 9478 defaults.putIntArray( 9479 KEY_CHILD_SESSION_AES_GCM_KEY_SIZE_INT_ARRAY, new int[] {}); 9480 defaults.putIntArray( 9481 KEY_EPDG_ADDRESS_PRIORITY_INT_ARRAY, 9482 new int[] {EPDG_ADDRESS_PLMN, EPDG_ADDRESS_STATIC}); 9483 defaults.putIntArray( 9484 KEY_EPDG_PLMN_PRIORITY_INT_ARRAY, 9485 new int[]{ 9486 EPDG_PLMN_RPLMN, 9487 EPDG_PLMN_HPLMN, 9488 EPDG_PLMN_EHPLMN_ALL}); 9489 defaults.putStringArray(KEY_MCC_MNCS_STRING_ARRAY, new String[0]); 9490 defaults.putInt(KEY_IKE_LOCAL_ID_TYPE_INT, ID_TYPE_RFC822_ADDR); 9491 defaults.putInt(KEY_IKE_REMOTE_ID_TYPE_INT, ID_TYPE_FQDN); 9492 defaults.putBoolean(KEY_ADD_KE_TO_CHILD_SESSION_REKEY_BOOL, false); 9493 defaults.putInt(KEY_EPDG_PCO_ID_IPV6_INT, 0); 9494 defaults.putInt(KEY_EPDG_PCO_ID_IPV4_INT, 0); 9495 defaults.putBoolean(KEY_SUPPORTS_EAP_AKA_FAST_REAUTH_BOOL, false); 9496 defaults.putInt(KEY_EPDG_ADDRESS_IP_TYPE_PREFERENCE_INT, EPDG_ADDRESS_IPV4_PREFERRED); 9497 return defaults; 9498 } 9499 } 9500 9501 /** 9502 * A list of 4 GSM RSSI thresholds above which a signal level is considered POOR, 9503 * MODERATE, GOOD, or EXCELLENT, to be used in SignalStrength reporting. 9504 * 9505 * Note that the min and max thresholds are fixed at -113 and -51, as set in 3GPP TS 27.007 9506 * section 8.5. 9507 * <p> 9508 * See CellSignalStrengthGsm#GSM_RSSI_MAX and CellSignalStrengthGsm#GSM_RSSI_MIN. Any signal 9509 * level outside these boundaries is considered invalid. 9510 * @hide 9511 */ 9512 public static final String KEY_GSM_RSSI_THRESHOLDS_INT_ARRAY = "gsm_rssi_thresholds_int_array"; 9513 9514 /** 9515 * An interval in dB for {@link SignalThresholdInfo#SIGNAL_MEASUREMENT_TYPE_RSSI} measurement 9516 * type defining the required magnitude change between reports. 9517 * 9518 * <p>The default value is 2 and the minimum allowed value is 0. If no value or negative value 9519 * is set, the default value 2 is used. 9520 * @hide 9521 */ 9522 public static final String KEY_GERAN_RSSI_HYSTERESIS_DB_INT = "geran_rssi_hysteresis_db_int"; 9523 9524 /** 9525 * Determines whether Wireless Priority Service call is supported over IMS. 9526 * 9527 * See Wireless Priority Service from https://www.fcc.gov/general/wireless-priority-service-wps 9528 * @hide 9529 */ 9530 public static final String KEY_SUPPORT_WPS_OVER_IMS_BOOL = "support_wps_over_ims_bool"; 9531 9532 /** 9533 * The two digital number pattern of MMI code which is defined by carrier. 9534 * If the dial number matches this pattern, it will be dialed out normally not USSD. 9535 * 9536 * @hide 9537 */ 9538 public static final String KEY_MMI_TWO_DIGIT_NUMBER_PATTERN_STRING_ARRAY = 9539 "mmi_two_digit_number_pattern_string_array"; 9540 9541 /** 9542 * Holds the list of carrier certificate hashes, followed by optional package names. 9543 * Format: "sha1/256" or "sha1/256:package1,package2,package3..." 9544 * Note that each carrier has its own hashes. 9545 */ 9546 public static final String KEY_CARRIER_CERTIFICATE_STRING_ARRAY = 9547 "carrier_certificate_string_array"; 9548 9549 /** 9550 * Flag specifying whether the incoming call number and the conference participant number 9551 * should be formatted to national number for Japan. 9552 * @return {@code true} convert to the national format, {@code false} otherwise. 9553 * e.g. "+819012345678" -> "09012345678" 9554 * @hide 9555 */ 9556 public static final String KEY_FORMAT_INCOMING_NUMBER_TO_NATIONAL_FOR_JP_BOOL = 9557 "format_incoming_number_to_national_for_jp_bool"; 9558 9559 /** 9560 * DisconnectCause array to play busy tone. Value should be array of 9561 * {@link android.telephony.DisconnectCause}. 9562 */ 9563 public static final String KEY_DISCONNECT_CAUSE_PLAY_BUSYTONE_INT_ARRAY = 9564 "disconnect_cause_play_busytone_int_array"; 9565 9566 /** 9567 * Flag specifying whether to prevent sending CLIR activation("*31#") and deactivation("#31#") 9568 * code only without dialing number. 9569 * When {@code true}, these are prevented, {@code false} otherwise. 9570 */ 9571 public static final String KEY_PREVENT_CLIR_ACTIVATION_AND_DEACTIVATION_CODE_BOOL = 9572 "prevent_clir_activation_and_deactivation_code_bool"; 9573 9574 /** 9575 * Flag specifying whether to show forwarded number on call-in-progress screen. 9576 * When true, forwarded number is shown. 9577 * When false, forwarded number is not shown. 9578 */ 9579 public static final String KEY_SHOW_FORWARDED_NUMBER_BOOL = "show_forwarded_number_bool"; 9580 9581 /** 9582 * The list of originating address of missed incoming call SMS. If the SMS has originator 9583 * matched, the SMS will be treated as special SMS for notifying missed incoming call to the 9584 * user. 9585 * 9586 * @hide 9587 */ 9588 public static final String KEY_MISSED_INCOMING_CALL_SMS_ORIGINATOR_STRING_ARRAY = 9589 "missed_incoming_call_sms_originator_string_array"; 9590 9591 /** 9592 * Network capability priority for determine the satisfy order in telephony. The priority is 9593 * from the lowest 0 to the highest 100. The long-lived network shall have the lowest priority. 9594 * This allows other short-lived requests like MMS requests to be established. Emergency request 9595 * always has the highest priority. 9596 * 9597 * @hide 9598 */ 9599 public static final String KEY_TELEPHONY_NETWORK_CAPABILITY_PRIORITIES_STRING_ARRAY = 9600 "telephony_network_capability_priorities_string_array"; 9601 9602 /** 9603 * Defines the rules for data setup retry. 9604 * 9605 * The syntax of the retry rule: 9606 * 1. Retry based on {@link NetworkCapabilities}. Note that only APN-type network capabilities 9607 * are supported. If the capabilities are not specified, then the retry rule only applies 9608 * to the current failed APN used in setup data call request. 9609 * "capabilities=[netCaps1|netCaps2|...], [retry_interval=n1|n2|n3|n4...], [maximum_retries=n]" 9610 * 9611 * 2. Retry based on {@link DataFailCause} 9612 * "fail_causes=[cause1|cause2|cause3|..], [retry_interval=n1|n2|n3|n4...], [maximum_retries=n]" 9613 * 9614 * 3. Retry based on {@link NetworkCapabilities} and {@link DataFailCause}. Note that only 9615 * APN-type network capabilities are supported. 9616 * "capabilities=[netCaps1|netCaps2|...], fail_causes=[cause1|cause2|cause3|...], 9617 * [retry_interval=n1|n2|n3|n4...], [maximum_retries=n]" 9618 * 9619 * 4. Permanent fail causes (no timer-based retry) on the current failed APN. Retry interval 9620 * is specified for retrying the next available APN. 9621 * "permanent_fail_causes=8|27|28|29|30|32|33|35|50|51|111|-5|-6|65537|65538|-3|65543|65547| 9622 * 2252|2253|2254, retry_interval=2500" 9623 * 9624 * For example, 9625 * "capabilities=eims, retry_interval=1000, maximum_retries=20" means if the attached 9626 * network request is emergency, then retry data network setup every 1 second for up to 20 9627 * times. 9628 * 9629 * "capabilities=internet|enterprise|dun|ims|fota, retry_interval=2500|3000|" 9630 * "5000|10000|15000|20000|40000|60000|120000|240000|600000|1200000|1800000" 9631 * "1800000, maximum_retries=20" means for those capabilities, retry happens in 2.5s, 3s, 5s, 9632 * 10s, 15s, 20s, 40s, 1m, 2m, 4m, 10m, 20m, 30m, 30m, 30m, until reaching 20 retries. 9633 * 9634 * @hide 9635 */ 9636 public static final String KEY_TELEPHONY_DATA_SETUP_RETRY_RULES_STRING_ARRAY = 9637 "telephony_data_setup_retry_rules_string_array"; 9638 9639 /** 9640 * Defines the rules for data handover retry. 9641 * 9642 * The syntax of the retry rule: 9643 * 1. Retry when handover fails. 9644 * "retry_interval=[n1|n2|n3|...], [maximum_retries=n]" 9645 * 9646 * For example, 9647 * "retry_interval=1000|3000|5000, maximum_retries=10" means handover retry will happen in 1s, 9648 * 3s, 5s, 5s, 5s....up to 10 times. 9649 * 9650 * 2. Retry when handover fails with certain fail causes. 9651 * "retry_interval=[n1|n2|n3|...], fail_causes=[cause1|cause2|cause3|...], [maximum_retries=n] 9652 * 9653 * For example, 9654 * "retry_interval=1000, maximum_retries=3, fail_causes=5" means handover retry every 1 second 9655 * for up to 3 times when handover fails with the cause 5. 9656 * 9657 * "maximum_retries=0, fail_causes=6|10|67" means handover retry should not happen for those 9658 * causes. 9659 * 9660 * @hide 9661 */ 9662 public static final String KEY_TELEPHONY_DATA_HANDOVER_RETRY_RULES_STRING_ARRAY = 9663 "telephony_data_handover_retry_rules_string_array"; 9664 9665 /** 9666 * Indicates whether delay tearing down IMS data network until voice call ends. 9667 * @hide 9668 */ 9669 public static final String KEY_DELAY_IMS_TEAR_DOWN_UNTIL_CALL_END_BOOL = 9670 "delay_ims_tear_down_until_call_end_bool"; 9671 9672 /** 9673 * The patterns of missed incoming call sms. This is the regular expression used for 9674 * matching the missed incoming call's date, time, and caller id. The pattern should match 9675 * fields for at least month, day, hour, and minute. Year is optional although it is encouraged. 9676 * 9677 * An usable pattern should look like this: 9678 * ^(?<month>0[1-9]|1[012])\/(?<day>0[1-9]|1[0-9]|2[0-9]|3[0-1]) (?<hour>[0-1][0-9]|2[0-3]): 9679 * (?<minute>[0-5][0-9])\s*(?<callerId>[0-9]+)\s*$ 9680 * 9681 * @hide 9682 */ 9683 public static final String KEY_MISSED_INCOMING_CALL_SMS_PATTERN_STRING_ARRAY = 9684 "missed_incoming_call_sms_pattern_string_array"; 9685 9686 /** 9687 * A PersistableBundle that contains a list of key-value pairs, where the values are integer 9688 * arrays. 9689 * <p> 9690 * Keys are the PLMNs of satellite providers as strings and values are integer arrays of 9691 * supported services with the following value: 9692 * <ul> 9693 * <li>1 = {@link android.telephony.NetworkRegistrationInfo#SERVICE_TYPE_VOICE}</li> 9694 * <li>2 = {@link android.telephony.NetworkRegistrationInfo#SERVICE_TYPE_DATA}</li> 9695 * <li>3 = {@link android.telephony.NetworkRegistrationInfo#SERVICE_TYPE_SMS}</li> 9696 * <li>4 = {@link android.telephony.NetworkRegistrationInfo#SERVICE_TYPE_VIDEO}</li> 9697 * <li>5 = {@link android.telephony.NetworkRegistrationInfo#SERVICE_TYPE_EMERGENCY}</li> 9698 * <li>6 = {@link android.telephony.NetworkRegistrationInfo#SERVICE_TYPE_MMS}</li> 9699 * </ul> 9700 * <p> 9701 * An example config for two PLMNs "123411" and "123412": 9702 * <pre>{@code 9703 * <carrier_config> 9704 * <pbundle_as_map name="carrier_supported_satellite_services_per_provider_bundle"> 9705 * <int-array name = "123411" num = "2"> 9706 * <item value = "3"/> 9707 * <item value = "5"/> 9708 * </int-array> 9709 * <int-array name = "123412" num = "1"> 9710 * <item value = "3"/> 9711 * </int-array> 9712 * </pbundle_as_map> 9713 * </carrier_config> 9714 * }</pre> 9715 * <p> 9716 * This config is empty by default. 9717 */ 9718 @FlaggedApi(Flags.FLAG_CARRIER_ENABLED_SATELLITE_FLAG) 9719 public static final String KEY_CARRIER_SUPPORTED_SATELLITE_SERVICES_PER_PROVIDER_BUNDLE = 9720 "carrier_supported_satellite_services_per_provider_bundle"; 9721 9722 /** 9723 * This config enables modem to scan satellite PLMNs specified as per 9724 * {@link #KEY_CARRIER_SUPPORTED_SATELLITE_SERVICES_PER_PROVIDER_BUNDLE} and attach to same 9725 * in case cellular networks are not enabled. This will need specific agreement between 9726 * satellite provider and the carrier before enabling this flag. 9727 * 9728 * The default value is false. 9729 */ 9730 @FlaggedApi(Flags.FLAG_CARRIER_ENABLED_SATELLITE_FLAG) 9731 public static final String KEY_SATELLITE_ATTACH_SUPPORTED_BOOL = 9732 "satellite_attach_supported_bool"; 9733 9734 /** 9735 * The carrier-enabled satellite connection hysteresis time in seconds for which the device 9736 * continues in satellite mode after it loses the connection with the satellite network. 9737 * <p> 9738 * If the device is in satellite mode, the following actions will be taken by the device: 9739 * <ul> 9740 * <li>System UI will continue showing the satellite icon.</li> 9741 * <li>When there is an ongoing emergency call, and the IMS is not registered, and cellular 9742 * service is not available, and the device is in satellite mode, a timer with a duration 9743 * defined by the overlay config 9744 * {@code config_emergency_call_wait_for_connection_timeout_millis} will be started. When the 9745 * timer expires, Telephony will send the event 9746 * {@link TelephonyManager#EVENT_DISPLAY_EMERGENCY_MESSAGE} to Dialer, which will then prompt 9747 * users to switch to using satellite emergency messaging.</li> 9748 * </ul> 9749 * <p> 9750 * The default value is 300 seconds. 9751 */ 9752 @FlaggedApi(Flags.FLAG_CARRIER_ENABLED_SATELLITE_FLAG) 9753 public static final String KEY_SATELLITE_CONNECTION_HYSTERESIS_SEC_INT = 9754 "satellite_connection_hysteresis_sec_int"; 9755 9756 /** 9757 * This threshold is used when connected to a non-terrestrial LTE network. 9758 * A list of 4 NTN LTE RSRP thresholds above which a signal level is considered POOR, 9759 * MODERATE, GOOD, or EXCELLENT, to be used in SignalStrength reporting. 9760 * 9761 * Note that the min and max thresholds are fixed at -140 and -44, as explained in 9762 * TS 136.133 9.1.4 - RSRP Measurement Report Mapping. 9763 * <p> 9764 * See SignalStrength#MAX_LTE_RSRP and SignalStrength#MIN_LTE_RSRP. Any signal level outside 9765 * these boundaries is considered invalid. 9766 */ 9767 @FlaggedApi(Flags.FLAG_CARRIER_ENABLED_SATELLITE_FLAG) 9768 public static final String KEY_NTN_LTE_RSRP_THRESHOLDS_INT_ARRAY = 9769 "ntn_lte_rsrp_thresholds_int_array"; 9770 9771 /** 9772 * This threshold is used when connected to a non-terrestrial LTE network. 9773 * A list of 4 customized NTN LTE Reference Signal Received Quality (RSRQ) thresholds. 9774 * 9775 * Reference: TS 136.133 v12.6.0 section 9.1.7 - RSRQ Measurement Report Mapping. 9776 * 9777 * 4 threshold integers must be within the boundaries [-34 dB, 3 dB], and the levels are: 9778 * "NONE: [-34, threshold1)" 9779 * "POOR: [threshold1, threshold2)" 9780 * "MODERATE: [threshold2, threshold3)" 9781 * "GOOD: [threshold3, threshold4)" 9782 * "EXCELLENT: [threshold4, 3]" 9783 * 9784 * This key is considered invalid if the format is violated. If the key is invalid or 9785 * not configured, a default value set will apply. 9786 */ 9787 @FlaggedApi(Flags.FLAG_CARRIER_ENABLED_SATELLITE_FLAG) 9788 public static final String KEY_NTN_LTE_RSRQ_THRESHOLDS_INT_ARRAY = 9789 "ntn_lte_rsrq_thresholds_int_array"; 9790 9791 /** 9792 * This threshold is used when connected to a non-terrestrial LTE network. 9793 * A list of 4 customized NTN LTE Reference Signal Signal to Noise Ratio (RSSNR) thresholds. 9794 * 9795 * 4 threshold integers must be within the boundaries [-20 dB, 30 dB], and the levels are: 9796 * "NONE: [-20, threshold1)" 9797 * "POOR: [threshold1, threshold2)" 9798 * "MODERATE: [threshold2, threshold3)" 9799 * "GOOD: [threshold3, threshold4)" 9800 * "EXCELLENT: [threshold4, 30]" 9801 * 9802 * This key is considered invalid if the format is violated. If the key is invalid or 9803 * not configured, a default value set will apply. 9804 */ 9805 @FlaggedApi(Flags.FLAG_CARRIER_ENABLED_SATELLITE_FLAG) 9806 public static final String KEY_NTN_LTE_RSSNR_THRESHOLDS_INT_ARRAY = 9807 "ntn_lte_rssnr_thresholds_int_array"; 9808 9809 /** 9810 * This threshold is used when connected to a non-terrestrial LTE network. 9811 * Bit-field integer to determine whether to use Reference Signal Received Power (RSRP), 9812 * Reference Signal Received Quality (RSRQ), or/and Reference Signal Signal to Noise Ratio 9813 * (RSSNR) for the number of NTN LTE signal bars and signal criteria reporting enabling. 9814 * 9815 * <p> If a measure is not set, signal criteria reporting from modem will not be triggered and 9816 * not be used for calculating signal level. If multiple measures are set bit, the parameter 9817 * whose value is smallest is used to indicate the signal level. 9818 * <UL> 9819 * <LI>RSRP = 1 << 0</LI> 9820 * <LI>RSRQ = 1 << 1</LI> 9821 * <LI>RSSNR = 1 << 2</LI> 9822 * </UL> 9823 * <p> The value of this key must be bitwise OR of CellSignalStrengthLte#USE_RSRP, 9824 * CellSignalStrengthLte#USE_RSRQ, CellSignalStrengthLte#USE_RSSNR. 9825 * 9826 * <p> For example, if both RSRP and RSRQ are used, the value of key is 3 (1 << 0 | 1 << 1). 9827 * If the key is invalid or not configured, a default value (RSRP = 1 << 0) will apply. 9828 * 9829 */ 9830 @FlaggedApi(Flags.FLAG_CARRIER_ENABLED_SATELLITE_FLAG) 9831 public static final String KEY_PARAMETERS_USED_FOR_NTN_LTE_SIGNAL_BAR_INT = 9832 "parameters_used_for_ntn_lte_signal_bar_int"; 9833 9834 /** 9835 * Indicating whether plmns associated with carrier satellite can be exposed to user when 9836 * manually scanning available cellular network. 9837 * If key is {@code true}, satellite plmn should not be exposed to user and should be 9838 * automatically set, {@code false} otherwise. Default value is {@code true}. 9839 * 9840 * @hide 9841 */ 9842 public static final String KEY_REMOVE_SATELLITE_PLMN_IN_MANUAL_NETWORK_SCAN_BOOL = 9843 "remove_satellite_plmn_in_manual_network_scan_bool"; 9844 9845 9846 /** @hide */ 9847 @IntDef({ 9848 SATELLITE_DATA_SUPPORT_ONLY_RESTRICTED, 9849 SATELLITE_DATA_SUPPORT_BANDWIDTH_CONSTRAINED, 9850 SATELLITE_DATA_SUPPORT_ALL, 9851 }) 9852 public @interface SATELLITE_DATA_SUPPORT_MODE {} 9853 9854 /** 9855 * Doesn't support unrestricted traffic on satellite network. 9856 * @hide 9857 */ 9858 public static final int SATELLITE_DATA_SUPPORT_ONLY_RESTRICTED = 0; 9859 /** 9860 * Support unrestricted but bandwidth_constrained traffic on satellite network. 9861 * @hide 9862 */ 9863 public static final int SATELLITE_DATA_SUPPORT_BANDWIDTH_CONSTRAINED = 1; 9864 /** 9865 * Support unrestricted satellite network that serves all traffic. 9866 * @hide 9867 */ 9868 public static final int SATELLITE_DATA_SUPPORT_ALL = 2; 9869 /** 9870 * Indicates what kind of traffic an {@link NetworkCapabilities#NET_CAPABILITY_NOT_RESTRICTED} 9871 * satellite network can possibly support. The network may subject to further 9872 * restrictions such as entitlement etc. 9873 * If no data is allowed on satellite network, exclude 9874 * {@link ApnSetting#INFRASTRUCTURE_SATELLITE} from APN infrastructure_bitmask, and this 9875 * configuration is ignored. 9876 * By default it only supports restricted data. 9877 * @hide 9878 */ 9879 public static final String KEY_SATELLITE_DATA_SUPPORT_MODE_INT = 9880 "satellite_data_support_mode_int"; 9881 9882 /** 9883 * Determine whether to override roaming Wi-Fi Calling preference when device is connected to 9884 * non-terrestrial network. 9885 * {@code true} - roaming preference cannot be changed by user independently. 9886 * Roaming preference is overridden to 9887 * {@link com.android.ims.ImsConfig.WfcModeFeatureValueConstants#WIFI_PREFERRED} 9888 * {@code false} - roaming preference can be changed by user independently and is not 9889 * overridden when device is connected to non-terrestrial network. 9890 * @hide 9891 */ 9892 public static final String KEY_OVERRIDE_WFC_ROAMING_MODE_WHILE_USING_NTN_BOOL = 9893 "override_wfc_roaming_mode_while_using_ntn_bool"; 9894 9895 /** 9896 * An integer key holds the time interval for refreshing or re-querying the satellite 9897 * entitlement status from the entitlement server to ensure it is the latest. 9898 * 9899 * The default value is 7 days. 9900 */ 9901 @FlaggedApi(Flags.FLAG_CARRIER_ENABLED_SATELLITE_FLAG) 9902 public static final String KEY_SATELLITE_ENTITLEMENT_STATUS_REFRESH_DAYS_INT = 9903 "satellite_entitlement_status_refresh_days_int"; 9904 9905 /** 9906 * This configuration enables device to query the entitlement server to get the satellite 9907 * configuration. 9908 * This will need agreement the carrier before enabling this flag. 9909 * 9910 * The default value is false. 9911 */ 9912 @FlaggedApi(Flags.FLAG_CARRIER_ENABLED_SATELLITE_FLAG) 9913 public static final String KEY_SATELLITE_ENTITLEMENT_SUPPORTED_BOOL = 9914 "satellite_entitlement_supported_bool"; 9915 9916 /** 9917 * Indicates the appName that is used when querying the entitlement server for satellite. 9918 * 9919 * The default value is androidSatmode. 9920 * 9921 * Reference: GSMA TS.43-v11, 2.8.5 Fast Authentication and Token Management. 9922 * `app_name` is an optional attribute in the request and may vary depending on the carrier 9923 * requirement. 9924 * @hide 9925 */ 9926 public static final String KEY_SATELLITE_ENTITLEMENT_APP_NAME_STRING = 9927 "satellite_entitlement_app_name_string"; 9928 9929 /** 9930 * URL to redirect user to get more information about the carrier support for satellite. 9931 * 9932 * The default value is empty string. 9933 * 9934 * @hide 9935 */ 9936 public static final String KEY_SATELLITE_INFORMATION_REDIRECT_URL_STRING = 9937 "satellite_information_redirect_url_string"; 9938 /** 9939 * Indicate whether a carrier supports emergency messaging. When this config is {@code false}, 9940 * emergency call to satellite T911 handover will be disabled. 9941 * 9942 * This will need agreement with carriers before enabling this flag. 9943 * 9944 * The default value is false. 9945 * 9946 * @hide 9947 */ 9948 public static final String KEY_EMERGENCY_MESSAGING_SUPPORTED_BOOL = 9949 "emergency_messaging_supported_bool"; 9950 9951 /** 9952 * An integer key holds the timeout duration in milliseconds used to determine whether to hand 9953 * over an emergency call to satellite T911. 9954 * 9955 * The timer is started when there is an ongoing emergency call, and the IMS is not registered, 9956 * and cellular service is not available. When the timer expires, 9957 * {@link com.android.internal.telephony.satellite.SatelliteSOSMessageRecommender} will send the 9958 * event {@link TelephonyManager#EVENT_DISPLAY_EMERGENCY_MESSAGE} to Dialer, which will then 9959 * prompt user to switch to using satellite emergency messaging. 9960 * 9961 * The default value is 30 seconds. 9962 * 9963 * @hide 9964 */ 9965 public static final String KEY_EMERGENCY_CALL_TO_SATELLITE_T911_HANDOVER_TIMEOUT_MILLIS_INT = 9966 "emergency_call_to_satellite_t911_handover_timeout_millis_int"; 9967 9968 /** 9969 * An int array that contains default capabilities for carrier enabled satellite roaming. 9970 * If any PLMN is provided from the entitlement server, and it is not listed in 9971 * {@link #KEY_CARRIER_SUPPORTED_SATELLITE_SERVICES_PER_PROVIDER_BUNDLE}, default capabilities 9972 * will be used instead. 9973 * <p> 9974 * The default capabilities are 9975 * {@link NetworkRegistrationInfo#SERVICE_TYPE_SMS}, and 9976 * {@link NetworkRegistrationInfo#SERVICE_TYPE_MMS} 9977 * 9978 * @hide 9979 */ 9980 public static final String KEY_CARRIER_ROAMING_SATELLITE_DEFAULT_SERVICES_INT_ARRAY = 9981 "carrier_roaming_satellite_default_services_int_array"; 9982 9983 /** 9984 * Indicating whether DUN APN should be disabled when the device is roaming. In that case, 9985 * the default APN (i.e. internet) will be used for tethering. 9986 * 9987 * This config is only available when using Preset APN(not user edited) as Preferred APN. 9988 * 9989 * @hide 9990 */ 9991 public static final String KEY_DISABLE_DUN_APN_WHILE_ROAMING_WITH_PRESET_APN_BOOL = 9992 "disable_dun_apn_while_roaming_with_preset_apn_bool"; 9993 9994 /** 9995 * Where there is no preferred APN, specifies the carrier's default preferred APN. 9996 * Specifies the {@link android.provider.Telephony.Carriers.APN} of the default preferred apn. 9997 * 9998 * This config is only available with Preset APN(not user edited). 9999 * 10000 * @hide 10001 */ 10002 public static final String KEY_DEFAULT_PREFERRED_APN_NAME_STRING = 10003 "default_preferred_apn_name_string"; 10004 10005 /** 10006 * Indicates if the carrier supports call composer. 10007 */ 10008 public static final String KEY_SUPPORTS_CALL_COMPOSER_BOOL = "supports_call_composer_bool"; 10009 10010 /** 10011 * Indicates if the carrier supports a business call composer. 10012 */ 10013 @FlaggedApi(com.android.server.telecom.flags.Flags.FLAG_BUSINESS_CALL_COMPOSER) 10014 public static final String KEY_SUPPORTS_BUSINESS_CALL_COMPOSER_BOOL = 10015 "supports_business_call_composer_bool"; 10016 10017 /** 10018 * Indicates the carrier server url that serves the call composer picture. 10019 */ 10020 public static final String KEY_CALL_COMPOSER_PICTURE_SERVER_URL_STRING = 10021 "call_composer_picture_server_url_string"; 10022 10023 /** 10024 * Determines the default RTT mode. 10025 * 10026 * Upon first boot, when the user has not yet set a value for their preferred RTT mode, 10027 * the value of this config will be sent to the IMS stack. Valid values are the same as for 10028 * {@link Settings.Secure#RTT_CALLING_MODE}. 10029 * 10030 * @hide 10031 */ 10032 public static final String KEY_DEFAULT_RTT_MODE_INT = "default_rtt_mode_int"; 10033 10034 /** 10035 * Indicates whether RTT is supported while roaming. 10036 */ 10037 public static final String KEY_RTT_SUPPORTED_WHILE_ROAMING_BOOL = 10038 "rtt_supported_while_roaming_bool"; 10039 10040 /** 10041 * Indicates if auto-configuration server is used for the RCS config 10042 * Reference: GSMA RCC.14 10043 */ 10044 public static final String KEY_USE_ACS_FOR_RCS_BOOL = "use_acs_for_rcs_bool"; 10045 10046 /** 10047 * Indicates temporarily unmetered mobile data is supported by the carrier. 10048 * @hide 10049 */ 10050 public static final String KEY_NETWORK_TEMP_NOT_METERED_SUPPORTED_BOOL = 10051 "network_temp_not_metered_supported_bool"; 10052 10053 /** 10054 * Boolean indicating whether the SIM PIN can be stored and verified 10055 * seamlessly after an unattended reboot. 10056 * 10057 * The device configuration value {@code config_allow_pin_storage_for_unattended_reboot} 10058 * ultimately controls whether this carrier configuration option is used. Where 10059 * {@code config_allow_pin_storage_for_unattended_reboot} is false, the value of this 10060 * carrier configuration is ignored. 10061 * 10062 * @hide 10063 */ 10064 public static final String KEY_STORE_SIM_PIN_FOR_UNATTENDED_REBOOT_BOOL = 10065 "store_sim_pin_for_unattended_reboot_bool"; 10066 10067 /** 10068 * Allow whether the user can use the "Allow 2G" toggle in Settings. 10069 * 10070 * If {@code true} then the toggle is disabled (i.e. grayed out). 10071 * 10072 * Used to trade privacy/security against potentially reduced carrier coverage for some 10073 * carriers. 10074 * 10075 * @removed This config option is no longer supported as it was hiding a security feature 10076 * from users. Setting this option will not change the behavior of the Settings menu starting 10077 * in Android V. 10078 */ 10079 @Deprecated 10080 public static final String KEY_HIDE_ENABLE_2G = "hide_enable_2g_bool"; 10081 10082 /** 10083 * Indicates the allowed APN types that can be used for LTE initial attach. The order of APN 10084 * types in the configuration is the order of APN types that will be used for initial attach. 10085 * Empty list indicates that no APN types are allowed for initial attach. 10086 * 10087 * @hide 10088 */ 10089 public static final String KEY_ALLOWED_INITIAL_ATTACH_APN_TYPES_STRING_ARRAY = 10090 "allowed_initial_attach_apn_types_string_array"; 10091 10092 /** 10093 * Indicates whether or not the carrier will provision merged carrier Wi-Fi offload networks. 10094 * Such networks are considered part of the core carrier network. 10095 * 10096 * This configuration will be use to gate whether such configurations are allowed to the carrier 10097 * and correspondingly enable UI elements which are required for such configurations. 10098 */ 10099 public static final String KEY_CARRIER_PROVISIONS_WIFI_MERGED_NETWORKS_BOOL = 10100 "carrier_provisions_wifi_merged_networks_bool"; 10101 10102 /** 10103 * Determines whether or not to use (IP) data connectivity as a supplemental condition to 10104 * control the visibility of the no-calling indicator for this carrier in the System UI. Setting 10105 * the configuration to true may make sense for carriers that provide OTT calling. 10106 * 10107 * Config = true: show no-calling indication only if telephony does not have voice registration 10108 * and if no (IP) data connectivity is available. 10109 * Config = false: show no-calling indication only if telephony does not have voice 10110 * registration. 10111 */ 10112 public static final String KEY_USE_IP_FOR_CALLING_INDICATOR_BOOL = 10113 "use_ip_for_calling_indicator_bool"; 10114 10115 /** 10116 * Determine whether or not to display a call strength indicator for this carrier in the System 10117 * UI. Disabling the indication may be reasonable if the carrier's calling is not integrated 10118 * into the Android telephony stack (e.g. it is OTT). 10119 * 10120 * true: Use telephony APIs to detect the current networking medium of calling and display a 10121 * UI indication based on the current strength (e.g. signal level) of that medium. 10122 * false: Do not display the call strength indicator. 10123 */ 10124 public static final String KEY_DISPLAY_CALL_STRENGTH_INDICATOR_BOOL = 10125 "display_call_strength_indicator_bool"; 10126 10127 /** 10128 * Determine whether or not to display no data notification when data setup is permanently 10129 * failed. 10130 * 10131 * @hide 10132 */ 10133 public static final String KEY_DISPLAY_NO_DATA_NOTIFICATION_ON_PERMANENT_FAILURE_BOOL = 10134 "display_no_data_notification_on_permanent_failure_bool"; 10135 10136 /** 10137 * Boolean indicating if the VoNR setting is visible in the Call Settings menu. 10138 * If this flag is set and VoNR is enabled for this carrier (see {@link #KEY_VONR_ENABLED_BOOL}) 10139 * the VoNR setting menu will be visible. If {@link #KEY_VONR_ENABLED_BOOL} or 10140 * this setting is false, the menu will be gone. 10141 * 10142 * Enabled by default. 10143 * 10144 */ 10145 public static final String KEY_VONR_SETTING_VISIBILITY_BOOL = "vonr_setting_visibility_bool"; 10146 10147 /** 10148 * Flag specifying whether VoNR should be enabled for carrier. 10149 * If true, VoNr will be enabled. If false, hard disabled. 10150 * 10151 * Disabled by default. 10152 * 10153 */ 10154 public static final String KEY_VONR_ENABLED_BOOL = "vonr_enabled_bool"; 10155 10156 /** 10157 * Boolean indicating the default VoNR user preference setting. 10158 * If true, the VoNR setting will be enabled. If false, it will be disabled initially. 10159 * 10160 * Enabled by default. 10161 * 10162 */ 10163 public static final String KEY_VONR_ON_BY_DEFAULT_BOOL = "vonr_on_by_default_bool"; 10164 10165 /** 10166 * Determine whether unthrottle data retry when tracking area code (TAC/LAC) from cell changes 10167 * 10168 * @hide 10169 */ 10170 public static final String KEY_UNTHROTTLE_DATA_RETRY_WHEN_TAC_CHANGES_BOOL = 10171 "unthrottle_data_retry_when_tac_changes_bool"; 10172 10173 /** 10174 * A list of premium capabilities the carrier supports. Applications can prompt users to 10175 * purchase these premium capabilities from their carrier for a performance boost. 10176 * Valid values are any of {@link TelephonyManager}'s {@code PREMIUM_CAPABILITY_*} constants. 10177 * 10178 * This is empty by default, indicating that no premium capabilities are supported. 10179 * 10180 * @see TelephonyManager#isPremiumCapabilityAvailableForPurchase(int) 10181 * @see TelephonyManager#purchasePremiumCapability(int, Executor, Consumer) 10182 */ 10183 public static final String KEY_SUPPORTED_PREMIUM_CAPABILITIES_INT_ARRAY = 10184 "supported_premium_capabilities_int_array"; 10185 10186 /** 10187 * The amount of time in milliseconds the notification for a performance boost via 10188 * premium capabilities will be visible to the user after 10189 * {@link TelephonyManager#purchasePremiumCapability(int, Executor, Consumer)} 10190 * requests user action to purchase the boost from the carrier. Once the timeout expires, 10191 * the performance boost notification will be automatically dismissed and the request will fail 10192 * with {@link TelephonyManager#PURCHASE_PREMIUM_CAPABILITY_RESULT_TIMEOUT}. 10193 * 10194 * The default value is 30 minutes. 10195 */ 10196 public static final String KEY_PREMIUM_CAPABILITY_NOTIFICATION_DISPLAY_TIMEOUT_MILLIS_LONG = 10197 "premium_capability_notification_display_timeout_millis_long"; 10198 10199 /** 10200 * The amount of time in milliseconds that the notification for a performance boost via 10201 * premium capabilities should be blocked when 10202 * {@link TelephonyManager#purchasePremiumCapability(int, Executor, Consumer)} 10203 * returns a failure due to user action or timeout. 10204 * The maximum number of performance boost notifications to show the user are defined in 10205 * {@link #KEY_PREMIUM_CAPABILITY_MAXIMUM_DAILY_NOTIFICATION_COUNT_INT} and 10206 * {@link #KEY_PREMIUM_CAPABILITY_MAXIMUM_MONTHLY_NOTIFICATION_COUNT_INT}. 10207 * 10208 * The default value is 30 minutes. 10209 * 10210 * @see TelephonyManager#PURCHASE_PREMIUM_CAPABILITY_RESULT_USER_CANCELED 10211 * @see TelephonyManager#PURCHASE_PREMIUM_CAPABILITY_RESULT_TIMEOUT 10212 */ 10213 public static final String 10214 KEY_PREMIUM_CAPABILITY_NOTIFICATION_BACKOFF_HYSTERESIS_TIME_MILLIS_LONG = 10215 "premium_capability_notification_backoff_hysteresis_time_millis_long"; 10216 10217 /** 10218 * The maximum number of times in a day that we display the notification for a performance boost 10219 * via premium capabilities when 10220 * {@link TelephonyManager#purchasePremiumCapability(int, Executor, Consumer)} 10221 * returns a failure due to user action or timeout. 10222 * 10223 * The default value is 2 times. 10224 * 10225 * @see TelephonyManager#PURCHASE_PREMIUM_CAPABILITY_RESULT_USER_CANCELED 10226 * @see TelephonyManager#PURCHASE_PREMIUM_CAPABILITY_RESULT_TIMEOUT 10227 */ 10228 public static final String KEY_PREMIUM_CAPABILITY_MAXIMUM_DAILY_NOTIFICATION_COUNT_INT = 10229 "premium_capability_maximum_daily_notification_count_int"; 10230 10231 /** 10232 * The maximum number of times in a month that we display the notification for a performance 10233 * boost via premium capabilities when 10234 * {@link TelephonyManager#purchasePremiumCapability(int, Executor, Consumer)} 10235 * returns a failure due to user action or timeout. 10236 * 10237 * The default value is 10 times. 10238 * 10239 * @see TelephonyManager#PURCHASE_PREMIUM_CAPABILITY_RESULT_USER_CANCELED 10240 * @see TelephonyManager#PURCHASE_PREMIUM_CAPABILITY_RESULT_TIMEOUT 10241 */ 10242 public static final String KEY_PREMIUM_CAPABILITY_MAXIMUM_MONTHLY_NOTIFICATION_COUNT_INT = 10243 "premium_capability_maximum_monthly_notification_count_int"; 10244 10245 /** 10246 * The amount of time in milliseconds that the purchase request should be throttled when 10247 * {@link TelephonyManager#purchasePremiumCapability(int, Executor, Consumer)} 10248 * returns a failure due to the carrier. 10249 * 10250 * The default value is 30 minutes. 10251 * 10252 * @see TelephonyManager#PURCHASE_PREMIUM_CAPABILITY_RESULT_CARRIER_ERROR 10253 * @see TelephonyManager#PURCHASE_PREMIUM_CAPABILITY_RESULT_ENTITLEMENT_CHECK_FAILED 10254 */ 10255 public static final String 10256 KEY_PREMIUM_CAPABILITY_PURCHASE_CONDITION_BACKOFF_HYSTERESIS_TIME_MILLIS_LONG = 10257 "premium_capability_purchase_condition_backoff_hysteresis_time_millis_long"; 10258 10259 /** 10260 * The amount of time in milliseconds within which the network must set up a slicing 10261 * configuration for the premium capability after 10262 * {@link TelephonyManager#purchasePremiumCapability(int, Executor, Consumer)} 10263 * returns {@link TelephonyManager#PURCHASE_PREMIUM_CAPABILITY_RESULT_SUCCESS}. 10264 * During the setup time, calls to 10265 * {@link TelephonyManager#purchasePremiumCapability(int, Executor, Consumer)} will return 10266 * {@link TelephonyManager#PURCHASE_PREMIUM_CAPABILITY_RESULT_PENDING_NETWORK_SETUP}. 10267 * If the network fails to set up a slicing configuration for the premium capability within the 10268 * setup time, subsequent purchase requests will be allowed to go through again. 10269 * 10270 * The default value is 5 minutes. 10271 */ 10272 public static final String KEY_PREMIUM_CAPABILITY_NETWORK_SETUP_TIME_MILLIS_LONG = 10273 "premium_capability_network_setup_time_millis_long"; 10274 10275 /** 10276 * The URL to redirect to when the user clicks on the notification for a performance boost via 10277 * premium capabilities after applications call 10278 * {@link TelephonyManager#purchasePremiumCapability(int, Executor, Consumer)}. 10279 * If the URL is empty or invalid, the purchase request will return 10280 * {@link TelephonyManager#PURCHASE_PREMIUM_CAPABILITY_RESULT_FEATURE_NOT_SUPPORTED}. 10281 * 10282 * This is empty by default. 10283 */ 10284 public static final String KEY_PREMIUM_CAPABILITY_PURCHASE_URL_STRING = 10285 "premium_capability_purchase_url_string"; 10286 10287 /** 10288 * Whether to allow premium capabilities to be purchased when the device is connected to LTE. 10289 * If this is {@code true}, applications can call 10290 * {@link TelephonyManager#purchasePremiumCapability(int, Executor, Consumer)} 10291 * when connected to {@link TelephonyManager#NETWORK_TYPE_LTE} to purchase and use 10292 * premium capabilities. 10293 * If this is {@code false}, applications can only purchase and use premium capabilities when 10294 * connected to {@link TelephonyManager#NETWORK_TYPE_NR}. 10295 * 10296 * This is {@code false} by default. 10297 */ 10298 public static final String KEY_PREMIUM_CAPABILITY_SUPPORTED_ON_LTE_BOOL = 10299 "premium_capability_supported_on_lte_bool"; 10300 10301 /** 10302 * IWLAN handover rules that determine whether handover is allowed or disallowed between 10303 * cellular and IWLAN. 10304 * 10305 * Rule syntax: "source=[GERAN|UTRAN|EUTRAN|NGRAN|IWLAN|UNKNOWN], target=[GERAN|UTRAN|EUTRAN 10306 * |NGRAN|IWLAN], type=[allowed|disallowed], roaming=[true|false], capabilities=[INTERNET|MMS 10307 * |FOTA|IMS|CBS|SUPL|EIMS|XCAP|DUN]" 10308 * 10309 * Note that UNKNOWN can be only specified in the source access network and can be only used 10310 * in the disallowed rule. 10311 * 10312 * The handover rules will be matched in the order. Here are some sample rules. 10313 * <string-array name="iwlan_handover_rules" num="5"> 10314 * <!-- Handover from IWLAN to 2G/3G is not allowed --> 10315 * <item value="source=IWLAN, target=GERAN|UTRAN, type=disallowed"/> 10316 * <!-- Handover from 2G/3G to IWLAN is not allowed --> 10317 * <item value="source=GERAN|UTRAN, target:IWLAN, type=disallowed"/> 10318 * <!-- Handover from IWLAN to 3G/4G/5G is not allowed if the device is roaming. --> 10319 * <item value="source=IWLAN, target=UTRAN|EUTRAN|NGRAN, roaming=true, type=disallowed"/> 10320 * <!-- Handover from 4G to IWLAN is not allowed if the device has capability in either IMS 10321 * or EIMS--> 10322 * <item value="source=EUTRAN, target=IWLAN, type=disallowed, capabilities=IMS|EIMS"/> 10323 * <!-- Handover is always allowed in any condition. --> 10324 * <item value="source=GERAN|UTRAN|EUTRAN|NGRAN|IWLAN|UNKNOWN, 10325 * target=GERAN|UTRAN|EUTRAN|NGRAN|IWLAN, type=allowed"/> 10326 * </string-array> 10327 * 10328 * When handover is not allowed, frameworks will tear down the data network on source transport, 10329 * and then setup a new one on the target transport when Qualified Network Service changes the 10330 * preferred access networks for particular APN types. 10331 * 10332 * @hide 10333 */ 10334 public static final String KEY_IWLAN_HANDOVER_POLICY_STRING_ARRAY = 10335 "iwlan_handover_policy_string_array"; 10336 10337 /** 10338 * Score table for {@link TelephonyManager#MOBILE_DATA_POLICY_AUTO_DATA_SWITCH}. The score is 10339 * used in conjunction with a tolerance value defined in resource config 10340 * {@code auto_data_switch_score_tolerance}, greater than which device will switch to the sub 10341 * with higher score. 10342 * Possible keys are network type name string(also see {@link #KEY_BANDWIDTH_STRING_ARRAY}). 10343 * Value should be "score_level_0, score_level_1, score_level_2, score_level_3,score_level_4". 10344 * Each network type must have 5 scores correspond to {@link CellSignalStrength}, where score is 10345 * a non-negative integer. A score of 0 is treated the same as data out of service. 10346 * 10347 * For NR (5G), the following network names should be used: 10348 * - NR_NSA: NR NSA, sub-6 frequencies 10349 * - NR_NSA_MMWAVE: NR NSA, mmwave frequencies 10350 * - NR_SA: NR SA, sub-6 frequencies 10351 * - NR_SA_MMWAVE: NR SA, mmwave frequencies 10352 * 10353 * @hide 10354 */ 10355 public static final String KEY_AUTO_DATA_SWITCH_RAT_SIGNAL_SCORE_BUNDLE = 10356 "auto_data_switch_rat_signal_score_string_bundle"; 10357 10358 // TODO(b/316183370): replace @code with @link in javadoc after feature is released 10359 /** 10360 * An array of cellular services supported by a subscription. 10361 * 10362 * <p>Permissible values include: 10363 * <ul> 10364 * <li>{@code SubscriptionManager#SERVICE_CAPABILITY_VOICE} for voice services</li> 10365 * <li>{@code SubscriptionManager#SERVICE_CAPABILITY_SMS} for SMS services</li> 10366 * <li>{@code SubscriptionManager#SERVICE_CAPABILITY_DATA} for data services</li> 10367 * </ul> 10368 * 10369 * <p>Carrier-specific factors may influence how these services are supported. Therefore, 10370 * modifying this carrier configuration might not always enable the specified services. These 10371 * capability bitmasks should be considered as indicators of a carrier's preferred services 10372 * to enhance user experience, rather than as absolute platform guarantees. 10373 * 10374 * <p>Device-level service capabilities, defined by 10375 * {@code TelephonyManager#isDeviceVoiceCapable} and 10376 * {@code TelephonyManager#isDeviceSmsCapable}, take precedence over these subscription-level 10377 * settings. For instance, a device where {@code TelephonyManager#isDeviceVoiceCapable} returns 10378 * false may not be able to make voice calls, even if subscribed to a service marked as 10379 * voice-capable. 10380 * 10381 * <p>To determine a subscription's cellular service capabilities, use 10382 * {@code SubscriptionInfo#getServiceCapabilities()}. To track changes in services, register 10383 * a {@link SubscriptionManager.OnSubscriptionsChangedListener} and invoke the 10384 * same method in its callback. 10385 * 10386 * <p>Emergency service availability may not depend on the cellular service capabilities. 10387 * For example, emergency calls might be possible on a subscription even if it lacks 10388 * {@code SubscriptionManager#SERVICE_CAPABILITY_VOICE}. 10389 * 10390 * <p>If unset, the default value is “[1, 2, 3]” (supports all cellular services). 10391 * 10392 * @see TelephonyManager#isDeviceVoiceCapable 10393 * @see TelephonyManager#isDeviceSmsCapable 10394 * @see SubscriptionInfo#getServiceCapabilities() 10395 * @see SubscriptionManager.OnSubscriptionsChangedListener 10396 */ 10397 @FlaggedApi(Flags.FLAG_DATA_ONLY_CELLULAR_SERVICE) 10398 public static final String KEY_CELLULAR_SERVICE_CAPABILITIES_INT_ARRAY = 10399 "cellular_service_capabilities_int_array"; 10400 /** 10401 * Transition delay from BT to Cellular on Wear. 10402 * Specifies delay when transitioning away from BT. 10403 * This minimizes the duration of the netTransitionWakelock held by ConnectivityService 10404 * whenever the primary/default network disappears, while still allowing some amount of time 10405 * for BT to reconnect before we enable cell. 10406 * 10407 * If set as -1 then value from resources will be used 10408 * 10409 * @hide 10410 */ 10411 public static final String KEY_WEAR_CONNECTIVITY_BT_TO_CELL_DELAY_MS_INT = 10412 "proxy_connectivity_delay_cell"; 10413 10414 /** 10415 * Transition delay from BT to Cellular on Wear. 10416 * If wifi connected it extends delay that has been started for BT to Cellular transition 10417 * to avoid Wifi thrashing turning Cell radio and causing higher battery drain. 10418 * 10419 * If set as -1 then value from resources will be used 10420 * 10421 * @hide 10422 */ 10423 public static final String KEY_WEAR_CONNECTIVITY_EXTEND_BT_TO_CELL_DELAY_ON_WIFI_MS_INT = 10424 "wifi_connectivity_extend_cell_delay"; 10425 10426 /** The default value for every variable. */ 10427 private static final PersistableBundle sDefaults; 10428 10429 static { 10430 sDefaults = new PersistableBundle(); sDefaults.putString(KEY_CARRIER_CONFIG_VERSION_STRING, "")10431 sDefaults.putString(KEY_CARRIER_CONFIG_VERSION_STRING, ""); sDefaults.putBoolean(KEY_ALLOW_HOLD_IN_IMS_CALL_BOOL, true)10432 sDefaults.putBoolean(KEY_ALLOW_HOLD_IN_IMS_CALL_BOOL, true); sDefaults.putBoolean(KEY_CARRIER_ALLOW_DEFLECT_IMS_CALL_BOOL, false)10433 sDefaults.putBoolean(KEY_CARRIER_ALLOW_DEFLECT_IMS_CALL_BOOL, false); sDefaults.putBoolean(KEY_CARRIER_ALLOW_TRANSFER_IMS_CALL_BOOL, false)10434 sDefaults.putBoolean(KEY_CARRIER_ALLOW_TRANSFER_IMS_CALL_BOOL, false); sDefaults.putBoolean(KEY_ALWAYS_PLAY_REMOTE_HOLD_TONE_BOOL, false)10435 sDefaults.putBoolean(KEY_ALWAYS_PLAY_REMOTE_HOLD_TONE_BOOL, false); sDefaults.putBoolean(KEY_AUTO_RETRY_FAILED_WIFI_EMERGENCY_CALL, false)10436 sDefaults.putBoolean(KEY_AUTO_RETRY_FAILED_WIFI_EMERGENCY_CALL, false); sDefaults.putBoolean(KEY_ADDITIONAL_CALL_SETTING_BOOL, true)10437 sDefaults.putBoolean(KEY_ADDITIONAL_CALL_SETTING_BOOL, true); sDefaults.putBoolean(KEY_ALLOW_EMERGENCY_NUMBERS_IN_CALL_LOG_BOOL, false)10438 sDefaults.putBoolean(KEY_ALLOW_EMERGENCY_NUMBERS_IN_CALL_LOG_BOOL, false); sDefaults.putStringArray(KEY_UNLOGGABLE_NUMBERS_STRING_ARRAY, null)10439 sDefaults.putStringArray(KEY_UNLOGGABLE_NUMBERS_STRING_ARRAY, null); sDefaults.putBoolean(KEY_ALLOW_LOCAL_DTMF_TONES_BOOL, true)10440 sDefaults.putBoolean(KEY_ALLOW_LOCAL_DTMF_TONES_BOOL, true); sDefaults.putBoolean(KEY_PLAY_CALL_RECORDING_TONE_BOOL, false)10441 sDefaults.putBoolean(KEY_PLAY_CALL_RECORDING_TONE_BOOL, false); sDefaults.putBoolean(KEY_APN_EXPAND_BOOL, true)10442 sDefaults.putBoolean(KEY_APN_EXPAND_BOOL, true); sDefaults.putBoolean(KEY_AUTO_RETRY_ENABLED_BOOL, false)10443 sDefaults.putBoolean(KEY_AUTO_RETRY_ENABLED_BOOL, false); sDefaults.putBoolean(KEY_CARRIER_SETTINGS_ENABLE_BOOL, false)10444 sDefaults.putBoolean(KEY_CARRIER_SETTINGS_ENABLE_BOOL, false); sDefaults.putBoolean(KEY_CARRIER_VOLTE_AVAILABLE_BOOL, false)10445 sDefaults.putBoolean(KEY_CARRIER_VOLTE_AVAILABLE_BOOL, false); sDefaults.putBoolean(KEY_CARRIER_VT_AVAILABLE_BOOL, false)10446 sDefaults.putBoolean(KEY_CARRIER_VT_AVAILABLE_BOOL, false); sDefaults.putInt(KEY_CARRIER_USSD_METHOD_INT, USSD_OVER_CS_PREFERRED)10447 sDefaults.putInt(KEY_CARRIER_USSD_METHOD_INT, USSD_OVER_CS_PREFERRED); sDefaults.putBoolean(KEY_VOLTE_5G_LIMITED_ALERT_DIALOG_BOOL, false)10448 sDefaults.putBoolean(KEY_VOLTE_5G_LIMITED_ALERT_DIALOG_BOOL, false); sDefaults.putBoolean(KEY_NOTIFY_HANDOVER_VIDEO_FROM_WIFI_TO_LTE_BOOL, false)10449 sDefaults.putBoolean(KEY_NOTIFY_HANDOVER_VIDEO_FROM_WIFI_TO_LTE_BOOL, false); sDefaults.putBoolean(KEY_ALLOW_MERGING_RTT_CALLS_BOOL, false)10450 sDefaults.putBoolean(KEY_ALLOW_MERGING_RTT_CALLS_BOOL, false); sDefaults.putBoolean(KEY_NOTIFY_HANDOVER_VIDEO_FROM_LTE_TO_WIFI_BOOL, false)10451 sDefaults.putBoolean(KEY_NOTIFY_HANDOVER_VIDEO_FROM_LTE_TO_WIFI_BOOL, false); sDefaults.putBoolean(KEY_SUPPORT_DOWNGRADE_VT_TO_AUDIO_BOOL, true)10452 sDefaults.putBoolean(KEY_SUPPORT_DOWNGRADE_VT_TO_AUDIO_BOOL, true); sDefaults.putString(KEY_DEFAULT_VM_NUMBER_STRING, "")10453 sDefaults.putString(KEY_DEFAULT_VM_NUMBER_STRING, ""); sDefaults.putString(KEY_DEFAULT_VM_NUMBER_ROAMING_STRING, "")10454 sDefaults.putString(KEY_DEFAULT_VM_NUMBER_ROAMING_STRING, ""); sDefaults.putString(KEY_DEFAULT_VM_NUMBER_ROAMING_AND_IMS_UNREGISTERED_STRING, "")10455 sDefaults.putString(KEY_DEFAULT_VM_NUMBER_ROAMING_AND_IMS_UNREGISTERED_STRING, ""); sDefaults.putBoolean(KEY_CONFIG_TELEPHONY_USE_OWN_NUMBER_FOR_VOICEMAIL_BOOL, false)10456 sDefaults.putBoolean(KEY_CONFIG_TELEPHONY_USE_OWN_NUMBER_FOR_VOICEMAIL_BOOL, false); sDefaults.putBoolean(KEY_IGNORE_DATA_ENABLED_CHANGED_FOR_VIDEO_CALLS, true)10457 sDefaults.putBoolean(KEY_IGNORE_DATA_ENABLED_CHANGED_FOR_VIDEO_CALLS, true); sDefaults.putBoolean(KEY_VILTE_DATA_IS_METERED_BOOL, true)10458 sDefaults.putBoolean(KEY_VILTE_DATA_IS_METERED_BOOL, true); sDefaults.putBoolean(KEY_CARRIER_WFC_IMS_AVAILABLE_BOOL, false)10459 sDefaults.putBoolean(KEY_CARRIER_WFC_IMS_AVAILABLE_BOOL, false); sDefaults.putBoolean(KEY_CARRIER_CROSS_SIM_IMS_AVAILABLE_BOOL, false)10460 sDefaults.putBoolean(KEY_CARRIER_CROSS_SIM_IMS_AVAILABLE_BOOL, false); sDefaults.putBoolean(KEY_ENABLE_CROSS_SIM_CALLING_ON_OPPORTUNISTIC_DATA_BOOL, false)10461 sDefaults.putBoolean(KEY_ENABLE_CROSS_SIM_CALLING_ON_OPPORTUNISTIC_DATA_BOOL, false); sDefaults.putBoolean(KEY_CARRIER_WFC_SUPPORTS_WIFI_ONLY_BOOL, false)10462 sDefaults.putBoolean(KEY_CARRIER_WFC_SUPPORTS_WIFI_ONLY_BOOL, false); sDefaults.putBoolean(KEY_CARRIER_DEFAULT_WFC_IMS_ENABLED_BOOL, false)10463 sDefaults.putBoolean(KEY_CARRIER_DEFAULT_WFC_IMS_ENABLED_BOOL, false); sDefaults.putBoolean(KEY_CARRIER_DEFAULT_WFC_IMS_ROAMING_ENABLED_BOOL, false)10464 sDefaults.putBoolean(KEY_CARRIER_DEFAULT_WFC_IMS_ROAMING_ENABLED_BOOL, false); sDefaults.putBoolean(KEY_CARRIER_PROMOTE_WFC_ON_CALL_FAIL_BOOL, false)10465 sDefaults.putBoolean(KEY_CARRIER_PROMOTE_WFC_ON_CALL_FAIL_BOOL, false); sDefaults.putInt(KEY_CARRIER_DEFAULT_WFC_IMS_MODE_INT, 2)10466 sDefaults.putInt(KEY_CARRIER_DEFAULT_WFC_IMS_MODE_INT, 2); sDefaults.putInt(KEY_CARRIER_DEFAULT_WFC_IMS_ROAMING_MODE_INT, 2)10467 sDefaults.putInt(KEY_CARRIER_DEFAULT_WFC_IMS_ROAMING_MODE_INT, 2); sDefaults.putBoolean(KEY_CARRIER_FORCE_DISABLE_ETWS_CMAS_TEST_BOOL, false)10468 sDefaults.putBoolean(KEY_CARRIER_FORCE_DISABLE_ETWS_CMAS_TEST_BOOL, false); sDefaults.putBoolean(KEY_CARRIER_RCS_PROVISIONING_REQUIRED_BOOL, true)10469 sDefaults.putBoolean(KEY_CARRIER_RCS_PROVISIONING_REQUIRED_BOOL, true); sDefaults.putBoolean(KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL, false)10470 sDefaults.putBoolean(KEY_CARRIER_VOLTE_PROVISIONING_REQUIRED_BOOL, false); sDefaults.putBoolean(KEY_CARRIER_UT_PROVISIONING_REQUIRED_BOOL, false)10471 sDefaults.putBoolean(KEY_CARRIER_UT_PROVISIONING_REQUIRED_BOOL, false); sDefaults.putBoolean(KEY_CARRIER_SUPPORTS_SS_OVER_UT_BOOL, false)10472 sDefaults.putBoolean(KEY_CARRIER_SUPPORTS_SS_OVER_UT_BOOL, false); sDefaults.putBoolean(KEY_CARRIER_VOLTE_OVERRIDE_WFC_PROVISIONING_BOOL, false)10473 sDefaults.putBoolean(KEY_CARRIER_VOLTE_OVERRIDE_WFC_PROVISIONING_BOOL, false); sDefaults.putBoolean(KEY_CARRIER_VOLTE_TTY_SUPPORTED_BOOL, true)10474 sDefaults.putBoolean(KEY_CARRIER_VOLTE_TTY_SUPPORTED_BOOL, true); sDefaults.putBoolean(KEY_CARRIER_VOWIFI_TTY_SUPPORTED_BOOL, true)10475 sDefaults.putBoolean(KEY_CARRIER_VOWIFI_TTY_SUPPORTED_BOOL, true); sDefaults.putBoolean(KEY_CARRIER_ALLOW_TURNOFF_IMS_BOOL, true)10476 sDefaults.putBoolean(KEY_CARRIER_ALLOW_TURNOFF_IMS_BOOL, true); sDefaults.putBoolean(KEY_CARRIER_IMS_GBA_REQUIRED_BOOL, false)10477 sDefaults.putBoolean(KEY_CARRIER_IMS_GBA_REQUIRED_BOOL, false); sDefaults.putBoolean(KEY_CARRIER_INSTANT_LETTERING_AVAILABLE_BOOL, false)10478 sDefaults.putBoolean(KEY_CARRIER_INSTANT_LETTERING_AVAILABLE_BOOL, false); sDefaults.putBoolean(KEY_CARRIER_USE_IMS_FIRST_FOR_EMERGENCY_BOOL, true)10479 sDefaults.putBoolean(KEY_CARRIER_USE_IMS_FIRST_FOR_EMERGENCY_BOOL, true); sDefaults.putBoolean(KEY_PREFER_IN_SERVICE_SIM_FOR_NORMAL_ROUTED_EMERGENCY_CALLS_BOOL, false)10480 sDefaults.putBoolean(KEY_PREFER_IN_SERVICE_SIM_FOR_NORMAL_ROUTED_EMERGENCY_CALLS_BOOL, 10481 false); sDefaults.putBoolean(KEY_USE_ONLY_DIALED_SIM_ECC_LIST_BOOL, false)10482 sDefaults.putBoolean(KEY_USE_ONLY_DIALED_SIM_ECC_LIST_BOOL, false); sDefaults.putString(KEY_CARRIER_NETWORK_SERVICE_WWAN_PACKAGE_OVERRIDE_STRING, "")10483 sDefaults.putString(KEY_CARRIER_NETWORK_SERVICE_WWAN_PACKAGE_OVERRIDE_STRING, ""); sDefaults.putString(KEY_CARRIER_NETWORK_SERVICE_WLAN_PACKAGE_OVERRIDE_STRING, "")10484 sDefaults.putString(KEY_CARRIER_NETWORK_SERVICE_WLAN_PACKAGE_OVERRIDE_STRING, ""); sDefaults.putString(KEY_CARRIER_NETWORK_SERVICE_WLAN_CLASS_OVERRIDE_STRING, "")10485 sDefaults.putString(KEY_CARRIER_NETWORK_SERVICE_WLAN_CLASS_OVERRIDE_STRING, ""); sDefaults.putString(KEY_CARRIER_NETWORK_SERVICE_WWAN_CLASS_OVERRIDE_STRING, "")10486 sDefaults.putString(KEY_CARRIER_NETWORK_SERVICE_WWAN_CLASS_OVERRIDE_STRING, ""); sDefaults.putString(KEY_CARRIER_QUALIFIED_NETWORKS_SERVICE_PACKAGE_OVERRIDE_STRING, "")10487 sDefaults.putString(KEY_CARRIER_QUALIFIED_NETWORKS_SERVICE_PACKAGE_OVERRIDE_STRING, ""); sDefaults.putString(KEY_CARRIER_QUALIFIED_NETWORKS_SERVICE_CLASS_OVERRIDE_STRING, "")10488 sDefaults.putString(KEY_CARRIER_QUALIFIED_NETWORKS_SERVICE_CLASS_OVERRIDE_STRING, ""); sDefaults.putString(KEY_CARRIER_DATA_SERVICE_WWAN_PACKAGE_OVERRIDE_STRING, "")10489 sDefaults.putString(KEY_CARRIER_DATA_SERVICE_WWAN_PACKAGE_OVERRIDE_STRING, ""); sDefaults.putString(KEY_CARRIER_DATA_SERVICE_WLAN_PACKAGE_OVERRIDE_STRING, "")10490 sDefaults.putString(KEY_CARRIER_DATA_SERVICE_WLAN_PACKAGE_OVERRIDE_STRING, ""); sDefaults.putString(KEY_CARRIER_DATA_SERVICE_WWAN_CLASS_OVERRIDE_STRING, "")10491 sDefaults.putString(KEY_CARRIER_DATA_SERVICE_WWAN_CLASS_OVERRIDE_STRING, ""); sDefaults.putString(KEY_CARRIER_DATA_SERVICE_WLAN_CLASS_OVERRIDE_STRING, "")10492 sDefaults.putString(KEY_CARRIER_DATA_SERVICE_WLAN_CLASS_OVERRIDE_STRING, ""); sDefaults.putString(KEY_CONFIG_PLANS_PACKAGE_OVERRIDE_STRING, "")10493 sDefaults.putString(KEY_CONFIG_PLANS_PACKAGE_OVERRIDE_STRING, ""); sDefaults.putString(KEY_CARRIER_INSTANT_LETTERING_INVALID_CHARS_STRING, "")10494 sDefaults.putString(KEY_CARRIER_INSTANT_LETTERING_INVALID_CHARS_STRING, ""); sDefaults.putString(KEY_CARRIER_INSTANT_LETTERING_ESCAPED_CHARS_STRING, "")10495 sDefaults.putString(KEY_CARRIER_INSTANT_LETTERING_ESCAPED_CHARS_STRING, ""); sDefaults.putString(KEY_CARRIER_INSTANT_LETTERING_ENCODING_STRING, "")10496 sDefaults.putString(KEY_CARRIER_INSTANT_LETTERING_ENCODING_STRING, ""); sDefaults.putInt(KEY_CARRIER_INSTANT_LETTERING_LENGTH_LIMIT_INT, 64)10497 sDefaults.putInt(KEY_CARRIER_INSTANT_LETTERING_LENGTH_LIMIT_INT, 64); sDefaults.putBoolean(KEY_DISABLE_CDMA_ACTIVATION_CODE_BOOL, false)10498 sDefaults.putBoolean(KEY_DISABLE_CDMA_ACTIVATION_CODE_BOOL, false); sDefaults.putBoolean(KEY_DTMF_TYPE_ENABLED_BOOL, false)10499 sDefaults.putBoolean(KEY_DTMF_TYPE_ENABLED_BOOL, false); sDefaults.putBoolean(KEY_ENABLE_DIALER_KEY_VIBRATION_BOOL, true)10500 sDefaults.putBoolean(KEY_ENABLE_DIALER_KEY_VIBRATION_BOOL, true); sDefaults.putBoolean(KEY_HAS_IN_CALL_NOISE_SUPPRESSION_BOOL, false)10501 sDefaults.putBoolean(KEY_HAS_IN_CALL_NOISE_SUPPRESSION_BOOL, false); sDefaults.putBoolean(KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL, false)10502 sDefaults.putBoolean(KEY_HIDE_CARRIER_NETWORK_SETTINGS_BOOL, false); sDefaults.putBoolean(KEY_ONLY_AUTO_SELECT_IN_HOME_NETWORK_BOOL, false)10503 sDefaults.putBoolean(KEY_ONLY_AUTO_SELECT_IN_HOME_NETWORK_BOOL, false); sDefaults.putBoolean(KEY_SHOW_SINGLE_OPERATOR_ROW_IN_CHOOSE_NETWORK_SETTING_BOOL, true)10504 sDefaults.putBoolean(KEY_SHOW_SINGLE_OPERATOR_ROW_IN_CHOOSE_NETWORK_SETTING_BOOL, true); sDefaults.putBoolean(KEY_SHOW_SPN_FOR_HOME_IN_CHOOSE_NETWORK_SETTING_BOOL, false)10505 sDefaults.putBoolean(KEY_SHOW_SPN_FOR_HOME_IN_CHOOSE_NETWORK_SETTING_BOOL, false); sDefaults.putBoolean(KEY_SIMPLIFIED_NETWORK_SETTINGS_BOOL, false)10506 sDefaults.putBoolean(KEY_SIMPLIFIED_NETWORK_SETTINGS_BOOL, false); sDefaults.putBoolean(KEY_HIDE_SIM_LOCK_SETTINGS_BOOL, false)10507 sDefaults.putBoolean(KEY_HIDE_SIM_LOCK_SETTINGS_BOOL, false); 10508 sDefaults.putBoolean(KEY_CARRIER_VOLTE_PROVISIONED_BOOL, false)10509 sDefaults.putBoolean(KEY_CARRIER_VOLTE_PROVISIONED_BOOL, false); sDefaults.putBoolean(KEY_CALL_BARRING_VISIBILITY_BOOL, false)10510 sDefaults.putBoolean(KEY_CALL_BARRING_VISIBILITY_BOOL, false); sDefaults.putBoolean(KEY_CALL_BARRING_SUPPORTS_PASSWORD_CHANGE_BOOL, true)10511 sDefaults.putBoolean(KEY_CALL_BARRING_SUPPORTS_PASSWORD_CHANGE_BOOL, true); sDefaults.putBoolean(KEY_CALL_BARRING_SUPPORTS_DEACTIVATE_ALL_BOOL, true)10512 sDefaults.putBoolean(KEY_CALL_BARRING_SUPPORTS_DEACTIVATE_ALL_BOOL, true); sDefaults.putInt(KEY_CALL_BARRING_DEFAULT_SERVICE_CLASS_INT, SERVICE_CLASS_VOICE)10513 sDefaults.putInt(KEY_CALL_BARRING_DEFAULT_SERVICE_CLASS_INT, SERVICE_CLASS_VOICE); sDefaults.putBoolean(KEY_SUPPORT_SS_OVER_CDMA_BOOL, false)10514 sDefaults.putBoolean(KEY_SUPPORT_SS_OVER_CDMA_BOOL, false); sDefaults.putBoolean(KEY_CALL_FORWARDING_VISIBILITY_BOOL, true)10515 sDefaults.putBoolean(KEY_CALL_FORWARDING_VISIBILITY_BOOL, true); sDefaults.putBoolean(KEY_CALL_FORWARDING_WHEN_UNREACHABLE_SUPPORTED_BOOL, true)10516 sDefaults.putBoolean(KEY_CALL_FORWARDING_WHEN_UNREACHABLE_SUPPORTED_BOOL, true); sDefaults.putBoolean(KEY_CALL_FORWARDING_WHEN_UNANSWERED_SUPPORTED_BOOL, true)10517 sDefaults.putBoolean(KEY_CALL_FORWARDING_WHEN_UNANSWERED_SUPPORTED_BOOL, true); sDefaults.putBoolean(KEY_CALL_FORWARDING_WHEN_BUSY_SUPPORTED_BOOL, true)10518 sDefaults.putBoolean(KEY_CALL_FORWARDING_WHEN_BUSY_SUPPORTED_BOOL, true); sDefaults.putBoolean(KEY_ADDITIONAL_SETTINGS_CALLER_ID_VISIBILITY_BOOL, true)10519 sDefaults.putBoolean(KEY_ADDITIONAL_SETTINGS_CALLER_ID_VISIBILITY_BOOL, true); sDefaults.putBoolean(KEY_ADDITIONAL_SETTINGS_CALL_WAITING_VISIBILITY_BOOL, true)10520 sDefaults.putBoolean(KEY_ADDITIONAL_SETTINGS_CALL_WAITING_VISIBILITY_BOOL, true); sDefaults.putBoolean(KEY_DISABLE_SUPPLEMENTARY_SERVICES_IN_AIRPLANE_MODE_BOOL, false)10521 sDefaults.putBoolean(KEY_DISABLE_SUPPLEMENTARY_SERVICES_IN_AIRPLANE_MODE_BOOL, false); sDefaults.putBoolean(KEY_IGNORE_SIM_NETWORK_LOCKED_EVENTS_BOOL, false)10522 sDefaults.putBoolean(KEY_IGNORE_SIM_NETWORK_LOCKED_EVENTS_BOOL, false); sDefaults.putBoolean(KEY_MDN_IS_ADDITIONAL_VOICEMAIL_NUMBER_BOOL, false)10523 sDefaults.putBoolean(KEY_MDN_IS_ADDITIONAL_VOICEMAIL_NUMBER_BOOL, false); sDefaults.putBoolean(KEY_OPERATOR_SELECTION_EXPAND_BOOL, true)10524 sDefaults.putBoolean(KEY_OPERATOR_SELECTION_EXPAND_BOOL, true); sDefaults.putBoolean(KEY_PREFER_2G_BOOL, false)10525 sDefaults.putBoolean(KEY_PREFER_2G_BOOL, false); sDefaults.putBoolean(KEY_PREFER_3G_VISIBILITY_BOOL, true)10526 sDefaults.putBoolean(KEY_PREFER_3G_VISIBILITY_BOOL, true); sDefaults.putBoolean(KEY_4G_ONLY_BOOL, false)10527 sDefaults.putBoolean(KEY_4G_ONLY_BOOL, false); sDefaults.putBoolean(KEY_SHOW_APN_SETTING_CDMA_BOOL, false)10528 sDefaults.putBoolean(KEY_SHOW_APN_SETTING_CDMA_BOOL, false); sDefaults.putBoolean(KEY_SHOW_CDMA_CHOICES_BOOL, false)10529 sDefaults.putBoolean(KEY_SHOW_CDMA_CHOICES_BOOL, false); sDefaults.putBoolean(KEY_SMS_REQUIRES_DESTINATION_NUMBER_CONVERSION_BOOL, false)10530 sDefaults.putBoolean(KEY_SMS_REQUIRES_DESTINATION_NUMBER_CONVERSION_BOOL, false); sDefaults.putBoolean(KEY_SUPPORT_EMERGENCY_SMS_OVER_IMS_BOOL, false)10531 sDefaults.putBoolean(KEY_SUPPORT_EMERGENCY_SMS_OVER_IMS_BOOL, false); sDefaults.putBoolean(KEY_SHOW_ONSCREEN_DIAL_BUTTON_BOOL, true)10532 sDefaults.putBoolean(KEY_SHOW_ONSCREEN_DIAL_BUTTON_BOOL, true); sDefaults.putBoolean(KEY_SIM_NETWORK_UNLOCK_ALLOW_DISMISS_BOOL, true)10533 sDefaults.putBoolean(KEY_SIM_NETWORK_UNLOCK_ALLOW_DISMISS_BOOL, true); sDefaults.putBoolean(KEY_SUPPORT_PAUSE_IMS_VIDEO_CALLS_BOOL, false)10534 sDefaults.putBoolean(KEY_SUPPORT_PAUSE_IMS_VIDEO_CALLS_BOOL, false); sDefaults.putBoolean(KEY_SUPPORT_SWAP_AFTER_MERGE_BOOL, true)10535 sDefaults.putBoolean(KEY_SUPPORT_SWAP_AFTER_MERGE_BOOL, true); sDefaults.putBoolean(KEY_USE_HFA_FOR_PROVISIONING_BOOL, false)10536 sDefaults.putBoolean(KEY_USE_HFA_FOR_PROVISIONING_BOOL, false); sDefaults.putBoolean(KEY_EDITABLE_VOICEMAIL_NUMBER_SETTING_BOOL, true)10537 sDefaults.putBoolean(KEY_EDITABLE_VOICEMAIL_NUMBER_SETTING_BOOL, true); sDefaults.putBoolean(KEY_EDITABLE_VOICEMAIL_NUMBER_BOOL, false)10538 sDefaults.putBoolean(KEY_EDITABLE_VOICEMAIL_NUMBER_BOOL, false); sDefaults.putBoolean(KEY_HIDE_VOICEMAIL_NUMBER_SETTING_BOOL, false)10539 sDefaults.putBoolean(KEY_HIDE_VOICEMAIL_NUMBER_SETTING_BOOL, false); sDefaults.putBoolean(KEY_USE_OTASP_FOR_PROVISIONING_BOOL, false)10540 sDefaults.putBoolean(KEY_USE_OTASP_FOR_PROVISIONING_BOOL, false); sDefaults.putBoolean(KEY_VOICEMAIL_NOTIFICATION_PERSISTENT_BOOL, false)10541 sDefaults.putBoolean(KEY_VOICEMAIL_NOTIFICATION_PERSISTENT_BOOL, false); sDefaults.putBoolean(KEY_VOICE_PRIVACY_DISABLE_UI_BOOL, false)10542 sDefaults.putBoolean(KEY_VOICE_PRIVACY_DISABLE_UI_BOOL, false); sDefaults.putBoolean(KEY_WORLD_PHONE_BOOL, false)10543 sDefaults.putBoolean(KEY_WORLD_PHONE_BOOL, false); sDefaults.putBoolean(KEY_REQUIRE_ENTITLEMENT_CHECKS_BOOL, true)10544 sDefaults.putBoolean(KEY_REQUIRE_ENTITLEMENT_CHECKS_BOOL, true); sDefaults.putBoolean(KEY_CARRIER_SUPPORTS_TETHERING_BOOL, true)10545 sDefaults.putBoolean(KEY_CARRIER_SUPPORTS_TETHERING_BOOL, true); sDefaults.putBoolean(KEY_RESTART_RADIO_ON_PDP_FAIL_REGULAR_DEACTIVATION_BOOL, false)10546 sDefaults.putBoolean(KEY_RESTART_RADIO_ON_PDP_FAIL_REGULAR_DEACTIVATION_BOOL, false); sDefaults.putIntArray(KEY_RADIO_RESTART_FAILURE_CAUSES_INT_ARRAY, new int[0])10547 sDefaults.putIntArray(KEY_RADIO_RESTART_FAILURE_CAUSES_INT_ARRAY, new int[0]); sDefaults.putInt(KEY_VOLTE_REPLACEMENT_RAT_INT, 0)10548 sDefaults.putInt(KEY_VOLTE_REPLACEMENT_RAT_INT, 0); sDefaults.putString(KEY_DEFAULT_SIM_CALL_MANAGER_STRING, "")10549 sDefaults.putString(KEY_DEFAULT_SIM_CALL_MANAGER_STRING, ""); sDefaults.putString(KEY_VVM_DESTINATION_NUMBER_STRING, "")10550 sDefaults.putString(KEY_VVM_DESTINATION_NUMBER_STRING, ""); sDefaults.putInt(KEY_VVM_PORT_NUMBER_INT, 0)10551 sDefaults.putInt(KEY_VVM_PORT_NUMBER_INT, 0); sDefaults.putString(KEY_VVM_TYPE_STRING, "")10552 sDefaults.putString(KEY_VVM_TYPE_STRING, ""); sDefaults.putBoolean(KEY_VVM_CELLULAR_DATA_REQUIRED_BOOL, false)10553 sDefaults.putBoolean(KEY_VVM_CELLULAR_DATA_REQUIRED_BOOL, false); sDefaults.putString(KEY_VVM_CLIENT_PREFIX_STRING, "//VVM")10554 sDefaults.putString(KEY_VVM_CLIENT_PREFIX_STRING, "//VVM"); sDefaults.putBoolean(KEY_VVM_SSL_ENABLED_BOOL, false)10555 sDefaults.putBoolean(KEY_VVM_SSL_ENABLED_BOOL, false); sDefaults.putStringArray(KEY_VVM_DISABLED_CAPABILITIES_STRING_ARRAY, null)10556 sDefaults.putStringArray(KEY_VVM_DISABLED_CAPABILITIES_STRING_ARRAY, null); sDefaults.putBoolean(KEY_VVM_LEGACY_MODE_ENABLED_BOOL, false)10557 sDefaults.putBoolean(KEY_VVM_LEGACY_MODE_ENABLED_BOOL, false); sDefaults.putBoolean(KEY_VVM_PREFETCH_BOOL, true)10558 sDefaults.putBoolean(KEY_VVM_PREFETCH_BOOL, true); sDefaults.putString(KEY_CARRIER_VVM_PACKAGE_NAME_STRING, "")10559 sDefaults.putString(KEY_CARRIER_VVM_PACKAGE_NAME_STRING, ""); sDefaults.putStringArray(KEY_CARRIER_VVM_PACKAGE_NAME_STRING_ARRAY, null)10560 sDefaults.putStringArray(KEY_CARRIER_VVM_PACKAGE_NAME_STRING_ARRAY, null); sDefaults.putBoolean(KEY_SHOW_ICCID_IN_SIM_STATUS_BOOL, false)10561 sDefaults.putBoolean(KEY_SHOW_ICCID_IN_SIM_STATUS_BOOL, false); sDefaults.putBoolean(KEY_SHOW_SIGNAL_STRENGTH_IN_SIM_STATUS_BOOL, true)10562 sDefaults.putBoolean(KEY_SHOW_SIGNAL_STRENGTH_IN_SIM_STATUS_BOOL, true); sDefaults.putBoolean(KEY_INFLATE_SIGNAL_STRENGTH_BOOL, false)10563 sDefaults.putBoolean(KEY_INFLATE_SIGNAL_STRENGTH_BOOL, false); sDefaults.putBoolean(KEY_CI_ACTION_ON_SYS_UPDATE_BOOL, false)10564 sDefaults.putBoolean(KEY_CI_ACTION_ON_SYS_UPDATE_BOOL, false); sDefaults.putString(KEY_CI_ACTION_ON_SYS_UPDATE_INTENT_STRING, "")10565 sDefaults.putString(KEY_CI_ACTION_ON_SYS_UPDATE_INTENT_STRING, ""); sDefaults.putString(KEY_CI_ACTION_ON_SYS_UPDATE_EXTRA_STRING, "")10566 sDefaults.putString(KEY_CI_ACTION_ON_SYS_UPDATE_EXTRA_STRING, ""); sDefaults.putString(KEY_CI_ACTION_ON_SYS_UPDATE_EXTRA_VAL_STRING, "")10567 sDefaults.putString(KEY_CI_ACTION_ON_SYS_UPDATE_EXTRA_VAL_STRING, ""); sDefaults.putBoolean(KEY_CSP_ENABLED_BOOL, false)10568 sDefaults.putBoolean(KEY_CSP_ENABLED_BOOL, false); sDefaults.putBoolean(KEY_ALLOW_ADDING_APNS_BOOL, true)10569 sDefaults.putBoolean(KEY_ALLOW_ADDING_APNS_BOOL, true); sDefaults.putStringArray(KEY_READ_ONLY_APN_TYPES_STRING_ARRAY, new String[] {"dun"})10570 sDefaults.putStringArray(KEY_READ_ONLY_APN_TYPES_STRING_ARRAY, new String[] {"dun"}); sDefaults.putStringArray(KEY_READ_ONLY_APN_FIELDS_STRING_ARRAY, null)10571 sDefaults.putStringArray(KEY_READ_ONLY_APN_FIELDS_STRING_ARRAY, null); sDefaults.putStringArray(KEY_APN_SETTINGS_DEFAULT_APN_TYPES_STRING_ARRAY, null)10572 sDefaults.putStringArray(KEY_APN_SETTINGS_DEFAULT_APN_TYPES_STRING_ARRAY, null); Apn.getDefaults()10573 sDefaults.putAll(Apn.getDefaults()); 10574 sDefaults.putBoolean(KEY_BROADCAST_EMERGENCY_CALL_STATE_CHANGES_BOOL, false)10575 sDefaults.putBoolean(KEY_BROADCAST_EMERGENCY_CALL_STATE_CHANGES_BOOL, false); sDefaults.putBoolean(KEY_ALWAYS_SHOW_EMERGENCY_ALERT_ONOFF_BOOL, false)10576 sDefaults.putBoolean(KEY_ALWAYS_SHOW_EMERGENCY_ALERT_ONOFF_BOOL, false); sDefaults.putInt(KEY_DEFAULT_MTU_INT, 1500)10577 sDefaults.putInt(KEY_DEFAULT_MTU_INT, 1500); sDefaults.putLong(KEY_CARRIER_DATA_CALL_APN_RETRY_AFTER_DISCONNECT_LONG, 3000)10578 sDefaults.putLong(KEY_CARRIER_DATA_CALL_APN_RETRY_AFTER_DISCONNECT_LONG, 3000); sDefaults.putString(KEY_CARRIER_ERI_FILE_NAME_STRING, "eri.xml")10579 sDefaults.putString(KEY_CARRIER_ERI_FILE_NAME_STRING, "eri.xml"); sDefaults.putInt(KEY_DURATION_BLOCKING_DISABLED_AFTER_EMERGENCY_INT, 7200)10580 sDefaults.putInt(KEY_DURATION_BLOCKING_DISABLED_AFTER_EMERGENCY_INT, 7200); sDefaults.putStringArray(KEY_CARRIER_METERED_APN_TYPES_STRINGS, new String[]{"default", "mms", "dun", "supl", "enterprise"})10581 sDefaults.putStringArray(KEY_CARRIER_METERED_APN_TYPES_STRINGS, 10582 new String[]{"default", "mms", "dun", "supl", "enterprise"}); sDefaults.putStringArray(KEY_CARRIER_METERED_ROAMING_APN_TYPES_STRINGS, new String[]{"default", "mms", "dun", "supl", "enterprise"})10583 sDefaults.putStringArray(KEY_CARRIER_METERED_ROAMING_APN_TYPES_STRINGS, 10584 new String[]{"default", "mms", "dun", "supl", "enterprise"}); sDefaults.putIntArray(KEY_ONLY_SINGLE_DC_ALLOWED_INT_ARRAY, new int[] {TelephonyManager.NETWORK_TYPE_CDMA, TelephonyManager.NETWORK_TYPE_1xRTT, TelephonyManager.NETWORK_TYPE_EVDO_0, TelephonyManager.NETWORK_TYPE_EVDO_A, TelephonyManager.NETWORK_TYPE_EVDO_B})10585 sDefaults.putIntArray(KEY_ONLY_SINGLE_DC_ALLOWED_INT_ARRAY, 10586 new int[] {TelephonyManager.NETWORK_TYPE_CDMA, TelephonyManager.NETWORK_TYPE_1xRTT, 10587 TelephonyManager.NETWORK_TYPE_EVDO_0, TelephonyManager.NETWORK_TYPE_EVDO_A, 10588 TelephonyManager.NETWORK_TYPE_EVDO_B}); sDefaults.putIntArray(KEY_CAPABILITIES_EXEMPT_FROM_SINGLE_DC_CHECK_INT_ARRAY, new int[] {NetworkCapabilities.NET_CAPABILITY_IMS})10589 sDefaults.putIntArray(KEY_CAPABILITIES_EXEMPT_FROM_SINGLE_DC_CHECK_INT_ARRAY, 10590 new int[] {NetworkCapabilities.NET_CAPABILITY_IMS}); sDefaults.putStringArray(KEY_GSM_ROAMING_NETWORKS_STRING_ARRAY, null)10591 sDefaults.putStringArray(KEY_GSM_ROAMING_NETWORKS_STRING_ARRAY, null); sDefaults.putStringArray(KEY_GSM_NONROAMING_NETWORKS_STRING_ARRAY, null)10592 sDefaults.putStringArray(KEY_GSM_NONROAMING_NETWORKS_STRING_ARRAY, null); sDefaults.putString(KEY_CONFIG_IMS_PACKAGE_OVERRIDE_STRING, null)10593 sDefaults.putString(KEY_CONFIG_IMS_PACKAGE_OVERRIDE_STRING, null); sDefaults.putString(KEY_CONFIG_IMS_MMTEL_PACKAGE_OVERRIDE_STRING, null)10594 sDefaults.putString(KEY_CONFIG_IMS_MMTEL_PACKAGE_OVERRIDE_STRING, null); sDefaults.putString(KEY_CONFIG_IMS_RCS_PACKAGE_OVERRIDE_STRING, null)10595 sDefaults.putString(KEY_CONFIG_IMS_RCS_PACKAGE_OVERRIDE_STRING, null); sDefaults.putStringArray(KEY_CDMA_ROAMING_NETWORKS_STRING_ARRAY, null)10596 sDefaults.putStringArray(KEY_CDMA_ROAMING_NETWORKS_STRING_ARRAY, null); sDefaults.putStringArray(KEY_CDMA_NONROAMING_NETWORKS_STRING_ARRAY, null)10597 sDefaults.putStringArray(KEY_CDMA_NONROAMING_NETWORKS_STRING_ARRAY, null); sDefaults.putStringArray(KEY_DIAL_STRING_REPLACE_STRING_ARRAY, null)10598 sDefaults.putStringArray(KEY_DIAL_STRING_REPLACE_STRING_ARRAY, null); sDefaults.putStringArray(KEY_INTERNATIONAL_ROAMING_DIAL_STRING_REPLACE_STRING_ARRAY, null)10599 sDefaults.putStringArray(KEY_INTERNATIONAL_ROAMING_DIAL_STRING_REPLACE_STRING_ARRAY, null); sDefaults.putBoolean(KEY_FORCE_HOME_NETWORK_BOOL, false)10600 sDefaults.putBoolean(KEY_FORCE_HOME_NETWORK_BOOL, false); sDefaults.putInt(KEY_GSM_DTMF_TONE_DELAY_INT, 0)10601 sDefaults.putInt(KEY_GSM_DTMF_TONE_DELAY_INT, 0); sDefaults.putInt(KEY_IMS_DTMF_TONE_DELAY_INT, 0)10602 sDefaults.putInt(KEY_IMS_DTMF_TONE_DELAY_INT, 0); sDefaults.putInt(KEY_CDMA_DTMF_TONE_DELAY_INT, 100)10603 sDefaults.putInt(KEY_CDMA_DTMF_TONE_DELAY_INT, 100); sDefaults.putBoolean(KEY_CALL_FORWARDING_MAP_NON_NUMBER_TO_VOICEMAIL_BOOL, false)10604 sDefaults.putBoolean(KEY_CALL_FORWARDING_MAP_NON_NUMBER_TO_VOICEMAIL_BOOL, false); sDefaults.putBoolean(KEY_IGNORE_RTT_MODE_SETTING_BOOL, true)10605 sDefaults.putBoolean(KEY_IGNORE_RTT_MODE_SETTING_BOOL, true); sDefaults.putInt(KEY_CDMA_3WAYCALL_FLASH_DELAY_INT , 0)10606 sDefaults.putInt(KEY_CDMA_3WAYCALL_FLASH_DELAY_INT , 0); sDefaults.putBoolean(KEY_SUPPORT_ADHOC_CONFERENCE_CALLS_BOOL, false)10607 sDefaults.putBoolean(KEY_SUPPORT_ADHOC_CONFERENCE_CALLS_BOOL, false); sDefaults.putBoolean(KEY_SUPPORT_ADD_CONFERENCE_PARTICIPANTS_BOOL, false)10608 sDefaults.putBoolean(KEY_SUPPORT_ADD_CONFERENCE_PARTICIPANTS_BOOL, false); sDefaults.putBoolean(KEY_SUPPORT_CONFERENCE_CALL_BOOL, true)10609 sDefaults.putBoolean(KEY_SUPPORT_CONFERENCE_CALL_BOOL, true); sDefaults.putBoolean(KEY_SUPPORT_IMS_CONFERENCE_CALL_BOOL, true)10610 sDefaults.putBoolean(KEY_SUPPORT_IMS_CONFERENCE_CALL_BOOL, true); sDefaults.putBoolean(KEY_LOCAL_DISCONNECT_EMPTY_IMS_CONFERENCE_BOOL, false)10611 sDefaults.putBoolean(KEY_LOCAL_DISCONNECT_EMPTY_IMS_CONFERENCE_BOOL, false); sDefaults.putBoolean(KEY_SUPPORT_MANAGE_IMS_CONFERENCE_CALL_BOOL, true)10612 sDefaults.putBoolean(KEY_SUPPORT_MANAGE_IMS_CONFERENCE_CALL_BOOL, true); sDefaults.putBoolean(KEY_SUPPORT_IMS_CONFERENCE_EVENT_PACKAGE_BOOL, true)10613 sDefaults.putBoolean(KEY_SUPPORT_IMS_CONFERENCE_EVENT_PACKAGE_BOOL, true); sDefaults.putBoolean(KEY_SUPPORT_IMS_CONFERENCE_EVENT_PACKAGE_ON_PEER_BOOL, true)10614 sDefaults.putBoolean(KEY_SUPPORT_IMS_CONFERENCE_EVENT_PACKAGE_ON_PEER_BOOL, true); sDefaults.putBoolean(KEY_SUPPORTS_DEVICE_TO_DEVICE_COMMUNICATION_USING_RTP_BOOL, false)10615 sDefaults.putBoolean(KEY_SUPPORTS_DEVICE_TO_DEVICE_COMMUNICATION_USING_RTP_BOOL, false); sDefaults.putBoolean(KEY_SUPPORTS_SDP_NEGOTIATION_OF_D2D_RTP_HEADER_EXTENSIONS_BOOL, false)10616 sDefaults.putBoolean(KEY_SUPPORTS_SDP_NEGOTIATION_OF_D2D_RTP_HEADER_EXTENSIONS_BOOL, false); sDefaults.putBoolean(KEY_SUPPORTS_DEVICE_TO_DEVICE_COMMUNICATION_USING_DTMF_BOOL, false)10617 sDefaults.putBoolean(KEY_SUPPORTS_DEVICE_TO_DEVICE_COMMUNICATION_USING_DTMF_BOOL, false); sDefaults.putBoolean(KEY_SUPPORT_VIDEO_CONFERENCE_CALL_BOOL, false)10618 sDefaults.putBoolean(KEY_SUPPORT_VIDEO_CONFERENCE_CALL_BOOL, false); sDefaults.putBoolean(KEY_IS_IMS_CONFERENCE_SIZE_ENFORCED_BOOL, false)10619 sDefaults.putBoolean(KEY_IS_IMS_CONFERENCE_SIZE_ENFORCED_BOOL, false); sDefaults.putInt(KEY_IMS_CONFERENCE_SIZE_LIMIT_INT, 5)10620 sDefaults.putInt(KEY_IMS_CONFERENCE_SIZE_LIMIT_INT, 5); sDefaults.putBoolean(KEY_DISPLAY_HD_AUDIO_PROPERTY_BOOL, true)10621 sDefaults.putBoolean(KEY_DISPLAY_HD_AUDIO_PROPERTY_BOOL, true); sDefaults.putBoolean(KEY_EDITABLE_ENHANCED_4G_LTE_BOOL, true)10622 sDefaults.putBoolean(KEY_EDITABLE_ENHANCED_4G_LTE_BOOL, true); sDefaults.putBoolean(KEY_HIDE_ENHANCED_4G_LTE_BOOL, false)10623 sDefaults.putBoolean(KEY_HIDE_ENHANCED_4G_LTE_BOOL, false); sDefaults.putBoolean(KEY_ENHANCED_4G_LTE_ON_BY_DEFAULT_BOOL, true)10624 sDefaults.putBoolean(KEY_ENHANCED_4G_LTE_ON_BY_DEFAULT_BOOL, true); sDefaults.putBoolean(KEY_HIDE_IMS_APN_BOOL, false)10625 sDefaults.putBoolean(KEY_HIDE_IMS_APN_BOOL, false); sDefaults.putBoolean(KEY_HIDE_PREFERRED_NETWORK_TYPE_BOOL, false)10626 sDefaults.putBoolean(KEY_HIDE_PREFERRED_NETWORK_TYPE_BOOL, false); sDefaults.putBoolean(KEY_ALLOW_EMERGENCY_VIDEO_CALLS_BOOL, false)10627 sDefaults.putBoolean(KEY_ALLOW_EMERGENCY_VIDEO_CALLS_BOOL, false); sDefaults.putStringArray(KEY_ENABLE_APPS_STRING_ARRAY, null)10628 sDefaults.putStringArray(KEY_ENABLE_APPS_STRING_ARRAY, null); sDefaults.putBoolean(KEY_EDITABLE_WFC_MODE_BOOL, true)10629 sDefaults.putBoolean(KEY_EDITABLE_WFC_MODE_BOOL, true); sDefaults.putStringArray(KEY_WFC_OPERATOR_ERROR_CODES_STRING_ARRAY, null)10630 sDefaults.putStringArray(KEY_WFC_OPERATOR_ERROR_CODES_STRING_ARRAY, null); sDefaults.putInt(KEY_WFC_SPN_FORMAT_IDX_INT, 0)10631 sDefaults.putInt(KEY_WFC_SPN_FORMAT_IDX_INT, 0); sDefaults.putInt(KEY_WFC_DATA_SPN_FORMAT_IDX_INT, 0)10632 sDefaults.putInt(KEY_WFC_DATA_SPN_FORMAT_IDX_INT, 0); sDefaults.putInt(KEY_WFC_FLIGHT_MODE_SPN_FORMAT_IDX_INT, -1)10633 sDefaults.putInt(KEY_WFC_FLIGHT_MODE_SPN_FORMAT_IDX_INT, -1); sDefaults.putBoolean(KEY_WFC_SPN_USE_ROOT_LOCALE, false)10634 sDefaults.putBoolean(KEY_WFC_SPN_USE_ROOT_LOCALE, false); sDefaults.putString(KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING, "")10635 sDefaults.putString(KEY_WFC_EMERGENCY_ADDRESS_CARRIER_APP_STRING, ""); sDefaults.putBoolean(KEY_CONFIG_WIFI_DISABLE_IN_ECBM, false)10636 sDefaults.putBoolean(KEY_CONFIG_WIFI_DISABLE_IN_ECBM, false); sDefaults.putBoolean(KEY_CARRIER_NAME_OVERRIDE_BOOL, false)10637 sDefaults.putBoolean(KEY_CARRIER_NAME_OVERRIDE_BOOL, false); sDefaults.putString(KEY_CARRIER_NAME_STRING, "")10638 sDefaults.putString(KEY_CARRIER_NAME_STRING, ""); sDefaults.putBoolean(KEY_WFC_CARRIER_NAME_OVERRIDE_BY_PNN_BOOL, false)10639 sDefaults.putBoolean(KEY_WFC_CARRIER_NAME_OVERRIDE_BY_PNN_BOOL, false); sDefaults.putInt(KEY_CROSS_SIM_SPN_FORMAT_INT, 1)10640 sDefaults.putInt(KEY_CROSS_SIM_SPN_FORMAT_INT, 1); sDefaults.putInt(KEY_SPN_DISPLAY_CONDITION_OVERRIDE_INT, -1)10641 sDefaults.putInt(KEY_SPN_DISPLAY_CONDITION_OVERRIDE_INT, -1); sDefaults.putStringArray(KEY_SPDI_OVERRIDE_STRING_ARRAY, null)10642 sDefaults.putStringArray(KEY_SPDI_OVERRIDE_STRING_ARRAY, null); sDefaults.putStringArray(KEY_PNN_OVERRIDE_STRING_ARRAY, null)10643 sDefaults.putStringArray(KEY_PNN_OVERRIDE_STRING_ARRAY, null); sDefaults.putStringArray(KEY_OPL_OVERRIDE_STRING_ARRAY, null)10644 sDefaults.putStringArray(KEY_OPL_OVERRIDE_STRING_ARRAY, null); sDefaults.putStringArray(KEY_EHPLMN_OVERRIDE_STRING_ARRAY, null)10645 sDefaults.putStringArray(KEY_EHPLMN_OVERRIDE_STRING_ARRAY, null); sDefaults.putBoolean(KEY_ALLOW_ERI_BOOL, false)10646 sDefaults.putBoolean(KEY_ALLOW_ERI_BOOL, false); sDefaults.putBoolean(KEY_ENABLE_CARRIER_DISPLAY_NAME_RESOLVER_BOOL, false)10647 sDefaults.putBoolean(KEY_ENABLE_CARRIER_DISPLAY_NAME_RESOLVER_BOOL, false); sDefaults.putString(KEY_SIM_COUNTRY_ISO_OVERRIDE_STRING, "")10648 sDefaults.putString(KEY_SIM_COUNTRY_ISO_OVERRIDE_STRING, ""); sDefaults.putString(KEY_CARRIER_CALL_SCREENING_APP_STRING, "")10649 sDefaults.putString(KEY_CARRIER_CALL_SCREENING_APP_STRING, ""); sDefaults.putString(KEY_CALL_REDIRECTION_SERVICE_COMPONENT_NAME_STRING, null)10650 sDefaults.putString(KEY_CALL_REDIRECTION_SERVICE_COMPONENT_NAME_STRING, null); sDefaults.putBoolean(KEY_CDMA_HOME_REGISTERED_PLMN_NAME_OVERRIDE_BOOL, false)10651 sDefaults.putBoolean(KEY_CDMA_HOME_REGISTERED_PLMN_NAME_OVERRIDE_BOOL, false); sDefaults.putString(KEY_CDMA_HOME_REGISTERED_PLMN_NAME_STRING, "")10652 sDefaults.putString(KEY_CDMA_HOME_REGISTERED_PLMN_NAME_STRING, ""); sDefaults.putBoolean(KEY_SUPPORT_DIRECT_FDN_DIALING_BOOL, false)10653 sDefaults.putBoolean(KEY_SUPPORT_DIRECT_FDN_DIALING_BOOL, false); sDefaults.putInt(KEY_FDN_NUMBER_LENGTH_LIMIT_INT, 20)10654 sDefaults.putInt(KEY_FDN_NUMBER_LENGTH_LIMIT_INT, 20); sDefaults.putBoolean(KEY_CARRIER_DEFAULT_DATA_ROAMING_ENABLED_BOOL, false)10655 sDefaults.putBoolean(KEY_CARRIER_DEFAULT_DATA_ROAMING_ENABLED_BOOL, false); sDefaults.putBoolean(KEY_SKIP_CF_FAIL_TO_DISABLE_DIALOG_BOOL, false)10656 sDefaults.putBoolean(KEY_SKIP_CF_FAIL_TO_DISABLE_DIALOG_BOOL, false); sDefaults.putBoolean(KEY_SUPPORT_ENHANCED_CALL_BLOCKING_BOOL, true)10657 sDefaults.putBoolean(KEY_SUPPORT_ENHANCED_CALL_BLOCKING_BOOL, true); 10658 10659 // MMS defaults sDefaults.putBoolean(KEY_MMS_ALIAS_ENABLED_BOOL, false)10660 sDefaults.putBoolean(KEY_MMS_ALIAS_ENABLED_BOOL, false); sDefaults.putBoolean(KEY_MMS_ALLOW_ATTACH_AUDIO_BOOL, true)10661 sDefaults.putBoolean(KEY_MMS_ALLOW_ATTACH_AUDIO_BOOL, true); sDefaults.putBoolean(KEY_MMS_APPEND_TRANSACTION_ID_BOOL, false)10662 sDefaults.putBoolean(KEY_MMS_APPEND_TRANSACTION_ID_BOOL, false); sDefaults.putBoolean(KEY_MMS_GROUP_MMS_ENABLED_BOOL, true)10663 sDefaults.putBoolean(KEY_MMS_GROUP_MMS_ENABLED_BOOL, true); sDefaults.putBoolean(KEY_MMS_MMS_DELIVERY_REPORT_ENABLED_BOOL, false)10664 sDefaults.putBoolean(KEY_MMS_MMS_DELIVERY_REPORT_ENABLED_BOOL, false); sDefaults.putBoolean(KEY_MMS_MMS_ENABLED_BOOL, true)10665 sDefaults.putBoolean(KEY_MMS_MMS_ENABLED_BOOL, true); sDefaults.putBoolean(KEY_MMS_MMS_READ_REPORT_ENABLED_BOOL, false)10666 sDefaults.putBoolean(KEY_MMS_MMS_READ_REPORT_ENABLED_BOOL, false); sDefaults.putBoolean(KEY_MMS_MULTIPART_SMS_ENABLED_BOOL, true)10667 sDefaults.putBoolean(KEY_MMS_MULTIPART_SMS_ENABLED_BOOL, true); sDefaults.putBoolean(KEY_MMS_NOTIFY_WAP_MMSC_ENABLED_BOOL, false)10668 sDefaults.putBoolean(KEY_MMS_NOTIFY_WAP_MMSC_ENABLED_BOOL, false); sDefaults.putBoolean(KEY_MMS_SEND_MULTIPART_SMS_AS_SEPARATE_MESSAGES_BOOL, false)10669 sDefaults.putBoolean(KEY_MMS_SEND_MULTIPART_SMS_AS_SEPARATE_MESSAGES_BOOL, false); sDefaults.putBoolean(KEY_MMS_SHOW_CELL_BROADCAST_APP_LINKS_BOOL, true)10670 sDefaults.putBoolean(KEY_MMS_SHOW_CELL_BROADCAST_APP_LINKS_BOOL, true); sDefaults.putBoolean(KEY_MMS_SMS_DELIVERY_REPORT_ENABLED_BOOL, true)10671 sDefaults.putBoolean(KEY_MMS_SMS_DELIVERY_REPORT_ENABLED_BOOL, true); sDefaults.putBoolean(KEY_MMS_SUPPORT_HTTP_CHARSET_HEADER_BOOL, false)10672 sDefaults.putBoolean(KEY_MMS_SUPPORT_HTTP_CHARSET_HEADER_BOOL, false); sDefaults.putBoolean(KEY_MMS_SUPPORT_MMS_CONTENT_DISPOSITION_BOOL, true)10673 sDefaults.putBoolean(KEY_MMS_SUPPORT_MMS_CONTENT_DISPOSITION_BOOL, true); sDefaults.putBoolean(KEY_MMS_CLOSE_CONNECTION_BOOL, false)10674 sDefaults.putBoolean(KEY_MMS_CLOSE_CONNECTION_BOOL, false); sDefaults.putInt(KEY_MMS_ALIAS_MAX_CHARS_INT, 48)10675 sDefaults.putInt(KEY_MMS_ALIAS_MAX_CHARS_INT, 48); sDefaults.putInt(KEY_MMS_ALIAS_MIN_CHARS_INT, 2)10676 sDefaults.putInt(KEY_MMS_ALIAS_MIN_CHARS_INT, 2); sDefaults.putInt(KEY_MMS_HTTP_SOCKET_TIMEOUT_INT, 60 * 1000)10677 sDefaults.putInt(KEY_MMS_HTTP_SOCKET_TIMEOUT_INT, 60 * 1000); sDefaults.putInt(KEY_MMS_MAX_IMAGE_HEIGHT_INT, 480)10678 sDefaults.putInt(KEY_MMS_MAX_IMAGE_HEIGHT_INT, 480); sDefaults.putInt(KEY_MMS_MAX_IMAGE_WIDTH_INT, 640)10679 sDefaults.putInt(KEY_MMS_MAX_IMAGE_WIDTH_INT, 640); sDefaults.putInt(KEY_MMS_MAX_MESSAGE_SIZE_INT, 300 * 1024)10680 sDefaults.putInt(KEY_MMS_MAX_MESSAGE_SIZE_INT, 300 * 1024); sDefaults.putInt(KEY_MMS_MESSAGE_TEXT_MAX_SIZE_INT, -1)10681 sDefaults.putInt(KEY_MMS_MESSAGE_TEXT_MAX_SIZE_INT, -1); sDefaults.putInt(KEY_MMS_RECIPIENT_LIMIT_INT, Integer.MAX_VALUE)10682 sDefaults.putInt(KEY_MMS_RECIPIENT_LIMIT_INT, Integer.MAX_VALUE); sDefaults.putInt(KEY_MMS_SMS_TO_MMS_TEXT_LENGTH_THRESHOLD_INT, -1)10683 sDefaults.putInt(KEY_MMS_SMS_TO_MMS_TEXT_LENGTH_THRESHOLD_INT, -1); sDefaults.putInt(KEY_MMS_SMS_TO_MMS_TEXT_THRESHOLD_INT, -1)10684 sDefaults.putInt(KEY_MMS_SMS_TO_MMS_TEXT_THRESHOLD_INT, -1); sDefaults.putInt(KEY_MMS_SUBJECT_MAX_LENGTH_INT, 40)10685 sDefaults.putInt(KEY_MMS_SUBJECT_MAX_LENGTH_INT, 40); sDefaults.putInt(KEY_MMS_NETWORK_RELEASE_TIMEOUT_MILLIS_INT, 5 * 1000)10686 sDefaults.putInt(KEY_MMS_NETWORK_RELEASE_TIMEOUT_MILLIS_INT, 5 * 1000); sDefaults.putInt(KEY_MMS_MAX_NTN_PAYLOAD_SIZE_BYTES_INT, 3 * 1000)10687 sDefaults.putInt(KEY_MMS_MAX_NTN_PAYLOAD_SIZE_BYTES_INT, 3 * 1000); sDefaults.putString(KEY_MMS_EMAIL_GATEWAY_NUMBER_STRING, "")10688 sDefaults.putString(KEY_MMS_EMAIL_GATEWAY_NUMBER_STRING, ""); sDefaults.putString(KEY_MMS_HTTP_PARAMS_STRING, "")10689 sDefaults.putString(KEY_MMS_HTTP_PARAMS_STRING, ""); sDefaults.putString(KEY_MMS_NAI_SUFFIX_STRING, "")10690 sDefaults.putString(KEY_MMS_NAI_SUFFIX_STRING, ""); sDefaults.putString(KEY_MMS_UA_PROF_TAG_NAME_STRING, "x-wap-profile")10691 sDefaults.putString(KEY_MMS_UA_PROF_TAG_NAME_STRING, "x-wap-profile"); sDefaults.putString(KEY_MMS_UA_PROF_URL_STRING, "")10692 sDefaults.putString(KEY_MMS_UA_PROF_URL_STRING, ""); sDefaults.putString(KEY_MMS_USER_AGENT_STRING, "")10693 sDefaults.putString(KEY_MMS_USER_AGENT_STRING, ""); sDefaults.putBoolean(KEY_ALLOW_NON_EMERGENCY_CALLS_IN_ECM_BOOL, true)10694