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