474 lines
19 KiB
Java
474 lines
19 KiB
Java
/*
|
|
* Copyright (C) 2006 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 com.android.internal.telephony;
|
|
|
|
/**
|
|
* Call fail causes from TS 24.008 .
|
|
* These are mostly the cause codes we need to distinguish for the UI.
|
|
* See 22.001 Annex F.4 for mapping of cause codes to local tones.
|
|
*
|
|
* CDMA call failure reasons are derived from the possible call failure scenarios described
|
|
* in "CDMA IS2000 - Release A (C.S0005-A v6.0)" standard.
|
|
*
|
|
* The detailed fail causes are defined in ITU Recommendation Q.850.
|
|
*
|
|
* {@hide}
|
|
*
|
|
*/
|
|
public interface CallFailCause {
|
|
// The disconnect cause is not valid (Not received a disconnect cause)
|
|
int NOT_VALID = -1;
|
|
|
|
// Unassigned/Unobtainable number
|
|
int UNOBTAINABLE_NUMBER = 1;
|
|
|
|
int NO_ROUTE_TO_DEST = 3;
|
|
int CHANNEL_UNACCEPTABLE = 6;
|
|
int OPERATOR_DETERMINED_BARRING = 8;
|
|
int NORMAL_CLEARING = 16;
|
|
int USER_BUSY = 17;
|
|
int NO_USER_RESPONDING = 18;
|
|
|
|
/**
|
|
* This cause is used when the called party has been alerted but does not respond with a connect
|
|
* indication within a prescribed period of time. Note - This cause is not necessarily generated
|
|
* by Q.931 procedures but may be generated by internal network timers.
|
|
*/
|
|
int USER_ALERTING_NO_ANSWER = 19;
|
|
|
|
/**
|
|
* The equipment sending this cause does not wish to accept this call, although it could have
|
|
* accepted the call because the equipment sending this cause is neither busy nor incompatible.
|
|
* The network may also generate this cause, indicating that the call was cleared due to a
|
|
* supplementary service constraint. The diagnostic field may contain additional information
|
|
* about the supplementary service and reason for rejection.
|
|
*/
|
|
int CALL_REJECTED = 21;
|
|
|
|
int NUMBER_CHANGED = 22;
|
|
int PRE_EMPTION = 25;
|
|
|
|
// The user has not been awarded the incoming call.
|
|
int NON_SELECTED_USER_CLEARING = 26;
|
|
|
|
int DESTINATION_OUT_OF_ORDER = 27;
|
|
|
|
// Incomplete number
|
|
int INVALID_NUMBER_FORMAT = 28;
|
|
|
|
// Supplementary service requested by the user cannot be provide by the network.
|
|
int FACILITY_REJECTED = 29;
|
|
|
|
int STATUS_ENQUIRY = 30;
|
|
int NORMAL_UNSPECIFIED = 31;
|
|
int NO_CIRCUIT_AVAIL = 34;
|
|
|
|
// Resource unavailable
|
|
int NETWORK_OUT_OF_ORDER = 38;
|
|
int TEMPORARY_FAILURE = 41;
|
|
int SWITCHING_CONGESTION = 42;
|
|
int ACCESS_INFORMATION_DISCARDED = 43;
|
|
int CHANNEL_NOT_AVAIL = 44;
|
|
int RESOURCES_UNAVAILABLE_UNSPECIFIED = 47;
|
|
int QOS_NOT_AVAIL = 49;
|
|
|
|
// Service or option unavailable
|
|
/**
|
|
* The user has requested a supplementary service, which is available, but the user is not
|
|
* authorized to use.
|
|
*/
|
|
int REQUESTED_FACILITY_NOT_SUBSCRIBED = 50;
|
|
/**
|
|
* Although the called party is a member of the CUG (Closed User Group) for the incoming CUG
|
|
* call, incoming calls are not allowed to this member of the CUG.
|
|
*/
|
|
int INCOMING_CALL_BARRED_WITHIN_CUG = 55;
|
|
int BEARER_CAPABILITY_NOT_AUTHORISED = 57;
|
|
int BEARER_NOT_AVAIL = 58;
|
|
/**
|
|
* This cause is used to report a service or option not available event only when no other cause
|
|
* between 49-62 (where a service or option is unavailable) applies.
|
|
*/
|
|
int SERVICE_OR_OPTION_NOT_AVAILABLE = 63;
|
|
int BEARER_SERVICE_NOT_IMPLEMENTED = 65;
|
|
|
|
// Service or option not implemented
|
|
int ACM_LIMIT_EXCEEDED = 68;
|
|
int REQUESTED_FACILITY_NOT_IMPLEMENTED = 69;
|
|
/**
|
|
* The calling party has requested an unrestricted bearer service but that the equipment sending
|
|
* this cause only supports the restricted version of the requested bearer capability.
|
|
*/
|
|
int ONLY_RESTRICTED_DIGITAL_INFO_BC_AVAILABLE = 70;
|
|
int SERVICE_OR_OPTION_NOT_IMPLEMENTED = 79;
|
|
int INVALID_TRANSACTION_ID_VALUE = 81;
|
|
|
|
// Invalid message
|
|
int USER_NOT_MEMBER_OF_CUG = 87;
|
|
int INCOMPATIBLE_DESTINATION = 88;
|
|
int INVALID_TRANSIT_NETWORK_SELECTION = 91;
|
|
int SEMANTICALLY_INCORRECT_MESSAGE = 95;
|
|
int INVALID_MANDATORY_INFORMATION = 96;
|
|
|
|
// Protocol error
|
|
int MESSAGE_TYPE_NON_EXISTENT = 97;
|
|
int MESSAGE_TYPE_NOT_COMPATIBLE_WITH_PROT_STATE = 98;
|
|
int IE_NON_EXISTENT_OR_NOT_IMPLEMENTED = 99;
|
|
/**
|
|
* The equipment sending this cause has received an information element which it has
|
|
* implemented; however, one or more fields in the information element are coded in such a way
|
|
* which has not been implemented by the equipment sending this cause.
|
|
*/
|
|
int CONDITIONAL_IE_ERROR = 100;
|
|
int MESSAGE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 101;
|
|
int RECOVERY_ON_TIMER_EXPIRY = 102;
|
|
int PROTOCOL_ERROR_UNSPECIFIED = 111;
|
|
int INTERWORKING_UNSPECIFIED = 127;
|
|
|
|
// Others
|
|
int CALL_BARRED = 240;
|
|
int FDN_BLOCKED = 241;
|
|
int IMEI_NOT_ACCEPTED = 243;
|
|
|
|
// Stk Call Control
|
|
int DIAL_MODIFIED_TO_USSD = 244;
|
|
int DIAL_MODIFIED_TO_SS = 245;
|
|
int DIAL_MODIFIED_TO_DIAL = 246;
|
|
|
|
// The call cannot be established because RADIO is OFF
|
|
int RADIO_OFF = 247;
|
|
|
|
// The call cannot be established because of no valid SIM
|
|
int NO_VALID_SIM = 249;
|
|
|
|
// The call is dropped or failed internally by modem
|
|
int RADIO_INTERNAL_ERROR = 250;
|
|
|
|
// Call failed because of UE timer expired while waiting for a response from network
|
|
int NETWORK_RESP_TIMEOUT = 251;
|
|
|
|
// Call failed because of a network reject
|
|
int NETWORK_REJECT = 252;
|
|
// Call failed because of radio access failure. ex. RACH failure
|
|
int RADIO_ACCESS_FAILURE = 253;
|
|
// Call failed/dropped because of a Radio Link Failure (RLF).
|
|
int RADIO_LINK_FAILURE = 254;
|
|
// Call failed/dropped because of radio link lost
|
|
int RADIO_LINK_LOST = 255;
|
|
// Call failed because of a radio uplink issue
|
|
int RADIO_UPLINK_FAILURE = 256;
|
|
// Call failed because of a RRC (Radio Resource Control) connection setup failure
|
|
int RADIO_SETUP_FAILURE = 257;
|
|
// Call failed/dropped because of RRC (Radio Resource Control) connection release from NW
|
|
int RADIO_RELEASE_NORMAL = 258;
|
|
/**
|
|
* Call failed/dropped because of RRC (Radio Resource Control) abnormally released by
|
|
* modem/network.
|
|
*/
|
|
int RADIO_RELEASE_ABNORMAL = 259;
|
|
//Access class blocked - TS 31.121 5.2.1
|
|
int ACCESS_CLASS_BLOCKED = 260;
|
|
|
|
/** Call failed/dropped because of a network detach. */
|
|
int NETWORK_DETACH = 261;
|
|
|
|
//Emergency Redial
|
|
int EMERGENCY_TEMP_FAILURE = 325;
|
|
int EMERGENCY_PERM_FAILURE = 326;
|
|
|
|
int CDMA_LOCKED_UNTIL_POWER_CYCLE = 1000;
|
|
int CDMA_DROP = 1001;
|
|
int CDMA_INTERCEPT = 1002;
|
|
int CDMA_REORDER = 1003;
|
|
int CDMA_SO_REJECT = 1004;
|
|
int CDMA_RETRY_ORDER = 1005;
|
|
int CDMA_ACCESS_FAILURE = 1006;
|
|
int CDMA_PREEMPTED = 1007;
|
|
|
|
// For non-emergency number dialed while in emergency callback mode.
|
|
int CDMA_NOT_EMERGENCY = 1008;
|
|
|
|
// Access Blocked by CDMA Network.
|
|
int CDMA_ACCESS_BLOCKED = 1009;
|
|
|
|
/** Mapped from ImsReasonInfo */
|
|
// The passed argument is an invalid
|
|
int LOCAL_ILLEGAL_ARGUMENT = 1200;
|
|
// The operation is invoked in invalid call state
|
|
int LOCAL_ILLEGAL_STATE = 1201;
|
|
// IMS service internal error
|
|
int LOCAL_INTERNAL_ERROR = 1202;
|
|
// IMS service goes down (service connection is lost)
|
|
int LOCAL_IMS_SERVICE_DOWN = 1203;
|
|
// No pending incoming call exists
|
|
int LOCAL_NO_PENDING_CALL = 1204;
|
|
// Service unavailable; by power off
|
|
int LOCAL_POWER_OFF = 1205;
|
|
// Service unavailable; by low battery
|
|
int LOCAL_LOW_BATTERY = 1206;
|
|
// Service unavailable; by out of service (data service state)
|
|
int LOCAL_NETWORK_NO_SERVICE = 1207;
|
|
|
|
/* Service unavailable; by no LTE coverage
|
|
* (VoLTE is not supported even though IMS is registered)
|
|
*/
|
|
int LOCAL_NETWORK_NO_LTE_COVERAGE = 1208;
|
|
// Service unavailable; by located in roaming area
|
|
int LOCAL_NETWORK_ROAMING = 1209;
|
|
// Service unavailable; by IP changed
|
|
int LOCAL_NETWORK_IP_CHANGED = 1210;
|
|
// Service unavailable; other
|
|
int LOCAL_SERVICE_UNAVAILABLE = 1211;
|
|
// Service unavailable; IMS connection is lost (IMS is not registered)
|
|
int LOCAL_NOT_REGISTERED = 1212;
|
|
// Max call exceeded
|
|
int LOCAL_MAX_CALL_EXCEEDED = 1213;
|
|
// Call decline
|
|
int LOCAL_CALL_DECLINE = 1214;
|
|
// SRVCC is in progress
|
|
int LOCAL_CALL_VCC_ON_PROGRESSING = 1215;
|
|
// Resource reservation is failed (QoS precondition)
|
|
int LOCAL_CALL_RESOURCE_RESERVATION_FAILED = 1216;
|
|
/** Retry CS call; VoLTE service can't be provided by the network or remote end
|
|
* Resolve the extra code(EXTRA_CODE_CALL_RETRY_*) if the below code is set
|
|
*/
|
|
int LOCAL_CALL_CS_RETRY_REQUIRED = 1217;
|
|
// Retry VoLTE call; VoLTE service can't be provided by the network temporarily
|
|
int LOCAL_CALL_VOLTE_RETRY_REQUIRED = 1218;
|
|
// IMS call is already terminated (in TERMINATED state)
|
|
int LOCAL_CALL_TERMINATED = 1219;
|
|
// Handover not feasible
|
|
int LOCAL_HO_NOT_FEASIBLE = 1220;
|
|
|
|
// 1xx waiting timer is expired after sending INVITE request (MO only)
|
|
int TIMEOUT_1XX_WAITING = 1221;
|
|
/** User no answer during call setup operation (MO/MT)
|
|
* MO : 200 OK to INVITE request is not received,
|
|
* MT : No action from user after alerting the call
|
|
*/
|
|
int TIMEOUT_NO_ANSWER = 1222;
|
|
/** User no answer during call update operation (MO/MT)
|
|
* MO : 200 OK to re-INVITE request is not received,
|
|
* MT : No action from user after alerting the call
|
|
*/
|
|
int TIMEOUT_NO_ANSWER_CALL_UPDATE = 1223;
|
|
|
|
/**
|
|
* STATUSCODE (SIP response code) (IMS -> Telephony)
|
|
*/
|
|
// SIP request is redirected
|
|
int SIP_REDIRECTED = 1300;
|
|
/** 4xx responses */
|
|
// 400 : Bad Request
|
|
int SIP_BAD_REQUEST = 1310;
|
|
// 403 : Forbidden
|
|
int SIP_FORBIDDEN = 1311;
|
|
// 404 : Not Found
|
|
int SIP_NOT_FOUND = 1312;
|
|
/** 415 : Unsupported Media Type
|
|
* 416 : Unsupported URI Scheme
|
|
* 420 : Bad Extension
|
|
*/
|
|
int SIP_NOT_SUPPORTED = 1313;
|
|
// 408 : Request Timeout
|
|
int SIP_REQUEST_TIMEOUT = 1314;
|
|
// 480 : Temporarily Unavailable
|
|
int SIP_TEMPRARILY_UNAVAILABLE = 1315;
|
|
// 484 : Address Incomplete
|
|
int SIP_BAD_ADDRESS = 1316;
|
|
/** 486 : Busy Here
|
|
* 600 : Busy Everywhere
|
|
*/
|
|
int SIP_BUSY = 1317;
|
|
// 487 : Request Terminated
|
|
int SIP_REQUEST_CANCELLED = 1318;
|
|
/** 406 : Not Acceptable
|
|
* 488 : Not Acceptable Here
|
|
* 606 : Not Acceptable
|
|
*/
|
|
int SIP_NOT_ACCEPTABLE = 1319;
|
|
/** 410 : Gone
|
|
* 604 : Does Not Exist Anywhere
|
|
*/
|
|
int SIP_NOT_REACHABLE = 1320;
|
|
// Others
|
|
int SIP_CLIENT_ERROR = 1321;
|
|
// 481 : Transaction Does Not Exist
|
|
int SIP_TRANSACTION_DOES_NOT_EXIST = 1322;
|
|
/** 5xx responses
|
|
* 501 : Server Internal Error
|
|
*/
|
|
int SIP_SERVER_INTERNAL_ERROR = 1330;
|
|
// 503 : Service Unavailable
|
|
int SIP_SERVICE_UNAVAILABLE = 1331;
|
|
// 504 : Server Time-out
|
|
int SIP_SERVER_TIMEOUT = 1332;
|
|
// Other
|
|
int SIP_SERVER_ERROR = 1333;
|
|
/** 6xx responses
|
|
* 603 : Decline
|
|
*/
|
|
int SIP_USER_REJECTED = 1340;
|
|
// Others
|
|
int SIP_GLOBAL_ERROR = 1341;
|
|
// Emergency failure
|
|
int IMS_EMERGENCY_TEMP_FAILURE = 1342;
|
|
int IMS_EMERGENCY_PERM_FAILURE = 1343;
|
|
// Media resource initialization failed
|
|
int MEDIA_INIT_FAILED = 1400;
|
|
// RTP timeout (no audio / video traffic in the session)
|
|
int MEDIA_NO_DATA = 1401;
|
|
// Media is not supported; so dropped the call
|
|
int MEDIA_NOT_ACCEPTABLE = 1402;
|
|
// Unknown media related errors
|
|
int MEDIA_UNSPECIFIED = 1403;
|
|
// User triggers the call end
|
|
int USER_TERMINATED = 1500;
|
|
// No action while an incoming call is ringing
|
|
int USER_NOANSWER = 1501;
|
|
// User ignores an incoming call
|
|
int USER_IGNORE = 1502;
|
|
// User declines an incoming call
|
|
int USER_DECLINE = 1503;
|
|
// Device declines/ends a call due to low battery
|
|
int LOW_BATTERY = 1504;
|
|
// Device declines call due to blacklisted call ID
|
|
int BLACKLISTED_CALL_ID = 1505;
|
|
// The call is terminated by the network or remote user
|
|
int USER_TERMINATED_BY_REMOTE = 1510;
|
|
|
|
/**
|
|
* UT
|
|
*/
|
|
int UT_NOT_SUPPORTED = 1800;
|
|
int UT_SERVICE_UNAVAILABLE = 1801;
|
|
int UT_OPERATION_NOT_ALLOWED = 1802;
|
|
int UT_NETWORK_ERROR = 1803;
|
|
int UT_CB_PASSWORD_MISMATCH = 1804;
|
|
|
|
/**
|
|
* ECBM
|
|
*/
|
|
int ECBM_NOT_SUPPORTED = 1900;
|
|
|
|
/**
|
|
* Fail code used to indicate that Multi-endpoint is not supported by the Ims framework.
|
|
*/
|
|
int MULTIENDPOINT_NOT_SUPPORTED = 1901;
|
|
|
|
/**
|
|
* CALL DROP error codes (Call could drop because of many reasons like Network not available,
|
|
* handover, failed, etc)
|
|
*/
|
|
|
|
/**
|
|
* CALL DROP error code for the case when a device is ePDG capable and when the user is on an
|
|
* active wifi call and at the edge of coverage and there is no qualified LTE network available
|
|
* to handover the call to. We get a handover NOT_TRIGERRED message from the modem. This error
|
|
* code is received as part of the handover message.
|
|
*/
|
|
int CALL_DROP_IWLAN_TO_LTE_UNAVAILABLE = 2000;
|
|
|
|
// MT call has ended due to a release from the network because the call was answered elsewhere
|
|
int ANSWERED_ELSEWHERE = 2100;
|
|
|
|
// For MultiEndpoint - Call Pull request has failed
|
|
int CALL_PULL_OUT_OF_SYNC = 2101;
|
|
|
|
// For MultiEndpoint - Call has been pulled from primary to secondary
|
|
int CALL_PULLED = 2102;
|
|
|
|
/**
|
|
* Supplementary services (HOLD/RESUME) failure error codes.
|
|
* Values for Supplemetary services failure - Failed, Cancelled and Re-Invite collision.
|
|
*/
|
|
int SUPP_SVC_FAILED = 2300;
|
|
int SUPP_SVC_CANCELLED = 2301;
|
|
int SUPP_SVC_REINVITE_COLLISION = 2302;
|
|
|
|
//DPD Procedure received no response or send failed
|
|
int IWLAN_DPD_FAILURE = 2400;
|
|
|
|
// Establishment of the ePDG Tunnel Failed
|
|
int EPDG_TUNNEL_ESTABLISH_FAILURE = 2500;
|
|
|
|
// Re-keying of the ePDG Tunnel Failed; may not always result in teardown
|
|
int EPDG_TUNNEL_REKEY_FAILURE = 2501;
|
|
|
|
// Connection to the packet gateway is lost
|
|
int EPDG_TUNNEL_LOST_CONNECTION = 2502;
|
|
|
|
/**
|
|
* The maximum number of calls allowed has been reached. Used in a multi-endpoint scenario
|
|
* where the number of calls across all connected devices has reached the maximum.
|
|
*/
|
|
int MAXIMUM_NUMBER_OF_CALLS_REACHED = 2503;
|
|
|
|
/**
|
|
* Similar to {@link #CODE_LOCAL_CALL_DECLINE}, except indicates that a remote device has
|
|
* declined the call. Used in a multi-endpoint scenario where a remote device declined an
|
|
* incoming call.
|
|
*/
|
|
int REMOTE_CALL_DECLINE = 2504;
|
|
|
|
/**
|
|
* Indicates the call was disconnected due to the user reaching their data limit.
|
|
*/
|
|
int DATA_LIMIT_REACHED = 2505;
|
|
|
|
/**
|
|
* Indicates the call was disconnected due to the user disabling cellular data.
|
|
*/
|
|
int DATA_DISABLED = 2506;
|
|
|
|
/**
|
|
* Indicates a call was disconnected due to loss of wifi signal.
|
|
*/
|
|
int WIFI_LOST = 2507;
|
|
|
|
/**
|
|
* Indicates a call was disconnected because retry over volte is needed.
|
|
*/
|
|
int EMC_REDIAL_ON_IMS = 3001;
|
|
|
|
/**
|
|
* Indicates a call was disconnected because retry over vowifi is needed.
|
|
*/
|
|
int EMC_REDIAL_ON_VOWIFI = 3002;
|
|
|
|
/* 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 */
|
|
int OEM_CAUSE_1 = 0xf001;
|
|
int OEM_CAUSE_2 = 0xf002;
|
|
int OEM_CAUSE_3 = 0xf003;
|
|
int OEM_CAUSE_4 = 0xf004;
|
|
int OEM_CAUSE_5 = 0xf005;
|
|
int OEM_CAUSE_6 = 0xf006;
|
|
int OEM_CAUSE_7 = 0xf007;
|
|
int OEM_CAUSE_8 = 0xf008;
|
|
int OEM_CAUSE_9 = 0xf009;
|
|
int OEM_CAUSE_10 = 0xf00a;
|
|
int OEM_CAUSE_11 = 0xf00b;
|
|
int OEM_CAUSE_12 = 0xf00c;
|
|
int OEM_CAUSE_13 = 0xf00d;
|
|
int OEM_CAUSE_14 = 0xf00e;
|
|
int OEM_CAUSE_15 = 0xf00f;
|
|
|
|
int ERROR_UNSPECIFIED = 0xffff;
|
|
|
|
}
|