Loading proto/src/telephony.proto +528 −0 Original line number Diff line number Diff line Loading @@ -599,6 +599,10 @@ enum PdpType { PDP_TYPE_IPV4V6 = 3; PDP_TYPE_PPP = 4; PDP_TYPE_NON_IP = 5; PDP_TYPE_UNSTRUCTURED = 6; } // The information about packet data connection Loading Loading @@ -764,6 +768,8 @@ message TelephonyEvent { PDP_FAIL_PDP_WITHOUT_ACTIVE_TFT = 46; PDP_FAIL_ACTIVATION_REJECTED_BCM_VIOLATION = 48; PDP_FAIL_ONLY_IPV4_ALLOWED = 50; PDP_FAIL_ONLY_IPV6_ALLOWED = 51; Loading @@ -776,6 +782,16 @@ message TelephonyEvent { PDP_FAIL_MULTI_CONN_TO_SAME_PDN_NOT_ALLOWED = 55; PDP_FAIL_COLLISION_WITH_NETWORK_INITIATED_REQUEST = 56; PDP_FAIL_ONLY_IPV4V6_ALLOWED = 57; PDP_FAIL_ONLY_NON_IP_ALLOWED = 58; PDP_FAIL_UNSUPPORTED_QCI_VALUE = 59; PDP_FAIL_BEARER_HANDLING_NOT_SUPPORTED = 60; PDP_FAIL_MAX_ACTIVE_PDP_CONTEXT_REACHED = 65; PDP_FAIL_UNSUPPORTED_APN_IN_CURRENT_PLMN = 66; Loading Loading @@ -820,6 +836,518 @@ message TelephonyEvent { PDP_FAIL_AUTH_FAILURE_ON_EMERGENCY_CALL = 122; PDP_FAIL_INVALID_DNS_ADDR = 123; PDP_FAIL_INVALID_PCSCF_OR_DNS_ADDRESS = 124; PDP_FAIL_CALL_PREEMPT_BY_EMERGENCY_APN = 127; PDP_FAIL_UE_INITIATED_DETACH_OR_DISCONNECT = 128; PDP_FAIL_MIP_FA_REASON_UNSPECIFIED = 2000; PDP_FAIL_MIP_FA_ADMIN_PROHIBITED = 2001; PDP_FAIL_MIP_FA_INSUFFICIENT_RESOURCES = 2002; PDP_FAIL_MIP_FA_MOBILE_NODE_AUTHENTICATION_FAILURE = 2003; PDP_FAIL_MIP_FA_HOME_AGENT_AUTHENTICATION_FAILURE = 2004; PDP_FAIL_MIP_FA_REQUESTED_LIFETIME_TOO_LONG = 2005; PDP_FAIL_MIP_FA_MALFORMED_REQUEST = 2006; PDP_FAIL_MIP_FA_MALFORMED_REPLY = 2007; PDP_FAIL_MIP_FA_ENCAPSULATION_UNAVAILABLE = 2008; PDP_FAIL_MIP_FA_VJ_HEADER_COMPRESSION_UNAVAILABLE = 2009; PDP_FAIL_MIP_FA_REVERSE_TUNNEL_UNAVAILABLE = 2010; PDP_FAIL_MIP_FA_REVERSE_TUNNEL_IS_MANDATORY = 2011; PDP_FAIL_MIP_FA_DELIVERY_STYLE_NOT_SUPPORTED = 2012; PDP_FAIL_MIP_FA_MISSING_NAI = 2013; PDP_FAIL_MIP_FA_MISSING_HOME_AGENT = 2014; PDP_FAIL_MIP_FA_MISSING_HOME_ADDRESS = 2015; PDP_FAIL_MIP_FA_UNKNOWN_CHALLENGE = 2016; PDP_FAIL_MIP_FA_MISSING_CHALLENGE = 2017; PDP_FAIL_MIP_FA_STALE_CHALLENGE = 2018; PDP_FAIL_MIP_HA_REASON_UNSPECIFIED = 2019; PDP_FAIL_MIP_HA_ADMIN_PROHIBITED = 2020; PDP_FAIL_MIP_HA_INSUFFICIENT_RESOURCES = 2021; PDP_FAIL_MIP_HA_MOBILE_NODE_AUTHENTICATION_FAILURE = 2022; PDP_FAIL_MIP_HA_FOREIGN_AGENT_AUTHENTICATION_FAILURE = 2023; PDP_FAIL_MIP_HA_REGISTRATION_ID_MISMATCH = 2024; PDP_FAIL_MIP_HA_MALFORMED_REQUEST = 2025; PDP_FAIL_MIP_HA_UNKNOWN_HOME_AGENT_ADDRESS = 2026; PDP_FAIL_MIP_HA_REVERSE_TUNNEL_UNAVAILABLE = 2027; PDP_FAIL_MIP_HA_REVERSE_TUNNEL_IS_MANDATORY = 2028; PDP_FAIL_MIP_HA_ENCAPSULATION_UNAVAILABLE = 2029; PDP_FAIL_CLOSE_IN_PROGRESS = 2030; PDP_FAIL_NETWORK_INITIATED_TERMINATION = 2031; PDP_FAIL_MODEM_APP_PREEMPTED = 2032; PDP_FAIL_PDN_IPV4_CALL_DISALLOWED = 2033; PDP_FAIL_PDN_IPV4_CALL_THROTTLED = 2034; PDP_FAIL_PDN_IPV6_CALL_DISALLOWED = 2035; PDP_FAIL_PDN_IPV6_CALL_THROTTLED = 2036; PDP_FAIL_MODEM_RESTART = 2037; PDP_FAIL_PDP_PPP_NOT_SUPPORTED = 2038; PDP_FAIL_UNPREFERRED_RAT = 2039; PDP_FAIL_PHYSICAL_LINK_CLOSE_IN_PROGRESS = 2040; PDP_FAIL_APN_PENDING_HANDOVER = 2041; PDP_FAIL_PROFILE_BEARER_INCOMPATIBLE = 2042; PDP_FAIL_SIM_CARD_CHANGED = 2043; PDP_FAIL_LOW_POWER_MODE_OR_POWERING_DOWN = 2044; PDP_FAIL_APN_DISABLED = 2045; PDP_FAIL_MAX_PPP_INACTIVITY_TIMER_EXPIRED = 2046; PDP_FAIL_IPV6_ADDRESS_TRANSFER_FAILED = 2047; PDP_FAIL_TRAT_SWAP_FAILED = 2048; PDP_FAIL_EHRPD_TO_HRPD_FALLBACK = 2049; PDP_FAIL_MIP_CONFIG_FAILURE = 2050; PDP_FAIL_PDN_INACTIVITY_TIMER_EXPIRED = 2051; PDP_FAIL_MAX_IPV4_CONNECTIONS = 2052; PDP_FAIL_MAX_IPV6_CONNECTIONS = 2053; PDP_FAIL_APN_MISMATCH = 2054; PDP_FAIL_IP_VERSION_MISMATCH = 2055; PDP_FAIL_DUN_CALL_DISALLOWED = 2056; PDP_FAIL_INTERNAL_EPC_NONEPC_TRANSITION = 2057; PDP_FAIL_INTERFACE_IN_USE = 2058; PDP_FAIL_APN_DISALLOWED_ON_ROAMING = 2059; PDP_FAIL_APN_PARAMETERS_CHANGED = 2060; PDP_FAIL_NULL_APN_DISALLOWED = 2061; PDP_FAIL_THERMAL_MITIGATION = 2062; PDP_FAIL_DATA_SETTINGS_DISABLED = 2063; PDP_FAIL_DATA_ROAMING_SETTINGS_DISABLED = 2064; PDP_FAIL_DDS_SWITCHED = 2065; PDP_FAIL_FORBIDDEN_APN_NAME = 2066; PDP_FAIL_DDS_SWITCH_IN_PROGRESS = 2067; PDP_FAIL_CALL_DISALLOWED_IN_ROAMING = 2068; PDP_FAIL_NON_IP_NOT_SUPPORTED = 2069; PDP_FAIL_PDN_NON_IP_CALL_THROTTLED = 2070; PDP_FAIL_PDN_NON_IP_CALL_DISALLOWED = 2071; PDP_FAIL_CDMA_LOCK = 2072; PDP_FAIL_CDMA_INTERCEPT = 2073; PDP_FAIL_CDMA_REORDER = 2074; PDP_FAIL_CDMA_RELEASE_DUE_TO_SO_REJECTION = 2075; PDP_FAIL_CDMA_INCOMING_CALL = 2076; PDP_FAIL_CDMA_ALERT_STOP = 2077; PDP_FAIL_CHANNEL_ACQUISITION_FAILURE = 2078; PDP_FAIL_MAX_ACCESS_PROBE = 2079; PDP_FAIL_CONCURRENT_SERVICE_NOT_SUPPORTED_BY_BASE_STATION = 2080; PDP_FAIL_NO_RESPONSE_FROM_BASE_STATION = 2081; PDP_FAIL_REJECTED_BY_BASE_STATION = 2082; PDP_FAIL_CONCURRENT_SERVICES_INCOMPATIBLE = 2083; PDP_FAIL_NO_CDMA_SERVICE = 2084; PDP_FAIL_RUIM_NOT_PRESENT = 2085; PDP_FAIL_CDMA_RETRY_ORDER = 2086; PDP_FAIL_ACCESS_BLOCK = 2087; PDP_FAIL_ACCESS_BLOCK_ALL = 2088; PDP_FAIL_IS707B_MAX_ACCESS_PROBES = 2089; PDP_FAIL_THERMAL_EMERGENCY = 2090; PDP_FAIL_CONCURRENT_SERVICES_NOT_ALLOWED = 2091; PDP_FAIL_INCOMING_CALL_REJECTED = 2092; PDP_FAIL_NO_SERVICE_ON_GATEWAY = 2093; PDP_FAIL_NO_GPRS_CONTEXT = 2094; PDP_FAIL_ILLEGAL_MS = 2095; PDP_FAIL_ILLEGAL_ME = 2096; PDP_FAIL_GPRS_SERVICES_AND_NON_GPRS_SERVICES_NOT_ALLOWED = 2097; PDP_FAIL_GPRS_SERVICES_NOT_ALLOWED = 2098; PDP_FAIL_MS_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK = 2099; PDP_FAIL_IMPLICITLY_DETACHED = 2100; PDP_FAIL_PLMN_NOT_ALLOWED = 2101; PDP_FAIL_LOCATION_AREA_NOT_ALLOWED = 2102; PDP_FAIL_GPRS_SERVICES_NOT_ALLOWED_IN_THIS_PLMN = 2103; PDP_FAIL_PDP_DUPLICATE = 2104; PDP_FAIL_UE_RAT_CHANGE = 2105; PDP_FAIL_CONGESTION = 2106; PDP_FAIL_NO_PDP_CONTEXT_ACTIVATED = 2107; PDP_FAIL_ACCESS_CLASS_DSAC_REJECTION = 2108; PDP_FAIL_PDP_ACTIVATE_MAX_RETRY_FAILED = 2109; PDP_FAIL_RADIO_ACCESS_BEARER_FAILURE = 2110; PDP_FAIL_ESM_UNKNOWN_EPS_BEARER_CONTEXT = 2111; PDP_FAIL_DRB_RELEASED_BY_RRC = 2112; PDP_FAIL_CONNECTION_RELEASED = 2113; PDP_FAIL_EMM_DETACHED = 2114; PDP_FAIL_EMM_ATTACH_FAILED = 2115; PDP_FAIL_EMM_ATTACH_STARTED = 2116; PDP_FAIL_LTE_NAS_SERVICE_REQUEST_FAILED = 2117; PDP_FAIL_DUPLICATE_BEARER_ID = 2118; PDP_FAIL_ESM_COLLISION_SCENARIOS = 2119; PDP_FAIL_ESM_BEARER_DEACTIVATED_TO_SYNC_WITH_NETWORK = 2120; PDP_FAIL_ESM_NW_ACTIVATED_DED_BEARER_WITH_ID_OF_DEF_BEARER = 2121; PDP_FAIL_ESM_BAD_OTA_MESSAGE = 2122; PDP_FAIL_ESM_DOWNLOAD_SERVER_REJECTED_THE_CALL = 2123; PDP_FAIL_ESM_CONTEXT_TRANSFERRED_DUE_TO_IRAT = 2124; PDP_FAIL_DS_EXPLICIT_DEACTIVATION = 2125; PDP_FAIL_ESM_LOCAL_CAUSE_NONE = 2126; PDP_FAIL_LTE_THROTTLING_NOT_REQUIRED = 2127; PDP_FAIL_ACCESS_CONTROL_LIST_CHECK_FAILURE = 2128; PDP_FAIL_SERVICE_NOT_ALLOWED_ON_PLMN = 2129; PDP_FAIL_EMM_T3417_EXPIRED = 2130; PDP_FAIL_EMM_T3417_EXT_EXPIRED = 2131; PDP_FAIL_RRC_UPLINK_DATA_TRANSMISSION_FAILURE = 2132; PDP_FAIL_RRC_UPLINK_DELIVERY_FAILED_DUE_TO_HANDOVER = 2133; PDP_FAIL_RRC_UPLINK_CONNECTION_RELEASE = 2134; PDP_FAIL_RRC_UPLINK_RADIO_LINK_FAILURE = 2135; PDP_FAIL_RRC_UPLINK_ERROR_REQUEST_FROM_NAS = 2136; PDP_FAIL_RRC_CONNECTION_ACCESS_STRATUM_FAILURE = 2137; PDP_FAIL_RRC_CONNECTION_ANOTHER_PROCEDURE_IN_PROGRESS = 2138; PDP_FAIL_RRC_CONNECTION_ACCESS_BARRED = 2139; PDP_FAIL_RRC_CONNECTION_CELL_RESELECTION = 2140; PDP_FAIL_RRC_CONNECTION_CONFIG_FAILURE = 2141; PDP_FAIL_RRC_CONNECTION_TIMER_EXPIRED = 2142; PDP_FAIL_RRC_CONNECTION_LINK_FAILURE = 2143; PDP_FAIL_RRC_CONNECTION_CELL_NOT_CAMPED = 2144; PDP_FAIL_RRC_CONNECTION_SYSTEM_INTERVAL_FAILURE = 2145; PDP_FAIL_RRC_CONNECTION_REJECT_BY_NETWORK = 2146; PDP_FAIL_RRC_CONNECTION_NORMAL_RELEASE = 2147; PDP_FAIL_RRC_CONNECTION_RADIO_LINK_FAILURE = 2148; PDP_FAIL_RRC_CONNECTION_REESTABLISHMENT_FAILURE = 2149; PDP_FAIL_RRC_CONNECTION_OUT_OF_SERVICE_DURING_CELL_REGISTER = 2150; PDP_FAIL_RRC_CONNECTION_ABORT_REQUEST = 2151; PDP_FAIL_RRC_CONNECTION_SYSTEM_INFORMATION_BLOCK_READ_ERROR = 2152; PDP_FAIL_NETWORK_INITIATED_DETACH_WITH_AUTO_REATTACH = 2153; PDP_FAIL_NETWORK_INITIATED_DETACH_NO_AUTO_REATTACH = 2154; PDP_FAIL_ESM_PROCEDURE_TIME_OUT = 2155; PDP_FAIL_INVALID_CONNECTION_ID = 2156; PDP_FAIL_MAXIMIUM_NSAPIS_EXCEEDED = 2157; PDP_FAIL_INVALID_PRIMARY_NSAPI = 2158; PDP_FAIL_CANNOT_ENCODE_OTA_MESSAGE = 2159; PDP_FAIL_RADIO_ACCESS_BEARER_SETUP_FAILURE = 2160; PDP_FAIL_PDP_ESTABLISH_TIMEOUT_EXPIRED = 2161; PDP_FAIL_PDP_MODIFY_TIMEOUT_EXPIRED = 2162; PDP_FAIL_PDP_INACTIVE_TIMEOUT_EXPIRED = 2163; PDP_FAIL_PDP_LOWERLAYER_ERROR = 2164; PDP_FAIL_PDP_MODIFY_COLLISION = 2165; PDP_FAIL_MAXINUM_SIZE_OF_L2_MESSAGE_EXCEEDED = 2166; PDP_FAIL_NAS_REQUEST_REJECTED_BY_NETWORK = 2167; PDP_FAIL_RRC_CONNECTION_INVALID_REQUEST = 2168; PDP_FAIL_RRC_CONNECTION_TRACKING_AREA_ID_CHANGED = 2169; PDP_FAIL_RRC_CONNECTION_RF_UNAVAILABLE = 2170; PDP_FAIL_RRC_CONNECTION_ABORTED_DUE_TO_IRAT_CHANGE = 2171; PDP_FAIL_RRC_CONNECTION_RELEASED_SECURITY_NOT_ACTIVE = 2172; PDP_FAIL_RRC_CONNECTION_ABORTED_AFTER_HANDOVER = 2173; PDP_FAIL_RRC_CONNECTION_ABORTED_AFTER_IRAT_CELL_CHANGE = 2174; PDP_FAIL_RRC_CONNECTION_ABORTED_DURING_IRAT_CELL_CHANGE = 2175; PDP_FAIL_IMSI_UNKNOWN_IN_HOME_SUBSCRIBER_SERVER = 2176; PDP_FAIL_IMEI_NOT_ACCEPTED = 2177; PDP_FAIL_EPS_SERVICES_AND_NON_EPS_SERVICES_NOT_ALLOWED = 2178; PDP_FAIL_EPS_SERVICES_NOT_ALLOWED_IN_PLMN = 2179; PDP_FAIL_MSC_TEMPORARILY_NOT_REACHABLE = 2180; PDP_FAIL_CS_DOMAIN_NOT_AVAILABLE = 2181; PDP_FAIL_ESM_FAILURE = 2182; PDP_FAIL_MAC_FAILURE = 2183; PDP_FAIL_SYNCHRONIZATION_FAILURE = 2184; PDP_FAIL_UE_SECURITY_CAPABILITIES_MISMATCH = 2185; PDP_FAIL_SECURITY_MODE_REJECTED = 2186; PDP_FAIL_UNACCEPTABLE_NON_EPS_AUTHENTICATION = 2187; PDP_FAIL_CS_FALLBACK_CALL_ESTABLISHMENT_NOT_ALLOWED = 2188; PDP_FAIL_NO_EPS_BEARER_CONTEXT_ACTIVATED = 2189; PDP_FAIL_INVALID_EMM_STATE = 2190; PDP_FAIL_NAS_LAYER_FAILURE = 2191; PDP_FAIL_MULTIPLE_PDP_CALL_NOT_ALLOWED = 2192; PDP_FAIL_EMBMS_NOT_ENABLED = 2193; PDP_FAIL_IRAT_HANDOVER_FAILED = 2194; PDP_FAIL_EMBMS_REGULAR_DEACTIVATION = 2195; PDP_FAIL_TEST_LOOPBACK_REGULAR_DEACTIVATION = 2196; PDP_FAIL_LOWER_LAYER_REGISTRATION_FAILURE = 2197; PDP_FAIL_DATA_PLAN_EXPIRED = 2198; PDP_FAIL_UMTS_HANDOVER_TO_IWLAN = 2199; PDP_FAIL_EVDO_CONNECTION_DENY_BY_GENERAL_OR_NETWORK_BUSY = 2200; PDP_FAIL_EVDO_CONNECTION_DENY_BY_BILLING_OR_AUTHENTICATION_FAILURE = 2201; PDP_FAIL_EVDO_HDR_CHANGED = 2202; PDP_FAIL_EVDO_HDR_EXITED = 2203; PDP_FAIL_EVDO_HDR_NO_SESSION = 2204; PDP_FAIL_EVDO_USING_GPS_FIX_INSTEAD_OF_HDR_CALL = 2205; PDP_FAIL_EVDO_HDR_CONNECTION_SETUP_TIMEOUT = 2206; PDP_FAIL_FAILED_TO_ACQUIRE_COLOCATED_HDR = 2207; PDP_FAIL_OTASP_COMMIT_IN_PROGRESS = 2208; PDP_FAIL_NO_HYBRID_HDR_SERVICE = 2209; PDP_FAIL_HDR_NO_LOCK_GRANTED = 2210; PDP_FAIL_DBM_OR_SMS_IN_PROGRESS = 2211; PDP_FAIL_HDR_FADE = 2212; PDP_FAIL_HDR_ACCESS_FAILURE = 2213; PDP_FAIL_UNSUPPORTED_1X_PREV = 2214; PDP_FAIL_LOCAL_END = 2215; PDP_FAIL_NO_SERVICE = 2216; PDP_FAIL_FADE = 2217; PDP_FAIL_NORMAL_RELEASE = 2218; PDP_FAIL_ACCESS_ATTEMPT_ALREADY_IN_PROGRESS = 2219; PDP_FAIL_REDIRECTION_OR_HANDOFF_IN_PROGRESS = 2220; PDP_FAIL_EMERGENCY_MODE = 2221; PDP_FAIL_PHONE_IN_USE = 2222; PDP_FAIL_INVALID_MODE = 2223; PDP_FAIL_INVALID_SIM_STATE = 2224; PDP_FAIL_NO_COLLOCATED_HDR = 2225; PDP_FAIL_UE_IS_ENTERING_POWERSAVE_MODE = 2226; PDP_FAIL_DUAL_SWITCH = 2227; PDP_FAIL_PPP_TIMEOUT = 2228; PDP_FAIL_PPP_AUTH_FAILURE = 2229; PDP_FAIL_PPP_OPTION_MISMATCH = 2230; PDP_FAIL_PPP_PAP_FAILURE = 2231; PDP_FAIL_PPP_CHAP_FAILURE = 2232; PDP_FAIL_PPP_CLOSE_IN_PROGRESS = 2233; PDP_FAIL_LIMITED_TO_IPV4 = 2234; PDP_FAIL_LIMITED_TO_IPV6 = 2235; PDP_FAIL_VSNCP_TIMEOUT = 2236; PDP_FAIL_VSNCP_GEN_ERROR = 2237; PDP_FAIL_VSNCP_APN_UNATHORIZED = 2238; PDP_FAIL_VSNCP_PDN_LIMIT_EXCEEDED = 2239; PDP_FAIL_VSNCP_NO_PDN_GATEWAY_ADDRESS = 2240; PDP_FAIL_VSNCP_PDN_GATEWAY_UNREACHABLE = 2241; PDP_FAIL_VSNCP_PDN_GATEWAY_REJECT = 2242; PDP_FAIL_VSNCP_INSUFFICIENT_PARAMETERS = 2243; PDP_FAIL_VSNCP_RESOURCE_UNAVAILABLE = 2244; PDP_FAIL_VSNCP_ADMINISTRATIVELY_PROHIBITED = 2245; PDP_FAIL_VSNCP_PDN_ID_IN_USE = 2246; PDP_FAIL_VSNCP_SUBSCRIBER_LIMITATION = 2247; PDP_FAIL_VSNCP_PDN_EXISTS_FOR_THIS_APN = 2248; PDP_FAIL_VSNCP_RECONNECT_NOT_ALLOWED = 2249; PDP_FAIL_IPV6_PREFIX_UNAVAILABLE = 2250; PDP_FAIL_HANDOFF_PREFERENCE_CHANGED = 2251; // Not mentioned in the specification PDP_FAIL_VOICE_REGISTRATION_FAIL = -1; Loading src/java/com/android/internal/telephony/RIL.java +134 −1 Original line number Diff line number Diff line Loading @@ -53,7 +53,9 @@ import android.hardware.radio.V1_4.SimLockMultiSimPolicy; import android.hardware.radio.deprecated.V1_0.IOemHook; import android.net.ConnectivityManager; import android.net.KeepalivePacketData; import android.net.LinkAddress; import android.net.LinkProperties; import android.net.NetworkUtils; import android.os.AsyncResult; import android.os.Build; import android.os.Handler; Loading Loading @@ -84,6 +86,7 @@ import android.telephony.SmsManager; import android.telephony.TelephonyHistogram; import android.telephony.TelephonyManager; import android.telephony.data.ApnSetting; import android.telephony.data.DataCallResponse; import android.telephony.data.DataProfile; import android.telephony.data.DataService; import android.telephony.emergency.EmergencyNumber; Loading Loading @@ -1463,7 +1466,7 @@ public class RIL extends BaseCommands implements CommandsInterface { radioProxy12.setupDataCall_1_2(rr.mSerial, accessNetworkType, dpi, dataProfile.isPersistent(), allowRoaming, isRoaming, reason, addresses, dnses); } else if (mRadioVersion.greaterOrEqual(RADIO_HAL_VERSION_1_0)) { } else { // IRadio V1.0 and IRadio V1.1 // Convert to HAL data profile Loading Loading @@ -5656,6 +5659,136 @@ public class RIL extends BaseCommands implements CommandsInterface { return response; } /** * Convert SetupDataCallResult defined in 1.0 or 1.4/types.hal into DataCallResponse * @param dcResult setup data call result * @return converted DataCallResponse object */ @VisibleForTesting public static DataCallResponse convertDataCallResult(Object dcResult) { if (dcResult == null) return null; int status, suggestedRetryTime, cid, active, mtu; String type, ifname; String[] addresses = null; String[] dnses = null; String[] gateways = null; List<String> pcscfs; if (dcResult instanceof android.hardware.radio.V1_0.SetupDataCallResult) { final android.hardware.radio.V1_0.SetupDataCallResult result = (android.hardware.radio.V1_0.SetupDataCallResult) dcResult; status = result.status; suggestedRetryTime = result.suggestedRetryTime; cid = result.cid; active = result.active; type = result.type; ifname = result.ifname; if (!TextUtils.isEmpty(result.addresses)) { addresses = result.addresses.split("\\s+"); } if (!TextUtils.isEmpty(result.dnses)) { dnses = result.dnses.split("\\s+"); } if (!TextUtils.isEmpty(result.gateways)) { gateways = result.gateways.split("\\s+"); } pcscfs = new ArrayList<>(Arrays.asList(result.pcscf.trim().split("\\s+"))); mtu = result.mtu; } else if (dcResult instanceof android.hardware.radio.V1_4.SetupDataCallResult) { final android.hardware.radio.V1_4.SetupDataCallResult result = (android.hardware.radio.V1_4.SetupDataCallResult) dcResult; status = result.cause; suggestedRetryTime = result.suggestedRetryTime; cid = result.cid; active = result.active; type = ApnSetting.getProtocolStringFromInt(result.type); ifname = result.ifname; addresses = result.addresses.stream().toArray(String[]::new); dnses = result.dnses.stream().toArray(String[]::new); gateways = result.gateways.stream().toArray(String[]::new); pcscfs = result.pcscf; mtu = result.mtu; } else { Rlog.e(RILJ_LOG_TAG, "Unsupported SetupDataCallResult " + dcResult); return null; } // Process address List<LinkAddress> laList = new ArrayList<>(); if (addresses != null) { for (String address : addresses) { address = address.trim(); if (address.isEmpty()) continue; try { LinkAddress la; // Check if the address contains prefix length. If yes, LinkAddress // can parse that. if (address.split("/").length == 2) { la = new LinkAddress(address); } else { InetAddress ia = NetworkUtils.numericToInetAddress(address); la = new LinkAddress(ia, (ia instanceof Inet4Address) ? 32 : 128); } laList.add(la); } catch (IllegalArgumentException e) { Rlog.e(RILJ_LOG_TAG, "Unknown address: " + address, e); } } } // Process dns List<InetAddress> dnsList = new ArrayList<>(); if (dnses != null) { for (String dns : dnses) { dns = dns.trim(); InetAddress ia; try { ia = NetworkUtils.numericToInetAddress(dns); dnsList.add(ia); } catch (IllegalArgumentException e) { Rlog.e(RILJ_LOG_TAG, "Unknown dns: " + dns, e); } } } // Process gateway List<InetAddress> gatewayList = new ArrayList<>(); if (gateways != null) { for (String gateway : gateways) { gateway = gateway.trim(); InetAddress ia; try { ia = NetworkUtils.numericToInetAddress(gateway); gatewayList.add(ia); } catch (IllegalArgumentException e) { Rlog.e(RILJ_LOG_TAG, "Unknown gateway: " + gateway, e); } } } return new DataCallResponse(status, suggestedRetryTime, cid, active, type, ifname, laList, dnsList, gatewayList, pcscfs, mtu); } /** * Convert SetupDataCallResult defined in 1.0 or 1.4/types.hal into DataCallResponse * @param dataCallResultList List of SetupDataCallResult defined in 1.0 or 1.4/types.hal * @return List of converted DataCallResponse object */ @VisibleForTesting public static ArrayList<DataCallResponse> convertDataCallResultList( List<? extends Object> dataCallResultList) { ArrayList<DataCallResponse> response = new ArrayList<DataCallResponse>(dataCallResultList.size()); for (Object obj : dataCallResultList) { response.add(convertDataCallResult(obj)); } return response; } /** * @return The {@link IwlanOperationMode IWLAN operation mode} */ Loading src/java/com/android/internal/telephony/RadioIndication.java +18 −3 Original line number Diff line number Diff line Loading @@ -78,7 +78,6 @@ import android.hardware.radio.V1_0.CdmaT53AudioControlInfoRecord; import android.hardware.radio.V1_0.CfData; import android.hardware.radio.V1_0.LceDataInfo; import android.hardware.radio.V1_0.PcoDataInfo; import android.hardware.radio.V1_0.SetupDataCallResult; import android.hardware.radio.V1_0.SimRefreshResult; import android.hardware.radio.V1_0.SsInfoData; import android.hardware.radio.V1_0.StkCcUnsolSsResult; Loading @@ -95,6 +94,7 @@ import android.telephony.ServiceState; import android.telephony.SignalStrength; import android.telephony.SmsMessage; import android.telephony.TelephonyManager; import android.telephony.data.DataCallResponse; import android.telephony.emergency.EmergencyNumber; import com.android.internal.telephony.cdma.CdmaCallWaitingNotification; Loading Loading @@ -314,13 +314,28 @@ public class RadioIndication extends IRadioIndication.Stub { new AsyncResult(null, response, null)); } public void dataCallListChanged(int indicationType, ArrayList<SetupDataCallResult> dcList) { /** Indicates current data call list. */ public void dataCallListChanged(int indicationType, ArrayList<android.hardware.radio.V1_0.SetupDataCallResult> dcList) { mRil.processIndication(indicationType); if (RIL.RILJ_LOGD) mRil.unsljLogRet(RIL_UNSOL_DATA_CALL_LIST_CHANGED, dcList); ArrayList<DataCallResponse> response = RIL.convertDataCallResultList(dcList); mRil.mDataCallListChangedRegistrants.notifyRegistrants( new AsyncResult(null, dcList, null)); new AsyncResult(null, response, null)); } /** Indicates current data call list with radio HAL 1.4. */ public void dataCallListChanged_1_4(int indicationType, ArrayList<android.hardware.radio.V1_4.SetupDataCallResult> dcList) { mRil.processIndication(indicationType); if (RIL.RILJ_LOGD) mRil.unsljLogRet(RIL_UNSOL_DATA_CALL_LIST_CHANGED, dcList); ArrayList<DataCallResponse> response = RIL.convertDataCallResultList(dcList); mRil.mDataCallListChangedRegistrants.notifyRegistrants( new AsyncResult(null, response, null)); } public void suppSvcNotify(int indicationType, SuppSvcNotification suppSvcNotification) { Loading Loading
proto/src/telephony.proto +528 −0 Original line number Diff line number Diff line Loading @@ -599,6 +599,10 @@ enum PdpType { PDP_TYPE_IPV4V6 = 3; PDP_TYPE_PPP = 4; PDP_TYPE_NON_IP = 5; PDP_TYPE_UNSTRUCTURED = 6; } // The information about packet data connection Loading Loading @@ -764,6 +768,8 @@ message TelephonyEvent { PDP_FAIL_PDP_WITHOUT_ACTIVE_TFT = 46; PDP_FAIL_ACTIVATION_REJECTED_BCM_VIOLATION = 48; PDP_FAIL_ONLY_IPV4_ALLOWED = 50; PDP_FAIL_ONLY_IPV6_ALLOWED = 51; Loading @@ -776,6 +782,16 @@ message TelephonyEvent { PDP_FAIL_MULTI_CONN_TO_SAME_PDN_NOT_ALLOWED = 55; PDP_FAIL_COLLISION_WITH_NETWORK_INITIATED_REQUEST = 56; PDP_FAIL_ONLY_IPV4V6_ALLOWED = 57; PDP_FAIL_ONLY_NON_IP_ALLOWED = 58; PDP_FAIL_UNSUPPORTED_QCI_VALUE = 59; PDP_FAIL_BEARER_HANDLING_NOT_SUPPORTED = 60; PDP_FAIL_MAX_ACTIVE_PDP_CONTEXT_REACHED = 65; PDP_FAIL_UNSUPPORTED_APN_IN_CURRENT_PLMN = 66; Loading Loading @@ -820,6 +836,518 @@ message TelephonyEvent { PDP_FAIL_AUTH_FAILURE_ON_EMERGENCY_CALL = 122; PDP_FAIL_INVALID_DNS_ADDR = 123; PDP_FAIL_INVALID_PCSCF_OR_DNS_ADDRESS = 124; PDP_FAIL_CALL_PREEMPT_BY_EMERGENCY_APN = 127; PDP_FAIL_UE_INITIATED_DETACH_OR_DISCONNECT = 128; PDP_FAIL_MIP_FA_REASON_UNSPECIFIED = 2000; PDP_FAIL_MIP_FA_ADMIN_PROHIBITED = 2001; PDP_FAIL_MIP_FA_INSUFFICIENT_RESOURCES = 2002; PDP_FAIL_MIP_FA_MOBILE_NODE_AUTHENTICATION_FAILURE = 2003; PDP_FAIL_MIP_FA_HOME_AGENT_AUTHENTICATION_FAILURE = 2004; PDP_FAIL_MIP_FA_REQUESTED_LIFETIME_TOO_LONG = 2005; PDP_FAIL_MIP_FA_MALFORMED_REQUEST = 2006; PDP_FAIL_MIP_FA_MALFORMED_REPLY = 2007; PDP_FAIL_MIP_FA_ENCAPSULATION_UNAVAILABLE = 2008; PDP_FAIL_MIP_FA_VJ_HEADER_COMPRESSION_UNAVAILABLE = 2009; PDP_FAIL_MIP_FA_REVERSE_TUNNEL_UNAVAILABLE = 2010; PDP_FAIL_MIP_FA_REVERSE_TUNNEL_IS_MANDATORY = 2011; PDP_FAIL_MIP_FA_DELIVERY_STYLE_NOT_SUPPORTED = 2012; PDP_FAIL_MIP_FA_MISSING_NAI = 2013; PDP_FAIL_MIP_FA_MISSING_HOME_AGENT = 2014; PDP_FAIL_MIP_FA_MISSING_HOME_ADDRESS = 2015; PDP_FAIL_MIP_FA_UNKNOWN_CHALLENGE = 2016; PDP_FAIL_MIP_FA_MISSING_CHALLENGE = 2017; PDP_FAIL_MIP_FA_STALE_CHALLENGE = 2018; PDP_FAIL_MIP_HA_REASON_UNSPECIFIED = 2019; PDP_FAIL_MIP_HA_ADMIN_PROHIBITED = 2020; PDP_FAIL_MIP_HA_INSUFFICIENT_RESOURCES = 2021; PDP_FAIL_MIP_HA_MOBILE_NODE_AUTHENTICATION_FAILURE = 2022; PDP_FAIL_MIP_HA_FOREIGN_AGENT_AUTHENTICATION_FAILURE = 2023; PDP_FAIL_MIP_HA_REGISTRATION_ID_MISMATCH = 2024; PDP_FAIL_MIP_HA_MALFORMED_REQUEST = 2025; PDP_FAIL_MIP_HA_UNKNOWN_HOME_AGENT_ADDRESS = 2026; PDP_FAIL_MIP_HA_REVERSE_TUNNEL_UNAVAILABLE = 2027; PDP_FAIL_MIP_HA_REVERSE_TUNNEL_IS_MANDATORY = 2028; PDP_FAIL_MIP_HA_ENCAPSULATION_UNAVAILABLE = 2029; PDP_FAIL_CLOSE_IN_PROGRESS = 2030; PDP_FAIL_NETWORK_INITIATED_TERMINATION = 2031; PDP_FAIL_MODEM_APP_PREEMPTED = 2032; PDP_FAIL_PDN_IPV4_CALL_DISALLOWED = 2033; PDP_FAIL_PDN_IPV4_CALL_THROTTLED = 2034; PDP_FAIL_PDN_IPV6_CALL_DISALLOWED = 2035; PDP_FAIL_PDN_IPV6_CALL_THROTTLED = 2036; PDP_FAIL_MODEM_RESTART = 2037; PDP_FAIL_PDP_PPP_NOT_SUPPORTED = 2038; PDP_FAIL_UNPREFERRED_RAT = 2039; PDP_FAIL_PHYSICAL_LINK_CLOSE_IN_PROGRESS = 2040; PDP_FAIL_APN_PENDING_HANDOVER = 2041; PDP_FAIL_PROFILE_BEARER_INCOMPATIBLE = 2042; PDP_FAIL_SIM_CARD_CHANGED = 2043; PDP_FAIL_LOW_POWER_MODE_OR_POWERING_DOWN = 2044; PDP_FAIL_APN_DISABLED = 2045; PDP_FAIL_MAX_PPP_INACTIVITY_TIMER_EXPIRED = 2046; PDP_FAIL_IPV6_ADDRESS_TRANSFER_FAILED = 2047; PDP_FAIL_TRAT_SWAP_FAILED = 2048; PDP_FAIL_EHRPD_TO_HRPD_FALLBACK = 2049; PDP_FAIL_MIP_CONFIG_FAILURE = 2050; PDP_FAIL_PDN_INACTIVITY_TIMER_EXPIRED = 2051; PDP_FAIL_MAX_IPV4_CONNECTIONS = 2052; PDP_FAIL_MAX_IPV6_CONNECTIONS = 2053; PDP_FAIL_APN_MISMATCH = 2054; PDP_FAIL_IP_VERSION_MISMATCH = 2055; PDP_FAIL_DUN_CALL_DISALLOWED = 2056; PDP_FAIL_INTERNAL_EPC_NONEPC_TRANSITION = 2057; PDP_FAIL_INTERFACE_IN_USE = 2058; PDP_FAIL_APN_DISALLOWED_ON_ROAMING = 2059; PDP_FAIL_APN_PARAMETERS_CHANGED = 2060; PDP_FAIL_NULL_APN_DISALLOWED = 2061; PDP_FAIL_THERMAL_MITIGATION = 2062; PDP_FAIL_DATA_SETTINGS_DISABLED = 2063; PDP_FAIL_DATA_ROAMING_SETTINGS_DISABLED = 2064; PDP_FAIL_DDS_SWITCHED = 2065; PDP_FAIL_FORBIDDEN_APN_NAME = 2066; PDP_FAIL_DDS_SWITCH_IN_PROGRESS = 2067; PDP_FAIL_CALL_DISALLOWED_IN_ROAMING = 2068; PDP_FAIL_NON_IP_NOT_SUPPORTED = 2069; PDP_FAIL_PDN_NON_IP_CALL_THROTTLED = 2070; PDP_FAIL_PDN_NON_IP_CALL_DISALLOWED = 2071; PDP_FAIL_CDMA_LOCK = 2072; PDP_FAIL_CDMA_INTERCEPT = 2073; PDP_FAIL_CDMA_REORDER = 2074; PDP_FAIL_CDMA_RELEASE_DUE_TO_SO_REJECTION = 2075; PDP_FAIL_CDMA_INCOMING_CALL = 2076; PDP_FAIL_CDMA_ALERT_STOP = 2077; PDP_FAIL_CHANNEL_ACQUISITION_FAILURE = 2078; PDP_FAIL_MAX_ACCESS_PROBE = 2079; PDP_FAIL_CONCURRENT_SERVICE_NOT_SUPPORTED_BY_BASE_STATION = 2080; PDP_FAIL_NO_RESPONSE_FROM_BASE_STATION = 2081; PDP_FAIL_REJECTED_BY_BASE_STATION = 2082; PDP_FAIL_CONCURRENT_SERVICES_INCOMPATIBLE = 2083; PDP_FAIL_NO_CDMA_SERVICE = 2084; PDP_FAIL_RUIM_NOT_PRESENT = 2085; PDP_FAIL_CDMA_RETRY_ORDER = 2086; PDP_FAIL_ACCESS_BLOCK = 2087; PDP_FAIL_ACCESS_BLOCK_ALL = 2088; PDP_FAIL_IS707B_MAX_ACCESS_PROBES = 2089; PDP_FAIL_THERMAL_EMERGENCY = 2090; PDP_FAIL_CONCURRENT_SERVICES_NOT_ALLOWED = 2091; PDP_FAIL_INCOMING_CALL_REJECTED = 2092; PDP_FAIL_NO_SERVICE_ON_GATEWAY = 2093; PDP_FAIL_NO_GPRS_CONTEXT = 2094; PDP_FAIL_ILLEGAL_MS = 2095; PDP_FAIL_ILLEGAL_ME = 2096; PDP_FAIL_GPRS_SERVICES_AND_NON_GPRS_SERVICES_NOT_ALLOWED = 2097; PDP_FAIL_GPRS_SERVICES_NOT_ALLOWED = 2098; PDP_FAIL_MS_IDENTITY_CANNOT_BE_DERIVED_BY_THE_NETWORK = 2099; PDP_FAIL_IMPLICITLY_DETACHED = 2100; PDP_FAIL_PLMN_NOT_ALLOWED = 2101; PDP_FAIL_LOCATION_AREA_NOT_ALLOWED = 2102; PDP_FAIL_GPRS_SERVICES_NOT_ALLOWED_IN_THIS_PLMN = 2103; PDP_FAIL_PDP_DUPLICATE = 2104; PDP_FAIL_UE_RAT_CHANGE = 2105; PDP_FAIL_CONGESTION = 2106; PDP_FAIL_NO_PDP_CONTEXT_ACTIVATED = 2107; PDP_FAIL_ACCESS_CLASS_DSAC_REJECTION = 2108; PDP_FAIL_PDP_ACTIVATE_MAX_RETRY_FAILED = 2109; PDP_FAIL_RADIO_ACCESS_BEARER_FAILURE = 2110; PDP_FAIL_ESM_UNKNOWN_EPS_BEARER_CONTEXT = 2111; PDP_FAIL_DRB_RELEASED_BY_RRC = 2112; PDP_FAIL_CONNECTION_RELEASED = 2113; PDP_FAIL_EMM_DETACHED = 2114; PDP_FAIL_EMM_ATTACH_FAILED = 2115; PDP_FAIL_EMM_ATTACH_STARTED = 2116; PDP_FAIL_LTE_NAS_SERVICE_REQUEST_FAILED = 2117; PDP_FAIL_DUPLICATE_BEARER_ID = 2118; PDP_FAIL_ESM_COLLISION_SCENARIOS = 2119; PDP_FAIL_ESM_BEARER_DEACTIVATED_TO_SYNC_WITH_NETWORK = 2120; PDP_FAIL_ESM_NW_ACTIVATED_DED_BEARER_WITH_ID_OF_DEF_BEARER = 2121; PDP_FAIL_ESM_BAD_OTA_MESSAGE = 2122; PDP_FAIL_ESM_DOWNLOAD_SERVER_REJECTED_THE_CALL = 2123; PDP_FAIL_ESM_CONTEXT_TRANSFERRED_DUE_TO_IRAT = 2124; PDP_FAIL_DS_EXPLICIT_DEACTIVATION = 2125; PDP_FAIL_ESM_LOCAL_CAUSE_NONE = 2126; PDP_FAIL_LTE_THROTTLING_NOT_REQUIRED = 2127; PDP_FAIL_ACCESS_CONTROL_LIST_CHECK_FAILURE = 2128; PDP_FAIL_SERVICE_NOT_ALLOWED_ON_PLMN = 2129; PDP_FAIL_EMM_T3417_EXPIRED = 2130; PDP_FAIL_EMM_T3417_EXT_EXPIRED = 2131; PDP_FAIL_RRC_UPLINK_DATA_TRANSMISSION_FAILURE = 2132; PDP_FAIL_RRC_UPLINK_DELIVERY_FAILED_DUE_TO_HANDOVER = 2133; PDP_FAIL_RRC_UPLINK_CONNECTION_RELEASE = 2134; PDP_FAIL_RRC_UPLINK_RADIO_LINK_FAILURE = 2135; PDP_FAIL_RRC_UPLINK_ERROR_REQUEST_FROM_NAS = 2136; PDP_FAIL_RRC_CONNECTION_ACCESS_STRATUM_FAILURE = 2137; PDP_FAIL_RRC_CONNECTION_ANOTHER_PROCEDURE_IN_PROGRESS = 2138; PDP_FAIL_RRC_CONNECTION_ACCESS_BARRED = 2139; PDP_FAIL_RRC_CONNECTION_CELL_RESELECTION = 2140; PDP_FAIL_RRC_CONNECTION_CONFIG_FAILURE = 2141; PDP_FAIL_RRC_CONNECTION_TIMER_EXPIRED = 2142; PDP_FAIL_RRC_CONNECTION_LINK_FAILURE = 2143; PDP_FAIL_RRC_CONNECTION_CELL_NOT_CAMPED = 2144; PDP_FAIL_RRC_CONNECTION_SYSTEM_INTERVAL_FAILURE = 2145; PDP_FAIL_RRC_CONNECTION_REJECT_BY_NETWORK = 2146; PDP_FAIL_RRC_CONNECTION_NORMAL_RELEASE = 2147; PDP_FAIL_RRC_CONNECTION_RADIO_LINK_FAILURE = 2148; PDP_FAIL_RRC_CONNECTION_REESTABLISHMENT_FAILURE = 2149; PDP_FAIL_RRC_CONNECTION_OUT_OF_SERVICE_DURING_CELL_REGISTER = 2150; PDP_FAIL_RRC_CONNECTION_ABORT_REQUEST = 2151; PDP_FAIL_RRC_CONNECTION_SYSTEM_INFORMATION_BLOCK_READ_ERROR = 2152; PDP_FAIL_NETWORK_INITIATED_DETACH_WITH_AUTO_REATTACH = 2153; PDP_FAIL_NETWORK_INITIATED_DETACH_NO_AUTO_REATTACH = 2154; PDP_FAIL_ESM_PROCEDURE_TIME_OUT = 2155; PDP_FAIL_INVALID_CONNECTION_ID = 2156; PDP_FAIL_MAXIMIUM_NSAPIS_EXCEEDED = 2157; PDP_FAIL_INVALID_PRIMARY_NSAPI = 2158; PDP_FAIL_CANNOT_ENCODE_OTA_MESSAGE = 2159; PDP_FAIL_RADIO_ACCESS_BEARER_SETUP_FAILURE = 2160; PDP_FAIL_PDP_ESTABLISH_TIMEOUT_EXPIRED = 2161; PDP_FAIL_PDP_MODIFY_TIMEOUT_EXPIRED = 2162; PDP_FAIL_PDP_INACTIVE_TIMEOUT_EXPIRED = 2163; PDP_FAIL_PDP_LOWERLAYER_ERROR = 2164; PDP_FAIL_PDP_MODIFY_COLLISION = 2165; PDP_FAIL_MAXINUM_SIZE_OF_L2_MESSAGE_EXCEEDED = 2166; PDP_FAIL_NAS_REQUEST_REJECTED_BY_NETWORK = 2167; PDP_FAIL_RRC_CONNECTION_INVALID_REQUEST = 2168; PDP_FAIL_RRC_CONNECTION_TRACKING_AREA_ID_CHANGED = 2169; PDP_FAIL_RRC_CONNECTION_RF_UNAVAILABLE = 2170; PDP_FAIL_RRC_CONNECTION_ABORTED_DUE_TO_IRAT_CHANGE = 2171; PDP_FAIL_RRC_CONNECTION_RELEASED_SECURITY_NOT_ACTIVE = 2172; PDP_FAIL_RRC_CONNECTION_ABORTED_AFTER_HANDOVER = 2173; PDP_FAIL_RRC_CONNECTION_ABORTED_AFTER_IRAT_CELL_CHANGE = 2174; PDP_FAIL_RRC_CONNECTION_ABORTED_DURING_IRAT_CELL_CHANGE = 2175; PDP_FAIL_IMSI_UNKNOWN_IN_HOME_SUBSCRIBER_SERVER = 2176; PDP_FAIL_IMEI_NOT_ACCEPTED = 2177; PDP_FAIL_EPS_SERVICES_AND_NON_EPS_SERVICES_NOT_ALLOWED = 2178; PDP_FAIL_EPS_SERVICES_NOT_ALLOWED_IN_PLMN = 2179; PDP_FAIL_MSC_TEMPORARILY_NOT_REACHABLE = 2180; PDP_FAIL_CS_DOMAIN_NOT_AVAILABLE = 2181; PDP_FAIL_ESM_FAILURE = 2182; PDP_FAIL_MAC_FAILURE = 2183; PDP_FAIL_SYNCHRONIZATION_FAILURE = 2184; PDP_FAIL_UE_SECURITY_CAPABILITIES_MISMATCH = 2185; PDP_FAIL_SECURITY_MODE_REJECTED = 2186; PDP_FAIL_UNACCEPTABLE_NON_EPS_AUTHENTICATION = 2187; PDP_FAIL_CS_FALLBACK_CALL_ESTABLISHMENT_NOT_ALLOWED = 2188; PDP_FAIL_NO_EPS_BEARER_CONTEXT_ACTIVATED = 2189; PDP_FAIL_INVALID_EMM_STATE = 2190; PDP_FAIL_NAS_LAYER_FAILURE = 2191; PDP_FAIL_MULTIPLE_PDP_CALL_NOT_ALLOWED = 2192; PDP_FAIL_EMBMS_NOT_ENABLED = 2193; PDP_FAIL_IRAT_HANDOVER_FAILED = 2194; PDP_FAIL_EMBMS_REGULAR_DEACTIVATION = 2195; PDP_FAIL_TEST_LOOPBACK_REGULAR_DEACTIVATION = 2196; PDP_FAIL_LOWER_LAYER_REGISTRATION_FAILURE = 2197; PDP_FAIL_DATA_PLAN_EXPIRED = 2198; PDP_FAIL_UMTS_HANDOVER_TO_IWLAN = 2199; PDP_FAIL_EVDO_CONNECTION_DENY_BY_GENERAL_OR_NETWORK_BUSY = 2200; PDP_FAIL_EVDO_CONNECTION_DENY_BY_BILLING_OR_AUTHENTICATION_FAILURE = 2201; PDP_FAIL_EVDO_HDR_CHANGED = 2202; PDP_FAIL_EVDO_HDR_EXITED = 2203; PDP_FAIL_EVDO_HDR_NO_SESSION = 2204; PDP_FAIL_EVDO_USING_GPS_FIX_INSTEAD_OF_HDR_CALL = 2205; PDP_FAIL_EVDO_HDR_CONNECTION_SETUP_TIMEOUT = 2206; PDP_FAIL_FAILED_TO_ACQUIRE_COLOCATED_HDR = 2207; PDP_FAIL_OTASP_COMMIT_IN_PROGRESS = 2208; PDP_FAIL_NO_HYBRID_HDR_SERVICE = 2209; PDP_FAIL_HDR_NO_LOCK_GRANTED = 2210; PDP_FAIL_DBM_OR_SMS_IN_PROGRESS = 2211; PDP_FAIL_HDR_FADE = 2212; PDP_FAIL_HDR_ACCESS_FAILURE = 2213; PDP_FAIL_UNSUPPORTED_1X_PREV = 2214; PDP_FAIL_LOCAL_END = 2215; PDP_FAIL_NO_SERVICE = 2216; PDP_FAIL_FADE = 2217; PDP_FAIL_NORMAL_RELEASE = 2218; PDP_FAIL_ACCESS_ATTEMPT_ALREADY_IN_PROGRESS = 2219; PDP_FAIL_REDIRECTION_OR_HANDOFF_IN_PROGRESS = 2220; PDP_FAIL_EMERGENCY_MODE = 2221; PDP_FAIL_PHONE_IN_USE = 2222; PDP_FAIL_INVALID_MODE = 2223; PDP_FAIL_INVALID_SIM_STATE = 2224; PDP_FAIL_NO_COLLOCATED_HDR = 2225; PDP_FAIL_UE_IS_ENTERING_POWERSAVE_MODE = 2226; PDP_FAIL_DUAL_SWITCH = 2227; PDP_FAIL_PPP_TIMEOUT = 2228; PDP_FAIL_PPP_AUTH_FAILURE = 2229; PDP_FAIL_PPP_OPTION_MISMATCH = 2230; PDP_FAIL_PPP_PAP_FAILURE = 2231; PDP_FAIL_PPP_CHAP_FAILURE = 2232; PDP_FAIL_PPP_CLOSE_IN_PROGRESS = 2233; PDP_FAIL_LIMITED_TO_IPV4 = 2234; PDP_FAIL_LIMITED_TO_IPV6 = 2235; PDP_FAIL_VSNCP_TIMEOUT = 2236; PDP_FAIL_VSNCP_GEN_ERROR = 2237; PDP_FAIL_VSNCP_APN_UNATHORIZED = 2238; PDP_FAIL_VSNCP_PDN_LIMIT_EXCEEDED = 2239; PDP_FAIL_VSNCP_NO_PDN_GATEWAY_ADDRESS = 2240; PDP_FAIL_VSNCP_PDN_GATEWAY_UNREACHABLE = 2241; PDP_FAIL_VSNCP_PDN_GATEWAY_REJECT = 2242; PDP_FAIL_VSNCP_INSUFFICIENT_PARAMETERS = 2243; PDP_FAIL_VSNCP_RESOURCE_UNAVAILABLE = 2244; PDP_FAIL_VSNCP_ADMINISTRATIVELY_PROHIBITED = 2245; PDP_FAIL_VSNCP_PDN_ID_IN_USE = 2246; PDP_FAIL_VSNCP_SUBSCRIBER_LIMITATION = 2247; PDP_FAIL_VSNCP_PDN_EXISTS_FOR_THIS_APN = 2248; PDP_FAIL_VSNCP_RECONNECT_NOT_ALLOWED = 2249; PDP_FAIL_IPV6_PREFIX_UNAVAILABLE = 2250; PDP_FAIL_HANDOFF_PREFERENCE_CHANGED = 2251; // Not mentioned in the specification PDP_FAIL_VOICE_REGISTRATION_FAIL = -1; Loading
src/java/com/android/internal/telephony/RIL.java +134 −1 Original line number Diff line number Diff line Loading @@ -53,7 +53,9 @@ import android.hardware.radio.V1_4.SimLockMultiSimPolicy; import android.hardware.radio.deprecated.V1_0.IOemHook; import android.net.ConnectivityManager; import android.net.KeepalivePacketData; import android.net.LinkAddress; import android.net.LinkProperties; import android.net.NetworkUtils; import android.os.AsyncResult; import android.os.Build; import android.os.Handler; Loading Loading @@ -84,6 +86,7 @@ import android.telephony.SmsManager; import android.telephony.TelephonyHistogram; import android.telephony.TelephonyManager; import android.telephony.data.ApnSetting; import android.telephony.data.DataCallResponse; import android.telephony.data.DataProfile; import android.telephony.data.DataService; import android.telephony.emergency.EmergencyNumber; Loading Loading @@ -1463,7 +1466,7 @@ public class RIL extends BaseCommands implements CommandsInterface { radioProxy12.setupDataCall_1_2(rr.mSerial, accessNetworkType, dpi, dataProfile.isPersistent(), allowRoaming, isRoaming, reason, addresses, dnses); } else if (mRadioVersion.greaterOrEqual(RADIO_HAL_VERSION_1_0)) { } else { // IRadio V1.0 and IRadio V1.1 // Convert to HAL data profile Loading Loading @@ -5656,6 +5659,136 @@ public class RIL extends BaseCommands implements CommandsInterface { return response; } /** * Convert SetupDataCallResult defined in 1.0 or 1.4/types.hal into DataCallResponse * @param dcResult setup data call result * @return converted DataCallResponse object */ @VisibleForTesting public static DataCallResponse convertDataCallResult(Object dcResult) { if (dcResult == null) return null; int status, suggestedRetryTime, cid, active, mtu; String type, ifname; String[] addresses = null; String[] dnses = null; String[] gateways = null; List<String> pcscfs; if (dcResult instanceof android.hardware.radio.V1_0.SetupDataCallResult) { final android.hardware.radio.V1_0.SetupDataCallResult result = (android.hardware.radio.V1_0.SetupDataCallResult) dcResult; status = result.status; suggestedRetryTime = result.suggestedRetryTime; cid = result.cid; active = result.active; type = result.type; ifname = result.ifname; if (!TextUtils.isEmpty(result.addresses)) { addresses = result.addresses.split("\\s+"); } if (!TextUtils.isEmpty(result.dnses)) { dnses = result.dnses.split("\\s+"); } if (!TextUtils.isEmpty(result.gateways)) { gateways = result.gateways.split("\\s+"); } pcscfs = new ArrayList<>(Arrays.asList(result.pcscf.trim().split("\\s+"))); mtu = result.mtu; } else if (dcResult instanceof android.hardware.radio.V1_4.SetupDataCallResult) { final android.hardware.radio.V1_4.SetupDataCallResult result = (android.hardware.radio.V1_4.SetupDataCallResult) dcResult; status = result.cause; suggestedRetryTime = result.suggestedRetryTime; cid = result.cid; active = result.active; type = ApnSetting.getProtocolStringFromInt(result.type); ifname = result.ifname; addresses = result.addresses.stream().toArray(String[]::new); dnses = result.dnses.stream().toArray(String[]::new); gateways = result.gateways.stream().toArray(String[]::new); pcscfs = result.pcscf; mtu = result.mtu; } else { Rlog.e(RILJ_LOG_TAG, "Unsupported SetupDataCallResult " + dcResult); return null; } // Process address List<LinkAddress> laList = new ArrayList<>(); if (addresses != null) { for (String address : addresses) { address = address.trim(); if (address.isEmpty()) continue; try { LinkAddress la; // Check if the address contains prefix length. If yes, LinkAddress // can parse that. if (address.split("/").length == 2) { la = new LinkAddress(address); } else { InetAddress ia = NetworkUtils.numericToInetAddress(address); la = new LinkAddress(ia, (ia instanceof Inet4Address) ? 32 : 128); } laList.add(la); } catch (IllegalArgumentException e) { Rlog.e(RILJ_LOG_TAG, "Unknown address: " + address, e); } } } // Process dns List<InetAddress> dnsList = new ArrayList<>(); if (dnses != null) { for (String dns : dnses) { dns = dns.trim(); InetAddress ia; try { ia = NetworkUtils.numericToInetAddress(dns); dnsList.add(ia); } catch (IllegalArgumentException e) { Rlog.e(RILJ_LOG_TAG, "Unknown dns: " + dns, e); } } } // Process gateway List<InetAddress> gatewayList = new ArrayList<>(); if (gateways != null) { for (String gateway : gateways) { gateway = gateway.trim(); InetAddress ia; try { ia = NetworkUtils.numericToInetAddress(gateway); gatewayList.add(ia); } catch (IllegalArgumentException e) { Rlog.e(RILJ_LOG_TAG, "Unknown gateway: " + gateway, e); } } } return new DataCallResponse(status, suggestedRetryTime, cid, active, type, ifname, laList, dnsList, gatewayList, pcscfs, mtu); } /** * Convert SetupDataCallResult defined in 1.0 or 1.4/types.hal into DataCallResponse * @param dataCallResultList List of SetupDataCallResult defined in 1.0 or 1.4/types.hal * @return List of converted DataCallResponse object */ @VisibleForTesting public static ArrayList<DataCallResponse> convertDataCallResultList( List<? extends Object> dataCallResultList) { ArrayList<DataCallResponse> response = new ArrayList<DataCallResponse>(dataCallResultList.size()); for (Object obj : dataCallResultList) { response.add(convertDataCallResult(obj)); } return response; } /** * @return The {@link IwlanOperationMode IWLAN operation mode} */ Loading
src/java/com/android/internal/telephony/RadioIndication.java +18 −3 Original line number Diff line number Diff line Loading @@ -78,7 +78,6 @@ import android.hardware.radio.V1_0.CdmaT53AudioControlInfoRecord; import android.hardware.radio.V1_0.CfData; import android.hardware.radio.V1_0.LceDataInfo; import android.hardware.radio.V1_0.PcoDataInfo; import android.hardware.radio.V1_0.SetupDataCallResult; import android.hardware.radio.V1_0.SimRefreshResult; import android.hardware.radio.V1_0.SsInfoData; import android.hardware.radio.V1_0.StkCcUnsolSsResult; Loading @@ -95,6 +94,7 @@ import android.telephony.ServiceState; import android.telephony.SignalStrength; import android.telephony.SmsMessage; import android.telephony.TelephonyManager; import android.telephony.data.DataCallResponse; import android.telephony.emergency.EmergencyNumber; import com.android.internal.telephony.cdma.CdmaCallWaitingNotification; Loading Loading @@ -314,13 +314,28 @@ public class RadioIndication extends IRadioIndication.Stub { new AsyncResult(null, response, null)); } public void dataCallListChanged(int indicationType, ArrayList<SetupDataCallResult> dcList) { /** Indicates current data call list. */ public void dataCallListChanged(int indicationType, ArrayList<android.hardware.radio.V1_0.SetupDataCallResult> dcList) { mRil.processIndication(indicationType); if (RIL.RILJ_LOGD) mRil.unsljLogRet(RIL_UNSOL_DATA_CALL_LIST_CHANGED, dcList); ArrayList<DataCallResponse> response = RIL.convertDataCallResultList(dcList); mRil.mDataCallListChangedRegistrants.notifyRegistrants( new AsyncResult(null, dcList, null)); new AsyncResult(null, response, null)); } /** Indicates current data call list with radio HAL 1.4. */ public void dataCallListChanged_1_4(int indicationType, ArrayList<android.hardware.radio.V1_4.SetupDataCallResult> dcList) { mRil.processIndication(indicationType); if (RIL.RILJ_LOGD) mRil.unsljLogRet(RIL_UNSOL_DATA_CALL_LIST_CHANGED, dcList); ArrayList<DataCallResponse> response = RIL.convertDataCallResultList(dcList); mRil.mDataCallListChangedRegistrants.notifyRegistrants( new AsyncResult(null, response, null)); } public void suppSvcNotify(int indicationType, SuppSvcNotification suppSvcNotification) { Loading