blob: a8c9d93525ed1f01519912febb9e21724b55ee03 [file] [log] [blame]
Amit Mahajan4cb7b842016-08-12 15:25:10 -07001/*
2 * Copyright (C) 2016 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
17package android.hardware.radio@1.0;
18
Sanket Padawe76372492016-10-27 13:20:49 -070019import IRadioResponse;
20import IRadioIndication;
Amit Mahajan4cb7b842016-08-12 15:25:10 -070021
Sanket Padawe76372492016-10-27 13:20:49 -070022/*
23 * This interface is used by telephony & telecom to talk to cellular radio.
Sanket Padawed52335c2016-11-03 16:46:32 -070024 * All the functions have minimum one parameter:
Sanket Padawe76372492016-10-27 13:20:49 -070025 * serial: which corresponds to serial no. of request. Serial numbers must only be memorized for the
26 * duration of a method call. If clients provide colliding serials (including passing the same
27 * serial to different methods), multiple responses (one for each method call) must still be served.
28 */
Amit Mahajan4cb7b842016-08-12 15:25:10 -070029interface IRadio {
Sanket Padawe76372492016-10-27 13:20:49 -070030 /*
31 * Set response functions for radio requests & radio indications.
Amit Mahajan4cb7b842016-08-12 15:25:10 -070032 *
Sanket Padawe76372492016-10-27 13:20:49 -070033 * @param radioResponse Object containing response functions
34 * @param radioIndication Object containing radio indications
Amit Mahajan4cb7b842016-08-12 15:25:10 -070035 */
Sanket Padawed52335c2016-11-03 16:46:32 -070036 setResponseFunctions(IRadioResponse radioResponse,
Sanket Padawe76372492016-10-27 13:20:49 -070037 IRadioIndication radioIndication);
Amit Mahajan4cb7b842016-08-12 15:25:10 -070038
Sanket Padawe76372492016-10-27 13:20:49 -070039 /*
Amit Mahajan4cb7b842016-08-12 15:25:10 -070040 * Requests status of the ICC card
41 *
Sanket Padawe76372492016-10-27 13:20:49 -070042 * @param serial Serial number of request.
Amit Mahajan4cb7b842016-08-12 15:25:10 -070043 *
Sanket Padawe76372492016-10-27 13:20:49 -070044 * Response function is IRadioResponse.getIccCardStatusResponse()
45 *
46 */
Sanket Padawed52335c2016-11-03 16:46:32 -070047 oneway getIccCardStatus(int32_t serial);
Sanket Padawe76372492016-10-27 13:20:49 -070048
49 /*
50 * Supplies ICC PIN. Only called if CardStatus has AppState.PIN state
Amit Mahajan4cb7b842016-08-12 15:25:10 -070051 *
Sanket Padawe76372492016-10-27 13:20:49 -070052 * @param serial Serial number of request.
53 * @param pin PIN value
54 * @param aid AID value, See ETSI 102.221 8.1 and 101.220 4, empty string if no value.
55 *
56 * Response function is IRadioResponse.supplyIccPinForAppResponse()
57 *
Amit Mahajan4cb7b842016-08-12 15:25:10 -070058 */
Sanket Padawed52335c2016-11-03 16:46:32 -070059 oneway supplyIccPinForApp(int32_t serial, string pin, string aid);
Sanket Padawe76372492016-10-27 13:20:49 -070060
61 /*
62 * Supplies ICC PUK and new PIN.
63 *
Sanket Padawe76372492016-10-27 13:20:49 -070064 * @param serial Serial number of request.
65 * @param puk PUK value
66 * @param pin New PIN value
67 * @param aid AID value, See ETSI 102.221 8.1 and 101.220 4, empty string if no value.
68 *
69 * Response function is IRadioResponse.supplyIccPukForAppResponse()
70 *
71 */
Sanket Padawed52335c2016-11-03 16:46:32 -070072 oneway supplyIccPukForApp(int32_t serial, string puk, string pin, string aid);
Sanket Padawe76372492016-10-27 13:20:49 -070073
74 /*
75 * Supplies ICC PIN2. Only called following operation where SIM_PIN2 was
76 * returned as a a failure from a previous operation.
77 *
Sanket Padawe76372492016-10-27 13:20:49 -070078 * @param serial Serial number of request.
79 * @param pin2 PIN2 value
80 * @param aid AID value, See ETSI 102.221 8.1 and 101.220 4, empty string if no value.
81 *
82 * Response function is IRadioResponse.supplyIccPin2ForAppResponse()
83 *
84 */
Sanket Padawed52335c2016-11-03 16:46:32 -070085 oneway supplyIccPin2ForApp(int32_t serial, string pin2, string aid);
Sanket Padawe76372492016-10-27 13:20:49 -070086
87 /*
88 * Supplies ICC PUK2 and new PIN2.
89 *
Sanket Padawe76372492016-10-27 13:20:49 -070090 * @param serial Serial number of request.
91 * @param puk2 PUK2 value
92 * @param pin2 New PIN2 value
93 * @param aid AID value, See ETSI 102.221 8.1 and 101.220 4, empty string if no value.
94 *
95 * Response function is IRadioResponse.supplyIccPuk2ForAppResponse()
96 *
97 */
Sanket Padawed52335c2016-11-03 16:46:32 -070098 oneway supplyIccPuk2ForApp(int32_t serial, string puk2, string pin2,
Sanket Padawe76372492016-10-27 13:20:49 -070099 string aid);
100
101 /*
102 * Supplies old ICC PIN and new PIN.
103 *
Sanket Padawe76372492016-10-27 13:20:49 -0700104 * @param serial Serial number of request.
105 * @param oldPin Old pin value
106 * @param newPin New pin value
107 * @param aid AID value, See ETSI 102.221 8.1 and 101.220 4, empty string if no value.
108 *
109 * Response function is IRadioResponse.changeIccPinForAppResponse()
110 *
111 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700112 oneway changeIccPinForApp(int32_t serial, string oldPin, string newPin,
Sanket Padawe76372492016-10-27 13:20:49 -0700113 string aid);
114
115 /*
116 * Supplies old ICC PIN2 and new PIN2.
117 *
Sanket Padawe76372492016-10-27 13:20:49 -0700118 * @param serial Serial number of request.
119 * @param oldPin2 Old pin2 value
120 * @param newPin2 New pin2 value
121 * @param aid AID value, See ETSI 102.221 8.1 and 101.220 4, empty string if no value.
122 *
123 * Response function is IRadioResponse.changeIccPin2ForAppResponse()
124 *
125 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700126 oneway changeIccPin2ForApp(int32_t serial, string oldPin2, string newPin2,
Sanket Padawe76372492016-10-27 13:20:49 -0700127 string aid);
128
129 /*
130 * Requests that network personalization be deactivated
131 *
Sanket Padawe76372492016-10-27 13:20:49 -0700132 * @param serial Serial number of request.
133 * @param netPin Network depersonlization code
134 *
135 * Response function is IRadioResponse.supplyNetworkDepersonalizationResponse()
136 *
137 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700138 oneway supplyNetworkDepersonalization(int32_t serial, string netPin);
Sanket Padawe76372492016-10-27 13:20:49 -0700139
140 /*
141 * Requests current call list
142 *
Sanket Padawe76372492016-10-27 13:20:49 -0700143 * @param serial Serial number of request.
144 *
145 * Response function is IRadioResponse.getCurrentCallsResponse()
146 *
147 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700148 oneway getCurrentCalls(int32_t serial);
Sanket Padawe76372492016-10-27 13:20:49 -0700149
150 /*
151 * Initiate voice call.
152 * This method is never used for supplementary service codes
153 *
Sanket Padawe76372492016-10-27 13:20:49 -0700154 * @param serial Serial number of request.
155 * @param dialInfo Dial struct
156 *
157 * Response function is IRadioResponse.dialResponse()
158 *
159 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700160 oneway dial(int32_t serial, Dial dialInfo);
Sanket Padawe76372492016-10-27 13:20:49 -0700161
162 /*
163 * Get the SIM IMSI
164 * Only valid when radio state is "RADIO_STATE_ON"
165 *
Sanket Padawe76372492016-10-27 13:20:49 -0700166 * @param serial Serial number of request.
167 * @param aid AID value, See ETSI 102.221 8.1 and 101.220 4, empty string if no value.
168 *
169 * Response function is IRadioResponse.getImsiForAppResponse()
170 *
171 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700172 oneway getImsiForApp(int32_t serial, string aid);
Sanket Padawe76372492016-10-27 13:20:49 -0700173
174 /*
175 * Hang up a specific line (like AT+CHLD=1x)
176 * After this HANGUP request returns, Radio must show the connection is NOT
177 * active anymore in next requestGetCurrentCalls query.
178 *
Sanket Padawe76372492016-10-27 13:20:49 -0700179 * @param serial Serial number of request.
180 * @param gsmIndex Connection index (value of 'x' in CHLD above)
181 *
182 * Response function is IRadioResponse.hangupResponse()
183 *
184 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700185 oneway hangup(int32_t serial, int32_t gsmIndex);
Sanket Padawe76372492016-10-27 13:20:49 -0700186
187 /*
188 * Hang up waiting or held (like AT+CHLD=0)
189 * After this HANGUP request returns, Radio must show the connection is NOT
190 * active anymore in next getCurrentCalls() query.
191 *
Sanket Padawe76372492016-10-27 13:20:49 -0700192 * @param serial Serial number of request.
193 *
194 * Response function is IRadioResponse.hangupWaitingOrBackgroundResponse()
195 *
196 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700197 oneway hangupWaitingOrBackground(int32_t serial);
Sanket Padawe76372492016-10-27 13:20:49 -0700198
199 /*
200 * Hang up waiting or held (like AT+CHLD=1)
201 * After this HANGUP request returns, Radio must show the connection is NOT
202 * active anymore in next getCurrentCalls query.
203 *
Sanket Padawe76372492016-10-27 13:20:49 -0700204 * @param serial Serial number of request.
205 *
206 * Response function is IRadioResponse.hangupForegroundResumeBackgroundResponse()
207 *
208 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700209 oneway hangupForegroundResumeBackground(int32_t serial);
Sanket Padawe76372492016-10-27 13:20:49 -0700210
211 /*
212 * Switch waiting or holding call and active call (like AT+CHLD=2)
213 * State transitions must be as follows:
214 *
215 * Call transitions must happen as shown below.
216 *
217 * BEFORE AFTER
218 * Call 1 Call 2 Call 1 Call 2
219 * ACTIVE HOLDING HOLDING ACTIVE
220 * ACTIVE WAITING HOLDING ACTIVE
221 * HOLDING WAITING HOLDING ACTIVE
222 * ACTIVE IDLE HOLDING IDLE
223 * IDLE IDLE IDLE IDLE
224 *
Sanket Padawe76372492016-10-27 13:20:49 -0700225 * @param serial Serial number of request.
226 *
227 * Response function is IRadioResponse.switchWaitingOrHoldingAndActiveResponse()
228 *
229 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700230 oneway switchWaitingOrHoldingAndActive(int32_t serial);
Sanket Padawe76372492016-10-27 13:20:49 -0700231
232 /*
233 * Conference holding and active (like AT+CHLD=3)
234 *
Sanket Padawe76372492016-10-27 13:20:49 -0700235 * @param serial Serial number of request.
236 *
237 * Response function is IRadioResponse.conferenceResponse()
238 *
239 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700240 oneway conference(int32_t serial);
Sanket Padawe76372492016-10-27 13:20:49 -0700241
242 /*
243 * Send UDUB (user determined user busy) to ringing or
244 * waiting call answer)
245 *
Sanket Padawe76372492016-10-27 13:20:49 -0700246 * @param serial Serial number of request.
247 *
248 * Response function is IRadioResponse.rejectCallResponse()
249 *
250 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700251 oneway rejectCall(int32_t serial);
Sanket Padawe76372492016-10-27 13:20:49 -0700252
253 /*
254 * Requests the failure cause code for the most recently terminated call.
255 *
Sanket Padawe76372492016-10-27 13:20:49 -0700256 * @param serial Serial number of request.
257 *
258 * Response function is IRadioResponse.getLastCallFailCauseResponse()
259 *
260 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700261 oneway getLastCallFailCause(int32_t serial);
Sanket Padawe76372492016-10-27 13:20:49 -0700262
263 /*
264 * Requests current signal strength and associated information.
265 * Must succeed if radio is on.
266 *
Sanket Padawe76372492016-10-27 13:20:49 -0700267 * @param serial Serial number of request.
268 *
269 * Response function is IRadioResponse.getSignalStrengthResponse()
270 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700271 oneway getSignalStrength(int32_t serial);
Sanket Padawe76372492016-10-27 13:20:49 -0700272
273 /*
274 * Request current voice registration state
275 *
Sanket Padawe76372492016-10-27 13:20:49 -0700276 * @param serial Serial number of request.
277 *
278 * Response function is IRadioResponse.getVoiceRegistrationStateResponse()
279 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700280 oneway getVoiceRegistrationState(int32_t serial);
Sanket Padawe76372492016-10-27 13:20:49 -0700281
282 /*
283 * Request current data registration state
284 *
Sanket Padawe76372492016-10-27 13:20:49 -0700285 * @param serial Serial number of request.
286 *
287 * Response function is IRadioResponse.getDataRegistrationStateResponse()
288 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700289 oneway getDataRegistrationState(int32_t serial);
Sanket Padawe76372492016-10-27 13:20:49 -0700290
291 /*
292 * Request current operator ONS or EONS
293 *
Sanket Padawe76372492016-10-27 13:20:49 -0700294 * @param serial Serial number of request.
295 *
296 * Response function is IRadioResponse.getOperatorResponse()
297 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700298 oneway getOperator(int32_t serial);
Sanket Padawe76372492016-10-27 13:20:49 -0700299
300 /*
301 * Toggle radio on and off (for "airplane" mode)
302 * If the radio is turned off/on the radio modem subsystem
303 * is expected return to an initialized state. For instance,
304 * any voice and data calls must be terminated and all associated
305 * lists emptied.
306 *
Sanket Padawe76372492016-10-27 13:20:49 -0700307 * @param serial Serial number of request.
308 * @param on To turn on radio -> on = true, to turn off radio -> on = false.
309 *
310 * Response function is IRadioResponse.setRadioPowerResponse()
311 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700312 oneway setRadioPower(int32_t serial, bool on);
Sanket Padawe76372492016-10-27 13:20:49 -0700313
314 /*
315 * Send a DTMF tone
316 *
317 * If the implementation is currently playing a tone requested via
318 * startDtmf(), that tone must be cancelled and the new tone
319 * must be played instead
320 *
Sanket Padawe76372492016-10-27 13:20:49 -0700321 * @param serial Serial number of request.
322 * @param s string with single char having one of 12 values: 0-9, *, #
323 *
324 * Response function is IRadioResponse.sendDtmfResponse()
325 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700326 oneway sendDtmf(int32_t serial, string s);
Sanket Padawe76372492016-10-27 13:20:49 -0700327
328 /*
329 * Send an SMS message
330 *
Sanket Padawe76372492016-10-27 13:20:49 -0700331 * @param serial Serial number of request.
Sanket Padawed52335c2016-11-03 16:46:32 -0700332 * @param message GsmSmsMessage as defined in types.hal
Sanket Padawe76372492016-10-27 13:20:49 -0700333 *
334 * Response function is IRadioResponse.sendSmsResponse()
335 *
336 * Based on the return error, caller decides to resend if sending sms
337 * fails. RadioError:SMS_SEND_FAIL_RETRY means retry (i.e. error cause is 332)
338 * and RadioError:GENERIC_FAILURE means no retry (i.e. error cause is 500)
339 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700340 oneway sendSms(int32_t serial, GsmSmsMessage message);
Sanket Padawe76372492016-10-27 13:20:49 -0700341
342 /*
343 * Send an SMS message. Identical to sendSms,
344 * except that more messages are expected to be sent soon. If possible,
345 * keep SMS relay protocol link open (eg TS 27.005 AT+CMMS command)
346 *
Sanket Padawe76372492016-10-27 13:20:49 -0700347 * @param serial Serial number of request.
Sanket Padawed52335c2016-11-03 16:46:32 -0700348 * @param message GsmSmsMessage as defined in types.hal
Sanket Padawe76372492016-10-27 13:20:49 -0700349 *
350 * Response function is IRadioResponse.sendSMSExpectMoreResponse()
351 *
352 * Based on the return error, caller decides to resend if sending sms
353 * fails. RadioError:SMS_SEND_FAIL_RETRY means retry (i.e. error cause is 332)
354 * and RadioError:GENERIC_FAILURE means no retry (i.e. error cause is 500)
355 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700356 oneway sendSMSExpectMore(int32_t serial, GsmSmsMessage message);
Sanket Padawe76372492016-10-27 13:20:49 -0700357
358 /*
359 * Setup a packet data connection. If DataCallResponse.status
360 * return DataCallFailCause:NONE it is added to the list of data calls and a
361 * unsolDataCallListChanged() is sent. The call remains in the
362 * list until deactivateDataCall() is issued or the
363 * radio is powered off/on. This list is returned by getDataCallList()
364 * and dataCallListChanged().
365 *
Sanket Padawed52335c2016-11-03 16:46:32 -0700366 * The Radio is expected to:
Sanket Padawe76372492016-10-27 13:20:49 -0700367 * - Create one data call context.
368 * - Create and configure a dedicated interface for the context
369 * - The interface must be point to point.
370 * - The interface is configured with one or more addresses and
371 * is capable of sending and receiving packets. The prefix length
372 * of the addresses must be /32 for IPv4 and /128 for IPv6.
373 * - Must NOT change the linux routing table.
374 * - Support up to getDataRegistrationState response[5]
375 * number of simultaneous data call contexts.
376 *
Sanket Padawe76372492016-10-27 13:20:49 -0700377 * @param serial Serial number of request.
Jack Yued7ef812017-01-24 11:56:52 -0800378 * @param radioTechnology Radio technology to use.
379 * @param dataProfileInfo data profile info.
380 * @param modemCognitive Indicating this profile was sent to the modem through setDataProfile
Jack Yu439a6e72017-02-23 12:40:56 -0800381 * earlier.
Jack Yued7ef812017-01-24 11:56:52 -0800382 * @param roamingAllowed Indicating data roaming is allowed or not by the user.
Jack Yu439a6e72017-02-23 12:40:56 -0800383 * @param isRoaming Indicating the device is roaming or not. The 'protocol' parameter in the old
384 * RIL API must be filled accordingly based on the roaming condition.
385 * Note this is for backward compatibility with the old radio modem. The modem
386 * must not use this param for any other reason.
Sanket Padawe76372492016-10-27 13:20:49 -0700387 *
388 * Response function is IRadioResponse.setupDataCallResponse()
389 */
Jack Yued7ef812017-01-24 11:56:52 -0800390 oneway setupDataCall(int32_t serial, RadioTechnology radioTechnology,
Jack Yu439a6e72017-02-23 12:40:56 -0800391 DataProfileInfo dataProfileInfo, bool modemCognitive, bool roamingAllowed,
392 bool isRoaming);
Sanket Padawe76372492016-10-27 13:20:49 -0700393
394 /*
395 * Request ICC I/O operation.
396 * This is similar to the TS 27.007 "restricted SIM" operation
397 * where it assumes all of the EF selection must be done by the
398 * callee
399 *
400 * Arguments and responses that are unused for certain
401 * values of "command" must be ignored or set to empty string
402 *
Sanket Padawe76372492016-10-27 13:20:49 -0700403 * @param serial Serial number of request.
404 * @param iccIo IccIo
405 *
406 * Please note that IccIo has a "PIN2" field which may be empty string,
407 * or may specify a PIN2 for operations that require a PIN2 (eg
408 * updating FDN records)
409 *
410 * Response function is IRadioResponse.iccIOForAppResponse()
411 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700412 oneway iccIOForApp(int32_t serial, IccIo iccIo);
Sanket Padawe76372492016-10-27 13:20:49 -0700413
414 /*
415 * Send a USSD message.
416 *
417 * If a USSD session already exists, the message must be sent in the
418 * context of that session. Otherwise, a new session must be created.
419 *
420 * The network reply must be reported via unsolOnUssd
421 *
422 * Only one USSD session must exist at a time, and the session is assumed
423 * to exist until:
424 * a) The android system invokes cancelUssd()
425 * b) The implementation sends a unsolOnUssd() with a type code
426 * of "0" (USSD-Notify/no further action) or "2" (session terminated)
427 *
Sanket Padawe76372492016-10-27 13:20:49 -0700428 * @param serial Serial number of request.
429 * @param ussd string containing the USSD request in UTF-8 format
430 *
431 * Response function is IRadioResponse.sendUssdResponse()
432 *
433 * See also requestCancelUssd, unsolOnUssd
434 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700435 oneway sendUssd(int32_t serial, string ussd);
Sanket Padawe76372492016-10-27 13:20:49 -0700436
437 /*
438 * Cancel the current USSD session if one exists.
439 *
Sanket Padawe76372492016-10-27 13:20:49 -0700440 * @param serial Serial number of request.
441 *
442 * Response function is IRadioResponse.cancelPendingUssdResponse()
443 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700444 oneway cancelPendingUssd(int32_t serial);
Sanket Padawe76372492016-10-27 13:20:49 -0700445
446 /*
447 * Gets current CLIR status
448 *
Sanket Padawe76372492016-10-27 13:20:49 -0700449 * @param serial Serial number of request.
450 *
451 * Response function is IRadioResponse.getClirResponse()
452 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700453 oneway getClir(int32_t serial);
Sanket Padawe76372492016-10-27 13:20:49 -0700454
455 /*
456 * Set current CLIR status
457 *
Sanket Padawe76372492016-10-27 13:20:49 -0700458 * @param serial Serial number of request.
459 * @param status "n" parameter from TS 27.007 7.7
460 *
461 * Response function is IRadioResponse.setClirResponse()
462 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700463 oneway setClir(int32_t serial, int32_t status);
Sanket Padawe76372492016-10-27 13:20:49 -0700464
465 /*
466 * Request call forward status.
467 *
Sanket Padawe76372492016-10-27 13:20:49 -0700468 * @param serial Serial number of request.
469 * @param callInfo CallForwardInfo
470 *
471 * Response function is IRadioResponse.getCallForwardStatusResponse()
472 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700473 oneway getCallForwardStatus(int32_t serial,
Sanket Padawe76372492016-10-27 13:20:49 -0700474 CallForwardInfo callInfo);
475
476 /*
477 * Configure call forward rule
478 *
Sanket Padawe76372492016-10-27 13:20:49 -0700479 * @param serial Serial number of request.
480 * @param callInfo CallForwardInfo
481 *
482 * Response function is IRadioResponse.setCallForwardResponse()
483 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700484 oneway setCallForward(int32_t serial, CallForwardInfo callInfo);
Sanket Padawe76372492016-10-27 13:20:49 -0700485
486 /*
487 * Query current call waiting state
488 *
Sanket Padawe76372492016-10-27 13:20:49 -0700489 * @param serial Serial number of request.
490 * @param serviceClass Service class is the TS 27.007 service class to query
491 *
492 * Response function is IRadioResponse.getCallWaitingResponse()
493 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700494 oneway getCallWaiting(int32_t serial, int32_t serviceClass);
Sanket Padawe76372492016-10-27 13:20:49 -0700495
496 /*
497 * Configure current call waiting state
498 *
Sanket Padawe76372492016-10-27 13:20:49 -0700499 * @param serial Serial number of request.
500 * @param enable is false for "disabled" and true for "enabled"
501 * @param serviceClass is the TS 27.007 service class bit vector of services to modify
502 *
503 * Response function is IRadioResponse.setCallWaitingResponse()
504 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700505 oneway setCallWaiting(int32_t serial, bool enable,
Sanket Padawe76372492016-10-27 13:20:49 -0700506 int32_t serviceClass);
507
508 /*
509 * Acknowledge successful or failed receipt of SMS previously indicated
510 * via unsolResponseNewSms
511 *
Sanket Padawe76372492016-10-27 13:20:49 -0700512 * @param serial Serial number of request.
513 * @param success is true on successful receipt
514 * (basically, AT+CNMA=1 from TS 27.005 is 0 on failed receipt
515 * (basically, AT+CNMA=2 from TS 27.005)
516 * @param cause: if success is false, this contains the failure cause as defined
517 * in TS 23.040, 9.2.3.22.
518 *
519 * Response function is IRadioResponse.acknowledgeLastIncomingGsmSmsResponse()
520 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700521 oneway acknowledgeLastIncomingGsmSms(int32_t serial, bool success,
Sanket Padawe76372492016-10-27 13:20:49 -0700522 SmsAcknowledgeFailCause cause);
523
524 /*
525 * Answer incoming call
526 * Must not be called for WAITING calls.
527 * switchWaitingOrHoldingAndActive() must be used in this case
528 * instead
529 *
Sanket Padawe76372492016-10-27 13:20:49 -0700530 * @param serial Serial number of request.
531 *
532 * Response function is IRadioResponse.acceptCallResponse()
533 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700534 oneway acceptCall(int32_t serial);
Sanket Padawe76372492016-10-27 13:20:49 -0700535
536 /*
537 * Deactivate packet data connection and remove from the
538 * data call list if RadioError:NONE is returned. Any other return
539 * values must also try to remove the call from the list. An
540 * unsolDataCallListChanged must be
541 * issued because of an deactivateDataCall.
542 *
Sanket Padawe76372492016-10-27 13:20:49 -0700543 * @param serial Serial number of request.
544 * @param cid Indicates CID
545 * @param reasonRadioShutDown Indicates Disconnect Reason
546 * false => No specific reason specified
547 * true => Radio shutdown requested
548 *
549 * Response function is IRadioResponse.deactivateDataCallResponse()
550 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700551 oneway deactivateDataCall(int32_t serial, int32_t cid,
Sanket Padawe76372492016-10-27 13:20:49 -0700552 bool reasonRadioShutDown);
553
554 /*
555 * Query the status of a facility lock state
556 *
Sanket Padawe76372492016-10-27 13:20:49 -0700557 * @param serial Serial number of request.
558 * @param facility is the facility string code from TS 27.007 7.4
559 * (eg "AO" for BAOC, "SC" for SIM lock)
560 * @param password is the password, or "" if not required
561 * @param serviceClass is the TS 27.007 service class bit vector of services to query
562 * @param appId is AID value, See ETSI 102.221 8.1 and 101.220 4, empty string if no value.
563 * This is only applicable in the case of Fixed Dialing Numbers (FDN) requests.
564 *
565 * Response function is IRadioResponse.getFacilityLockForAppResponse()
566 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700567 oneway getFacilityLockForApp(int32_t serial, string facility,
Sanket Padawe76372492016-10-27 13:20:49 -0700568 string password, int32_t serviceClass, string appId);
569
570 /*
571 * Enable/disable one facility lock
572 *
Sanket Padawe76372492016-10-27 13:20:49 -0700573 * @param serial Serial number of request.
574 * @param facility is the facility string code from TS 27.007 7.4 (eg "AO" for BAOC)
575 * @param lockState false for "unlock" and true for "lock"
576 * @param password is the password
577 * @param serviceClass is string representation of decimal TS 27.007
578 * service class bit vector. Eg, the string
579 * "1" means "set this facility for voice services"
580 * @param appId is AID value, See ETSI 102.221 8.1 and 101.220 4, empty string if no value.
581 * This is only applicable in the case of Fixed Dialing Numbers (FDN) requests.
582 *
583 * Response function is IRadioResponse.setFacilityLockForAppResponse()
584 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700585 oneway setFacilityLockForApp(int32_t serial, string facility, bool lockState,
Sanket Padawe76372492016-10-27 13:20:49 -0700586 string password, int32_t serviceClass, string appId);
587
588 /*
589 * Change call barring facility password
590 *
Sanket Padawe76372492016-10-27 13:20:49 -0700591 * @param serial Serial number of request.
592 * @param facility facility string code from TS 27.007 7.4 (eg "AO" for BAOC)
593 * @param oldPassword old password
594 * @param newPassword new password
595 *
596 * Response function is IRadioResponse.setBarringPasswordResponse()
597 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700598 oneway setBarringPassword(int32_t serial, string facility,
Sanket Padawe76372492016-10-27 13:20:49 -0700599 string oldPassword, string newPassword);
600
601 /*
602 * Query current network selection mode
603 *
Sanket Padawe76372492016-10-27 13:20:49 -0700604 * @param serial Serial number of request.
605 *
606 * Response function is IRadioResponse.getNetworkSelectionModeResponse()
607 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700608 oneway getNetworkSelectionMode(int32_t serial);
Sanket Padawe76372492016-10-27 13:20:49 -0700609
610 /*
611 * Specify that the network must be selected automatically.
612 * This request must not respond until the new operator is selected and registered.
613 *
Sanket Padawe76372492016-10-27 13:20:49 -0700614 * @param serial Serial number of request.
615 *
616 * Response function is IRadioResponse.setNetworkSelectionModeAutomaticResponse()
617 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700618 oneway setNetworkSelectionModeAutomatic(int32_t serial);
Sanket Padawe76372492016-10-27 13:20:49 -0700619
620 /*
621 * Manually select a specified network.
622 * This request must not respond until the new operator is selected and registered.
623 *
Sanket Padawe76372492016-10-27 13:20:49 -0700624 * @param serial Serial number of request.
625 * @param operatorNumeric string specifying MCCMNC of network to select (eg "310170")
626 *
627 * Response function is IRadioResponse.setNetworkSelectionModeManualResponse()
628 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700629 oneway setNetworkSelectionModeManual(int32_t serial, string operatorNumeric);
Sanket Padawe76372492016-10-27 13:20:49 -0700630
631 /*
632 * Scans for available networks
633 * This request must not respond until the new operator is selected and registered.
634 *
Sanket Padawe76372492016-10-27 13:20:49 -0700635 * @param serial Serial number of request.
636 *
637 * Response function is IRadioResponse.getAvailableNetworksResponse()
638 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700639 oneway getAvailableNetworks(int32_t serial);
Sanket Padawe76372492016-10-27 13:20:49 -0700640
641 /*
642 * Start playing a DTMF tone. Continue playing DTMF tone until
643 * stopDtmf is received.
644 * If a startDtmf() is received while a tone is currently playing,
645 * it must cancel the previous tone and play the new one.
646 *
Sanket Padawe76372492016-10-27 13:20:49 -0700647 * @param serial Serial number of request.
648 * @param s string having a single character with one of 12 values: 0-9,*,#
649 *
650 * Response function is IRadioResponse.startDtmfResponse()
651 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700652 oneway startDtmf(int32_t serial, string s);
Sanket Padawe76372492016-10-27 13:20:49 -0700653
654 /*
655 * Stop playing a currently playing DTMF tone.
656 *
Sanket Padawe76372492016-10-27 13:20:49 -0700657 * @param serial Serial number of request.
658 *
659 * Response function is IRadioResponse.stopDtmfResponse()
660 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700661 oneway stopDtmf(int32_t serial);
Sanket Padawe76372492016-10-27 13:20:49 -0700662
663 /*
664 * Return string value indicating baseband version, eg response from AT+CGMR
665 *
Sanket Padawe76372492016-10-27 13:20:49 -0700666 * @param serial Serial number of request.
667 *
668 * Response function is IRadioResponse.getBasebandVersionResponse()
669 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700670 oneway getBasebandVersion(int32_t serial);
Sanket Padawe76372492016-10-27 13:20:49 -0700671
672 /*
673 * Separate a party from a multiparty call placing the multiparty call
674 * (less the specified party) on hold and leaving the specified party
675 * as the only other member of the current (active) call
676 *
677 * Like AT+CHLD=2x
678 *
679 * See TS 22.084 1.3.8.2 (iii)
680 * TS 22.030 6.5.5 "Entering "2X followed by send"
681 * TS 27.007 "AT+CHLD=2x"
682 *
Sanket Padawe76372492016-10-27 13:20:49 -0700683 * @param serial Serial number of request.
684 * @param gsmIndex contains Connection index (value of 'x' in CHLD above)
685 *
686 * Response function is IRadioResponse.separateConnectionResponse()
687 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700688 oneway separateConnection(int32_t serial, int32_t gsmIndex);
Sanket Padawe76372492016-10-27 13:20:49 -0700689
690 /*
691 * Turn on or off uplink (microphone) mute.
692 * Must only be sent while voice call is active.
693 * Must always be reset to "disable mute" when a new voice call is initiated
694 *
Sanket Padawe76372492016-10-27 13:20:49 -0700695 * @param serial Serial number of request.
696 * @param enable true for "enable mute" and false for "disable mute"
697 *
698 * Response function is IRadioResponse.setMuteResponse()
699 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700700 oneway setMute(int32_t serial, bool enable);
Sanket Padawe76372492016-10-27 13:20:49 -0700701
702 /*
703 * Queries the current state of the uplink mute setting
704 *
Sanket Padawe76372492016-10-27 13:20:49 -0700705 * @param serial Serial number of request.
706 *
707 * Response function is IRadioResponse.getMuteResponse()
708 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700709 oneway getMute(int32_t serial);
Sanket Padawe76372492016-10-27 13:20:49 -0700710
711 /*
712 * Queries the status of the CLIP supplementary service
713 * (for MMI code "*#30#")
714 *
Sanket Padawe76372492016-10-27 13:20:49 -0700715 * @param serial Serial number of request.
716 *
717 * Response function is IRadioResponse.getClipResponse()
718 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700719 oneway getClip(int32_t serial);
Sanket Padawe76372492016-10-27 13:20:49 -0700720
721 /*
722 * Returns the data call list. An entry is added when a
723 * setupDataCall() is issued and removed on a
724 * deactivateDataCall(). The list is emptied when
725 * setRadioPower() off/on is issued.
726 *
Sanket Padawe76372492016-10-27 13:20:49 -0700727 * @param serial Serial number of request.
728 *
729 * Response function is IRadioResponse.getDataCallListResponse()
730 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700731 oneway getDataCallList(int32_t serial);
Sanket Padawe76372492016-10-27 13:20:49 -0700732
733 /*
Sanket Padawe76372492016-10-27 13:20:49 -0700734 * Indicates the current state of the screen. When the screen is off, the
735 * Radio must notify the baseband to suppress certain notifications (eg,
736 * signal strength and changes in LAC/CID or BID/SID/NID/latitude/longitude)
737 * in an effort to conserve power. These notifications must resume when the
738 * screen is on.
739 *
Sanket Padawe76372492016-10-27 13:20:49 -0700740 * @param serial Serial number of request.
741 * @param enable true = screen on, false = screen off.
742 *
743 * Response function is IRadioResponse.sendScreenStateResponse()
744 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700745 oneway sendScreenState(int32_t serial, bool enable);
Sanket Padawe76372492016-10-27 13:20:49 -0700746
747 /*
748 * Enables/disables supplementary service related notifications from the network.
749 * Notifications are reported via unsolSuppSvcNotification().
750 *
Sanket Padawe76372492016-10-27 13:20:49 -0700751 * @param serial Serial number of request.
752 * @param enable true = notifications enabled, false = notifications disabled.
753 *
754 * Response function is IRadioResponse.setSuppServiceNotificationsResponse()
755 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700756 oneway setSuppServiceNotifications(int32_t serial, bool enable);
Sanket Padawe76372492016-10-27 13:20:49 -0700757
758 /*
759 * Stores a SMS message to SIM memory.
760 *
Sanket Padawe76372492016-10-27 13:20:49 -0700761 * @param serial Serial number of request.
762 * @param smsWriteArgs SmsWriteArgs defined in types.hal
763 *
764 * Response function is IRadioResponse.writeSmsToSimResponse()
765 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700766 oneway writeSmsToSim(int32_t serial, SmsWriteArgs smsWriteArgs);
Sanket Padawe76372492016-10-27 13:20:49 -0700767
768 /*
769 * Deletes a SMS message from SIM memory.
770 *
Sanket Padawe76372492016-10-27 13:20:49 -0700771 * @param serial Serial number of request.
772 * @param index Record index of the message to delete.
773 *
774 * Response function is IRadioResponse.deleteSmsOnSimResponse()
775 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700776 oneway deleteSmsOnSim(int32_t serial, int32_t index);
Sanket Padawe76372492016-10-27 13:20:49 -0700777
778 /*
779 * Assign a specified band for RF configuration.
780 *
Sanket Padawe76372492016-10-27 13:20:49 -0700781 * @param serial Serial number of request.
782 * @param mode RadioBandMode defined in types.hal
783 *
784 * Response function is IRadioResponse.setBandModeResponse()
785 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700786 oneway setBandMode(int32_t serial, RadioBandMode mode);
Sanket Padawe76372492016-10-27 13:20:49 -0700787
788 /*
789 * Get the list of band modes supported by RF.
790 *
Sanket Padawe76372492016-10-27 13:20:49 -0700791 * @param serial Serial number of request.
792 *
793 * Response function is IRadioResponse.getAvailableBandModesResponse()
794 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700795 oneway getAvailableBandModes(int32_t serial);
Sanket Padawe76372492016-10-27 13:20:49 -0700796
797 /*
798 * Requests to send a SAT/USAT envelope command to SIM.
799 * The SAT/USAT envelope command refers to 3GPP TS 11.14 and 3GPP TS 31.111
800 *
Sanket Padawe76372492016-10-27 13:20:49 -0700801 * @param serial Serial number of request.
802 * @param command SAT/USAT command in hexadecimal format string starting with command tag
803 *
804 * Response function is IRadioResponse.sendEnvelopeResponse()
805 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700806 oneway sendEnvelope(int32_t serial, string command);
Sanket Padawe76372492016-10-27 13:20:49 -0700807
808 /*
809 * Requests to send a terminal response to SIM for a received proactive command
810 *
Sanket Padawe76372492016-10-27 13:20:49 -0700811 * @param serial Serial number of request.
812 * @param commandResponse SAT/USAT response in hexadecimal format string starting with
813 * first byte of response data
814 *
815 * Response function is IRadioResponse.sendTerminalResponseResponseToSim()
816 */
Sanket Padawed52335c2016-11-03 16:46:32 -0700817 oneway sendTerminalResponseToSim(int32_t serial, string commandResponse);
818
819 /*
820 * When STK application gets stkCallSetup(), the call actually has
821 * been initialized by mobile device already. (We could see the call has been in the 'call
822 * list') So, STK application needs to accept/reject the call according to user
823 * operations.
824 *
825 * @param serial Serial number of request.
826 * @param accept true = accept the call setup, false = reject the call setup
827 *
Jack Yued7ef812017-01-24 11:56:52 -0800828 * Response callback is IRadioResponse.handleStkCallSetupRequestFromSimResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -0700829 */
830 oneway handleStkCallSetupRequestFromSim(int32_t serial,
831 bool accept);
832
833 /*
834 * Connects the two calls and disconnects the subscriber from both calls.
835 *
836 * @param serial Serial number of request.
837 *
Jack Yued7ef812017-01-24 11:56:52 -0800838 * Response callback is IRadioResponse.explicitCallTransferResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -0700839 */
840 oneway explicitCallTransfer(int32_t serial);
841
842 /*
843 * Requests to set the preferred network type for searching and registering
844 * (CS/PS domain, RAT, and operation mode)
845 *
846 * @param serial Serial number of request.
847 * @param nwType PreferredNetworkType defined in types.hal
848 *
Jack Yued7ef812017-01-24 11:56:52 -0800849 * Response callback is IRadioResponse.setPreferredNetworkTypeResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -0700850 */
851 oneway setPreferredNetworkType(int32_t serial,
852 PreferredNetworkType nwType);
853
854 /*
855 * Query the preferred network type (CS/PS domain, RAT, and operation mode)
856 * for searching and registering
857 *
858 * @param serial Serial number of request.
859 *
Jack Yued7ef812017-01-24 11:56:52 -0800860 * Response callback is IRadioResponse.getPreferredNetworkTypeResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -0700861 */
862 oneway getPreferredNetworkType(int32_t serial);
863
864 /*
865 * Request neighboring cell id in GSM network
866 *
867 * @param serial Serial number of request.
868 *
Jack Yued7ef812017-01-24 11:56:52 -0800869 * Response callback is IRadioResponse.getNeighboringCidsResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -0700870 */
871 oneway getNeighboringCids(int32_t serial);
872
873 /*
874 * Enables/disables network state change notifications due to changes in
875 * LAC and/or CID (for GSM) or BID/SID/NID/latitude/longitude (for CDMA).
876 * Basically +CREG=2 vs. +CREG=1 (TS 27.007).
877 * Note: The Radio implementation must default to "updates enabled"
878 * when the screen is on and "updates disabled" when the screen is off.
879 *
880 * @param serial Serial number of request.
881 * @param enable true = updates enabled (+CREG=2), false = updates disabled (+CREG=1)
882 *
Jack Yued7ef812017-01-24 11:56:52 -0800883 * Response callback is IRadioResponse.setLocationUpdatesResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -0700884 */
885 oneway setLocationUpdates(int32_t serial, bool enable);
886
887 /*
888 * Request to set the location where the CDMA subscription shall
889 * be retrieved
890 *
891 * @param serial Serial number of request.
892 * @param cdmaSub CdmaSubscriptionSource
893 *
Jack Yued7ef812017-01-24 11:56:52 -0800894 * Response callback is IRadioResponse.setCdmaSubscriptionSourceResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -0700895 */
896 oneway setCdmaSubscriptionSource(int32_t serial,
897 CdmaSubscriptionSource cdmaSub);
898
899 /*
900 * Request to set the roaming preferences in CDMA
901 *
902 * @param serial Serial number of request.
903 * @param type CdmaRoamingType defined in types.hal
904 *
Jack Yued7ef812017-01-24 11:56:52 -0800905 * Response callback is IRadioResponse.setCdmaRoamingPreferenceResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -0700906 */
907 oneway setCdmaRoamingPreference(int32_t serial,
908 CdmaRoamingType type);
909
910 /*
911 * Request the actual setting of the roaming preferences in CDMA in the modem
912 *
913 * @param serial Serial number of request.
914 *
Jack Yued7ef812017-01-24 11:56:52 -0800915 * Response callback is IRadioResponse.getCdmaRoamingPreferenceResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -0700916 */
917 oneway getCdmaRoamingPreference(int32_t serial);
918
919 /*
920 * Request to set the TTY mode
921 *
922 * @param serial Serial number of request.
923 * @param mode TtyMode
924 *
Jack Yued7ef812017-01-24 11:56:52 -0800925 * Response callback is IRadioResponse.setTTYModeResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -0700926 */
927 oneway setTTYMode(int32_t serial, TtyMode mode);
928
929 /*
930 * Request the setting of TTY mode
931 *
932 * @param serial Serial number of request.
933 *
Jack Yued7ef812017-01-24 11:56:52 -0800934 * Response callback is IRadioResponse.getTTYModeResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -0700935 */
936 oneway getTTYMode(int32_t serial);
937
938 /*
939 * Request to set the preferred voice privacy mode used in voice scrambling.
940 *
941 * @param serial Serial number of request.
942 * @param enable false for Standard Privacy Mode (Public Long Code Mask)
943 * true for Enhanced Privacy Mode (Private Long Code Mask)
944 *
Jack Yued7ef812017-01-24 11:56:52 -0800945 * Response callback is IRadioResponse.setPreferredVoicePrivacyResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -0700946 */
947 oneway setPreferredVoicePrivacy(int32_t serial, bool enable);
948
949 /*
950 * Request the setting of preferred voice privacy mode.
951 *
952 * @param serial Serial number of request.
953 *
Jack Yued7ef812017-01-24 11:56:52 -0800954 * Response callback is IRadioResponse.getPreferredVoicePrivacyResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -0700955 */
956 oneway getPreferredVoicePrivacy(int32_t serial);
957
958 /*
959 * Send FLASH command
960 *
961 * @param serial Serial number of request.
962 * @param featureCode String associated with Flash command
963 *
Jack Yued7ef812017-01-24 11:56:52 -0800964 * Response callback is IRadioResponse.sendCDMAFeatureCodeResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -0700965 */
966 oneway sendCDMAFeatureCode(int32_t serial, string featureCode);
967
968 /*
969 * Send DTMF string
970 *
971 * @param serial Serial number of request.
972 * @param dtmf DTMF string
973 * @param on DTMF ON length in milliseconds, or 0 to use default
974 * @param off is the DTMF OFF length in milliseconds, or 0 to use default
975 *
Jack Yued7ef812017-01-24 11:56:52 -0800976 * Response callback is IRadioResponse.sendBurstDtmfResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -0700977 */
978 oneway sendBurstDtmf(int32_t serial, string dtmf, int32_t on, int32_t off);
979
980 /*
981 * Send a CDMA SMS message
982 *
983 * @param serial Serial number of request.
984 * @param sms Cdma Sms to be sent described by CdmaSmsMessage in types.hal
985 *
Jack Yued7ef812017-01-24 11:56:52 -0800986 * Response callback is IRadioResponse.sendCdmaSmsResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -0700987 */
988 oneway sendCdmaSms(int32_t serial, CdmaSmsMessage sms);
989
990 /*
991 * Acknowledge the success or failure in the receipt of SMS
992 * previously indicated via responseCdmaNewSms()
993 *
994 * @param serial Serial number of request.
995 * @param smsAck Cdma Sms ack to be sent described by CdmaSmsAck in types.hal
996 *
Jack Yued7ef812017-01-24 11:56:52 -0800997 * Response callback is IRadioResponse.acknowledgeLastIncomingCdmaSmsResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -0700998 */
999 oneway acknowledgeLastIncomingCdmaSms(int32_t serial, CdmaSmsAck smsAck);
1000
1001 /*
1002 * Request the setting of GSM/WCDMA Cell Broadcast SMS config.
1003 *
1004 * @param serial Serial number of request.
1005 *
Jack Yued7ef812017-01-24 11:56:52 -08001006 * Response callback is IRadioResponse.getGsmBroadcastConfigResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -07001007 */
1008 oneway getGsmBroadcastConfig(int32_t serial);
1009
1010 /*
1011 * Set GSM/WCDMA Cell Broadcast SMS config
1012 *
1013 * @param serial Serial number of request.
1014 * @param configInfo Setting of GSM/WCDMA Cell broadcast config
1015 *
Jack Yued7ef812017-01-24 11:56:52 -08001016 * Response callback is IRadioResponse.setGsmBroadcastConfigResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -07001017 */
Sanket Padawe865834e2016-12-28 16:04:10 -08001018 oneway setGsmBroadcastConfig(int32_t serial, vec<GsmBroadcastSmsConfigInfo> configInfo);
Sanket Padawed52335c2016-11-03 16:46:32 -07001019
1020 /*
1021 * Enable or disable the reception of GSM/WCDMA Cell Broadcast SMS
1022 *
1023 * @param serial Serial number of request.
1024 * @param activate indicates to activate or turn off the reception of GSM/WCDMA
1025 * Cell Broadcast SMS. true = activate, false = turn off
1026 *
Jack Yued7ef812017-01-24 11:56:52 -08001027 * Response callback is IRadioResponse.setGsmBroadcastActivationResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -07001028 */
1029 oneway setGsmBroadcastActivation(int32_t serial, bool activate);
1030
1031 /*
1032 * Request the setting of CDMA Broadcast SMS config
1033 *
1034 * @param serial Serial number of request.
1035 *
Jack Yued7ef812017-01-24 11:56:52 -08001036 * Response callback is IRadioResponse.getCdmaBroadcastConfigResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -07001037 */
1038 oneway getCdmaBroadcastConfig(int32_t serial);
1039
1040 /*
1041 * Set CDMA Broadcast SMS config
1042 *
1043 * @param serial Serial number of request.
1044 * @param configInfo CDMA Broadcast SMS config to be set.
1045 *
Jack Yued7ef812017-01-24 11:56:52 -08001046 * Response callback is IRadioResponse.setCdmaBroadcastConfigResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -07001047 */
Sanket Padawe865834e2016-12-28 16:04:10 -08001048 oneway setCdmaBroadcastConfig(int32_t serial, vec<CdmaBroadcastSmsConfigInfo> configInfo);
Sanket Padawed52335c2016-11-03 16:46:32 -07001049
1050 /*
1051 * Enable or disable the reception of CDMA Cell Broadcast SMS
1052 *
1053 * @param serial Serial number of request.
1054 * @param activate indicates to activate or turn off the reception of CDMA
1055 * Cell Broadcast SMS. true = activate, false = turn off
1056 *
Jack Yued7ef812017-01-24 11:56:52 -08001057 * Response callback is IRadioResponse.setCdmaBroadcastActivationResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -07001058 */
1059 oneway setCdmaBroadcastActivation(int32_t serial, bool activate);
1060
1061 /*
1062 * Request the device MDN / H_SID / H_NID.
1063 * The request is only allowed when CDMA subscription is available. When CDMA
1064 * subscription is changed, application layer must re-issue the request to
1065 * update the subscription information.
1066 *
1067 * @param serial Serial number of request.
1068 *
Jack Yued7ef812017-01-24 11:56:52 -08001069 * Response callback is IRadioResponse.getCDMASubscriptionResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -07001070 */
1071 oneway getCDMASubscription(int32_t serial);
1072
1073 /*
1074 * Stores a CDMA SMS message to RUIM memory.
1075 *
1076 * @param serial Serial number of request.
1077 * @param cdmaSms CDMA message as defined by CdmaSmsWriteArgs in types.hal
1078 *
Jack Yued7ef812017-01-24 11:56:52 -08001079 * Response callback is IRadioResponse.writeSmsToRuimResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -07001080 */
1081 oneway writeSmsToRuim(int32_t serial, CdmaSmsWriteArgs cdmaSms);
1082
1083 /*
1084 * Deletes a CDMA SMS message from RUIM memory.
1085 *
1086 * @param serial Serial number of request.
1087 * @param index record index of the message to delete
1088 *
Jack Yued7ef812017-01-24 11:56:52 -08001089 * Response callback is IRadioResponse.deleteSmsOnRuimResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -07001090 */
1091 oneway deleteSmsOnRuim(int32_t serial, int32_t index);
1092
1093 /*
1094 * Request the device ESN / MEID / IMEI / IMEISV.
1095 * The request is always allowed and contains GSM and CDMA device identity.
1096 * When CDMA subscription is changed the ESN/MEID changes. The application
1097 * layer must re-issue the request to update the device identity in this case.
1098 *
1099 * @param serial Serial number of request.
1100 *
Jack Yued7ef812017-01-24 11:56:52 -08001101 * Response callback is IRadioResponse.getDeviceIdentityResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -07001102 */
1103 oneway getDeviceIdentity(int32_t serial);
1104
1105 /*
1106 * Request the radio's system selection module to exit emergency
1107 * callback mode. Radio must not respond with SUCCESS until the modem has
1108 * completely exited from Emergency Callback Mode.
1109 *
1110 * @param serial Serial number of request.
1111 *
Jack Yued7ef812017-01-24 11:56:52 -08001112 * Response callback is IRadioResponse.exitEmergencyCallbackModeResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -07001113 */
1114 oneway exitEmergencyCallbackMode(int32_t serial);
1115
1116 /*
1117 * Get the default Short Message Service Center address on the device.
1118 *
1119 * @param serial Serial number of request.
1120 *
Jack Yued7ef812017-01-24 11:56:52 -08001121 * Response callback is IRadioResponse.getSmscAddressResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -07001122 */
1123 oneway getSmscAddress(int32_t serial);
1124
1125 /*
1126 * Set the default Short Message Service Center address on the device.
1127 *
1128 * @param serial Serial number of request.
1129 * @param smsc Short Message Service Center address to set
1130 *
Jack Yued7ef812017-01-24 11:56:52 -08001131 * Response callback is IRadioResponse.setSmscAddressResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -07001132 */
1133 oneway setSmscAddress(int32_t serial, string smsc);
1134
1135 /*
1136 * Indicates whether there is storage available for new SMS messages.
1137 *
1138 * @param serial Serial number of request.
1139 * @param available true if memory is available for storing new messages,
1140 * false if memory capacity is exceeded
1141 *
Jack Yued7ef812017-01-24 11:56:52 -08001142 * Response callback is IRadioResponse.reportSmsMemoryStatusResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -07001143 */
1144 oneway reportSmsMemoryStatus(int32_t serial, bool available);
1145
1146 /*
Jack Yu439a6e72017-02-23 12:40:56 -08001147 * Indicates that the StkService is running and is
Sanket Padawed52335c2016-11-03 16:46:32 -07001148 * ready to receive unsolicited stkXXXXX commands.
1149 *
1150 * @param serial Serial number of request.
1151 *
Jack Yued7ef812017-01-24 11:56:52 -08001152 * Response callback is IRadioResponse.reportStkServiceIsRunningResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -07001153 */
1154 oneway reportStkServiceIsRunning(int32_t serial);
1155
1156 /*
1157 * Request to query the location where the CDMA subscription shall be retrieved.
1158 *
1159 * @param serial Serial number of request.
1160 *
Jack Yued7ef812017-01-24 11:56:52 -08001161 * Response callback is IRadioResponse.getCdmaSubscriptionSourceResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -07001162 */
1163 oneway getCdmaSubscriptionSource(int32_t serial);
1164
1165 /*
1166 * Request the ISIM application on the UICC to perform AKA
1167 * challenge/response algorithm for IMS authentication
1168 *
1169 * @param serial Serial number of request.
1170 * @param challenge challenge string in Base64 format
1171 *
Jack Yued7ef812017-01-24 11:56:52 -08001172 * Response callback is IRadioResponse.requestIsimAuthenticationResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -07001173 */
1174 oneway requestIsimAuthentication(int32_t serial, string challenge);
1175
1176 /*
1177 * Acknowledge successful or failed receipt of SMS previously indicated
1178 * via unsol responseNewSms(), including acknowledgement TPDU to send
1179 * as the RP-User-Data element of the RP-ACK or RP-ERROR PDU.
1180 *
1181 * @param serial Serial number of request.
1182 * @param success true on successful receipt (send RP-ACK)
1183 * false on failed receipt (send RP-ERROR)
1184 * @param ackPdu acknowledgement TPDU in hexadecimal format
1185 *
Jack Yued7ef812017-01-24 11:56:52 -08001186 * Response callback is IRadioResponse.acknowledgeIncomingGsmSmsWithPduResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -07001187 */
1188 oneway acknowledgeIncomingGsmSmsWithPdu(int32_t serial, bool success, string ackPdu);
1189
1190 /*
1191 * Requests to send a SAT/USAT envelope command to SIM.
1192 * The SAT/USAT envelope command refers to 3GPP TS 11.14 and 3GPP TS 31.111.
1193 *
1194 * This request has one difference from sendEnvelope():
1195 * the SW1 and SW2 status bytes from the UICC response are returned along with
1196 * the response data, using the same structure as iccIOForApp().
1197 *
1198 * The implementation must perform normal processing of a '91XX'
1199 * response in SW1/SW2 to retrieve the pending proactive command and send it
1200 * as an unsolicited response, as sendEnvelope() does.
1201 *
1202 * @param serial Serial number of request.
1203 * @param contents SAT/USAT command in hexadecimal format starting with command tag
1204 *
Jack Yued7ef812017-01-24 11:56:52 -08001205 * Response callback is IRadioResponse.sendEnvelopeWithStatusResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -07001206 */
1207 oneway sendEnvelopeWithStatus(int32_t serial, string contents);
1208
1209 /*
1210 * Query the radio technology type (3GPP/3GPP2) used for voice. Query is valid only
1211 * when radio state is not RADIO_STATE_UNAVAILABLE
1212 *
1213 * @param serial Serial number of request.
1214 *
Jack Yued7ef812017-01-24 11:56:52 -08001215 * Response callback is IRadioResponse.getVoiceRadioTechnologyResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -07001216 */
1217 oneway getVoiceRadioTechnology(int32_t serial);
1218
1219 /*
1220 * Request all of the current cell information known to the radio. The radio
1221 * must return list of all current cells, including the neighboring cells. If for a particular
1222 * cell information isn't known then the appropriate unknown value will be returned.
1223 * This does not cause or change the rate of unsolicited cellInfoList().
1224 *
1225 * @param serial Serial number of request.
1226 *
Jack Yued7ef812017-01-24 11:56:52 -08001227 * Response callback is IRadioResponse.getCellInfoListResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -07001228 */
1229 oneway getCellInfoList(int32_t serial);
1230
1231 /*
1232 * Sets the minimum time between when unsolicited cellInfoList() must be invoked.
1233 * A value of 0, means invoke cellInfoList() when any of the reported
1234 * information changes. Setting the value to INT_MAX(0x7fffffff) means never issue
1235 * a unsolicited cellInfoList().
1236 *
1237 * @param serial Serial number of request.
1238 * @param rate minimum time in milliseconds to indicate time between unsolicited cellInfoList()
1239 *
Jack Yued7ef812017-01-24 11:56:52 -08001240 * Response callback is IRadioResponse.setCellInfoListRateResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -07001241 */
1242 oneway setCellInfoListRate(int32_t serial, int32_t rate);
1243
1244 /*
1245 * Set an apn to initial attach network
1246 *
1247 * @param serial Serial number of request.
Jack Yued7ef812017-01-24 11:56:52 -08001248 * @param dataProfileInfo data profile containing APN settings
Jack Yu439a6e72017-02-23 12:40:56 -08001249 * @param modemCognitive indicating the data profile was sent to the modem through
1250 * setDataProfile earlier.
1251 * @param isRoaming Indicating the device is roaming or not. The 'protocol' parameter in the old
1252 * RIL_InitialAttachApn must be filled accordingly based on the roaming
1253 * condition. Note this is for backward compatibility with the old radio modem.
1254 * The modem must not use this param for any other reason.
Sanket Padawed52335c2016-11-03 16:46:32 -07001255 *
Jack Yued7ef812017-01-24 11:56:52 -08001256 * Response callback is IRadioResponse.setInitialAttachApnResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -07001257 */
Jack Yued7ef812017-01-24 11:56:52 -08001258 oneway setInitialAttachApn(int32_t serial, DataProfileInfo dataProfileInfo,
Jack Yu439a6e72017-02-23 12:40:56 -08001259 bool modemCognitive, bool isRoaming);
Sanket Padawed52335c2016-11-03 16:46:32 -07001260
1261 /*
1262 * Request current IMS registration state
1263 *
1264 * @param serial Serial number of request.
1265 *
Jack Yued7ef812017-01-24 11:56:52 -08001266 * Response callback is IRadioResponse.getImsRegistrationStateResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -07001267 */
1268 oneway getImsRegistrationState(int32_t serial);
1269
1270 /*
1271 * Send a SMS message over IMS.
1272 * Based on the return error, caller decides to resend if sending sms
1273 * fails. SMS_SEND_FAIL_RETRY means retry, and other errors means no retry.
1274 * In case of retry, data is encoded based on Voice Technology available.
1275 *
1276 * @param serial Serial number of request.
1277 * @param message ImsSmsMessage as defined in types.hal to be sent
1278 *
Jack Yued7ef812017-01-24 11:56:52 -08001279 * Response callback is IRadioResponse.sendImsSmsResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -07001280 */
1281 oneway sendImsSms(int32_t serial, ImsSmsMessage message);
1282
1283 /*
1284 * Request APDU exchange on the basic channel. This command reflects TS 27.007
1285 * "generic SIM access" operation (+CSIM). The modem must ensure proper function
1286 * of GSM/CDMA, and filter commands appropriately. It must filter
1287 * channel management and SELECT by DF name commands.
1288 * "sessionid" field must be ignored.
1289 *
1290 * @param serial Serial number of request.
1291 * @param message SimApdu as defined in types.hal to be sent
1292 *
Jack Yued7ef812017-01-24 11:56:52 -08001293 * Response callback is IRadioResponse.iccTransmitApduBasicChannelResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -07001294 */
1295 oneway iccTransmitApduBasicChannel(int32_t serial, SimApdu message);
1296
1297 /*
1298 * Open a new logical channel and select the given application. This command
1299 * reflects TS 27.007 "open logical channel" operation (+CCHO).
1300 *
1301 * @param serial Serial number of request.
1302 * @param aid AID value, See ETSI 102.221 and 101.220.
1303 *
Jack Yued7ef812017-01-24 11:56:52 -08001304 * Response callback is IRadioResponse.iccOpenLogicalChannelResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -07001305 */
1306 oneway iccOpenLogicalChannel(int32_t serial, string aid);
1307
1308 /*
1309 * Close a previously opened logical channel. This command reflects TS 27.007
1310 * "close logical channel" operation (+CCHC).
1311 *
1312 * @param serial Serial number of request.
1313 * @param channelId session id of the logical channel (+CCHC).
1314 *
Jack Yued7ef812017-01-24 11:56:52 -08001315 * Response callback is IRadioResponse.iccCloseLogicalChannelResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -07001316 */
1317 oneway iccCloseLogicalChannel(int32_t serial, int32_t channelId);
1318
1319 /*
1320 * Exchange APDUs with a UICC over a previously opened logical channel. This
1321 * command reflects TS 27.007 "generic logical channel access" operation
1322 * (+CGLA). The modem must filter channel management and SELECT by DF name
1323 * commands.
1324 *
1325 * @param serial Serial number of request.
1326 * @param message SimApdu as defined in types.hal to be sent
1327 *
Jack Yued7ef812017-01-24 11:56:52 -08001328 * Response callback is IRadioResponse.iccTransmitApduLogicalChannelResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -07001329 */
1330 oneway iccTransmitApduLogicalChannel(int32_t serial, SimApdu message);
1331
1332 /*
1333 * Read one of the radio NV items.
1334 * This is used for device configuration by some CDMA operators.
1335 *
1336 * @param serial Serial number of request.
1337 * @param itemId NvItem is radio NV item as defined in types.hal
1338 *
Jack Yued7ef812017-01-24 11:56:52 -08001339 * Response callback is IRadioResponse.nvReadItemResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -07001340 */
1341 oneway nvReadItem(int32_t serial, NvItem itemId);
1342
1343 /*
1344 * Write one of the radio NV items.
1345 * This is used for device configuration by some CDMA operators.
1346 *
1347 * @param serial Serial number of request.
1348 * @param item NvWriteItem as defined in types.hal
1349 *
Jack Yued7ef812017-01-24 11:56:52 -08001350 * Response callback is IRadioResponse.nvWriteItemResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -07001351 */
1352 oneway nvWriteItem(int32_t serial, NvWriteItem item);
1353
1354 /*
1355 * Update the CDMA Preferred Roaming List (PRL) in the radio NV storage.
1356 * This is used for device configuration by some CDMA operators.
1357 *
1358 * @param serial Serial number of request.
1359 * @param prl PRL as a byte array
1360 *
Jack Yued7ef812017-01-24 11:56:52 -08001361 * Response callback is IRadioResponse.nvWriteCdmaPrlResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -07001362 */
1363 oneway nvWriteCdmaPrl(int32_t serial, vec<uint8_t> prl);
1364
1365 /*
1366 * Reset the radio NV configuration to the factory state.
1367 * This is used for device configuration by some CDMA operators.
1368 *
1369 * @param serial Serial number of request.
1370 * @param resetType ResetNvType as defined in types.hal
1371 *
Jack Yued7ef812017-01-24 11:56:52 -08001372 * Response callback is IRadioResponse.nvResetConfigResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -07001373 */
1374 oneway nvResetConfig(int32_t serial, ResetNvType resetType);
1375
1376 /*
1377 * Selection/de-selection of a subscription from a SIM card
1378 *
1379 * @param serial Serial number of request.
1380 * @param uiccSub SelectUiccSub as defined in types.hal
1381 *
Jack Yued7ef812017-01-24 11:56:52 -08001382 * Response callback is IRadioResponse.setUiccSubscriptionResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -07001383 */
1384 oneway setUiccSubscription(int32_t serial, SelectUiccSub uiccSub);
1385
1386 /*
1387 * Tells the modem whether data calls are allowed or not
1388 *
1389 * @param serial Serial number of request.
1390 * @param allow true to allow data calls, false to disallow data calls
1391 *
Jack Yued7ef812017-01-24 11:56:52 -08001392 * Response callback is IRadioResponse.setDataAllowedResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -07001393 */
1394 oneway setDataAllowed(int32_t serial, bool allow);
1395
1396 /*
1397 * Request all of the current hardware (modem and sim) associated with Radio.
1398 *
1399 * @param serial Serial number of request.
1400 *
Jack Yued7ef812017-01-24 11:56:52 -08001401 * Response callback is IRadioResponse.getHardwareConfigResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -07001402 */
1403 oneway getHardwareConfig(int32_t serial);
1404
1405 /*
1406 * Returns the response of SIM Authentication through Radio challenge request.
1407 *
1408 * @param serial Serial number of request.
1409 * @param authContext P2 value of authentication command, see P2 parameter in
1410 * 3GPP TS 31.102 7.1.2
1411 * @param authData the challenge string in Base64 format, see 3GPP TS 31.102 7.1.2
1412 * @param aid AID value, See ETSI 102.221 8.1 and 101.220 4, empty string if no value
1413 *
Jack Yued7ef812017-01-24 11:56:52 -08001414 * Response callback is IRadioResponse.requestIccSimAuthenticationResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -07001415 */
1416 oneway requestIccSimAuthentication(int32_t serial, int32_t authContext, string authData,
1417 string aid);
1418
1419 /*
1420 * Set data profile in modem.
1421 * Modem must erase existed profiles from framework, and apply new profiles
1422 *
1423 * @param serial Serial number of request.
1424 * @param profiles Array of DataProfiles to set.
Jack Yu439a6e72017-02-23 12:40:56 -08001425 * @param isRoaming Indicating the device is roaming or not. The 'protocol' parameter in the old
1426 * RIL API RIL_DataProfileInfo must be filled accordingly based on the
1427 * roaming condition. Note this is for backward compatibility with the old
1428 * radio modem. The modem must not use this param for any other reason.
Sanket Padawed52335c2016-11-03 16:46:32 -07001429 *
Jack Yued7ef812017-01-24 11:56:52 -08001430 * Response callback is IRadioResponse.setDataProfileResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -07001431 */
Jack Yu439a6e72017-02-23 12:40:56 -08001432 oneway setDataProfile(int32_t serial, vec<DataProfileInfo> profiles, bool isRoaming);
Sanket Padawed52335c2016-11-03 16:46:32 -07001433
1434 /*
1435 * Device is shutting down. All further commands are ignored
1436 * and RADIO_NOT_AVAILABLE must be returned.
1437 *
1438 * @param serial Serial number of request.
1439 *
Jack Yued7ef812017-01-24 11:56:52 -08001440 * Response callback is IRadioResponse.requestShutdownResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -07001441 */
1442 oneway requestShutdown(int32_t serial);
1443
1444 /*
Jack Yu439a6e72017-02-23 12:40:56 -08001445 * Used to get phone radio capability.
Sanket Padawed52335c2016-11-03 16:46:32 -07001446 *
1447 * @param serial Serial number of request.
1448 *
Jack Yued7ef812017-01-24 11:56:52 -08001449 * Response callback is IRadioResponse.getRadioCapabilityResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -07001450 */
1451 oneway getRadioCapability(int32_t serial);
1452
1453 /*
1454 * Used to set the phones radio capability. Be VERY careful
1455 * using this request as it may cause some vendor modems to reset. Because
1456 * of the possible modem reset any radio commands after this one may not be
1457 * processed.
1458 *
1459 * @param serial Serial number of request.
1460 * @param rc RadioCapability structure to be set
1461 *
Jack Yued7ef812017-01-24 11:56:52 -08001462 * Response callback is IRadioResponse.setRadioCapabilityResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -07001463 */
1464 oneway setRadioCapability(int32_t serial, RadioCapability rc);
1465
1466 /*
1467 * Start Link Capacity Estimate (LCE) service if supported by the radio.
1468 *
1469 * @param serial Serial number of request.
1470 * @param reportInterval desired reporting interval (ms).
1471 * @param pullMode LCE service mode. true: PULL; false: PUSH.
1472 *
Jack Yued7ef812017-01-24 11:56:52 -08001473 * Response callback is IRadioResponse.startLceServiceResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -07001474 */
1475 oneway startLceService(int32_t serial, int32_t reportInterval, bool pullMode);
1476
1477 /*
1478 * Stop Link Capacity Estimate (LCE) service, the STOP operation must be
1479 * idempotent for the radio modem.
1480 *
1481 * @param serial Serial number of request.
1482 *
Jack Yued7ef812017-01-24 11:56:52 -08001483 * Response callback is IRadioResponse.stopLceServiceResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -07001484 */
1485 oneway stopLceService(int32_t serial);
1486
1487 /*
1488 * Pull LCE service for capacity information.
1489 *
1490 * @param serial Serial number of request.
1491 *
Jack Yued7ef812017-01-24 11:56:52 -08001492 * Response callback is IRadioResponse.pullLceDataResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -07001493 */
1494 oneway pullLceData(int32_t serial);
1495
1496 /*
1497 * Get modem activity information for power consumption estimation.
1498 * Request clear-on-read statistics information that is used for
1499 * estimating the per-millisecond power consumption of the cellular
1500 * modem.
1501 *
1502 * @param serial Serial number of request.
1503 *
Jack Yued7ef812017-01-24 11:56:52 -08001504 * Response callback is IRadioResponse.getModemActivityInfoResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -07001505 */
1506 oneway getModemActivityInfo(int32_t serial);
1507
1508 /*
1509 * Set carrier restrictions. Expected modem behavior:
1510 * If never receives this command
1511 * - Must allow all carriers
1512 * Receives this command with allAllowed true
1513 * - Must allow all carriers. If a previously allowed SIM is present, modem must not reload
1514 * the SIM. If a previously disallowed SIM is present, reload the SIM and notify Android.
1515 * Receives this command with a list of carriers & allAllowed = false
1516 * - Only allow specified carriers, persist across power cycles and FDR. If a present SIM
1517 * is in the allowed list, modem must not reload the SIM. If a present SIM is *not* in
1518 * the allowed list, modem must detach from the registered network and only keep emergency
1519 * service, and notify Android SIM refresh reset with new SIM state being
1520 * CardState:RESTRICTED. Emergency service must be enabled.
1521 *
1522 * @param serial Serial number of request.
1523 * @param allAllowed true only when all carriers are allowed. Ignore "carriers" struct.
1524 * If false, consider "carriers" struct
1525 * @param carriers CarrierRestrictions consisting allowed and excluded carriers as defined
1526 * in types.hal
1527 *
Jack Yued7ef812017-01-24 11:56:52 -08001528 * Response callback is IRadioResponse.setAllowedCarriersResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -07001529 */
1530 oneway setAllowedCarriers(int32_t serial, bool allAllowed, CarrierRestrictions carriers);
1531
1532 /*
1533 * Get carrier restrictions.
1534 *
1535 * @param serial Serial number of request.
1536 *
Jack Yued7ef812017-01-24 11:56:52 -08001537 * Response callback is IRadioResponse.getAllowedCarriersResponse()
Sanket Padawed52335c2016-11-03 16:46:32 -07001538 */
1539 oneway getAllowedCarriers(int32_t serial);
Sanket Padawef6e345a2016-11-17 15:28:31 -08001540
1541 /*
Jack Yued7ef812017-01-24 11:56:52 -08001542 * Send the updated device state.
1543 * This is providing the device state information for the modem to perform power saving
1544 * strategies.
1545 *
1546 * @param serial Serial number of request.
1547 * @param deviceStateType The updated device state type.
1548 * @param state The updated state. See the definition of state at DeviceStateType.
1549 *
1550 * Response callback is IRadioResponse.sendDeviceStateResponse()
1551 */
1552 oneway sendDeviceState(int32_t serial, DeviceStateType deviceStateType, bool state);
1553
1554 /*
1555 * Set the indication filter.
1556 * This is used to prevent unnecessary application processor wake up for power saving purposes
1557 * by suppressing the indications in certain scenarios.
1558 *
1559 * @param serial Serial number of request.
1560 * @param indicationFilter 32-bit bitmap of IndicationFilter. Bits set to 1 indicate the
1561 * indications are enabled. See IndicationFilter for the definition of each bit.
1562 *
1563 * Response callback is IRadioResponse.setIndicationFilterResponse()
1564 */
1565 oneway setIndicationFilter(int32_t serial, bitfield<IndicationFilter> indicationFilter);
1566
1567 /*
Jack Yua2118692017-02-15 15:31:34 -08001568 * Set SIM card power state.
1569 * Request is equivalent to inserting or removing the card.
1570 *
1571 * The radio modem must generate IRadioIndication.simStatusChanged() as if the SIM had been
1572 * inserted or removed.
1573 *
1574 * @param serial Serial number of request
1575 * @param powerUp True if powering up the sim card
1576 *
1577 * Response callback is IRadioResponse.setSimCardPowerResponse()
1578 */
1579 oneway setSimCardPower(int32_t serial, bool powerUp);
1580
1581 /*
Sanket Padawef6e345a2016-11-17 15:28:31 -08001582 * When response type received from a radio indication or radio response is
1583 * RadioIndicationType:UNSOLICITED_ACK_EXP or RadioResponseType:SOLICITED_ACK_EXP respectively,
Jack Yued7ef812017-01-24 11:56:52 -08001584 * acknowledge the receipt of those messages by sending responseAcknowledgement().
Sanket Padawef6e345a2016-11-17 15:28:31 -08001585 *
1586 */
1587 oneway responseAcknowledgement();
Sanket Padawe865834e2016-12-28 16:04:10 -08001588};