ImsReasonInfo.java revision b54d218d8b1c765865d0efb4a40e631f8bfa02de
1f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville/*
2f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * Copyright (c) 2013 The Android Open Source Project
3f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville *
4f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * Licensed under the Apache License, Version 2.0 (the "License");
5f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * you may not use this file except in compliance with the License.
6f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * You may obtain a copy of the License at
7f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville *
8f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville *      http://www.apache.org/licenses/LICENSE-2.0
9f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville *
10f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * Unless required by applicable law or agreed to in writing, software
11f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * distributed under the License is distributed on an "AS IS" BASIS,
12f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * See the License for the specific language governing permissions and
14f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * limitations under the License.
15f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville */
16f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville
17f8458ff9d97f8961d67c41ee107129ecba873f36Wink Savillepackage com.android.ims;
18f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville
19f8458ff9d97f8961d67c41ee107129ecba873f36Wink Savilleimport android.os.Parcel;
20f8458ff9d97f8961d67c41ee107129ecba873f36Wink Savilleimport android.os.Parcelable;
21f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville
22f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville/**
23f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * This class enables an application to get details on why a method call failed.
24f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville *
25f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville * @hide
26f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville */
27f8458ff9d97f8961d67c41ee107129ecba873f36Wink Savillepublic class ImsReasonInfo implements Parcelable {
28f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    /**
29f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville     * Specific code of each types
30f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville     */
31f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_UNSPECIFIED = 0;
32f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville
33f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    /**
34f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville     * LOCAL
35f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville     */
36f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // IMS -> Telephony
37f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // The passed argument is an invalid
38f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_LOCAL_ILLEGAL_ARGUMENT = 101;
39f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // The operation is invoked in invalid call state
40f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_LOCAL_ILLEGAL_STATE = 102;
41f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // IMS service internal error
42f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_LOCAL_INTERNAL_ERROR = 103;
43f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // IMS service goes down (service connection is lost)
44f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_LOCAL_IMS_SERVICE_DOWN = 106;
45f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // No pending incoming call exists
46f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_LOCAL_NO_PENDING_CALL = 107;
47f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville
48f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // IMS -> Telephony
49f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // Service unavailable; by power off
50f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_LOCAL_POWER_OFF = 111;
51f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // Service unavailable; by low battery
52f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_LOCAL_LOW_BATTERY = 112;
53f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // Service unavailable; by out of service (data service state)
54f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_LOCAL_NETWORK_NO_SERVICE = 121;
55f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // Service unavailable; by no LTE coverage
56f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // (VoLTE is not supported even though IMS is registered)
57f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_LOCAL_NETWORK_NO_LTE_COVERAGE = 122;
58f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // Service unavailable; by located in roaming area
59f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_LOCAL_NETWORK_ROAMING = 123;
60f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // Service unavailable; by IP changed
61f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_LOCAL_NETWORK_IP_CHANGED = 124;
62f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // Service unavailable; other
63f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_LOCAL_SERVICE_UNAVAILABLE = 131;
64f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // Service unavailable; IMS connection is lost (IMS is not registered)
65f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_LOCAL_NOT_REGISTERED = 132;
66f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville
67f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // IMS <-> Telephony
68f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // Max call exceeded
69f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_LOCAL_CALL_EXCEEDED = 141;
70f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // IMS <- Telephony
71f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // Call busy
72f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_LOCAL_CALL_BUSY = 142;
73f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // Call decline
74f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_LOCAL_CALL_DECLINE = 143;
75f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // IMS -> Telephony
76f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // SRVCC is in progress
77f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_LOCAL_CALL_VCC_ON_PROGRESSING = 144;
78f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // Resource reservation is failed (QoS precondition)
79f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_LOCAL_CALL_RESOURCE_RESERVATION_FAILED = 145;
80f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // Retry CS call; VoLTE service can't be provided by the network or remote end
81f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // Resolve the extra code(EXTRA_CODE_CALL_RETRY_*) if the below code is set
82f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_LOCAL_CALL_CS_RETRY_REQUIRED = 146;
83f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // Retry VoLTE call; VoLTE service can't be provided by the network temporarily
84f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_LOCAL_CALL_VOLTE_RETRY_REQUIRED = 147;
85f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // IMS call is already terminated (in TERMINATED state)
86f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_LOCAL_CALL_TERMINATED = 148;
87f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville
88f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    /**
89f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville     * TIMEOUT (IMS -> Telephony)
90f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville     */
91f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // 1xx waiting timer is expired after sending INVITE request (MO only)
92f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_TIMEOUT_1XX_WAITING = 201;
93f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // User no answer during call setup operation (MO/MT)
94f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // MO : 200 OK to INVITE request is not received,
95f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // MT : No action from user after alerting the call
96f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_TIMEOUT_NO_ANSWER = 202;
97f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // User no answer during call update operation (MO/MT)
98f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // MO : 200 OK to re-INVITE request is not received,
99f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // MT : No action from user after alerting the call
100f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_TIMEOUT_NO_ANSWER_CALL_UPDATE = 203;
101f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville
102f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    /**
103f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville     * STATUSCODE (SIP response code) (IMS -> Telephony)
104f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville     */
105f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // 3xx responses
106f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // SIP request is redirected
107f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_SIP_REDIRECTED = 321;
108f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // 4xx responses
109f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // 400 : Bad Request
110f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_SIP_BAD_REQUEST = 331;
111f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // 403 : Forbidden
112f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_SIP_FORBIDDEN = 332;
113f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // 404 : Not Found
114f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_SIP_NOT_FOUND = 333;
115f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // 415 : Unsupported Media Type
116f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // 416 : Unsupported URI Scheme
117f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // 420 : Bad Extension
118f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_SIP_NOT_SUPPORTED = 334;
119f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // 408 : Request Timeout
120f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_SIP_REQUEST_TIMEOUT = 335;
121f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // 480 : Temporarily Unavailable
122f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_SIP_TEMPRARILY_UNAVAILABLE = 336;
123f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // 484 : Address Incomplete
124f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_SIP_BAD_ADDRESS = 337;
125f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // 486 : Busy Here
126f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // 600 : Busy Everywhere
127f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_SIP_BUSY = 338;
128f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // 487 : Request Terminated
129f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_SIP_REQUEST_CANCELLED = 339;
130f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // 406 : Not Acceptable
131f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // 488 : Not Acceptable Here
132f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // 606 : Not Acceptable
133f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_SIP_NOT_ACCEPTABLE = 340;
134f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // 410 : Gone
135f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // 604 : Does Not Exist Anywhere
136f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_SIP_NOT_REACHABLE = 341;
137f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // Others
138f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_SIP_CLIENT_ERROR = 342;
139f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // 5xx responses
140f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // 501 : Server Internal Error
141f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_SIP_SERVER_INTERNAL_ERROR = 351;
142f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // 503 : Service Unavailable
143f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_SIP_SERVICE_UNAVAILABLE = 352;
144f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // 504 : Server Time-out
145f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_SIP_SERVER_TIMEOUT = 353;
146f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // Others
147f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_SIP_SERVER_ERROR = 354;
148f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // 6xx responses
149f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // 603 : Decline
150f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_SIP_USER_REJECTED = 361;
151f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // Others
152f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_SIP_GLOBAL_ERROR = 362;
153f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville
154f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    /**
155f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville     * MEDIA (IMS -> Telephony)
156f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville     */
157f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // Media resource initialization failed
158f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_MEDIA_INIT_FAILED = 401;
159f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // RTP timeout (no audio / video traffic in the session)
160f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_MEDIA_NO_DATA = 402;
161f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // Media is not supported; so dropped the call
162f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_MEDIA_NOT_ACCEPTABLE = 403;
163f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // Unknown media related errors
164f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_MEDIA_UNSPECIFIED = 404;
165f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville
166f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    /**
167f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville     * USER
168f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville     */
169f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // Telephony -> IMS
170f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // User triggers the call end
171f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_USER_TERMINATED = 501;
172f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // No action while an incoming call is ringing
173f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_USER_NOANSWER = 502;
174f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // User ignores an incoming call
175f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_USER_IGNORE = 503;
176f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // User declines an incoming call
177f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_USER_DECLINE = 504;
17893c33d7d9042319ec59609309a4e5d0bff1f1151Omkar Kolangade    // Device declines/ends a call due to low battery
17993c33d7d9042319ec59609309a4e5d0bff1f1151Omkar Kolangade    public static final int CODE_LOW_BATTERY = 505;
18093c33d7d9042319ec59609309a4e5d0bff1f1151Omkar Kolangade    // Device declines call due to blacklisted call ID
18193c33d7d9042319ec59609309a4e5d0bff1f1151Omkar Kolangade    public static final int CODE_BLACKLISTED_CALL_ID = 506;
182f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // IMS -> Telephony
183f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // The call is terminated by the network or remote user
184f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_USER_TERMINATED_BY_REMOTE = 510;
185f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville
186f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    /**
187f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville     * Extra codes for the specific code value
188f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville     * This value can be referred when the code is CODE_LOCAL_CALL_CS_RETRY_REQUIRED.
189f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville     */
190f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // Try to connect CS call; normal
191f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int EXTRA_CODE_CALL_RETRY_NORMAL = 1;
192f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // Try to connect CS call without the notification to user
193f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int EXTRA_CODE_CALL_RETRY_SILENT_REDIAL = 2;
194f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // Try to connect CS call by the settings of the menu
195f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int EXTRA_CODE_CALL_RETRY_BY_SETTINGS = 3;
196f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville
197f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    /**
198f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville     * UT
199f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville     */
200f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_UT_NOT_SUPPORTED = 801;
201f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_UT_SERVICE_UNAVAILABLE = 802;
202f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_UT_OPERATION_NOT_ALLOWED = 803;
20361aac3aa0a65d0edd20342440b984707f22a0ba5Shriram Ganesh    public static final int CODE_UT_NETWORK_ERROR = 804;
204f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final int CODE_UT_CB_PASSWORD_MISMATCH = 821;
205f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville
2061c18285c36a0cf202dcf737c96766638e1e56c5dUma Maheswari Ramalingam    /**
2071c18285c36a0cf202dcf737c96766638e1e56c5dUma Maheswari Ramalingam     * ECBM
2081c18285c36a0cf202dcf737c96766638e1e56c5dUma Maheswari Ramalingam     */
2091c18285c36a0cf202dcf737c96766638e1e56c5dUma Maheswari Ramalingam    public static final int CODE_ECBM_NOT_SUPPORTED = 901;
210f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville
211827fcb7f8dfbf694e1838e1e3e4432ef4f45949fOmkar Kolangade    /**
212b54d218d8b1c765865d0efb4a40e631f8bfa02deRekha Kumar     * Ims Registration error code
213b54d218d8b1c765865d0efb4a40e631f8bfa02deRekha Kumar     */
214b54d218d8b1c765865d0efb4a40e631f8bfa02deRekha Kumar    public static final int CODE_REGISTRATION_ERROR = 1000;
215b54d218d8b1c765865d0efb4a40e631f8bfa02deRekha Kumar
216b54d218d8b1c765865d0efb4a40e631f8bfa02deRekha Kumar    /**
217b54d218d8b1c765865d0efb4a40e631f8bfa02deRekha Kumar     * CALL DROP error codes (Call could drop because of many reasons like Network not available,
218b54d218d8b1c765865d0efb4a40e631f8bfa02deRekha Kumar     *  handover, failed, etc)
219b54d218d8b1c765865d0efb4a40e631f8bfa02deRekha Kumar     */
220b54d218d8b1c765865d0efb4a40e631f8bfa02deRekha Kumar
221b54d218d8b1c765865d0efb4a40e631f8bfa02deRekha Kumar    /**
222b54d218d8b1c765865d0efb4a40e631f8bfa02deRekha Kumar     * CALL DROP error code for the case when a device is ePDG capable and when the user is on an
223b54d218d8b1c765865d0efb4a40e631f8bfa02deRekha Kumar     * active wifi call and at the edge of coverage and there is no qualified LTE network available
224b54d218d8b1c765865d0efb4a40e631f8bfa02deRekha Kumar     * to handover the call to. We get a handover NOT_TRIGERRED message from the modem. This error
225b54d218d8b1c765865d0efb4a40e631f8bfa02deRekha Kumar     * code is received as part of the handover message.
226b54d218d8b1c765865d0efb4a40e631f8bfa02deRekha Kumar     */
227b54d218d8b1c765865d0efb4a40e631f8bfa02deRekha Kumar    public static final int CODE_CALL_DROP_IWLAN_TO_LTE_UNAVAILABLE = 1100;
228b54d218d8b1c765865d0efb4a40e631f8bfa02deRekha Kumar
229b54d218d8b1c765865d0efb4a40e631f8bfa02deRekha Kumar    /**
230827fcb7f8dfbf694e1838e1e3e4432ef4f45949fOmkar Kolangade     * Network string error messages.
231827fcb7f8dfbf694e1838e1e3e4432ef4f45949fOmkar Kolangade     * mExtraMessage may have these values.
232827fcb7f8dfbf694e1838e1e3e4432ef4f45949fOmkar Kolangade     */
233827fcb7f8dfbf694e1838e1e3e4432ef4f45949fOmkar Kolangade    public static final String EXTRA_MSG_SERVICE_NOT_AUTHORIZED
234827fcb7f8dfbf694e1838e1e3e4432ef4f45949fOmkar Kolangade            = "Forbidden. Not Authorized for Service";
235827fcb7f8dfbf694e1838e1e3e4432ef4f45949fOmkar Kolangade
236f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // For main reason code
237f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public int mCode;
238f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // For the extra code value; it depends on the code value.
239f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public int mExtraCode;
240f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    // For the additional message of the reason info.
241f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public String mExtraMessage;
242f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public ImsReasonInfo() {
243f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville        mCode = CODE_UNSPECIFIED;
244f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville        mExtraCode = CODE_UNSPECIFIED;
245f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville        mExtraMessage = null;
246f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    }
247f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville
248f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public ImsReasonInfo(Parcel in) {
249f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville        readFromParcel(in);
250f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    }
251f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville
252f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public ImsReasonInfo(int code, int extraCode) {
253f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville        mCode = code;
254f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville        mExtraCode = extraCode;
255f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville        mExtraMessage = null;
256f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    }
257f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville
258f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public ImsReasonInfo(int code, int extraCode, String extraMessage) {
259f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville        mCode = code;
260f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville        mExtraCode = extraCode;
261f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville        mExtraMessage = extraMessage;
262f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    }
263f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville
264f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    /**
265f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville     *
266f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville     */
267f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public int getCode() {
268f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville        return mCode;
269f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    }
270f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville
271f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    /**
272f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville     *
273f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville     */
274f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public int getExtraCode() {
275f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville        return mExtraCode;
276f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    }
277f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville
278f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    /**
279f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville     *
280f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville     */
281f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public String getExtraMessage() {
282f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville        return mExtraMessage;
283f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    }
284f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville
285f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    /**
286f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville     * Returns the string format of {@link ImsReasonInfo}
287f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville     *
288f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville     * @return the string format of {@link ImsReasonInfo}
289f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville     */
290f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public String toString() {
291b54d218d8b1c765865d0efb4a40e631f8bfa02deRekha Kumar        return "ImsReasonInfo :: {" + mCode + ", " + mExtraCode + ", " + mExtraMessage + "}";
292f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    }
293f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville
294f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    @Override
295f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public int describeContents() {
296f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville        return 0;
297f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    }
298f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville
299f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    @Override
300f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public void writeToParcel(Parcel out, int flags) {
301f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville        out.writeInt(mCode);
302f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville        out.writeInt(mExtraCode);
303f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville        out.writeString(mExtraMessage);
304f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    }
305f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville
306f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    private void readFromParcel(Parcel in) {
307f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville        mCode = in.readInt();
308f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville        mExtraCode = in.readInt();
309f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville        mExtraMessage = in.readString();
310f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    }
311f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville
312f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    public static final Creator<ImsReasonInfo> CREATOR = new Creator<ImsReasonInfo>() {
313f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville        @Override
314f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville        public ImsReasonInfo createFromParcel(Parcel in) {
315f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville            return new ImsReasonInfo(in);
316f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville        }
317f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville
318f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville        @Override
319f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville        public ImsReasonInfo[] newArray(int size) {
320f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville            return new ImsReasonInfo[size];
321f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville        }
322f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville    };
323f8458ff9d97f8961d67c41ee107129ecba873f36Wink Saville}
324