1*4d7e907cSAndroid Build Coastguard Worker/* 2*4d7e907cSAndroid Build Coastguard Worker * Copyright (C) 2020 The Android Open Source Project 3*4d7e907cSAndroid Build Coastguard Worker * 4*4d7e907cSAndroid Build Coastguard Worker * Licensed under the Apache License, Version 2.0 (the "License"); 5*4d7e907cSAndroid Build Coastguard Worker * you may not use this file except in compliance with the License. 6*4d7e907cSAndroid Build Coastguard Worker * You may obtain a copy of the License at 7*4d7e907cSAndroid Build Coastguard Worker * 8*4d7e907cSAndroid Build Coastguard Worker * http://www.apache.org/licenses/LICENSE-2.0 9*4d7e907cSAndroid Build Coastguard Worker * 10*4d7e907cSAndroid Build Coastguard Worker * Unless required by applicable law or agreed to in writing, software 11*4d7e907cSAndroid Build Coastguard Worker * distributed under the License is distributed on an "AS IS" BASIS, 12*4d7e907cSAndroid Build Coastguard Worker * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 13*4d7e907cSAndroid Build Coastguard Worker * See the License for the specific language governing permissions and 14*4d7e907cSAndroid Build Coastguard Worker * limitations under the License. 15*4d7e907cSAndroid Build Coastguard Worker */ 16*4d7e907cSAndroid Build Coastguard Worker 17*4d7e907cSAndroid Build Coastguard Workerpackage [email protected]; 18*4d7e907cSAndroid Build Coastguard Worker 19*4d7e907cSAndroid Build Coastguard Worker 20*4d7e907cSAndroid Build Coastguard Workerimport @1.0::CdmaSmsMessage; 21*4d7e907cSAndroid Build Coastguard Workerimport @1.0::Dial; 22*4d7e907cSAndroid Build Coastguard Workerimport @1.0::GsmSmsMessage; 23*4d7e907cSAndroid Build Coastguard Workerimport @1.1::CardPowerState; 24*4d7e907cSAndroid Build Coastguard Workerimport @1.2::DataRequestReason; 25*4d7e907cSAndroid Build Coastguard Workerimport @1.4::EmergencyCallRouting; 26*4d7e907cSAndroid Build Coastguard Workerimport @1.4::EmergencyServiceCategory; 27*4d7e907cSAndroid Build Coastguard Workerimport @1.4::RadioAccessFamily; 28*4d7e907cSAndroid Build Coastguard Workerimport @1.5::IRadio; 29*4d7e907cSAndroid Build Coastguard Workerimport @1.5::AccessNetwork; 30*4d7e907cSAndroid Build Coastguard Workerimport @1.5::DataProfileInfo; 31*4d7e907cSAndroid Build Coastguard Workerimport @1.5::LinkAddress; 32*4d7e907cSAndroid Build Coastguard Worker 33*4d7e907cSAndroid Build Coastguard Worker/** 34*4d7e907cSAndroid Build Coastguard Worker * This interface is used by telephony and telecom to talk to cellular radio. 35*4d7e907cSAndroid Build Coastguard Worker * All the functions have minimum one parameter: 36*4d7e907cSAndroid Build Coastguard Worker * serial: which corresponds to serial no. of request. Serial numbers must only be memorized for the 37*4d7e907cSAndroid Build Coastguard Worker * duration of a method call. If clients provide colliding serials (including passing the same 38*4d7e907cSAndroid Build Coastguard Worker * serial to different methods), multiple responses (one for each method call) must still be served. 39*4d7e907cSAndroid Build Coastguard Worker * setResponseFunctions must work with @1.6::IRadioResponse and @1.6::IRadioIndication. 40*4d7e907cSAndroid Build Coastguard Worker */ 41*4d7e907cSAndroid Build Coastguard Workerinterface IRadio extends @1.5::IRadio { 42*4d7e907cSAndroid Build Coastguard Worker /** 43*4d7e907cSAndroid Build Coastguard Worker * Toggle radio on and off (for "airplane" mode) 44*4d7e907cSAndroid Build Coastguard Worker * If the radio is turned off/on the radio modem subsystem 45*4d7e907cSAndroid Build Coastguard Worker * is expected return to an initialized state. For instance, 46*4d7e907cSAndroid Build Coastguard Worker * any voice and data calls must be terminated and all associated 47*4d7e907cSAndroid Build Coastguard Worker * lists emptied. 48*4d7e907cSAndroid Build Coastguard Worker * 49*4d7e907cSAndroid Build Coastguard Worker * When setting radio power on to exit from airplane mode to place an emergency call on this 50*4d7e907cSAndroid Build Coastguard Worker * logical modem, powerOn, forEmergencyCall and preferredForEmergencyCall must be true. In 51*4d7e907cSAndroid Build Coastguard Worker * this case, this modem is optimized to scan only emergency call bands, until: 52*4d7e907cSAndroid Build Coastguard Worker * 1) Emergency call is completed; or 53*4d7e907cSAndroid Build Coastguard Worker * 2) Another setRadioPower_1_5 is issued with forEmergencyCall being false or 54*4d7e907cSAndroid Build Coastguard Worker * preferredForEmergencyCall being false; or 55*4d7e907cSAndroid Build Coastguard Worker * 3) Timeout after 30 seconds if dial or emergencyDial is not called. 56*4d7e907cSAndroid Build Coastguard Worker * Once one of these conditions is reached, the modem should move into normal operation. 57*4d7e907cSAndroid Build Coastguard Worker * 58*4d7e907cSAndroid Build Coastguard Worker * @param serial Serial number of request. 59*4d7e907cSAndroid Build Coastguard Worker * @param powerOn To turn on radio -> on = true, to turn off radio -> on = false. 60*4d7e907cSAndroid Build Coastguard Worker * @param forEmergencyCall To indication to radio if this request is due to emergency call. 61*4d7e907cSAndroid Build Coastguard Worker * No effect if powerOn is false. 62*4d7e907cSAndroid Build Coastguard Worker * @param preferredForEmergencyCall indicate whether the following emergency call will be sent 63*4d7e907cSAndroid Build Coastguard Worker * on this modem or not. No effect if forEmergencyCall is false, or powerOn is false. 64*4d7e907cSAndroid Build Coastguard Worker * 65*4d7e907cSAndroid Build Coastguard Worker * Response callback is IRadioConfigResponse. setRadioPowerResponse_1_6. 66*4d7e907cSAndroid Build Coastguard Worker 67*4d7e907cSAndroid Build Coastguard Worker * Note this API is the same as the 1.5 68*4d7e907cSAndroid Build Coastguard Worker */ 69*4d7e907cSAndroid Build Coastguard Worker oneway setRadioPower_1_6(int32_t serial, bool powerOn, bool forEmergencyCall, 70*4d7e907cSAndroid Build Coastguard Worker bool preferredForEmergencyCall); 71*4d7e907cSAndroid Build Coastguard Worker 72*4d7e907cSAndroid Build Coastguard Worker /** 73*4d7e907cSAndroid Build Coastguard Worker * Returns the data call list. An entry is added when a setupDataCall() is issued and removed 74*4d7e907cSAndroid Build Coastguard Worker * on a deactivateDataCall(). The list is emptied when setRadioPower() off/on issued or when 75*4d7e907cSAndroid Build Coastguard Worker * the vendor HAL or modem crashes. 76*4d7e907cSAndroid Build Coastguard Worker * 77*4d7e907cSAndroid Build Coastguard Worker * @param serial Serial number of request. 78*4d7e907cSAndroid Build Coastguard Worker * 79*4d7e907cSAndroid Build Coastguard Worker * Response function is IRadioResponse.getDataCallListResponse_1_6() 80*4d7e907cSAndroid Build Coastguard Worker */ 81*4d7e907cSAndroid Build Coastguard Worker oneway getDataCallList_1_6(int32_t serial); 82*4d7e907cSAndroid Build Coastguard Worker 83*4d7e907cSAndroid Build Coastguard Worker /** 84*4d7e907cSAndroid Build Coastguard Worker * Setup a packet data connection. If DataCallResponse.status returns DataCallFailCause:NONE, 85*4d7e907cSAndroid Build Coastguard Worker * the data connection must be added to data calls and a unsolDataCallListChanged() must be 86*4d7e907cSAndroid Build Coastguard Worker * sent. The call remains until removed by subsequent unsolDataCallIstChanged(). It may be 87*4d7e907cSAndroid Build Coastguard Worker * lost due to many factors, including deactivateDataCall() being issued, the radio powered 88*4d7e907cSAndroid Build Coastguard Worker * off, reception lost or even transient factors like congestion. This data call list is 89*4d7e907cSAndroid Build Coastguard Worker * returned by getDataCallList() and dataCallListChanged(). 90*4d7e907cSAndroid Build Coastguard Worker * 91*4d7e907cSAndroid Build Coastguard Worker * The Radio is expected to: 92*4d7e907cSAndroid Build Coastguard Worker * - Create one data call context. 93*4d7e907cSAndroid Build Coastguard Worker * - Create and configure a dedicated interface for the context. 94*4d7e907cSAndroid Build Coastguard Worker * - The interface must be point to point. 95*4d7e907cSAndroid Build Coastguard Worker * - The interface is configured with one or more addresses and is capable of sending and 96*4d7e907cSAndroid Build Coastguard Worker * receiving packets. The format is IP address with optional "/" prefix length 97*4d7e907cSAndroid Build Coastguard Worker * (The format is defined in RFC-4291 section 2.3). For example, "192.0.1.3", 98*4d7e907cSAndroid Build Coastguard Worker * "192.0.1.11/16", or "2001:db8::1/64". Typically one IPv4 or one IPv6 or one of each. If 99*4d7e907cSAndroid Build Coastguard Worker * the prefix length is absent, then the addresses are assumed to be point to point with 100*4d7e907cSAndroid Build Coastguard Worker * IPv4 with prefix length 32 or IPv6 with prefix length 128. 101*4d7e907cSAndroid Build Coastguard Worker * - Must not modify routing configuration related to this interface; routing management is 102*4d7e907cSAndroid Build Coastguard Worker * exclusively within the purview of the Android OS. 103*4d7e907cSAndroid Build Coastguard Worker * - Support simultaneous data call contexts up to DataRegStateResult.maxDataCalls specified 104*4d7e907cSAndroid Build Coastguard Worker * in the response of getDataRegistrationState. 105*4d7e907cSAndroid Build Coastguard Worker * 106*4d7e907cSAndroid Build Coastguard Worker * The differences relative to the 1.5 version of the API are: 107*4d7e907cSAndroid Build Coastguard Worker * - The addition of new parameters pduSessionId, sliceInfo, trafficDescriptor, and 108*4d7e907cSAndroid Build Coastguard Worker * matchAllRuleAllowed. 109*4d7e907cSAndroid Build Coastguard Worker * - If an existing data call should be used for the request, that must be indicated in the 110*4d7e907cSAndroid Build Coastguard Worker * response by setting SetupDataCallResult::cid to the context id of that call. 111*4d7e907cSAndroid Build Coastguard Worker * 112*4d7e907cSAndroid Build Coastguard Worker * @param serial Serial number of request. 113*4d7e907cSAndroid Build Coastguard Worker * @param accessNetwork The access network to setup the data call. If the data connection cannot 114*4d7e907cSAndroid Build Coastguard Worker * be established on the specified access network then it should be responded with an error. 115*4d7e907cSAndroid Build Coastguard Worker * @param dataProfileInfo Data profile info. 116*4d7e907cSAndroid Build Coastguard Worker * @param roamingAllowed Indicates whether or not data roaming is allowed by the user. 117*4d7e907cSAndroid Build Coastguard Worker * @param reason The request reason. Must be DataRequestReason:NORMAL or 118*4d7e907cSAndroid Build Coastguard Worker * DataRequestReason:HANDOVER. 119*4d7e907cSAndroid Build Coastguard Worker * @param addresses If the reason is DataRequestReason:HANDOVER, this indicates the list of link 120*4d7e907cSAndroid Build Coastguard Worker * addresses of the existing data connection. This parameter must be ignored unless reason 121*4d7e907cSAndroid Build Coastguard Worker * is DataRequestReason:HANDOVER. 122*4d7e907cSAndroid Build Coastguard Worker * @param dnses If the reason is DataRequestReason:HANDOVER, this indicates the list of DNS 123*4d7e907cSAndroid Build Coastguard Worker * addresses of the existing data connection. The format is defined in RFC-4291 section 2.2. 124*4d7e907cSAndroid Build Coastguard Worker * For example, "192.0.1.3" or "2001:db8::1". This parameter must be ignored unless reason 125*4d7e907cSAndroid Build Coastguard Worker * is DataRequestReason:HANDOVER. 126*4d7e907cSAndroid Build Coastguard Worker * @param pduSessionId The pdu session id to be used for this data call. A value of 0 means 127*4d7e907cSAndroid Build Coastguard Worker * no pdu session id was attached to this call. 128*4d7e907cSAndroid Build Coastguard Worker * Reference: 3GPP TS 24.007 section 11.2.3.1b 129*4d7e907cSAndroid Build Coastguard Worker * @param sliceInfo SliceInfo to be used for the data connection when a handover occurs from 130*4d7e907cSAndroid Build Coastguard Worker * EPDG to 5G. It is valid only when accessNetwork is AccessNetwork:NGRAN. If the slice 131*4d7e907cSAndroid Build Coastguard Worker * passed from EPDG is rejected, then the data failure cause must be 132*4d7e907cSAndroid Build Coastguard Worker * DataCallFailCause:SLICE_REJECTED. 133*4d7e907cSAndroid Build Coastguard Worker * @param trafficDescriptor TrafficDescriptor for which data connection needs to be 134*4d7e907cSAndroid Build Coastguard Worker * established. It is used for URSP traffic matching as described in TS 24.526 135*4d7e907cSAndroid Build Coastguard Worker * Section 4.2.2. It includes an optional DNN which, if present, must be used for traffic 136*4d7e907cSAndroid Build Coastguard Worker * matching -- it does not specify the end point to be used for the data call. The end 137*4d7e907cSAndroid Build Coastguard Worker * point is specified by DataProfileInfo.apn; DataProfileInfo.apn must be used as the end 138*4d7e907cSAndroid Build Coastguard Worker * point if one is not specified through URSP rules. 139*4d7e907cSAndroid Build Coastguard Worker * @param matchAllRuleAllowed bool to indicate if using default match-all URSP rule for this 140*4d7e907cSAndroid Build Coastguard Worker * request is allowed. If false, this request must not use the match-all URSP rule and if 141*4d7e907cSAndroid Build Coastguard Worker * a non-match-all rule is not found (or if URSP rules are not available) it should return 142*4d7e907cSAndroid Build Coastguard Worker * failure with cause DataCallFailCause:MATCH_ALL_RULE_NOT_ALLOWED. This is needed as some 143*4d7e907cSAndroid Build Coastguard Worker * requests need to have a hard failure if the intention cannot be met, for example, a 144*4d7e907cSAndroid Build Coastguard Worker * zero-rating slice. 145*4d7e907cSAndroid Build Coastguard Worker * 146*4d7e907cSAndroid Build Coastguard Worker * Response function is IRadioResponse.setupDataCallResponse_1_6() 147*4d7e907cSAndroid Build Coastguard Worker * 148*4d7e907cSAndroid Build Coastguard Worker */ 149*4d7e907cSAndroid Build Coastguard Worker oneway setupDataCall_1_6(int32_t serial, AccessNetwork accessNetwork, 150*4d7e907cSAndroid Build Coastguard Worker DataProfileInfo dataProfileInfo, bool roamingAllowed, 151*4d7e907cSAndroid Build Coastguard Worker DataRequestReason reason, vec<LinkAddress> addresses, vec<string> dnses, 152*4d7e907cSAndroid Build Coastguard Worker int32_t pduSessionId, OptionalSliceInfo sliceInfo, 153*4d7e907cSAndroid Build Coastguard Worker OptionalTrafficDescriptor trafficDescriptor, bool matchAllRuleAllowed); 154*4d7e907cSAndroid Build Coastguard Worker 155*4d7e907cSAndroid Build Coastguard Worker /** 156*4d7e907cSAndroid Build Coastguard Worker * Send an SMS message 157*4d7e907cSAndroid Build Coastguard Worker * 158*4d7e907cSAndroid Build Coastguard Worker * @param serial Serial number of request. 159*4d7e907cSAndroid Build Coastguard Worker * @param message GsmSmsMessage as defined in types.hal 160*4d7e907cSAndroid Build Coastguard Worker * 161*4d7e907cSAndroid Build Coastguard Worker * Response function is IRadioResponse.sendSmsResponse_1_6() 162*4d7e907cSAndroid Build Coastguard Worker * 163*4d7e907cSAndroid Build Coastguard Worker * Note this API is the same as the 1.0 164*4d7e907cSAndroid Build Coastguard Worker * 165*4d7e907cSAndroid Build Coastguard Worker * Based on the return error, caller decides to resend if sending sms 166*4d7e907cSAndroid Build Coastguard Worker * fails. RadioError:SMS_SEND_FAIL_RETRY means retry (i.e. error cause is 332) 167*4d7e907cSAndroid Build Coastguard Worker * and RadioError:GENERIC_FAILURE means no retry (i.e. error cause is 500) 168*4d7e907cSAndroid Build Coastguard Worker */ 169*4d7e907cSAndroid Build Coastguard Worker oneway sendSms_1_6(int32_t serial, GsmSmsMessage message); 170*4d7e907cSAndroid Build Coastguard Worker 171*4d7e907cSAndroid Build Coastguard Worker /** 172*4d7e907cSAndroid Build Coastguard Worker * Send an SMS message. Identical to sendSms_1_6, 173*4d7e907cSAndroid Build Coastguard Worker * except that more messages are expected to be sent soon. If possible, 174*4d7e907cSAndroid Build Coastguard Worker * keep SMS relay protocol link open (eg TS 27.005 AT+CMMS command) 175*4d7e907cSAndroid Build Coastguard Worker * 176*4d7e907cSAndroid Build Coastguard Worker * @param serial Serial number of request. 177*4d7e907cSAndroid Build Coastguard Worker * @param message GsmSmsMessage as defined in types.hal 178*4d7e907cSAndroid Build Coastguard Worker * 179*4d7e907cSAndroid Build Coastguard Worker * Response function is IRadioResponse.sendSmsExpectMoreResponse_1_6() 180*4d7e907cSAndroid Build Coastguard Worker * 181*4d7e907cSAndroid Build Coastguard Worker * Note this API is the same as the 1.0 182*4d7e907cSAndroid Build Coastguard Worker * 183*4d7e907cSAndroid Build Coastguard Worker * Based on the return error, caller decides to resend if sending sms 184*4d7e907cSAndroid Build Coastguard Worker * fails. RadioError:SMS_SEND_FAIL_RETRY means retry (i.e. error cause is 332) 185*4d7e907cSAndroid Build Coastguard Worker * and RadioError:GENERIC_FAILURE means no retry (i.e. error cause is 500) 186*4d7e907cSAndroid Build Coastguard Worker */ 187*4d7e907cSAndroid Build Coastguard Worker oneway sendSmsExpectMore_1_6(int32_t serial, GsmSmsMessage message); 188*4d7e907cSAndroid Build Coastguard Worker 189*4d7e907cSAndroid Build Coastguard Worker /** 190*4d7e907cSAndroid Build Coastguard Worker * Send a CDMA SMS message 191*4d7e907cSAndroid Build Coastguard Worker * 192*4d7e907cSAndroid Build Coastguard Worker * @param serial Serial number of request. 193*4d7e907cSAndroid Build Coastguard Worker * @param sms Cdma Sms to be sent described by CdmaSmsMessage in types.hal 194*4d7e907cSAndroid Build Coastguard Worker * 195*4d7e907cSAndroid Build Coastguard Worker * Response callback is IRadioResponse.sendCdmaSmsResponse_1_6() 196*4d7e907cSAndroid Build Coastguard Worker * 197*4d7e907cSAndroid Build Coastguard Worker * Note this API is the same as the 1.0 198*4d7e907cSAndroid Build Coastguard Worker * 199*4d7e907cSAndroid Build Coastguard Worker */ 200*4d7e907cSAndroid Build Coastguard Worker oneway sendCdmaSms_1_6(int32_t serial, CdmaSmsMessage sms); 201*4d7e907cSAndroid Build Coastguard Worker 202*4d7e907cSAndroid Build Coastguard Worker /** 203*4d7e907cSAndroid Build Coastguard Worker * Send an SMS message. Identical to sendCdmaSms_1_6, 204*4d7e907cSAndroid Build Coastguard Worker * except that more messages are expected to be sent soon. 205*4d7e907cSAndroid Build Coastguard Worker * 206*4d7e907cSAndroid Build Coastguard Worker * @param serial Serial number of request. 207*4d7e907cSAndroid Build Coastguard Worker * @param sms Cdma Sms to be sent described by CdmaSmsMessage in types.hal 208*4d7e907cSAndroid Build Coastguard Worker * 209*4d7e907cSAndroid Build Coastguard Worker * Response callback is IRadioResponse.sendCdmaSMSExpectMoreResponse_1_6() 210*4d7e907cSAndroid Build Coastguard Worker * 211*4d7e907cSAndroid Build Coastguard Worker * Note this API is the same as the 1.5 212*4d7e907cSAndroid Build Coastguard Worker * 213*4d7e907cSAndroid Build Coastguard Worker */ 214*4d7e907cSAndroid Build Coastguard Worker oneway sendCdmaSmsExpectMore_1_6(int32_t serial, CdmaSmsMessage sms); 215*4d7e907cSAndroid Build Coastguard Worker 216*4d7e907cSAndroid Build Coastguard Worker /** 217*4d7e907cSAndroid Build Coastguard Worker * Set SIM card power state. 218*4d7e907cSAndroid Build Coastguard Worker * Request is used to power off or power on the card. It should not generate 219*4d7e907cSAndroid Build Coastguard Worker * a CardState.CARDSTATE_ABSENT indication, since the SIM is still physically 220*4d7e907cSAndroid Build Coastguard Worker * inserted. 221*4d7e907cSAndroid Build Coastguard Worker * 222*4d7e907cSAndroid Build Coastguard Worker * @param serial Serial number of request 223*4d7e907cSAndroid Build Coastguard Worker * @param powerUp POWER_DOWN if powering down the SIM card, 224*4d7e907cSAndroid Build Coastguard Worker * POWER_UP if powering up the SIM card, 225*4d7e907cSAndroid Build Coastguard Worker * POWER_UP_PASS_THROUGH if powering up the SIM card in 226*4d7e907cSAndroid Build Coastguard Worker * pass through mode. 227*4d7e907cSAndroid Build Coastguard Worker * 228*4d7e907cSAndroid Build Coastguard Worker * When SIM card is in POWER_UP_PASS_THROUGH, the modem does not send 229*4d7e907cSAndroid Build Coastguard Worker * any command to it (for example SELECT of MF, or TERMINAL 230*4d7e907cSAndroid Build Coastguard Worker * CAPABILITY), and the SIM card is controlled completely by Telephony 231*4d7e907cSAndroid Build Coastguard Worker * sending APDUs directly. The SIM card state must be 232*4d7e907cSAndroid Build Coastguard Worker * RIL_CARDSTATE_PRESENT and the number of card apps will be 0. 233*4d7e907cSAndroid Build Coastguard Worker * No new error code is generated. Emergency calls are supported in 234*4d7e907cSAndroid Build Coastguard Worker * the same way as if the SIM card is absent. 235*4d7e907cSAndroid Build Coastguard Worker * Pass-through mode is valid only for the specific card session where 236*4d7e907cSAndroid Build Coastguard Worker * it is activated, and normal behavior occurs at the next SIM 237*4d7e907cSAndroid Build Coastguard Worker * initialization, unless POWER_UP_PASS_THROUGH is requested again. 238*4d7e907cSAndroid Build Coastguard Worker * 239*4d7e907cSAndroid Build Coastguard Worker * The device is required to power down the SIM card before it can 240*4d7e907cSAndroid Build Coastguard Worker * switch the mode between POWER_UP and POWER_UP_PASS_THROUGH. 241*4d7e907cSAndroid Build Coastguard Worker * At device power up, the SIM interface is powered up automatically. 242*4d7e907cSAndroid Build Coastguard Worker * Each subsequent request to this method is processed only after the 243*4d7e907cSAndroid Build Coastguard Worker * completion of the previous one. 244*4d7e907cSAndroid Build Coastguard Worker * 245*4d7e907cSAndroid Build Coastguard Worker * When the SIM is in POWER_DOWN, the modem should send an empty vector of 246*4d7e907cSAndroid Build Coastguard Worker * AppStatus in CardStatus.applications. If a SIM in the POWER_DOWN state 247*4d7e907cSAndroid Build Coastguard Worker * is removed and a new SIM is inserted, the new SIM should be in POWER_UP 248*4d7e907cSAndroid Build Coastguard Worker * mode by default. If the device is turned off or restarted while the SIM 249*4d7e907cSAndroid Build Coastguard Worker * is in POWER_DOWN, then the SIM should turn on normally in POWER_UP mode 250*4d7e907cSAndroid Build Coastguard Worker * when the device turns back on. 251*4d7e907cSAndroid Build Coastguard Worker * 252*4d7e907cSAndroid Build Coastguard Worker * Response callback is IRadioResponse.setSimCardPowerResponse_1_6(). 253*4d7e907cSAndroid Build Coastguard Worker * Note that this differs from setSimCardPower_1_1 in that the response 254*4d7e907cSAndroid Build Coastguard Worker * callback should only be sent once the device has finished executing 255*4d7e907cSAndroid Build Coastguard Worker * the request (the SIM has finished powering on or off). 256*4d7e907cSAndroid Build Coastguard Worker */ 257*4d7e907cSAndroid Build Coastguard Worker oneway setSimCardPower_1_6(int32_t serial, CardPowerState powerUp); 258*4d7e907cSAndroid Build Coastguard Worker 259*4d7e907cSAndroid Build Coastguard Worker /** 260*4d7e907cSAndroid Build Coastguard Worker * Enable or disable E-UTRA-NR dual connectivity. If disabled then UE will not connect 261*4d7e907cSAndroid Build Coastguard Worker * to secondary carrier. 262*4d7e907cSAndroid Build Coastguard Worker * 263*4d7e907cSAndroid Build Coastguard Worker * @param serial Serial number of request. 264*4d7e907cSAndroid Build Coastguard Worker * @param nrDualConnectivityState expected NR dual connectivity state. 265*4d7e907cSAndroid Build Coastguard Worker * 1. Enable NR dual connectivity {NrDualConnectivityState:ENABLE} 266*4d7e907cSAndroid Build Coastguard Worker * 2. Disable NR dual connectivity {NrDualConnectivityState:DISABLE} 267*4d7e907cSAndroid Build Coastguard Worker * 3. Disable NR dual connectivity and force secondary cell to be released 268*4d7e907cSAndroid Build Coastguard Worker * {NrDualConnectivityState:DISABLE_IMMEDIATE} 269*4d7e907cSAndroid Build Coastguard Worker * 270*4d7e907cSAndroid Build Coastguard Worker * Response callback is IRadioResponse.setNRDualConnectivityStateResponse() 271*4d7e907cSAndroid Build Coastguard Worker */ 272*4d7e907cSAndroid Build Coastguard Worker oneway setNrDualConnectivityState(int32_t serial, 273*4d7e907cSAndroid Build Coastguard Worker NrDualConnectivityState nrDualConnectivityState); 274*4d7e907cSAndroid Build Coastguard Worker 275*4d7e907cSAndroid Build Coastguard Worker /** 276*4d7e907cSAndroid Build Coastguard Worker * Is E-UTRA-NR Dual Connectivity enabled 277*4d7e907cSAndroid Build Coastguard Worker * 278*4d7e907cSAndroid Build Coastguard Worker * @param serial Serial number of request. 279*4d7e907cSAndroid Build Coastguard Worker * Response callback is IRadioResponse.isNRDualConnectivityEnabledResponse() 280*4d7e907cSAndroid Build Coastguard Worker */ 281*4d7e907cSAndroid Build Coastguard Worker oneway isNrDualConnectivityEnabled(int32_t serial); 282*4d7e907cSAndroid Build Coastguard Worker 283*4d7e907cSAndroid Build Coastguard Worker /** 284*4d7e907cSAndroid Build Coastguard Worker * Reserves an unallocated pdu session id from the pool of ids. 285*4d7e907cSAndroid Build Coastguard Worker * 286*4d7e907cSAndroid Build Coastguard Worker * The allocated id is returned in the response. 287*4d7e907cSAndroid Build Coastguard Worker * 288*4d7e907cSAndroid Build Coastguard Worker * When the id is no longer needed, call releasePduSessionId to 289*4d7e907cSAndroid Build Coastguard Worker * return it to the pool. 290*4d7e907cSAndroid Build Coastguard Worker * 291*4d7e907cSAndroid Build Coastguard Worker * Reference: 3GPP TS 24.007 section 11.2.3.1b 292*4d7e907cSAndroid Build Coastguard Worker * 293*4d7e907cSAndroid Build Coastguard Worker * @param serial Serial number of request. 294*4d7e907cSAndroid Build Coastguard Worker * 295*4d7e907cSAndroid Build Coastguard Worker * Response function is IRadioResponse.allocatePduSessionIdResponse() 296*4d7e907cSAndroid Build Coastguard Worker */ 297*4d7e907cSAndroid Build Coastguard Worker oneway allocatePduSessionId(int32_t serial); 298*4d7e907cSAndroid Build Coastguard Worker 299*4d7e907cSAndroid Build Coastguard Worker /** 300*4d7e907cSAndroid Build Coastguard Worker * Releases a pdu session id that was previously allocated using 301*4d7e907cSAndroid Build Coastguard Worker * allocatePduSessionId. 302*4d7e907cSAndroid Build Coastguard Worker * 303*4d7e907cSAndroid Build Coastguard Worker * Reference: 3GPP TS 24.007 section 11.2.3.1b 304*4d7e907cSAndroid Build Coastguard Worker * @param serial Serial number of request. 305*4d7e907cSAndroid Build Coastguard Worker * @param id Pdu session id to release. 306*4d7e907cSAndroid Build Coastguard Worker * 307*4d7e907cSAndroid Build Coastguard Worker * Response function is IRadioResponse.releasePduSessionIdResponse() 308*4d7e907cSAndroid Build Coastguard Worker */ 309*4d7e907cSAndroid Build Coastguard Worker oneway releasePduSessionId(int32_t serial, int32_t id); 310*4d7e907cSAndroid Build Coastguard Worker 311*4d7e907cSAndroid Build Coastguard Worker /** 312*4d7e907cSAndroid Build Coastguard Worker * Indicates that a handover to the IWLAN transport has begun. 313*4d7e907cSAndroid Build Coastguard Worker * 314*4d7e907cSAndroid Build Coastguard Worker * Any resources being transferred to the IWlan transport cannot be released while a 315*4d7e907cSAndroid Build Coastguard Worker * handover is underway. For example, if a pdu session id needs to be 316*4d7e907cSAndroid Build Coastguard Worker * transferred to IWlan, then, the modem should not release the id while 317*4d7e907cSAndroid Build Coastguard Worker * the handover is in progress. 318*4d7e907cSAndroid Build Coastguard Worker * 319*4d7e907cSAndroid Build Coastguard Worker * If a handover was unsuccessful, then the framework calls IRadio::cancelHandover. 320*4d7e907cSAndroid Build Coastguard Worker * The modem retains ownership over any of the resources being transferred to IWlan. 321*4d7e907cSAndroid Build Coastguard Worker * 322*4d7e907cSAndroid Build Coastguard Worker * If a handover was successful, the framework calls IRadio::deactivateDataCall with reason 323*4d7e907cSAndroid Build Coastguard Worker * HANDOVER. The IWlan transport now owns the transferred resources and is responsible for 324*4d7e907cSAndroid Build Coastguard Worker * releasing them. 325*4d7e907cSAndroid Build Coastguard Worker * 326*4d7e907cSAndroid Build Coastguard Worker * @param serial Serial number of request. 327*4d7e907cSAndroid Build Coastguard Worker * @param id callId The identifier of the data call which is provided in SetupDataCallResult 328*4d7e907cSAndroid Build Coastguard Worker * 329*4d7e907cSAndroid Build Coastguard Worker * Response function is IRadioResponse.startHandoverResponse() 330*4d7e907cSAndroid Build Coastguard Worker */ 331*4d7e907cSAndroid Build Coastguard Worker oneway startHandover(int32_t serial, int32_t callId); 332*4d7e907cSAndroid Build Coastguard Worker 333*4d7e907cSAndroid Build Coastguard Worker /** 334*4d7e907cSAndroid Build Coastguard Worker * Indicates that a handover was cancelled after a call to IRadio::startHandover. 335*4d7e907cSAndroid Build Coastguard Worker * 336*4d7e907cSAndroid Build Coastguard Worker * Since the handover was unsuccessful, the modem retains ownership over any of the resources 337*4d7e907cSAndroid Build Coastguard Worker * being transferred and is still responsible for releasing them. 338*4d7e907cSAndroid Build Coastguard Worker * 339*4d7e907cSAndroid Build Coastguard Worker * @param serial Serial number of request. 340*4d7e907cSAndroid Build Coastguard Worker * @param id callId The identifier of the data call which is provided in SetupDataCallResult 341*4d7e907cSAndroid Build Coastguard Worker * 342*4d7e907cSAndroid Build Coastguard Worker * Response function is IRadioResponse.cancelHandoverResponse() 343*4d7e907cSAndroid Build Coastguard Worker */ 344*4d7e907cSAndroid Build Coastguard Worker oneway cancelHandover(int32_t serial, int32_t callId); 345*4d7e907cSAndroid Build Coastguard Worker 346*4d7e907cSAndroid Build Coastguard Worker /** 347*4d7e907cSAndroid Build Coastguard Worker * Requests to set the network type for searching and registering. 348*4d7e907cSAndroid Build Coastguard Worker * 349*4d7e907cSAndroid Build Coastguard Worker * Instruct the radio to *only* accept the types of network provided. 350*4d7e907cSAndroid Build Coastguard Worker * setPreferredNetworkType, setPreferredNetworkTypesBitmap will not be called anymore 351*4d7e907cSAndroid Build Coastguard Worker * except for IRadio v1.5 or older devices. 352*4d7e907cSAndroid Build Coastguard Worker * 353*4d7e907cSAndroid Build Coastguard Worker * In case of an emergency call, the modem is authorized to bypass this 354*4d7e907cSAndroid Build Coastguard Worker * restriction. 355*4d7e907cSAndroid Build Coastguard Worker * 356*4d7e907cSAndroid Build Coastguard Worker * @param serial Serial number of request. 357*4d7e907cSAndroid Build Coastguard Worker * @param networkTypeBitmap a 32-bit bearer bitmap of RadioAccessFamily 358*4d7e907cSAndroid Build Coastguard Worker * 359*4d7e907cSAndroid Build Coastguard Worker * Response callback is IRadioResponse.setAllowedNetworkTypesBitmapResponse() 360*4d7e907cSAndroid Build Coastguard Worker */ 361*4d7e907cSAndroid Build Coastguard Worker oneway setAllowedNetworkTypesBitmap( 362*4d7e907cSAndroid Build Coastguard Worker uint32_t serial, bitfield<RadioAccessFamily> networkTypeBitmap); 363*4d7e907cSAndroid Build Coastguard Worker 364*4d7e907cSAndroid Build Coastguard Worker /** 365*4d7e907cSAndroid Build Coastguard Worker * Requests bitmap representing the currently allowed network types. 366*4d7e907cSAndroid Build Coastguard Worker * 367*4d7e907cSAndroid Build Coastguard Worker * getPreferredNetworkType, getPreferredNetworkTypesBitmap will not be called anymore 368*4d7e907cSAndroid Build Coastguard Worker * except for IRadio v1.5 or older devices. 369*4d7e907cSAndroid Build Coastguard Worker * 370*4d7e907cSAndroid Build Coastguard Worker * @param serial Serial number of request. 371*4d7e907cSAndroid Build Coastguard Worker * 372*4d7e907cSAndroid Build Coastguard Worker * Response callback is IRadioResponse.getAllowedNetworkTypesBitmapResponse() 373*4d7e907cSAndroid Build Coastguard Worker */ 374*4d7e907cSAndroid Build Coastguard Worker oneway getAllowedNetworkTypesBitmap(int32_t serial); 375*4d7e907cSAndroid Build Coastguard Worker 376*4d7e907cSAndroid Build Coastguard Worker /** 377*4d7e907cSAndroid Build Coastguard Worker * Control data throttling at modem. 378*4d7e907cSAndroid Build Coastguard Worker * - DataThrottlingAction:NO_DATA_THROTTLING should clear any existing 379*4d7e907cSAndroid Build Coastguard Worker * data throttling within the requested completion window. 380*4d7e907cSAndroid Build Coastguard Worker * - DataThrottlingAction:THROTTLE_SECONDARY_CARRIER: Remove any existing 381*4d7e907cSAndroid Build Coastguard Worker * throttling on anchor carrier and achieve maximum data throttling on 382*4d7e907cSAndroid Build Coastguard Worker * secondary carrier within the requested completion window. 383*4d7e907cSAndroid Build Coastguard Worker * - DataThrottlingAction:THROTTLE_ANCHOR_CARRIER: disable secondary 384*4d7e907cSAndroid Build Coastguard Worker * carrier and achieve maximum data throttling on anchor carrier by 385*4d7e907cSAndroid Build Coastguard Worker * requested completion window. 386*4d7e907cSAndroid Build Coastguard Worker * - DataThrottlingAction:HOLD: Immediately hold on to current level of 387*4d7e907cSAndroid Build Coastguard Worker * throttling. 388*4d7e907cSAndroid Build Coastguard Worker * 389*4d7e907cSAndroid Build Coastguard Worker * @param serial Serial number of request. 390*4d7e907cSAndroid Build Coastguard Worker * @param dataThrottlingAction DataThrottlingAction as defined in types.hal 391*4d7e907cSAndroid Build Coastguard Worker * @param completionDurationMillis window, in milliseconds, in which the 392*4d7e907cSAndroid Build Coastguard Worker * requested throttling action has to be achieved. This must be 0 when 393*4d7e907cSAndroid Build Coastguard Worker * dataThrottlingAction is DataThrottlingAction:HOLD. 394*4d7e907cSAndroid Build Coastguard Worker * 395*4d7e907cSAndroid Build Coastguard Worker * Response function is IRadioResponse.setDataThrottlingResponse() 396*4d7e907cSAndroid Build Coastguard Worker */ 397*4d7e907cSAndroid Build Coastguard Worker oneway setDataThrottling(int32_t serial, 398*4d7e907cSAndroid Build Coastguard Worker DataThrottlingAction dataThrottlingAction, 399*4d7e907cSAndroid Build Coastguard Worker int64_t completionDurationMillis); 400*4d7e907cSAndroid Build Coastguard Worker 401*4d7e907cSAndroid Build Coastguard Worker /** 402*4d7e907cSAndroid Build Coastguard Worker * Initiate emergency voice call, with zero or more emergency service category(s), zero or 403*4d7e907cSAndroid Build Coastguard Worker * more emergency Uniform Resource Names (URN), and routing information for handling the call. 404*4d7e907cSAndroid Build Coastguard Worker * Android uses this request to make its emergency call instead of using @1.0::IRadio.dial 405*4d7e907cSAndroid Build Coastguard Worker * if the 'address' in the 'dialInfo' field is identified as an emergency number by Android. 406*4d7e907cSAndroid Build Coastguard Worker * 407*4d7e907cSAndroid Build Coastguard Worker * In multi-sim scenario, if the emergency number is from a specific subscription, this radio 408*4d7e907cSAndroid Build Coastguard Worker * request can still be sent out on the other subscription as long as routing is set to 409*4d7e907cSAndroid Build Coastguard Worker * @1.4::EmergencyNumberRouting#EMERGENCY. This radio request will not be sent on an inactive 410*4d7e907cSAndroid Build Coastguard Worker * (PIN/PUK locked) subscription unless both subscriptions are PIN/PUK locked. In this case, 411*4d7e907cSAndroid Build Coastguard Worker * the request will be sent on the primary subscription. 412*4d7e907cSAndroid Build Coastguard Worker * 413*4d7e907cSAndroid Build Coastguard Worker * Some countries or carriers require some emergency numbers that must be handled with normal 414*4d7e907cSAndroid Build Coastguard Worker * call routing if possible or emergency routing. 1) if the 'routing' field is specified as 415*4d7e907cSAndroid Build Coastguard Worker * @1.4::EmergencyNumberRouting#NORMAL, the implementation must try the full radio service to 416*4d7e907cSAndroid Build Coastguard Worker * use normal call routing to handle the call; if service cannot support normal routing, the 417*4d7e907cSAndroid Build Coastguard Worker * implementation must use emergency routing to handle the call. 2) if 'routing' is specified 418*4d7e907cSAndroid Build Coastguard Worker * as @1.4::EmergencyNumberRouting#EMERGENCY, the implementation must use emergency routing to 419*4d7e907cSAndroid Build Coastguard Worker * handle the call. 3) if 'routing' is specified as @1.4::EmergencyNumberRouting#UNKNOWN, 420*4d7e907cSAndroid Build Coastguard Worker * Android does not know how to handle the call. 421*4d7e907cSAndroid Build Coastguard Worker * 422*4d7e907cSAndroid Build Coastguard Worker * If the dialed emergency number does not have a specified emergency service category, the 423*4d7e907cSAndroid Build Coastguard Worker * 'categories' field is set to @1.4::EmergencyServiceCategory#UNSPECIFIED; if the dialed 424*4d7e907cSAndroid Build Coastguard Worker * emergency number does not have specified emergency Uniform Resource Names, the 'urns' field 425*4d7e907cSAndroid Build Coastguard Worker * is set to an empty list. If the underlying technology used to request emergency services 426*4d7e907cSAndroid Build Coastguard Worker * does not support the emergency service category or emergency uniform resource names, the 427*4d7e907cSAndroid Build Coastguard Worker * field 'categories' or 'urns' may be ignored. 428*4d7e907cSAndroid Build Coastguard Worker * 429*4d7e907cSAndroid Build Coastguard Worker * In the scenarios that the 'address' in the 'dialInfo' field has other functions besides the 430*4d7e907cSAndroid Build Coastguard Worker * emergency number function, if the 'hasKnownUserIntentEmergency' field is true, the user's 431*4d7e907cSAndroid Build Coastguard Worker * intent for this dial request is emergency call, and the modem must treat this as an actual 432*4d7e907cSAndroid Build Coastguard Worker * emergency dial; if the 'hasKnownUserIntentEmergency' field is false, Android does not know 433*4d7e907cSAndroid Build Coastguard Worker * user's intent for this call. 434*4d7e907cSAndroid Build Coastguard Worker * 435*4d7e907cSAndroid Build Coastguard Worker * If 'isTesting' is true, this request is for testing purpose, and must not be sent to a real 436*4d7e907cSAndroid Build Coastguard Worker * emergency service; otherwise it's for a real emergency call request. 437*4d7e907cSAndroid Build Coastguard Worker * 438*4d7e907cSAndroid Build Coastguard Worker * Reference: 3gpp 22.101, Section 10 - Emergency Calls; 439*4d7e907cSAndroid Build Coastguard Worker * 3gpp 23.167, Section 6 - Functional description; 440*4d7e907cSAndroid Build Coastguard Worker * 3gpp 24.503, Section 5.1.6.8.1 - General; 441*4d7e907cSAndroid Build Coastguard Worker * RFC 5031 442*4d7e907cSAndroid Build Coastguard Worker * 443*4d7e907cSAndroid Build Coastguard Worker * @param serial Serial number of request. 444*4d7e907cSAndroid Build Coastguard Worker * @param dialInfo the same @1.0::Dial information used by @1.0::IRadio.dial. 445*4d7e907cSAndroid Build Coastguard Worker * @param categories bitfield<@1.4::EmergencyServiceCategory> the Emergency Service Category(s) 446*4d7e907cSAndroid Build Coastguard Worker * of the call. 447*4d7e907cSAndroid Build Coastguard Worker * @param urns the emergency Uniform Resource Names (URN) 448*4d7e907cSAndroid Build Coastguard Worker * @param routing @1.4::EmergencyCallRouting the emergency call routing information. 449*4d7e907cSAndroid Build Coastguard Worker * @param hasKnownUserIntentEmergency Flag indicating if user's intent for the emergency call 450*4d7e907cSAndroid Build Coastguard Worker * is known. 451*4d7e907cSAndroid Build Coastguard Worker * @param isTesting Flag indicating if this request is for testing purpose. 452*4d7e907cSAndroid Build Coastguard Worker * 453*4d7e907cSAndroid Build Coastguard Worker * Response function is IRadioResponse.emergencyDialResponse() 454*4d7e907cSAndroid Build Coastguard Worker */ 455*4d7e907cSAndroid Build Coastguard Worker oneway emergencyDial_1_6(int32_t serial, Dial dialInfo, 456*4d7e907cSAndroid Build Coastguard Worker bitfield<EmergencyServiceCategory> categories, vec<string> urns, 457*4d7e907cSAndroid Build Coastguard Worker EmergencyCallRouting routing, bool hasKnownUserIntentEmergency, bool isTesting); 458*4d7e907cSAndroid Build Coastguard Worker 459*4d7e907cSAndroid Build Coastguard Worker /** 460*4d7e907cSAndroid Build Coastguard Worker * Get which bands the modem's background scan is acting on. 461*4d7e907cSAndroid Build Coastguard Worker * 462*4d7e907cSAndroid Build Coastguard Worker * @param serial Serial number of request. 463*4d7e907cSAndroid Build Coastguard Worker * 464*4d7e907cSAndroid Build Coastguard Worker * Response callback is IRadioResponse.getSystemSelectionChannelsResponse() 465*4d7e907cSAndroid Build Coastguard Worker */ 466*4d7e907cSAndroid Build Coastguard Worker oneway getSystemSelectionChannels(int32_t serial); 467*4d7e907cSAndroid Build Coastguard Worker 468*4d7e907cSAndroid Build Coastguard Worker /** 469*4d7e907cSAndroid Build Coastguard Worker * Request all of the current cell information known to the radio. The radio 470*4d7e907cSAndroid Build Coastguard Worker * must return list of all current cells, including the neighboring cells. If for a particular 471*4d7e907cSAndroid Build Coastguard Worker * cell information isn't known then the appropriate unknown value will be returned. 472*4d7e907cSAndroid Build Coastguard Worker * This does not cause or change the rate of unsolicited cellInfoList(). 473*4d7e907cSAndroid Build Coastguard Worker * 474*4d7e907cSAndroid Build Coastguard Worker * This is identical to getCellInfoList in V1.0, but it requests updated version of CellInfo. 475*4d7e907cSAndroid Build Coastguard Worker * 476*4d7e907cSAndroid Build Coastguard Worker * @param serial Serial number of request. 477*4d7e907cSAndroid Build Coastguard Worker * 478*4d7e907cSAndroid Build Coastguard Worker * Response callback is IRadioResponse.getCellInfoListResponse() 479*4d7e907cSAndroid Build Coastguard Worker */ 480*4d7e907cSAndroid Build Coastguard Worker oneway getCellInfoList_1_6(int32_t serial); 481*4d7e907cSAndroid Build Coastguard Worker 482*4d7e907cSAndroid Build Coastguard Worker /** 483*4d7e907cSAndroid Build Coastguard Worker * Request current voice registration state. 484*4d7e907cSAndroid Build Coastguard Worker * 485*4d7e907cSAndroid Build Coastguard Worker * @param serial Serial number of request. 486*4d7e907cSAndroid Build Coastguard Worker * 487*4d7e907cSAndroid Build Coastguard Worker * Response function is IRadioResponse.getVoiceRegistrationStateResponse_1_6() 488*4d7e907cSAndroid Build Coastguard Worker */ 489*4d7e907cSAndroid Build Coastguard Worker oneway getVoiceRegistrationState_1_6(int32_t serial); 490*4d7e907cSAndroid Build Coastguard Worker 491*4d7e907cSAndroid Build Coastguard Worker /** 492*4d7e907cSAndroid Build Coastguard Worker * Requests current signal strength and associated information. Must succeed if radio is on. 493*4d7e907cSAndroid Build Coastguard Worker * 494*4d7e907cSAndroid Build Coastguard Worker * @param serial Serial number of request. 495*4d7e907cSAndroid Build Coastguard Worker * 496*4d7e907cSAndroid Build Coastguard Worker * Response function is IRadioResponse.getSignalStrengthResponse_1_6() 497*4d7e907cSAndroid Build Coastguard Worker */ 498*4d7e907cSAndroid Build Coastguard Worker oneway getSignalStrength_1_6(int32_t serial); 499*4d7e907cSAndroid Build Coastguard Worker 500*4d7e907cSAndroid Build Coastguard Worker /** 501*4d7e907cSAndroid Build Coastguard Worker * Request current data registration state. 502*4d7e907cSAndroid Build Coastguard Worker * 503*4d7e907cSAndroid Build Coastguard Worker * @param serial Serial number of request. 504*4d7e907cSAndroid Build Coastguard Worker * 505*4d7e907cSAndroid Build Coastguard Worker * Response function is IRadioResponse.getDataRegistrationStateResponse_1_6() 506*4d7e907cSAndroid Build Coastguard Worker */ 507*4d7e907cSAndroid Build Coastguard Worker oneway getDataRegistrationState_1_6(int32_t serial); 508*4d7e907cSAndroid Build Coastguard Worker 509*4d7e907cSAndroid Build Coastguard Worker /** 510*4d7e907cSAndroid Build Coastguard Worker * Requests current call list 511*4d7e907cSAndroid Build Coastguard Worker * 512*4d7e907cSAndroid Build Coastguard Worker * @param serial Serial number of request. 513*4d7e907cSAndroid Build Coastguard Worker * 514*4d7e907cSAndroid Build Coastguard Worker * Response function is IRadioResponse.getCurrentCallsResponse_1_6() 515*4d7e907cSAndroid Build Coastguard Worker */ 516*4d7e907cSAndroid Build Coastguard Worker oneway getCurrentCalls_1_6(int32_t serial); 517*4d7e907cSAndroid Build Coastguard Worker 518*4d7e907cSAndroid Build Coastguard Worker /** 519*4d7e907cSAndroid Build Coastguard Worker * Request to get the current slicing configuration including URSP rules and 520*4d7e907cSAndroid Build Coastguard Worker * NSSAIs (configured, allowed and rejected). 521*4d7e907cSAndroid Build Coastguard Worker * URSP stands for UE route selection policy and is defined in 3GPP TS 24.526 522*4d7e907cSAndroid Build Coastguard Worker * Section 4.2. 523*4d7e907cSAndroid Build Coastguard Worker * An NSSAI is a collection of network slices. Each network slice is identified by 524*4d7e907cSAndroid Build Coastguard Worker * an S-NSSAI and is represented by the struct SliceInfo. NSSAI and S-NSSAI 525*4d7e907cSAndroid Build Coastguard Worker * are defined in 3GPP TS 24.501. 526*4d7e907cSAndroid Build Coastguard Worker * 527*4d7e907cSAndroid Build Coastguard Worker * Response function is IRadioResponse.getSlicingConfigResponse() 528*4d7e907cSAndroid Build Coastguard Worker */ 529*4d7e907cSAndroid Build Coastguard Worker oneway getSlicingConfig(int32_t serial); 530*4d7e907cSAndroid Build Coastguard Worker 531*4d7e907cSAndroid Build Coastguard Worker /** 532*4d7e907cSAndroid Build Coastguard Worker * Provide Carrier specific information to the modem that must be used to 533*4d7e907cSAndroid Build Coastguard Worker * encrypt the IMSI and IMPI. Sent by the framework during boot, carrier 534*4d7e907cSAndroid Build Coastguard Worker * switch and everytime the framework receives a new certificate. 535*4d7e907cSAndroid Build Coastguard Worker * 536*4d7e907cSAndroid Build Coastguard Worker * @param serial Serial number of request. 537*4d7e907cSAndroid Build Coastguard Worker * @param imsiEncryptionInfo ImsiEncryptionInfo as defined in types.hal. 538*4d7e907cSAndroid Build Coastguard Worker * 539*4d7e907cSAndroid Build Coastguard Worker * Response callback is 540*4d7e907cSAndroid Build Coastguard Worker * IRadioResponse.setCarrierInfoForImsiEncryptionResponse() 541*4d7e907cSAndroid Build Coastguard Worker * 542*4d7e907cSAndroid Build Coastguard Worker * Note this API is the same as the 1.1 version except using the 1.6 ImsiEncryptionInfo 543*4d7e907cSAndroid Build Coastguard Worker * as the input param. 544*4d7e907cSAndroid Build Coastguard Worker */ 545*4d7e907cSAndroid Build Coastguard Worker oneway setCarrierInfoForImsiEncryption_1_6(int32_t serial, @1.6::ImsiEncryptionInfo imsiEncryptionInfo); 546*4d7e907cSAndroid Build Coastguard Worker 547*4d7e907cSAndroid Build Coastguard Worker /** 548*4d7e907cSAndroid Build Coastguard Worker * Get the local and global phonebook records from the SIM card. 549*4d7e907cSAndroid Build Coastguard Worker * This should be called again after a simPhonebookChanged notification is received. 550*4d7e907cSAndroid Build Coastguard Worker * 551*4d7e907cSAndroid Build Coastguard Worker * The phonebook records are received via IRadioIndication.simPhonebookRecordsReceived() 552*4d7e907cSAndroid Build Coastguard Worker * 553*4d7e907cSAndroid Build Coastguard Worker * @param serial Serial number of request. 554*4d7e907cSAndroid Build Coastguard Worker * 555*4d7e907cSAndroid Build Coastguard Worker * Response callback is IRadioResponse.getSimPhonebookRecordsResponse() 556*4d7e907cSAndroid Build Coastguard Worker */ 557*4d7e907cSAndroid Build Coastguard Worker oneway getSimPhonebookRecords(int32_t serial); 558*4d7e907cSAndroid Build Coastguard Worker 559*4d7e907cSAndroid Build Coastguard Worker /** 560*4d7e907cSAndroid Build Coastguard Worker * Get the phone book capacity 561*4d7e907cSAndroid Build Coastguard Worker * 562*4d7e907cSAndroid Build Coastguard Worker * @param serial Serial number of request. 563*4d7e907cSAndroid Build Coastguard Worker * 564*4d7e907cSAndroid Build Coastguard Worker * Response function is defined from IRadioResponse.getSimPhonebookCapacityResponse() 565*4d7e907cSAndroid Build Coastguard Worker */ 566*4d7e907cSAndroid Build Coastguard Worker oneway getSimPhonebookCapacity(int32_t serial); 567*4d7e907cSAndroid Build Coastguard Worker 568*4d7e907cSAndroid Build Coastguard Worker /** 569*4d7e907cSAndroid Build Coastguard Worker * Insert, delete or update a phonebook record on the SIM card. 570*4d7e907cSAndroid Build Coastguard Worker * If the index of recordInfo is 0, the phonebook record will be added to global or 571*4d7e907cSAndroid Build Coastguard Worker * local phonebook, and global phonebook has higher priority than local phonebook. 572*4d7e907cSAndroid Build Coastguard Worker * 573*4d7e907cSAndroid Build Coastguard Worker * If the fields in the recordInfo are all empty except for the index, the phonebook 574*4d7e907cSAndroid Build Coastguard Worker * record specified by the index will be deleted. 575*4d7e907cSAndroid Build Coastguard Worker * 576*4d7e907cSAndroid Build Coastguard Worker * The indication simPhonebookChanged will be called after every successful call of 577*4d7e907cSAndroid Build Coastguard Worker * updateSimPhonebookRecords. 578*4d7e907cSAndroid Build Coastguard Worker * 579*4d7e907cSAndroid Build Coastguard Worker * @param serial Serial number of request. 580*4d7e907cSAndroid Build Coastguard Worker * @param recordInfo Details of the record to insert, delete or update. 581*4d7e907cSAndroid Build Coastguard Worker * 582*4d7e907cSAndroid Build Coastguard Worker * Response callback is IRadioResponse.updateSimPhonebookRecordsResponse() 583*4d7e907cSAndroid Build Coastguard Worker */ 584*4d7e907cSAndroid Build Coastguard Worker oneway updateSimPhonebookRecords(int32_t serial, PhonebookRecordInfo recordInfo); 585*4d7e907cSAndroid Build Coastguard Worker}; 586