1/* 2 * Copyright (C) 2018 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 17syntax = "proto2"; 18package android.telephony; 19 20option java_outer_classname = "TelephonyProtoEnums"; 21option java_multiple_files = true; 22 23enum CallBearerEnum { 24 /** Call bearer is unknown or invalid */ 25 CALL_BEARER_UNKNOWN = 0; 26 27 /** Call bearer is legacy CS */ 28 CALL_BEARER_CS = 1; 29 30 /** Call bearer is IMS */ 31 CALL_BEARER_IMS = 2; 32} 33 34enum CallDirectionEnum { 35 /** Call direction: unknown or invalid */ 36 CALL_DIRECTION_UNKNOWN = 0; 37 38 /** Call direction: mobile originated (outgoing for this device) */ 39 CALL_DIRECTION_MO = 1; 40 41 /** Call direction: mobile terminated (incoming for this device) */ 42 CALL_DIRECTION_MT = 2; 43} 44 45// Call setup duration buckets. 46// See com.android.internal.telephony.metrics.VoiceCallSessionStats for definition. 47enum CallSetupDurationEnum { 48 CALL_SETUP_DURATION_UNKNOWN = 0; 49 CALL_SETUP_DURATION_EXTREMELY_FAST = 1; 50 CALL_SETUP_DURATION_ULTRA_FAST = 2; 51 CALL_SETUP_DURATION_VERY_FAST = 3; 52 CALL_SETUP_DURATION_FAST = 4; 53 CALL_SETUP_DURATION_NORMAL = 5; 54 CALL_SETUP_DURATION_SLOW = 6; 55 CALL_SETUP_DURATION_VERY_SLOW = 7; 56 CALL_SETUP_DURATION_ULTRA_SLOW = 8; 57 CALL_SETUP_DURATION_EXTREMELY_SLOW = 9; 58} 59 60// Data conn. power states, primarily used by android/telephony/DataConnectionRealTimeInfo.java. 61enum DataConnectionPowerStateEnum { 62 DATA_CONNECTION_POWER_STATE_LOW = 1; 63 DATA_CONNECTION_POWER_STATE_MEDIUM = 2; 64 DATA_CONNECTION_POWER_STATE_HIGH = 3; 65 DATA_CONNECTION_POWER_STATE_UNKNOWN = 2147483647; // Java Integer.MAX_VALUE; 66} 67 68// Network type enums, primarily used by android/telephony/TelephonyManager.java. 69// Do not add negative types. 70enum NetworkTypeEnum { 71 NETWORK_TYPE_UNKNOWN = 0; 72 NETWORK_TYPE_GPRS = 1; 73 NETWORK_TYPE_EDGE = 2; 74 NETWORK_TYPE_UMTS = 3; 75 NETWORK_TYPE_CDMA = 4; 76 NETWORK_TYPE_EVDO_0 = 5; 77 NETWORK_TYPE_EVDO_A = 6; 78 NETWORK_TYPE_1XRTT = 7; 79 NETWORK_TYPE_HSDPA = 8; 80 NETWORK_TYPE_HSUPA = 9; 81 NETWORK_TYPE_HSPA = 10; 82 NETWORK_TYPE_IDEN = 11; 83 NETWORK_TYPE_EVDO_B = 12; 84 NETWORK_TYPE_LTE = 13; 85 NETWORK_TYPE_EHRPD = 14; 86 NETWORK_TYPE_HSPAP = 15; 87 NETWORK_TYPE_GSM = 16; 88 NETWORK_TYPE_TD_SCDMA = 17; 89 NETWORK_TYPE_IWLAN = 18; 90 NETWORK_TYPE_LTE_CA = 19; 91 NETWORK_TYPE_NR = 20; 92} 93 94// Roaming type enums, see android.telephony.ServiceState.RoamingType for definitions. 95enum RoamingTypeEnum { 96 ROAMING_TYPE_NOT_ROAMING = 0; 97 ROAMING_TYPE_ROAMING = 1; 98 ROAMING_TYPE_ROAMING_DOMESTIC = 2; 99 ROAMING_TYPE_ROAMING_INTERNATIONAL = 3; 100} 101 102// Signal strength levels, as defined in android/telephony/SignalStrength.java. 103enum SignalStrengthEnum { 104 SIGNAL_STRENGTH_NONE_OR_UNKNOWN = 0; 105 SIGNAL_STRENGTH_POOR = 1; 106 SIGNAL_STRENGTH_MODERATE = 2; 107 SIGNAL_STRENGTH_GOOD = 3; 108 SIGNAL_STRENGTH_GREAT = 4; 109} 110 111enum ServiceStateEnum { 112 /** 113 * Normal operation condition, the phone is registered 114 * with an operator either in home network or in roaming. 115 */ 116 SERVICE_STATE_IN_SERVICE = 0; 117 118 /** 119 * Phone is not registered with any operator, the phone 120 * can be currently searching a new operator to register to, or not 121 * searching to registration at all, or registration is denied, or radio 122 * signal is not available. 123 */ 124 SERVICE_STATE_OUT_OF_SERVICE = 1; 125 126 /** 127 * The phone is registered and locked. Only emergency numbers are allowed. {@more} 128 */ 129 SERVICE_STATE_EMERGENCY_ONLY = 2; 130 131 /** 132 * Radio of telephony is explicitly powered off. 133 */ 134 SERVICE_STATE_POWER_OFF = 3; 135} 136 137enum NetworkRegistrationState { 138 /** 139 * Not registered. The device is not currently searching a new operator to register. 140 */ 141 REGISTRATION_STATE_NOT_REGISTERED_OR_SEARCHING = 0; 142 143 /** 144 * Registered on home network. 145 */ 146 REGISTRATION_STATE_HOME = 1; 147 148 /** 149 * Not registered. The device is currently searching a new operator to register. 150 */ 151 REGISTRATION_STATE_NOT_REGISTERED_SEARCHING = 2; 152 153 /** 154 * Registration denied. 155 */ 156 REGISTRATION_STATE_DENIED = 3; 157 158 /** 159 * Registration state is unknown. 160 */ 161 REGISTRATION_STATE_UNKNOWN = 4; 162 163 /** 164 * Registered on roaming network. 165 */ 166 REGISTRATION_STATE_ROAMING = 5; 167} 168 169enum SimStateEnum { 170 SIM_STATE_UNKNOWN = 0; 171 /** SIM card state: no SIM card is available in the device */ 172 SIM_STATE_ABSENT = 1; 173 /** SIM card state: Locked: requires the user's SIM PIN to unlock */ 174 SIM_STATE_PIN_REQUIRED = 2; 175 /** SIM card state: Locked: requires the user's SIM PUK to unlock */ 176 SIM_STATE_PUK_REQUIRED = 3; 177 /** SIM card state: Locked: requires a network PIN to unlock */ 178 SIM_STATE_NETWORK_LOCKED = 4; 179 /** SIM card state: Ready */ 180 SIM_STATE_READY = 5; 181 /** SIM card state: SIM Card is NOT READY */ 182 SIM_STATE_NOT_READY = 6; 183 /** SIM card state: SIM Card Error, permanently disabled */ 184 SIM_STATE_PERM_DISABLED = 7; 185 /** SIM card state: SIM Card Error, present but faulty */ 186 SIM_STATE_CARD_IO_ERROR = 8; 187 /** SIM card state: SIM Card restricted, present but not usable due to 188 * carrier restrictions. 189 */ 190 SIM_STATE_CARD_RESTRICTED = 9; 191 /** 192 * SIM card state: Loaded: SIM card applications have been loaded 193 * @hide 194 */ 195 SIM_STATE_LOADED = 10; 196 /** 197 * SIM card state: SIM Card is present 198 * @hide 199 */ 200 SIM_STATE_PRESENT = 11; 201} 202 203// Format of SMS message 204enum SmsFormatEnum { 205 /** Unknown format */ 206 SMS_FORMAT_UNKNOWN = 0; 207 /** Format compliant with 3GPP TS 23.040 */ 208 SMS_FORMAT_3GPP = 1; 209 /** Format compliant with 3GPP2 TS C.S0015-B */ 210 SMS_FORMAT_3GPP2 = 2; 211} 212 213// Technology used to carry an SMS message 214enum SmsTechEnum { 215 /** 216 * Unknown SMS technology used to carry the SMS. 217 * This value is also used for injected SMS. 218 */ 219 SMS_TECH_UNKNOWN = 0; 220 /** The SMS was carried over CS bearer in 3GPP network */ 221 SMS_TECH_CS_3GPP = 1; 222 /** The SMS was carried over CS bearer in 3GPP2 network */ 223 SMS_TECH_CS_3GPP2 = 2; 224 /** The SMS was carried over IMS */ 225 SMS_TECH_IMS = 3; 226} 227 228// Types of SMS message 229enum SmsTypeEnum { 230 /** Normal type. */ 231 SMS_TYPE_NORMAL = 0; 232 /** SMS-PP (point-to-point). */ 233 SMS_TYPE_SMS_PP = 1; 234 /** Voicemail indication. */ 235 SMS_TYPE_VOICEMAIL_INDICATION = 2; 236 /** Type 0 message (3GPP TS 23.040 9.2.3.9). */ 237 SMS_TYPE_ZERO = 3; 238 /** WAP-PUSH message. */ 239 SMS_TYPE_WAP_PUSH = 4; 240} 241 242// Incoming SMS errors 243enum SmsIncomingErrorEnum { 244 SMS_SUCCESS = 0; 245 SMS_ERROR_GENERIC = 1; 246 SMS_ERROR_NO_MEMORY = 2; 247 SMS_ERROR_NOT_SUPPORTED = 3; 248} 249 250// Outgoing SMS results 251enum SmsSendResultEnum { 252 // Unknown error 253 SMS_SEND_RESULT_UNKNOWN = 0; 254 // Success 255 SMS_SEND_RESULT_SUCCESS = 1; 256 // Permanent error 257 SMS_SEND_RESULT_ERROR = 2; 258 // Temporary error, retry 259 SMS_SEND_RESULT_ERROR_RETRY = 3; 260 // Error over IMS, retry on CS 261 SMS_SEND_RESULT_ERROR_FALLBACK = 4; 262} 263 264// Data profile of the data call. From 265// frameworks/base/telephony/java/com/android/internal/telephony/RILConstants.java 266enum DataProfileEnum { 267 DATA_PROFILE_DEFAULT = 0; 268 DATA_PROFILE_TETHERED = 1; 269 DATA_PROFILE_IMS = 2; 270 DATA_PROFILE_FOTA = 3; 271 DATA_PROFILE_CBS = 4; 272 DATA_PROFILE_OEM_BASE = 1000; 273 DATA_PROFILE_INVALID = -1; 274} 275 276// Reason of data call deactivation. From 277// frameworks/base/telephony/java/android/telephony/data/DataService.java#DeactivateDataReason 278enum DataDeactivateReasonEnum { 279 DEACTIVATE_REASON_UNKNOWN = 0; 280 DEACTIVATE_REASON_NORMAL = 1; 281 DEACTIVATE_REASON_RADIO_OFF = 2; 282 DEACTIVATE_REASON_HANDOVER = 3; 283} 284 285// IP type of the data call 286// see frameworks/base/telephony/java/android/telephony/data/ApnSetting.java#ProtocolType 287enum ApnProtocolEnum { 288 APN_PROTOCOL_IPV4 = 0; 289 APN_PROTOCOL_IPV6 = 1; 290 APN_PROTOCOL_IPV4V6 = 2; 291 APN_PROTOCOL_PPP = 3; 292} 293 294// Action taken to recover a data call that is stalled. From 295// frameworks/opt/telephony/src/java/com/android/internal/telephony/data/ 296// DataStallRecoveryManager.java#RecoveryAction 297enum DataStallRecoveryActionEnum { 298 /** 299 * DataStallRecoveryManager queries RIL for link properties (IP addresses, DNS server addresses 300 * etc). This will help in cases where the data stall occurred because of a link property 301 * changed but not notified to connectivity service. 302 */ 303 RECOVERY_ACTION_GET_DATA_CALL_LIST = 0; 304 /** 305 * DataStallRecoveryManager will request DataNetworkController to reestablish internet and sets 306 * up the data call back using SETUP_DATA_CALL. It will help to reestablish the channel between 307 * RIL and modem. 308 */ 309 RECOVERY_ACTION_CLEANUP = 1; 310 /** 311 * DcTracker triggers RIL to detach for GPRS and re-attach(re-register the network). 312 * RECOVERY_ACTION_REREGISTER is no longer used in Android T and later. 313 */ 314 RECOVERY_ACTION_REREGISTER = 2; 315 /** 316 * DataStallRecoveryManager will request ServiceStateTracker to power off and on, equivalent 317 * to airplane mode toggle on and off. 318 */ 319 RECOVERY_ACTION_RADIO_RESTART = 3; 320 /** 321 * DataStallRecoveryManager will request to reboot modem. It will recover if there is a problem 322 * in modem side. RECOVERY_ACTION_RESET_MODEM is introduced in Android T. 323 */ 324 RECOVERY_ACTION_RESET_MODEM = 4; 325 } 326 327// The data stall recovered reason. 328// frameworks/opt/telephony/src/java/com/android/internal/telephony/data/ 329// DataStallRecoveryManager.java#RecoveredReason 330enum DataStallRecoveredReason { 331 /* The data stall symptom not recover yet. */ 332 RECOVERED_REASON_NONE = 0; 333 /* The data stall symptom recovered by DataStallRecoveryManager. */ 334 RECOVERED_REASON_DSRM = 1; 335 /* The data stall symptom recovered by modem. */ 336 RECOVERED_REASON_MODEM = 2; 337 /* The data stall symptom recovered by user. */ 338 RECOVERED_REASON_USER = 3; 339} 340 341// Codec quality 342enum CodecQuality { 343 /** Codec quality: unknown */ 344 CODEC_QUALITY_UNKNOWN = 0; 345 346 /** Codec quality: narrowband */ 347 CODEC_QUALITY_NARROWBAND = 1; 348 349 /** Codec quality: wideband */ 350 CODEC_QUALITY_WIDEBAND = 2; 351 352 /** Codec quality: super-wideband */ 353 CODEC_QUALITY_SUPER_WIDEBAND = 3; 354 355 /** Codec quality: fullband */ 356 CODEC_QUALITY_FULLBAND = 4; 357} 358 359 360// Result from restore of sim-specific settings. 361enum SimSpecfifcSettingsRestoreResult { 362 SIM_RESTORE_RESULT_UNKNOWN = 0; 363 // SIM-specific settings were successfully restored. 364 SIM_RESTORE_RESULT_SUCCESS = 1; 365 // SIM-specific settings didn't restore because no matching SIM was 366 // found in backed up data. 367 SIM_RESTORE_RESULT_NONE_MATCH = 2; 368 // No SIM-specific settings were found in backup file 369 SIM_RESTORE_RESULT_ZERO_SIM_IN_BACKUP = 3; 370} 371 372// Case of sim-specific settings restore. 373enum SimSpecificSettingsRestoreCase { 374 SIM_RESTORE_CASE_UNDEFINED_USE_CASE = 0; 375 // Restore was done during SuW. 376 SIM_RESTORE_CASE_SUW = 1; 377 // Restore was done once sim was inserted. 378 SIM_RESTORE_CASE_SIM_INSERTED = 2; 379} 380 381// Matching criteria for sim-specific settings restore. 382enum SimSpecificSettingsRestoreMatchingCriteria { 383 SIM_RESTORE_MATCHING_CRITERIA_UNSET= 0; 384 // No match was found. 385 SIM_RESTORE_MATCHING_CRITERIA_NONE = 1; 386 // Restore was done by matching two sims by ICCID. 387 SIM_RESTORE_MATCHING_CRITERIA_ICCID = 2; 388 // Restore was done by matching carrierId and phoneNumber. 389 SIM_RESTORE_MATCHING_CRITERIA_CARRIER_ID_AND_PHONE_NUMBER = 3; 390 // Restore was done by matching carrierId only. 391 SIM_RESTORE_MATCHING_CRITERIA_CARRIER_ID_ONLY = 4; 392} 393 394// Describe IMS feature tags 395// See frameworks/opt/net/ims/src/java/com/android/ims/rcs/uce/util/FeatureTags.java 396enum ImsFeatureTag { 397 IMS_FEATURE_TAG_UNSPECIFIED = 0; 398 IMS_FEATURE_TAG_CUSTOM = 1; 399 IMS_FEATURE_TAG_STANDALONE_MSG = 2; 400 IMS_FEATURE_TAG_CHAT_IM = 3; 401 IMS_FEATURE_TAG_CHAT_SESSION = 4; 402 IMS_FEATURE_TAG_FILE_TRANSFER = 5; 403 IMS_FEATURE_TAG_FILE_TRANSFER_VIA_SMS = 6; 404 IMS_FEATURE_TAG_CALL_COMPOSER_ENRICHED_CALLING = 7; 405 IMS_FEATURE_TAG_CALL_COMPOSER_VIA_TELEPHONY = 8; 406 IMS_FEATURE_TAG_POST_CALL = 9; 407 IMS_FEATURE_TAG_SHARED_MAP = 10; 408 IMS_FEATURE_TAG_SHARED_SKETCH = 11; 409 IMS_FEATURE_TAG_GEO_PUSH = 12; 410 IMS_FEATURE_TAG_GEO_PUSH_VIA_SMS = 13; 411 IMS_FEATURE_TAG_CHATBOT_COMMUNICATION_USING_SESSION = 14; 412 IMS_FEATURE_TAG_CHATBOT_COMMUNICATION_USING_STANDALONE_MSG = 15; 413 IMS_FEATURE_TAG_CHATBOT_VERSION_SUPPORTED = 16; 414 IMS_FEATURE_TAG_CHATBOT_ROLE = 17; 415 IMS_FEATURE_TAG_MMTEL = 18; 416 IMS_FEATURE_TAG_VIDEO = 19; 417 IMS_FEATURE_TAG_PRESENCE = 20; 418} 419 420// Define the SIP request method types used in IMS. 421enum SipRequestMethodType { 422 SIP_REQUEST_UNSPECIFIED = 0; 423 // A SIP request that is not defined in the specification has been sent. 424 SIP_REQUEST_CUSTOM = 1; 425 SIP_REQUEST_INVITE = 2; 426 SIP_REQUEST_ACK = 3; 427 SIP_REQUEST_OPTIONS = 4; 428 SIP_REQUEST_BYE = 5; 429 SIP_REQUEST_CANCEL = 6; 430 SIP_REQUEST_REGISTER = 7; 431 SIP_REQUEST_PRACK = 8; 432 SIP_REQUEST_SUBSCRIBE = 9; 433 SIP_REQUEST_NOTIFY = 10; 434 SIP_REQUEST_PUBLISH = 11; 435 SIP_REQUEST_INFO = 12; 436 SIP_REQUEST_REFER = 13; 437 SIP_REQUEST_MESSAGE = 14; 438 SIP_REQUEST_UPDATE = 15; 439} 440 441// Buckets of call duration in a voice call. 442enum CallDuration { 443 CALL_DURATION_UNKNOWN = 0; // Unknown duration 444 CALL_DURATION_LESS_THAN_ONE_MINUTE = 1; // Call lasted less than 1 minute 445 CALL_DURATION_LESS_THAN_FIVE_MINUTES = 2; // Call lasted between 1 and 5 minutes 446 CALL_DURATION_LESS_THAN_TEN_MINUTES = 3; // Call lasted between 5 and 10 minutes 447 CALL_DURATION_LESS_THAN_THIRTY_MINUTES = 4; // Call lasted between 10 and 30 minutes 448 CALL_DURATION_LESS_THAN_ONE_HOUR = 5; // Call lasted between 30 minutes and 1 hour 449 CALL_DURATION_MORE_THAN_ONE_HOUR = 6; // Call lasted more than 1 hour 450}