Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit a7b7cb23 authored by Ping Sun's avatar Ping Sun Committed by Toshiya Ikenaga
Browse files

Extend CallFailCause to distinguish more precise code

Bug: 31504039
Test: Manual
Change-Id: I9be15d935c79bd5d3cac2181ec9db63a32a58e3d
parent c33e6442
Loading
Loading
Loading
Loading
+94 −5
Original line number Diff line number Diff line
@@ -24,33 +24,122 @@ package com.android.internal.telephony;
 * 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;
    // Busy Tone
    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;

    // No Tone
    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;

    // Congestion Tone
    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;

    // others
    // 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;