1 /* 2 * Copyright (C) 2014 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 /** 20 * Contains precise disconnect call causes generated by the 21 * framework and the RIL. 22 * 23 * @hide 24 */ 25 public class PreciseDisconnectCause { 26 27 /** The disconnect cause is not valid (Not received a disconnect cause)*/ 28 public static final int NOT_VALID = -1; 29 /** No disconnect cause provided. Generally a local disconnect or an incoming missed call */ 30 public static final int NO_DISCONNECT_CAUSE_AVAILABLE = 0; 31 /** 32 * The destination cannot be reached because the number, although valid, 33 * is not currently assigned 34 */ 35 public static final int UNOBTAINABLE_NUMBER = 1; 36 /** The user cannot be reached because the network through which the call has been 37 * routed does not serve the destination desired 38 */ 39 public static final int NO_ROUTE_TO_DESTINATION = 3; 40 /** The channel most recently identified is not acceptable to the sending entity for 41 * use in this call 42 */ 43 public static final int CHANNEL_UNACCEPTABLE = 6; 44 /** The MS has tried to access a service that the MS's network operator or service 45 * provider is not prepared to allow 46 */ 47 public static final int OPERATOR_DETERMINED_BARRING = 8; 48 /** One of the users involved in the call has requested that the call is cleared */ 49 public static final int NORMAL = 16; 50 /** The called user is unable to accept another call */ 51 public static final int BUSY = 17; 52 /** The user does not respond to a call establishment message with either an alerting 53 * or connect indication within the prescribed period of time allocated 54 */ 55 public static final int NO_USER_RESPONDING = 18; 56 /** The user has provided an alerting indication but has not provided a connect 57 * indication within a prescribed period of time 58 */ 59 public static final int NO_ANSWER_FROM_USER = 19; 60 /** The equipment sending this cause does not wish to accept this call */ 61 public static final int CALL_REJECTED = 21; 62 /** The called number is no longer assigned */ 63 public static final int NUMBER_CHANGED = 22; 64 /** This cause is returned to the network when a mobile station clears an active 65 * call which is being pre-empted by another call with higher precedence 66 */ 67 public static final int PREEMPTION = 25; 68 /** The destination indicated by the mobile station cannot be reached because 69 * the interface to the destination is not functioning correctly 70 */ 71 public static final int DESTINATION_OUT_OF_ORDER = 27; 72 /** The called party number is not a valid format or is not complete */ 73 public static final int INVALID_NUMBER_FORMAT = 28; 74 /** The facility requested by user can not be provided by the network */ 75 public static final int FACILITY_REJECTED = 29; 76 /** Provided in response to a STATUS ENQUIRY message */ 77 public static final int STATUS_ENQUIRY = 30; 78 /** Reports a normal disconnect only when no other normal cause applies */ 79 public static final int NORMAL_UNSPECIFIED = 31; 80 /** There is no channel presently available to handle the call */ 81 public static final int NO_CIRCUIT_AVAIL = 34; 82 /** The network is not functioning correctly and that the condition is likely 83 * to last a relatively long period of time 84 */ 85 public static final int NETWORK_OUT_OF_ORDER = 38; 86 /** 87 * The network is not functioning correctly and the condition is not likely to last 88 * a long period of time 89 */ 90 public static final int TEMPORARY_FAILURE = 41; 91 /** The switching equipment is experiencing a period of high traffic */ 92 public static final int SWITCHING_CONGESTION = 42; 93 /** The network could not deliver access information to the remote user as requested */ 94 public static final int ACCESS_INFORMATION_DISCARDED = 43; 95 /** The channel cannot be provided */ 96 public static final int CHANNEL_NOT_AVAIL = 44; 97 /** This cause is used to report a resource unavailable event only when no other 98 * cause in the resource unavailable class applies 99 */ 100 public static final int RESOURCES_UNAVAILABLE_OR_UNSPECIFIED = 44; 101 /** The requested quality of service (ITU-T X.213) cannot be provided */ 102 public static final int QOS_NOT_AVAIL = 49; 103 /** The facility could not be provided by the network because the user has no 104 * complete subscription 105 */ 106 public static final int REQUESTED_FACILITY_NOT_SUBSCRIBED = 50; 107 /** Incoming calls are not allowed within this CUG */ 108 public static final int INCOMING_CALLS_BARRED_WITHIN_CUG = 55; 109 /** The mobile station is not authorized to use bearer capability requested */ 110 public static final int BEARER_CAPABILITY_NOT_AUTHORIZED = 57; 111 /** The requested bearer capability is not available at this time */ 112 public static final int BEARER_NOT_AVAIL = 58; 113 /** The service option is not availble at this time */ 114 public static final int SERVICE_OPTION_NOT_AVAILABLE = 63; 115 /** The equipment sending this cause does not support the bearer capability requested */ 116 public static final int BEARER_SERVICE_NOT_IMPLEMENTED = 65; 117 /** The call clearing is due to ACM being greater than or equal to ACMmax */ 118 public static final int ACM_LIMIT_EXCEEDED = 68; 119 /** The equipment sending this cause does not support the requested facility */ 120 public static final int REQUESTED_FACILITY_NOT_IMPLEMENTED = 69; 121 /** The equipment sending this cause only supports the restricted version of 122 * the requested bearer capability 123 */ 124 public static final int ONLY_DIGITAL_INFORMATION_BEARER_AVAILABLE = 70; 125 /** The service requested is not implemented at network */ 126 public static final int SERVICE_OR_OPTION_NOT_IMPLEMENTED = 79; 127 /** The equipment sending this cause has received a message with a transaction identifier 128 * which is not currently in use on the MS-network interface 129 */ 130 public static final int INVALID_TRANSACTION_IDENTIFIER = 81; 131 /** The called user for the incoming CUG call is not a member of the specified CUG */ 132 public static final int USER_NOT_MEMBER_OF_CUG = 87; 133 /** The equipment sending this cause has received a request which can't be accomodated */ 134 public static final int INCOMPATIBLE_DESTINATION = 88; 135 /** This cause is used to report receipt of a message with semantically incorrect contents */ 136 public static final int SEMANTICALLY_INCORRECT_MESSAGE = 95; 137 /** The equipment sending this cause has received a message with a non-semantical 138 * mandatory IE error 139 */ 140 public static final int INVALID_MANDATORY_INFORMATION = 96; 141 /** This is sent in response to a message which is not defined, or defined but not 142 * implemented by the equipment sending this cause 143 */ 144 public static final int MESSAGE_TYPE_NON_IMPLEMENTED = 97; 145 /** The equipment sending this cause has received a message not compatible with the 146 * protocol state 147 */ 148 public static final int MESSAGE_TYPE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 98; 149 /** The equipment sending this cause has received a message which includes information 150 * elements not recognized because its identifier is not defined or it is defined but not 151 * implemented by the equipment sending the cause 152 */ 153 public static final int INFORMATION_ELEMENT_NON_EXISTENT = 99; 154 /** The equipment sending this cause has received a message with conditional IE errors */ 155 public static final int CONDITIONAL_IE_ERROR = 100; 156 /** The message has been received which is incompatible with the protocol state */ 157 public static final int MESSAGE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 101; 158 /** The procedure has been initiated by the expiry of a timer in association with 159 * 3GPP TS 24.008 error handling procedures 160 */ 161 public static final int RECOVERY_ON_TIMER_EXPIRED = 102; 162 /** This protocol error event is reported only when no other cause in the protocol 163 * error class applies 164 */ 165 public static final int PROTOCOL_ERROR_UNSPECIFIED = 111; 166 /** interworking with a network which does not provide causes for actions it takes 167 * thus, the precise cause for a message which is being sent cannot be ascertained 168 */ 169 public static final int INTERWORKING_UNSPECIFIED = 127; 170 /** The call is restricted */ 171 public static final int CALL_BARRED = 240; 172 /** The call is blocked by the Fixed Dialing Number list */ 173 public static final int FDN_BLOCKED = 241; 174 /** The given IMSI is not known at the VLR */ 175 /** TS 24.008 cause 4 */ 176 public static final int IMSI_UNKNOWN_IN_VLR = 242; 177 /** 178 * The network does not accept emergency call establishment using an IMEI or not accept attach 179 * procedure for emergency services using an IMEI 180 */ 181 public static final int IMEI_NOT_ACCEPTED = 243; 182 /** The call cannot be established because RADIO is OFF */ 183 public static final int RADIO_OFF = 247; 184 /** The call cannot be established because of no cell coverage */ 185 public static final int OUT_OF_SRV = 248; 186 /** The call cannot be established because of no valid SIM */ 187 public static final int NO_VALID_SIM = 249; 188 /** The call is dropped or failed internally by modem */ 189 public static final int RADIO_INTERNAL_ERROR = 250; 190 /** Call failed because of UE timer expired while waiting for a response from network */ 191 public static final int NETWORK_RESP_TIMEOUT = 251; 192 /** Call failed because of a network reject */ 193 public static final int NETWORK_REJECT = 252; 194 /** Call failed because of radio access failure. ex. RACH failure */ 195 public static final int RADIO_ACCESS_FAILURE = 253; 196 /** Call failed/dropped because of a RLF */ 197 public static final int RADIO_LINK_FAILURE = 254; 198 /** Call failed/dropped because of radio link lost */ 199 public static final int RADIO_LINK_LOST = 255; 200 /** Call failed because of a radio uplink issue */ 201 public static final int RADIO_UPLINK_FAILURE = 256; 202 /** Call failed because of a RRC connection setup failure */ 203 public static final int RADIO_SETUP_FAILURE = 257; 204 /** Call failed/dropped because of RRC connection release from NW */ 205 public static final int RADIO_RELEASE_NORMAL = 258; 206 /** Call failed/dropped because of RRC abnormally released by modem/network */ 207 public static final int RADIO_RELEASE_ABNORMAL = 259; 208 /** Call setup failed because of access class barring */ 209 public static final int ACCESS_CLASS_BLOCKED = 260; 210 /** Call failed/dropped because of a network detach */ 211 public static final int NETWORK_DETACH = 261; 212 213 /** MS is locked until next power cycle */ 214 public static final int CDMA_LOCKED_UNTIL_POWER_CYCLE = 1000; 215 /** Drop call*/ 216 public static final int CDMA_DROP = 1001; 217 /** INTERCEPT order received, MS state idle entered */ 218 public static final int CDMA_INTERCEPT = 1002; 219 /** MS has been redirected, call is cancelled */ 220 public static final int CDMA_REORDER = 1003; 221 /** Service option rejection */ 222 public static final int CDMA_SO_REJECT = 1004; 223 /** Requested service is rejected, retry delay is set */ 224 public static final int CDMA_RETRY_ORDER = 1005; 225 /** Unable to obtain access to the CDMA system */ 226 public static final int CDMA_ACCESS_FAILURE = 1006; 227 /** Not a preempted call */ 228 public static final int CDMA_PREEMPTED = 1007; 229 /** Not an emergency call */ 230 public static final int CDMA_NOT_EMERGENCY = 1008; 231 /** Access Blocked by CDMA network */ 232 public static final int CDMA_ACCESS_BLOCKED = 1009; 233 234 /** Mapped from ImsReasonInfo */ 235 /* The passed argument is an invalid */ 236 public static final int LOCAL_ILLEGAL_ARGUMENT = 1200; 237 // The operation is invoked in invalid call state 238 public static final int LOCAL_ILLEGAL_STATE = 1201; 239 // IMS service internal error 240 public static final int LOCAL_INTERNAL_ERROR = 1202; 241 // IMS service goes down (service connection is lost) 242 public static final int LOCAL_IMS_SERVICE_DOWN = 1203; 243 // No pending incoming call exists 244 public static final int LOCAL_NO_PENDING_CALL = 1204; 245 // Service unavailable; by power off 246 public static final int LOCAL_POWER_OFF = 1205; 247 // Service unavailable; by low battery 248 public static final int LOCAL_LOW_BATTERY = 1206; 249 // Service unavailable; by out of service (data service state) 250 public static final int LOCAL_NETWORK_NO_SERVICE = 1207; 251 /* Service unavailable; by no LTE coverage 252 * (VoLTE is not supported even though IMS is registered) 253 */ 254 public static final int LOCAL_NETWORK_NO_LTE_COVERAGE = 1208; 255 /** Service unavailable; by located in roaming area */ 256 public static final int LOCAL_NETWORK_ROAMING = 1209; 257 /** Service unavailable; by IP changed */ 258 public static final int LOCAL_NETWORK_IP_CHANGED = 1210; 259 /** Service unavailable; other */ 260 public static final int LOCAL_SERVICE_UNAVAILABLE = 1211; 261 /* Service unavailable; IMS connection is lost (IMS is not registered) */ 262 public static final int LOCAL_NOT_REGISTERED = 1212; 263 /** Max call exceeded */ 264 public static final int LOCAL_MAX_CALL_EXCEEDED = 1213; 265 /** Call decline */ 266 public static final int LOCAL_CALL_DECLINE = 1214; 267 /** SRVCC is in progress */ 268 public static final int LOCAL_CALL_VCC_ON_PROGRESSING = 1215; 269 /** Resource reservation is failed (QoS precondition) */ 270 public static final int LOCAL_CALL_RESOURCE_RESERVATION_FAILED = 1216; 271 /** Retry CS call; VoLTE service can't be provided by the network or remote end 272 * Resolve the extra code(EXTRA_CODE_CALL_RETRY_*) if the below code is set 273 */ 274 public static final int LOCAL_CALL_CS_RETRY_REQUIRED = 1217; 275 /** Retry VoLTE call; VoLTE service can't be provided by the network temporarily */ 276 public static final int LOCAL_CALL_VOLTE_RETRY_REQUIRED = 1218; 277 /** IMS call is already terminated (in TERMINATED state) */ 278 public static final int LOCAL_CALL_TERMINATED = 1219; 279 /** Handover not feasible */ 280 public static final int LOCAL_HO_NOT_FEASIBLE = 1220; 281 282 /** 1xx waiting timer is expired after sending INVITE request (MO only) */ 283 public static final int TIMEOUT_1XX_WAITING = 1221; 284 /** User no answer during call setup operation (MO/MT) 285 * MO : 200 OK to INVITE request is not received, 286 * MT : No action from user after alerting the call 287 */ 288 public static final int TIMEOUT_NO_ANSWER = 1222; 289 /** User no answer during call update operation (MO/MT) 290 * MO : 200 OK to re-INVITE request is not received, 291 * MT : No action from user after alerting the call 292 */ 293 public static final int TIMEOUT_NO_ANSWER_CALL_UPDATE = 1223; 294 295 /** 296 * STATUSCODE (SIP response code) (IMS -> Telephony) 297 */ 298 /** SIP request is redirected */ 299 public static final int SIP_REDIRECTED = 1300; 300 /** 4xx responses */ 301 /** 400 : Bad Request */ 302 public static final int SIP_BAD_REQUEST = 1310; 303 /** 403 : Forbidden */ 304 public static final int SIP_FORBIDDEN = 1311; 305 /** 404 : Not Found */ 306 public static final int SIP_NOT_FOUND = 1312; 307 /** 415 : Unsupported Media Type 308 * 416 : Unsupported URI Scheme 309 * 420 : Bad Extension 310 */ 311 public static final int SIP_NOT_SUPPORTED = 1313; 312 /** 408 : Request Timeout */ 313 public static final int SIP_REQUEST_TIMEOUT = 1314; 314 /** 480 : Temporarily Unavailable */ 315 public static final int SIP_TEMPRARILY_UNAVAILABLE = 1315; 316 /** 484 : Address Incomplete */ 317 public static final int SIP_BAD_ADDRESS = 1316; 318 /** 486 : Busy Here 319 * 600 : Busy Everywhere 320 */ 321 public static final int SIP_BUSY = 1317; 322 /** 487 : Request Terminated */ 323 public static final int SIP_REQUEST_CANCELLED = 1318; 324 /** 406 : Not Acceptable 325 * 488 : Not Acceptable Here 326 * 606 : Not Acceptable 327 */ 328 public static final int SIP_NOT_ACCEPTABLE = 1319; 329 /** 410 : Gone 330 * 604 : Does Not Exist Anywhere 331 */ 332 public static final int SIP_NOT_REACHABLE = 1320; 333 /** Others */ 334 public static final int SIP_CLIENT_ERROR = 1321; 335 /** 5xx responses 336 * 501 : Server Internal Error 337 */ 338 public static final int SIP_SERVER_INTERNAL_ERROR = 1330; 339 /** 503 : Service Unavailable */ 340 public static final int SIP_SERVICE_UNAVAILABLE = 1331; 341 /** 504 : Server Time-out */ 342 public static final int SIP_SERVER_TIMEOUT = 1332; 343 /** Others */ 344 public static final int SIP_SERVER_ERROR = 1333; 345 /** 6xx responses 346 * 603 : Decline 347 */ 348 public static final int SIP_USER_REJECTED = 1340; 349 /** Others */ 350 public static final int SIP_GLOBAL_ERROR = 1341; 351 /** Emergency failure */ 352 public static final int EMERGENCY_TEMP_FAILURE = 1342; 353 public static final int EMERGENCY_PERM_FAILURE = 1343; 354 /** Media resource initialization failed */ 355 public static final int MEDIA_INIT_FAILED = 1400; 356 /** RTP timeout (no audio / video traffic in the session) */ 357 public static final int MEDIA_NO_DATA = 1401; 358 /** Media is not supported; so dropped the call */ 359 public static final int MEDIA_NOT_ACCEPTABLE = 1402; 360 /** Unknown media related errors */ 361 public static final int MEDIA_UNSPECIFIED = 1403; 362 /** User triggers the call end */ 363 public static final int USER_TERMINATED = 1500; 364 /** No action while an incoming call is ringing */ 365 public static final int USER_NOANSWER = 1501; 366 /** User ignores an incoming call */ 367 public static final int USER_IGNORE = 1502; 368 /** User declines an incoming call */ 369 public static final int USER_DECLINE = 1503; 370 /** Device declines/ends a call due to low battery */ 371 public static final int LOW_BATTERY = 1504; 372 /** Device declines call due to blacklisted call ID */ 373 public static final int BLACKLISTED_CALL_ID = 1505; 374 /** The call is terminated by the network or remote user */ 375 public static final int USER_TERMINATED_BY_REMOTE = 1510; 376 377 /** 378 * UT 379 */ 380 public static final int UT_NOT_SUPPORTED = 1800; 381 public static final int UT_SERVICE_UNAVAILABLE = 1801; 382 public static final int UT_OPERATION_NOT_ALLOWED = 1802; 383 public static final int UT_NETWORK_ERROR = 1803; 384 public static final int UT_CB_PASSWORD_MISMATCH = 1804; 385 386 /** 387 * ECBM 388 */ 389 public static final int ECBM_NOT_SUPPORTED = 1900; 390 391 /** 392 * Fail code used to indicate that Multi-endpoint is not supported by the Ims framework. 393 */ 394 public static final int MULTIENDPOINT_NOT_SUPPORTED = 1901; 395 396 /** 397 * CALL DROP error codes (Call could drop because of many reasons like Network not available, 398 * handover, failed, etc) 399 */ 400 401 /** 402 * CALL DROP error code for the case when a device is ePDG capable and when the user is on an 403 * active wifi call and at the edge of coverage and there is no qualified LTE network available 404 * to handover the call to. We get a handover NOT_TRIGERRED message from the modem. This error 405 * code is received as part of the handover message. 406 */ 407 public static final int CALL_DROP_IWLAN_TO_LTE_UNAVAILABLE = 2000; 408 409 /** 410 * MT call has ended due to a release from the network 411 * because the call was answered elsewhere 412 */ 413 public static final int ANSWERED_ELSEWHERE = 2100; 414 415 /** 416 * For MultiEndpoint - Call Pull request has failed 417 */ 418 public static final int CALL_PULL_OUT_OF_SYNC = 2101; 419 420 /** 421 * For MultiEndpoint - Call has been pulled from primary to secondary 422 */ 423 public static final int CALL_PULLED = 2102; 424 425 /** 426 * Supplementary services (HOLD/RESUME) failure error codes. 427 * Values for Supplemetary services failure - Failed, Cancelled and Re-Invite collision. 428 */ 429 public static final int SUPP_SVC_FAILED = 2300; 430 public static final int SUPP_SVC_CANCELLED = 2301; 431 public static final int SUPP_SVC_REINVITE_COLLISION = 2302; 432 433 /** 434 * DPD Procedure received no response or send failed 435 */ 436 public static final int IWLAN_DPD_FAILURE = 2400; 437 438 /** 439 * Establishment of the ePDG Tunnel Failed 440 */ 441 public static final int EPDG_TUNNEL_ESTABLISH_FAILURE = 2500; 442 443 /** 444 * Re-keying of the ePDG Tunnel Failed; may not always result in teardown 445 */ 446 public static final int EPDG_TUNNEL_REKEY_FAILURE = 2501; 447 448 /** 449 * Connection to the packet gateway is lost 450 */ 451 public static final int EPDG_TUNNEL_LOST_CONNECTION = 2502; 452 453 /** 454 * The maximum number of calls allowed has been reached. Used in a multi-endpoint scenario 455 * where the number of calls across all connected devices has reached the maximum. 456 */ 457 public static final int MAXIMUM_NUMBER_OF_CALLS_REACHED = 2503; 458 459 /** 460 * Similar to {@link #CODE_LOCAL_CALL_DECLINE}, except indicates that a remote device has 461 * declined the call. Used in a multi-endpoint scenario where a remote device declined an 462 * incoming call. 463 */ 464 public static final int REMOTE_CALL_DECLINE = 2504; 465 466 /** 467 * Indicates the call was disconnected due to the user reaching their data limit. 468 */ 469 public static final int DATA_LIMIT_REACHED = 2505; 470 471 /** 472 * Indicates the call was disconnected due to the user disabling cellular data. 473 */ 474 public static final int DATA_DISABLED = 2506; 475 476 /** 477 * Indicates a call was disconnected due to loss of wifi signal. 478 */ 479 public static final int WIFI_LOST = 2507; 480 481 482 /* OEM specific error codes. To be used by OEMs when they don't want to 483 reveal error code which would be replaced by ERROR_UNSPECIFIED */ 484 public static final int OEM_CAUSE_1 = 0xf001; 485 public static final int OEM_CAUSE_2 = 0xf002; 486 public static final int OEM_CAUSE_3 = 0xf003; 487 public static final int OEM_CAUSE_4 = 0xf004; 488 public static final int OEM_CAUSE_5 = 0xf005; 489 public static final int OEM_CAUSE_6 = 0xf006; 490 public static final int OEM_CAUSE_7 = 0xf007; 491 public static final int OEM_CAUSE_8 = 0xf008; 492 public static final int OEM_CAUSE_9 = 0xf009; 493 public static final int OEM_CAUSE_10 = 0xf00a; 494 public static final int OEM_CAUSE_11 = 0xf00b; 495 public static final int OEM_CAUSE_12 = 0xf00c; 496 public static final int OEM_CAUSE_13 = 0xf00d; 497 public static final int OEM_CAUSE_14 = 0xf00e; 498 public static final int OEM_CAUSE_15 = 0xf00f; 499 500 /** Disconnected due to unspecified reasons */ 501 public static final int ERROR_UNSPECIFIED = 0xffff; 502 503 /** Private constructor to avoid class instantiation. */ 504 private PreciseDisconnectCause() { 505 // Do nothing. 506 } 507 } 508