From a03c0c692ee24986d7301c4a5daaf25f016bdc0e Mon Sep 17 00:00:00 2001 From: Jayachandran C Date: Mon, 13 Mar 2017 17:00:33 -0700 Subject: [PATCH] Add new precise call fail causes and OEM causes Bug: 35609963 Change-Id: I235269ee0c224f9b2c9afb9d96dec08bc7594b53 --- radio/1.0/IRadioResponse.hal | 33 +++++++++++++++++++++++++------ radio/1.0/types.hal | 38 ++++++++++++++++++++++++++++++++++-- 2 files changed, 63 insertions(+), 8 deletions(-) diff --git a/radio/1.0/IRadioResponse.hal b/radio/1.0/IRadioResponse.hal index bf50792729..d21bf0ba47 100644 --- a/radio/1.0/IRadioResponse.hal +++ b/radio/1.0/IRadioResponse.hal @@ -280,13 +280,34 @@ interface IRadioResponse { /* * @param info Response info struct containing response type, serial no. and error - * @param failCauseInfo Contains LastCallFailCause and vendor cause code. GSM failure reasons - * are mapped to cause codes defined in TS 24.008 Annex H where possible. CDMA - * failure reasons are derived from the possible call failure scenarios - * described in the "CDMA IS-2000 Release A (C.S0005-A v6.0)" standard. + * @param failCauseInfo Contains LastCallFailCause and vendor cause code. * - * The implementation must return LastCallFailCause:ERROR_UNSPECIFIED for blocked - * MO calls by restricted state (See unsolRestrictedStateChanged) + * The vendor cause code must be used for debugging purpose only. + * The implementation must return one of the values of LastCallFailCause + * as mentioned below + * + * GSM failure reasons codes for the cause codes defined in TS 24.008 Annex H + * where possible. + * CDMA failure reasons codes for the possible call failure scenarios + * described in the "CDMA IS-2000 Release A (C.S0005-A v6.0)" standard. + * Any of the following reason codes if the call is failed or dropped due to reason + * mentioned with in the braces. + * LastCallFailCause:RADIO_OFF (Radio is OFF) + * LastCallFailCause:OUT_OF_SERVICE (No cell coverage) + * LastCallFailCause:NO_VALID_SIM (No valid SIM) + * LastCallFailCause:RADIO_INTERNAL_ERROR (Modem hit unexpected error scenario) + * LastCallFailCause:NETWORK_RESP_TIMEOUT (No response from network) + * LastCallFailCause:NETWORK_REJECT (Explicit network reject) + * LastCallFailCause:RADIO_ACCESS_FAILURE (RRC connection failure. Eg.RACH) + * LastCallFailCause:RADIO_LINK_FAILURE (Radio Link Failure) + * LastCallFailCause:RADIO_LINK_LOST (Radio link lost due to poor coverage) + * LastCallFailCause:RADIO_UPLINK_FAILURE (Radio uplink failure) + * LastCallFailCause:RADIO_SETUP_FAILURE (RRC connection setup failure) + * LastCallFailCause:RADIO_RELEASE_NORMAL (RRC connection release, normal) + * LastCallFailCause:RADIO_RELEASE_ABNORMAL (RRC connection release, abnormal) + * LastCallFailCause:ACCESS_CLASS_BLOCKED (Access class barring) + * LastCallFailCause:NETWORK_DETACH (Explicit network detach) + * OEM causes (LastCallFailCause:OEM_CAUSE_XX) must be used for debug purpose only * * If the implementation does not have access to the exact cause codes, * then it must return one of the values listed in LastCallFailCause, diff --git a/radio/1.0/types.hal b/radio/1.0/types.hal index 9b904a56ef..ad9f3920de 100644 --- a/radio/1.0/types.hal +++ b/radio/1.0/types.hal @@ -383,6 +383,21 @@ enum LastCallFailCause : int32_t { DIAL_MODIFIED_TO_USSD = 244, // STK Call Control DIAL_MODIFIED_TO_SS = 245, DIAL_MODIFIED_TO_DIAL = 246, + RADIO_OFF = 247, // Radio is OFF + OUT_OF_SERVICE = 248, // No cellular coverage + NO_VALID_SIM = 249, // No valid SIM is present + RADIO_INTERNAL_ERROR = 250, // Internal error at Modem + NETWORK_RESP_TIMEOUT = 251, // No response from network + NETWORK_REJECT = 252, // Explicit network reject + RADIO_ACCESS_FAILURE = 253, // RRC connection failure. Eg.RACH + RADIO_LINK_FAILURE = 254, // Radio Link Failure + RADIO_LINK_LOST = 255, // Radio link lost due to poor coverage + RADIO_UPLINK_FAILURE = 256, // Radio uplink failure + RADIO_SETUP_FAILURE = 257, // RRC connection setup failure + RADIO_RELEASE_NORMAL = 258, // RRC connection release, normal + RADIO_RELEASE_ABNORMAL = 259, // RRC connection release, abnormal + ACCESS_CLASS_BLOCKED = 260, // Access class barring + NETWORK_DETACH = 261, // Explicit network detach CDMA_LOCKED_UNTIL_POWER_CYCLE = 1000, CDMA_DROP = 1001, CDMA_INTERCEPT = 1002, @@ -393,10 +408,29 @@ enum LastCallFailCause : int32_t { CDMA_PREEMPTED = 1007, CDMA_NOT_EMERGENCY = 1008, // For non-emergency number dialed during emergency // callback mode - CDMA_ACCESS_BLOCKED = 1009, // This error will be deprecated soon, + CDMA_ACCESS_BLOCKED = 1009, + + /* OEM specific error codes. Used to distinguish error from + * CALL_FAIL_ERROR_UNSPECIFIED and help assist debugging */ + OEM_CAUSE_1 = 0xf001, + OEM_CAUSE_2 = 0xf002, + OEM_CAUSE_3 = 0xf003, + OEM_CAUSE_4 = 0xf004, + OEM_CAUSE_5 = 0xf005, + OEM_CAUSE_6 = 0xf006, + OEM_CAUSE_7 = 0xf007, + OEM_CAUSE_8 = 0xf008, + OEM_CAUSE_9 = 0xf009, + OEM_CAUSE_10 = 0xf00a, + OEM_CAUSE_11 = 0xf00b, + OEM_CAUSE_12 = 0xf00c, + OEM_CAUSE_13 = 0xf00d, + OEM_CAUSE_14 = 0xf00e, + OEM_CAUSE_15 = 0xf00f, + + ERROR_UNSPECIFIED = 0xffff, // This error will be deprecated soon, // vendor code must make sure to map error // code to specific error - ERROR_UNSPECIFIED = 0xffff, }; enum DataCallFailCause : int32_t {