|  | /* | 
|  | * Copyright (C) 2014 The Android Open Source Project | 
|  | * | 
|  | * Licensed under the Apache License, Version 2.0 (the "License"); | 
|  | * you may not use this file except in compliance with the License. | 
|  | * You may obtain a copy of the License at | 
|  | * | 
|  | *      http://www.apache.org/licenses/LICENSE-2.0 | 
|  | * | 
|  | * Unless required by applicable law or agreed to in writing, software | 
|  | * distributed under the License is distributed on an "AS IS" BASIS, | 
|  | * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. | 
|  | * See the License for the specific language governing permissions and | 
|  | * limitations under the License. | 
|  | */ | 
|  |  | 
|  | package android.telephony; | 
|  |  | 
|  | import android.annotation.SystemApi; | 
|  |  | 
|  | /** | 
|  | * Contains precise disconnect call causes generated by the framework and the RIL. | 
|  | * @hide | 
|  | */ | 
|  | @SystemApi | 
|  | public final class PreciseDisconnectCause { | 
|  |  | 
|  | /** The disconnect cause is not valid (Not received a disconnect cause).*/ | 
|  | public static final int NOT_VALID                                        = -1; | 
|  | /** No disconnect cause provided. Generally a local disconnect or an incoming missed call. */ | 
|  | public static final int NO_DISCONNECT_CAUSE_AVAILABLE                    = 0; | 
|  | /** | 
|  | * The destination cannot be reached because the number, although valid, | 
|  | * is not currently assigned. | 
|  | */ | 
|  | public static final int UNOBTAINABLE_NUMBER                              = 1; | 
|  | /** | 
|  | * The user cannot be reached because the network through which the call has been routed does | 
|  | * not serve the destination desired. | 
|  | */ | 
|  | public static final int NO_ROUTE_TO_DESTINATION                          = 3; | 
|  | /** | 
|  | * The channel most recently identified is not acceptable to the sending entity for use in this | 
|  | * call. | 
|  | */ | 
|  | public static final int CHANNEL_UNACCEPTABLE                             = 6; | 
|  | /** | 
|  | * The mobile station (MS) has tried to access a service that the MS's network operator or | 
|  | * service provider is not prepared to allow. | 
|  | */ | 
|  | public static final int OPERATOR_DETERMINED_BARRING                      = 8; | 
|  | /** One of the users involved in the call has requested that the call is cleared. */ | 
|  | public static final int NORMAL                                           = 16; | 
|  | /** The called user is unable to accept another call. */ | 
|  | public static final int BUSY                                             = 17; | 
|  | /** | 
|  | * The user does not respond to a call establishment message with either an alerting or connect | 
|  | * indication within the prescribed period of time allocated. | 
|  | */ | 
|  | public static final int NO_USER_RESPONDING                               = 18; | 
|  | /** | 
|  | * The user has provided an alerting indication but has not provided a connect indication | 
|  | * within a prescribed period of time. | 
|  | */ | 
|  | public static final int NO_ANSWER_FROM_USER                              = 19; | 
|  | /** The equipment sending this cause does not wish to accept this call. */ | 
|  | public static final int CALL_REJECTED                                    = 21; | 
|  | /** The called number is no longer assigned. */ | 
|  | public static final int NUMBER_CHANGED                                   = 22; | 
|  | /** | 
|  | * This cause is returned to the network when a mobile station clears an active call which is | 
|  | * being pre-empted by another call with higher precedence. | 
|  | */ | 
|  | public static final int PREEMPTION                                       = 25; | 
|  | /** | 
|  | * The destination indicated by the mobile station cannot be reached because the interface to | 
|  | * the destination is not functioning correctly. | 
|  | */ | 
|  | public static final int DESTINATION_OUT_OF_ORDER                         = 27; | 
|  | /** The called party number is not a valid format or is not complete. */ | 
|  | public static final int INVALID_NUMBER_FORMAT                            = 28; | 
|  | /** The facility requested by user can not be provided by the network. */ | 
|  | public static final int FACILITY_REJECTED                                = 29; | 
|  | /** Provided in response to a STATUS ENQUIRY message. */ | 
|  | public static final int STATUS_ENQUIRY                                   = 30; | 
|  | /** Reports a normal disconnect only when no other normal cause applies. */ | 
|  | public static final int NORMAL_UNSPECIFIED                               = 31; | 
|  | /** There is no channel presently available to handle the call. */ | 
|  | public static final int NO_CIRCUIT_AVAIL                                 = 34; | 
|  | /** | 
|  | * The network is not functioning correctly and that the condition is likely to last a | 
|  | * relatively long period of time. | 
|  | */ | 
|  | public static final int NETWORK_OUT_OF_ORDER                             = 38; | 
|  | /** | 
|  | * The network is not functioning correctly and the condition is not likely to last a long | 
|  | * period of time. | 
|  | */ | 
|  | public static final int TEMPORARY_FAILURE                                = 41; | 
|  | /** The switching equipment is experiencing a period of high traffic. */ | 
|  | public static final int SWITCHING_CONGESTION                             = 42; | 
|  | /** The network could not deliver access information to the remote user as requested. */ | 
|  | public static final int ACCESS_INFORMATION_DISCARDED                     = 43; | 
|  | /** The channel cannot be provided. */ | 
|  | public static final int CHANNEL_NOT_AVAIL                                = 44; | 
|  | /** | 
|  | * This cause is used to report a resource unavailable event only when no other cause in the | 
|  | * resource unavailable class applies. | 
|  | */ | 
|  | public static final int RESOURCES_UNAVAILABLE_OR_UNSPECIFIED             = 47; | 
|  | /** The requested quality of service (ITU-T X.213) cannot be provided. */ | 
|  | public static final int QOS_NOT_AVAIL                                    = 49; | 
|  | /** | 
|  | * The facility could not be provided by the network because the user has no complete | 
|  | * subscription. | 
|  | */ | 
|  | public static final int REQUESTED_FACILITY_NOT_SUBSCRIBED                = 50; | 
|  | /** Incoming calls are not allowed within this calling user group (CUG). */ | 
|  | public static final int INCOMING_CALLS_BARRED_WITHIN_CUG                 = 55; | 
|  | /** The mobile station is not authorized to use bearer capability requested. */ | 
|  | public static final int BEARER_CAPABILITY_NOT_AUTHORIZED                 = 57; | 
|  | /** The requested bearer capability is not available at this time. */ | 
|  | public static final int BEARER_NOT_AVAIL                                 = 58; | 
|  | /** The service option is not available at this time. */ | 
|  | public static final int SERVICE_OPTION_NOT_AVAILABLE                     = 63; | 
|  | /** The equipment sending this cause does not support the bearer capability requested. */ | 
|  | public static final int BEARER_SERVICE_NOT_IMPLEMENTED                   = 65; | 
|  | /** The call clearing is due to ACM being greater than or equal to ACMmax. */ | 
|  | public static final int ACM_LIMIT_EXCEEDED                               = 68; | 
|  | /** The equipment sending this cause does not support the requested facility. */ | 
|  | public static final int REQUESTED_FACILITY_NOT_IMPLEMENTED               = 69; | 
|  | /** | 
|  | * The equipment sending this cause only supports the restricted version of the requested bearer | 
|  | * capability. | 
|  | */ | 
|  | public static final int ONLY_DIGITAL_INFORMATION_BEARER_AVAILABLE        = 70; | 
|  | /** The service requested is not implemented at network. */ | 
|  | public static final int SERVICE_OR_OPTION_NOT_IMPLEMENTED                = 79; | 
|  | /** | 
|  | * The equipment sending this cause has received a message with a transaction identifier | 
|  | * which is not currently in use on the mobile station network interface. | 
|  | */ | 
|  | public static final int INVALID_TRANSACTION_IDENTIFIER                   = 81; | 
|  | /** | 
|  | * The called user for the incoming CUG call is not a member of the specified calling user | 
|  | * group (CUG). | 
|  | */ | 
|  | public static final int USER_NOT_MEMBER_OF_CUG                           = 87; | 
|  | /** The equipment sending this cause has received a request which can't be accomodated. */ | 
|  | public static final int INCOMPATIBLE_DESTINATION                         = 88; | 
|  | /** This cause is used to report receipt of a message with semantically incorrect contents. */ | 
|  | public static final int SEMANTICALLY_INCORRECT_MESSAGE                   = 95; | 
|  | /** | 
|  | * The equipment sending this cause has received a message with a non-semantical mandatory | 
|  | * information element (IE) error. | 
|  | */ | 
|  | public static final int INVALID_MANDATORY_INFORMATION                    = 96; | 
|  | /** | 
|  | * This is sent in response to a message which is not defined, or defined but not implemented | 
|  | * by the equipment sending this cause. | 
|  | */ | 
|  | public static final int MESSAGE_TYPE_NON_IMPLEMENTED                     = 97; | 
|  | /** | 
|  | * The equipment sending this cause has received a message not compatible with the protocol | 
|  | * state. | 
|  | */ | 
|  | public static final int MESSAGE_TYPE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE  = 98; | 
|  | /** | 
|  | * The equipment sending this cause has received a message which includes information | 
|  | * elements not recognized because its identifier is not defined or it is defined but not | 
|  | * implemented by the equipment sending the cause. | 
|  | */ | 
|  | public static final int INFORMATION_ELEMENT_NON_EXISTENT                 = 99; | 
|  | /** The equipment sending this cause has received a message with conditional IE errors. */ | 
|  | public static final int CONDITIONAL_IE_ERROR                             = 100; | 
|  | /** The message has been received which is incompatible with the protocol state. */ | 
|  | public static final int MESSAGE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE       = 101; | 
|  | /** | 
|  | * The procedure has been initiated by the expiry of a timer in association with | 
|  | * 3GPP TS 24.008 error handling procedures. | 
|  | */ | 
|  | public static final int RECOVERY_ON_TIMER_EXPIRED                        = 102; | 
|  | /** | 
|  | * This protocol error event is reported only when no other cause in the protocol error class | 
|  | * applies. | 
|  | */ | 
|  | public static final int PROTOCOL_ERROR_UNSPECIFIED                       = 111; | 
|  | /** | 
|  | * Interworking with a network which does not provide causes for actions it takes thus, the | 
|  | * precise cause for a message which is being sent cannot be ascertained. | 
|  | */ | 
|  | public static final int INTERWORKING_UNSPECIFIED                         = 127; | 
|  | /** The call is restricted. */ | 
|  | public static final int CALL_BARRED                                      = 240; | 
|  | /** The call is blocked by the Fixed Dialing Number list. */ | 
|  | public static final int FDN_BLOCKED                                      = 241; | 
|  | /** The given IMSI is not known at the Visitor Location Register (VLR) TS 24.008 cause . */ | 
|  | public static final int IMSI_UNKNOWN_IN_VLR                              = 242; | 
|  | /** | 
|  | * The network does not accept emergency call establishment using an IMEI or not accept attach | 
|  | * procedure for emergency services using an IMEI. | 
|  | */ | 
|  | public static final int IMEI_NOT_ACCEPTED                                = 243; | 
|  | /** The call cannot be established because RADIO is OFF. */ | 
|  | public static final int RADIO_OFF                                        = 247; | 
|  | /** The call cannot be established because of no cell coverage. */ | 
|  | public static final int OUT_OF_SRV                                       = 248; | 
|  | /** The call cannot be established because of no valid SIM. */ | 
|  | public static final int NO_VALID_SIM                                     = 249; | 
|  | /** The call is dropped or failed internally by modem. */ | 
|  | public static final int RADIO_INTERNAL_ERROR                             = 250; | 
|  | /** Call failed because of UE timer expired while waiting for a response from network. */ | 
|  | public static final int NETWORK_RESP_TIMEOUT                             = 251; | 
|  | /** Call failed because of a network reject. */ | 
|  | public static final int NETWORK_REJECT                                   = 252; | 
|  | /** Call failed because of radio access failure. ex. RACH failure. */ | 
|  | public static final int RADIO_ACCESS_FAILURE                             = 253; | 
|  | /** Call failed/dropped because of a Radio Link Failure (RLF). */ | 
|  | public static final int RADIO_LINK_FAILURE                               = 254; | 
|  | /** Call failed/dropped because of radio link lost. */ | 
|  | public static final int RADIO_LINK_LOST                                  = 255; | 
|  | /** Call failed because of a radio uplink issue. */ | 
|  | public static final int RADIO_UPLINK_FAILURE                             = 256; | 
|  | /** Call failed because of a RRC (Radio Resource Control) connection setup failure. */ | 
|  | public static final int RADIO_SETUP_FAILURE                              = 257; | 
|  | /** Call failed/dropped because of RRC (Radio Resource Control) connection release from NW. */ | 
|  | public static final int RADIO_RELEASE_NORMAL                             = 258; | 
|  | /** | 
|  | * Call failed/dropped because of RRC (Radio Resource Control) abnormally released by | 
|  | * modem/network. | 
|  | */ | 
|  | public static final int RADIO_RELEASE_ABNORMAL                           = 259; | 
|  | /** Call setup failed because of access class barring. */ | 
|  | public static final int ACCESS_CLASS_BLOCKED                             = 260; | 
|  | /** Call failed/dropped because of a network detach. */ | 
|  | public static final int NETWORK_DETACH                                   = 261; | 
|  |  | 
|  | /** Mobile station (MS) is locked until next power cycle. */ | 
|  | public static final int CDMA_LOCKED_UNTIL_POWER_CYCLE                    = 1000; | 
|  | /** Drop call. */ | 
|  | public static final int CDMA_DROP                                        = 1001; | 
|  | /** INTERCEPT order received, Mobile station (MS) state idle entered. */ | 
|  | public static final int CDMA_INTERCEPT                                   = 1002; | 
|  | /** Mobile station (MS) has been redirected, call is cancelled. */ | 
|  | public static final int CDMA_REORDER                                     = 1003; | 
|  | /** Service option rejection. */ | 
|  | public static final int CDMA_SO_REJECT                                   = 1004; | 
|  | /** Requested service is rejected, retry delay is set. */ | 
|  | public static final int CDMA_RETRY_ORDER                                 = 1005; | 
|  | /** Unable to obtain access to the CDMA system. */ | 
|  | public static final int CDMA_ACCESS_FAILURE                              = 1006; | 
|  | /** Not a preempted call. */ | 
|  | public static final int CDMA_PREEMPTED                                   = 1007; | 
|  | /** Not an emergency call. */ | 
|  | public static final int CDMA_NOT_EMERGENCY                               = 1008; | 
|  | /** Access Blocked by CDMA network. */ | 
|  | public static final int CDMA_ACCESS_BLOCKED                              = 1009; | 
|  |  | 
|  | /* OEM specific error codes. To be used by OEMs when they don't want to | 
|  | reveal error code which would be replaced by ERROR_UNSPECIFIED */ | 
|  | public static final int OEM_CAUSE_1                                      = 0xf001; | 
|  | public static final int OEM_CAUSE_2                                      = 0xf002; | 
|  | public static final int OEM_CAUSE_3                                      = 0xf003; | 
|  | public static final int OEM_CAUSE_4                                      = 0xf004; | 
|  | public static final int OEM_CAUSE_5                                      = 0xf005; | 
|  | public static final int OEM_CAUSE_6                                      = 0xf006; | 
|  | public static final int OEM_CAUSE_7                                      = 0xf007; | 
|  | public static final int OEM_CAUSE_8                                      = 0xf008; | 
|  | public static final int OEM_CAUSE_9                                      = 0xf009; | 
|  | public static final int OEM_CAUSE_10                                     = 0xf00a; | 
|  | public static final int OEM_CAUSE_11                                     = 0xf00b; | 
|  | public static final int OEM_CAUSE_12                                     = 0xf00c; | 
|  | public static final int OEM_CAUSE_13                                     = 0xf00d; | 
|  | public static final int OEM_CAUSE_14                                     = 0xf00e; | 
|  | public static final int OEM_CAUSE_15                                     = 0xf00f; | 
|  |  | 
|  | /** Disconnected due to unspecified reasons. */ | 
|  | public static final int ERROR_UNSPECIFIED                                = 0xffff; | 
|  |  | 
|  | /** Private constructor to avoid class instantiation. */ | 
|  | private PreciseDisconnectCause() { | 
|  | // Do nothing. | 
|  | } | 
|  | } |