Home | History | Annotate | Download | only in telephony
      1 /*
      2  * Copyright (C) 2006 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 com.android.internal.telephony;
     18 
     19 /**
     20  * Call fail causes from TS 24.008 .
     21  * These are mostly the cause codes we need to distinguish for the UI.
     22  * See 22.001 Annex F.4 for mapping of cause codes to local tones.
     23  *
     24  * CDMA call failure reasons are derived from the possible call failure scenarios described
     25  * in "CDMA IS2000 - Release A (C.S0005-A v6.0)" standard.
     26  *
     27  * The detailed fail causes are defined in ITU Recommendation Q.850.
     28  *
     29  * {@hide}
     30  *
     31  */
     32 public interface CallFailCause {
     33     // The disconnect cause is not valid (Not received a disconnect cause)
     34     int NOT_VALID = -1;
     35 
     36     // Unassigned/Unobtainable number
     37     int UNOBTAINABLE_NUMBER = 1;
     38 
     39     int NO_ROUTE_TO_DEST = 3;
     40     int CHANNEL_UNACCEPTABLE = 6;
     41     int OPERATOR_DETERMINED_BARRING = 8;
     42     int NORMAL_CLEARING     = 16;
     43     int USER_BUSY           = 17;
     44     int NO_USER_RESPONDING = 18;
     45 
     46     /**
     47      * This cause is used when the called party has been alerted but does not respond with a connect
     48      * indication within a prescribed period of time. Note - This cause is not necessarily generated
     49      * by Q.931 procedures but may be generated by internal network timers.
     50      */
     51     int USER_ALERTING_NO_ANSWER = 19;
     52 
     53     /**
     54      * The equipment sending this cause does not wish to accept this call, although it could have
     55      * accepted the call because the equipment sending this cause is neither busy nor incompatible.
     56      * The network may also generate this cause, indicating that the call was cleared due to a
     57      * supplementary service constraint. The diagnostic field may contain additional information
     58      * about the supplementary service and reason for rejection.
     59      */
     60     int CALL_REJECTED = 21;
     61 
     62     int NUMBER_CHANGED      = 22;
     63     int PRE_EMPTION = 25;
     64 
     65     // The user has not been awarded the incoming call.
     66     int NON_SELECTED_USER_CLEARING = 26;
     67 
     68     int DESTINATION_OUT_OF_ORDER = 27;
     69 
     70     // Incomplete number
     71     int INVALID_NUMBER_FORMAT = 28;
     72 
     73     // Supplementary service requested by the user cannot be provide by the network.
     74     int FACILITY_REJECTED = 29;
     75 
     76     int STATUS_ENQUIRY      = 30;
     77     int NORMAL_UNSPECIFIED  = 31;
     78     int NO_CIRCUIT_AVAIL    = 34;
     79 
     80     // Resource unavailable
     81     int NETWORK_OUT_OF_ORDER = 38;
     82     int TEMPORARY_FAILURE   = 41;
     83     int SWITCHING_CONGESTION    = 42;
     84     int ACCESS_INFORMATION_DISCARDED = 43;
     85     int CHANNEL_NOT_AVAIL   = 44;
     86     int RESOURCES_UNAVAILABLE_UNSPECIFIED = 47;
     87     int QOS_NOT_AVAIL       = 49;
     88 
     89     // Service or option unavailable
     90     /**
     91      * The user has requested a supplementary service, which is available, but the user is not
     92      * authorized to use.
     93      */
     94     int REQUESTED_FACILITY_NOT_SUBSCRIBED = 50;
     95     /**
     96      * Although the called party is a member of the CUG (Closed User Group) for the incoming CUG
     97      * call, incoming calls are not allowed to this member of the CUG.
     98      */
     99     int INCOMING_CALL_BARRED_WITHIN_CUG = 55;
    100     int BEARER_CAPABILITY_NOT_AUTHORISED = 57;
    101     int BEARER_NOT_AVAIL    = 58;
    102     /**
    103      * This cause is used to report a service or option not available event only when no other cause
    104      * between 49-62 (where a service or option is unavailable) applies.
    105      */
    106     int SERVICE_OR_OPTION_NOT_AVAILABLE = 63;
    107     int BEARER_SERVICE_NOT_IMPLEMENTED = 65;
    108 
    109     // Service or option not implemented
    110     int ACM_LIMIT_EXCEEDED = 68;
    111     int REQUESTED_FACILITY_NOT_IMPLEMENTED = 69;
    112     /**
    113      * The calling party has requested an unrestricted bearer service but that the equipment sending
    114      * this cause only supports the restricted version of the requested bearer capability.
    115      */
    116     int ONLY_RESTRICTED_DIGITAL_INFO_BC_AVAILABLE = 70;
    117     int SERVICE_OR_OPTION_NOT_IMPLEMENTED = 79;
    118     int INVALID_TRANSACTION_ID_VALUE = 81;
    119 
    120     // Invalid message
    121     int USER_NOT_MEMBER_OF_CUG = 87;
    122     int INCOMPATIBLE_DESTINATION = 88;
    123     int INVALID_TRANSIT_NETWORK_SELECTION = 91;
    124     int SEMANTICALLY_INCORRECT_MESSAGE = 95;
    125     int INVALID_MANDATORY_INFORMATION = 96;
    126 
    127     // Protocol error
    128     int MESSAGE_TYPE_NON_EXISTENT = 97;
    129     int MESSAGE_TYPE_NOT_COMPATIBLE_WITH_PROT_STATE = 98;
    130     int IE_NON_EXISTENT_OR_NOT_IMPLEMENTED = 99;
    131     /**
    132      * The equipment sending this cause has received an information element which it has
    133      * implemented; however, one or more fields in the information element are coded in such a way
    134      * which has not been implemented by the equipment sending this cause.
    135      */
    136     int CONDITIONAL_IE_ERROR = 100;
    137     int MESSAGE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 101;
    138     int RECOVERY_ON_TIMER_EXPIRY = 102;
    139     int PROTOCOL_ERROR_UNSPECIFIED = 111;
    140     int INTERWORKING_UNSPECIFIED = 127;
    141 
    142     // Others
    143     int CALL_BARRED        = 240;
    144     int FDN_BLOCKED        = 241;
    145     int IMEI_NOT_ACCEPTED  = 243;
    146 
    147     // Stk Call Control
    148     int DIAL_MODIFIED_TO_USSD = 244;
    149     int DIAL_MODIFIED_TO_SS   = 245;
    150     int DIAL_MODIFIED_TO_DIAL = 246;
    151 
    152     //Emergency Redial
    153     int EMERGENCY_TEMP_FAILURE = 325;
    154     int EMERGENCY_PERM_FAILURE = 326;
    155 
    156     int CDMA_LOCKED_UNTIL_POWER_CYCLE  = 1000;
    157     int CDMA_DROP                      = 1001;
    158     int CDMA_INTERCEPT                 = 1002;
    159     int CDMA_REORDER                   = 1003;
    160     int CDMA_SO_REJECT                 = 1004;
    161     int CDMA_RETRY_ORDER               = 1005;
    162     int CDMA_ACCESS_FAILURE            = 1006;
    163     int CDMA_PREEMPTED                 = 1007;
    164 
    165     // For non-emergency number dialed while in emergency callback mode.
    166     int CDMA_NOT_EMERGENCY             = 1008;
    167 
    168     // Access Blocked by CDMA Network.
    169     int CDMA_ACCESS_BLOCKED            = 1009;
    170 
    171     int ERROR_UNSPECIFIED = 0xffff;
    172 
    173 }
    174