2 * Copyright (C) 2016 The Android Open Source Project
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
8 * http://www.apache.org/licenses/LICENSE-2.0
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.
17 package android.hardware.radio@1.0;
19 import IRadioResponse;
20 import IRadioIndication;
23 * This interface is used by telephony & telecom to talk to cellular radio.
24 * All the functions have minimum two parameters:
25 * slotId: which corresponds to sim slot id.
26 * serial: which corresponds to serial no. of request. Serial numbers must only be memorized for the
27 * duration of a method call. If clients provide colliding serials (including passing the same
28 * serial to different methods), multiple responses (one for each method call) must still be served.
32 * Set response functions for radio requests & radio indications.
34 * @param slotId SIM slot id for which the function is called; needed for multi-sim
35 * @param radioResponse Object containing response functions
36 * @param radioIndication Object containing radio indications
38 setResponseFunctions(int32_t slotId, IRadioResponse radioResponse,
39 IRadioIndication radioIndication);
42 * Requests status of the ICC card
44 * @param slotId SIM slot id for which the function is called; needed for multi-sim
45 * @param serial Serial number of request.
47 * Response function is IRadioResponse.getIccCardStatusResponse()
50 oneway getIccCardStatus(int32_t slotId, int32_t serial);
53 * Supplies ICC PIN. Only called if CardStatus has AppState.PIN state
55 * @param slotId SIM slot id for which the function is called; needed for multi-sim
56 * @param serial Serial number of request.
57 * @param pin PIN value
58 * @param aid AID value, See ETSI 102.221 8.1 and 101.220 4, empty string if no value.
60 * Response function is IRadioResponse.supplyIccPinForAppResponse()
63 oneway supplyIccPinForApp(int32_t slotId, int32_t serial, string pin, string aid);
66 * Supplies ICC PUK and new PIN.
68 * @param slotId SIM slot id for which the function is called; needed for multi-sim
69 * @param serial Serial number of request.
70 * @param puk PUK value
71 * @param pin New PIN value
72 * @param aid AID value, See ETSI 102.221 8.1 and 101.220 4, empty string if no value.
74 * Response function is IRadioResponse.supplyIccPukForAppResponse()
77 oneway supplyIccPukForApp(int32_t slotId, int32_t serial, string puk, string pin, string aid);
80 * Supplies ICC PIN2. Only called following operation where SIM_PIN2 was
81 * returned as a a failure from a previous operation.
83 * @param slotId SIM slot id for which the function is called; needed for multi-sim
84 * @param serial Serial number of request.
85 * @param pin2 PIN2 value
86 * @param aid AID value, See ETSI 102.221 8.1 and 101.220 4, empty string if no value.
88 * Response function is IRadioResponse.supplyIccPin2ForAppResponse()
91 oneway supplyIccPin2ForApp(int32_t slotId, int32_t serial, string pin2, string aid);
94 * Supplies ICC PUK2 and new PIN2.
96 * @param slotId SIM slot id for which the function is called; needed for multi-sim
97 * @param serial Serial number of request.
98 * @param puk2 PUK2 value
99 * @param pin2 New PIN2 value
100 * @param aid AID value, See ETSI 102.221 8.1 and 101.220 4, empty string if no value.
102 * Response function is IRadioResponse.supplyIccPuk2ForAppResponse()
105 oneway supplyIccPuk2ForApp(int32_t slotId, int32_t serial, string puk2, string pin2,
109 * Supplies old ICC PIN and new PIN.
111 * @param slotId SIM slot id for which the function is called; needed for multi-sim
112 * @param serial Serial number of request.
113 * @param oldPin Old pin value
114 * @param newPin New pin value
115 * @param aid AID value, See ETSI 102.221 8.1 and 101.220 4, empty string if no value.
117 * Response function is IRadioResponse.changeIccPinForAppResponse()
120 oneway changeIccPinForApp(int32_t slotId, int32_t serial, string oldPin, string newPin,
124 * Supplies old ICC PIN2 and new PIN2.
126 * @param slotId SIM slot id for which the function is called; needed for multi-sim
127 * @param serial Serial number of request.
128 * @param oldPin2 Old pin2 value
129 * @param newPin2 New pin2 value
130 * @param aid AID value, See ETSI 102.221 8.1 and 101.220 4, empty string if no value.
132 * Response function is IRadioResponse.changeIccPin2ForAppResponse()
135 oneway changeIccPin2ForApp(int32_t slotId, int32_t serial, string oldPin2, string newPin2,
139 * Requests that network personalization be deactivated
141 * @param slotId SIM slot id for which the function is called; needed for multi-sim
142 * @param serial Serial number of request.
143 * @param netPin Network depersonlization code
145 * Response function is IRadioResponse.supplyNetworkDepersonalizationResponse()
148 oneway supplyNetworkDepersonalization(int32_t slotId, int32_t serial, string netPin);
151 * Requests current call list
153 * @param slotId SIM slot id for which the function is called; needed for multi-sim
154 * @param serial Serial number of request.
156 * Response function is IRadioResponse.getCurrentCallsResponse()
159 oneway getCurrentCalls(int32_t slotId, int32_t serial);
162 * Initiate voice call.
163 * This method is never used for supplementary service codes
165 * @param slotId SIM slot id for which the function is called; needed for multi-sim
166 * @param serial Serial number of request.
167 * @param dialInfo Dial struct
169 * Response function is IRadioResponse.dialResponse()
172 oneway dial(int32_t slotId, int32_t serial, Dial dialInfo);
176 * Only valid when radio state is "RADIO_STATE_ON"
178 * @param slotId SIM slot id for which the function is called; needed for multi-sim
179 * @param serial Serial number of request.
180 * @param aid AID value, See ETSI 102.221 8.1 and 101.220 4, empty string if no value.
182 * Response function is IRadioResponse.getImsiForAppResponse()
185 oneway getImsiForApp(int32_t slotId, int32_t serial, string aid);
188 * Hang up a specific line (like AT+CHLD=1x)
189 * After this HANGUP request returns, Radio must show the connection is NOT
190 * active anymore in next requestGetCurrentCalls query.
192 * @param slotId SIM slot id for which the function is called; needed for multi-sim
193 * @param serial Serial number of request.
194 * @param gsmIndex Connection index (value of 'x' in CHLD above)
196 * Response function is IRadioResponse.hangupResponse()
199 oneway hangup(int32_t slotId, int32_t serial, int32_t gsmIndex);
202 * Hang up waiting or held (like AT+CHLD=0)
203 * After this HANGUP request returns, Radio must show the connection is NOT
204 * active anymore in next getCurrentCalls() query.
206 * @param slotId SIM slot id for which the function is called; needed for multi-sim
207 * @param serial Serial number of request.
209 * Response function is IRadioResponse.hangupWaitingOrBackgroundResponse()
212 oneway hangupWaitingOrBackground(int32_t slotId, int32_t serial);
215 * Hang up waiting or held (like AT+CHLD=1)
216 * After this HANGUP request returns, Radio must show the connection is NOT
217 * active anymore in next getCurrentCalls query.
219 * @param slotId SIM slot id for which the function is called; needed for multi-sim
220 * @param serial Serial number of request.
222 * Response function is IRadioResponse.hangupForegroundResumeBackgroundResponse()
225 oneway hangupForegroundResumeBackground(int32_t slotId, int32_t serial);
228 * Switch waiting or holding call and active call (like AT+CHLD=2)
229 * State transitions must be as follows:
231 * Call transitions must happen as shown below.
234 * Call 1 Call 2 Call 1 Call 2
235 * ACTIVE HOLDING HOLDING ACTIVE
236 * ACTIVE WAITING HOLDING ACTIVE
237 * HOLDING WAITING HOLDING ACTIVE
238 * ACTIVE IDLE HOLDING IDLE
239 * IDLE IDLE IDLE IDLE
241 * @param slotId SIM slot id for which the function is called; needed for multi-sim
242 * @param serial Serial number of request.
244 * Response function is IRadioResponse.switchWaitingOrHoldingAndActiveResponse()
247 oneway switchWaitingOrHoldingAndActive(int32_t slotId, int32_t serial);
250 * Conference holding and active (like AT+CHLD=3)
252 * @param slotId SIM slot id for which the function is called; needed for multi-sim
253 * @param serial Serial number of request.
255 * Response function is IRadioResponse.conferenceResponse()
258 oneway conference(int32_t slotId, int32_t serial);
261 * Send UDUB (user determined user busy) to ringing or
262 * waiting call answer)
264 * @param slotId SIM slot id for which the function is called; needed for multi-sim
265 * @param serial Serial number of request.
267 * Response function is IRadioResponse.rejectCallResponse()
270 oneway rejectCall(int32_t slotId, int32_t serial);
273 * Requests the failure cause code for the most recently terminated call.
275 * @param slotId SIM slot id for which the function is called; needed for multi-sim
276 * @param serial Serial number of request.
278 * Response function is IRadioResponse.getLastCallFailCauseResponse()
281 oneway getLastCallFailCause(int32_t slotId, int32_t serial);
284 * Requests current signal strength and associated information.
285 * Must succeed if radio is on.
287 * @param slotId SIM slot id for which the function is called; needed for multi-sim
288 * @param serial Serial number of request.
290 * Response function is IRadioResponse.getSignalStrengthResponse()
292 oneway getSignalStrength(int32_t slotId, int32_t serial);
295 * Request current voice registration state
297 * @param slotId SIM slot id for which the function is called; needed for multi-sim
298 * @param serial Serial number of request.
300 * Response function is IRadioResponse.getVoiceRegistrationStateResponse()
302 oneway getVoiceRegistrationState(int32_t slotId, int32_t serial);
305 * Request current data registration state
307 * @param slotId SIM slot id for which the function is called; needed for multi-sim
308 * @param serial Serial number of request.
310 * Response function is IRadioResponse.getDataRegistrationStateResponse()
312 oneway getDataRegistrationState(int32_t slotId, int32_t serial);
315 * Request current operator ONS or EONS
317 * @param slotId SIM slot id for which the function is called; needed for multi-sim
318 * @param serial Serial number of request.
320 * Response function is IRadioResponse.getOperatorResponse()
322 oneway getOperator(int32_t slotId, int32_t serial);
325 * Toggle radio on and off (for "airplane" mode)
326 * If the radio is turned off/on the radio modem subsystem
327 * is expected return to an initialized state. For instance,
328 * any voice and data calls must be terminated and all associated
331 * @param slotId SIM slot id for which the function is called; needed for multi-sim
332 * @param serial Serial number of request.
333 * @param on To turn on radio -> on = true, to turn off radio -> on = false.
335 * Response function is IRadioResponse.setRadioPowerResponse()
337 oneway setRadioPower(int32_t slotId, int32_t serial, bool on);
342 * If the implementation is currently playing a tone requested via
343 * startDtmf(), that tone must be cancelled and the new tone
344 * must be played instead
346 * @param slotId SIM slot id for which the function is called; needed for multi-sim
347 * @param serial Serial number of request.
348 * @param s string with single char having one of 12 values: 0-9, *, #
350 * Response function is IRadioResponse.sendDtmfResponse()
352 oneway sendDtmf(int32_t slotId, int32_t serial, string s);
355 * Send an SMS message
357 * @param slotId SIM slot id for which the function is called; needed for multi-sim
358 * @param serial Serial number of request.
359 * @param smscPDU is SMSC address in GSM BCD format prefixed by a length byte
360 * (as expected by TS 27.005) or empty string for default SMSC
361 * @param pdu is SMS in PDU format as an ASCII hex string less the SMSC address
362 * TP-Layer-Length is be "strlen(pdu)/2"
364 * Response function is IRadioResponse.sendSmsResponse()
366 * Based on the return error, caller decides to resend if sending sms
367 * fails. RadioError:SMS_SEND_FAIL_RETRY means retry (i.e. error cause is 332)
368 * and RadioError:GENERIC_FAILURE means no retry (i.e. error cause is 500)
370 oneway sendSms(int32_t slotId, int32_t serial, string smscPDU, string pdu);
373 * Send an SMS message. Identical to sendSms,
374 * except that more messages are expected to be sent soon. If possible,
375 * keep SMS relay protocol link open (eg TS 27.005 AT+CMMS command)
377 * @param slotId SIM slot id for which the function is called; needed for multi-sim
378 * @param serial Serial number of request.
379 * @param smscPDU is SMSC address in GSM BCD format prefixed by a length byte
380 * (as expected by TS 27.005) or empty string for default SMSC
381 * @param pdu is SMS in PDU format as an ASCII hex string less the SMSC address
382 * TP-Layer-Length is be "strlen(pdu)/2"
384 * Response function is IRadioResponse.sendSMSExpectMoreResponse()
386 * Based on the return error, caller decides to resend if sending sms
387 * fails. RadioError:SMS_SEND_FAIL_RETRY means retry (i.e. error cause is 332)
388 * and RadioError:GENERIC_FAILURE means no retry (i.e. error cause is 500)
390 oneway sendSMSExpectMore(int32_t slotId, int32_t serial, string smscPDU, string pdu);
393 * Setup a packet data connection. If DataCallResponse.status
394 * return DataCallFailCause:NONE it is added to the list of data calls and a
395 * unsolDataCallListChanged() is sent. The call remains in the
396 * list until deactivateDataCall() is issued or the
397 * radio is powered off/on. This list is returned by getDataCallList()
398 * and dataCallListChanged().
400 * The RIL is expected to:
401 * - Create one data call context.
402 * - Create and configure a dedicated interface for the context
403 * - The interface must be point to point.
404 * - The interface is configured with one or more addresses and
405 * is capable of sending and receiving packets. The prefix length
406 * of the addresses must be /32 for IPv4 and /128 for IPv6.
407 * - Must NOT change the linux routing table.
408 * - Support up to getDataRegistrationState response[5]
409 * number of simultaneous data call contexts.
411 * @param slotId SIM slot id for which the function is called; needed for multi-sim
412 * @param serial Serial number of request.
413 * @param radioTechnology Radio technology to use: 0-CDMA, 1-GSM/UMTS, 2...
414 * for values above 2 this is RadioTechnology + 2.
415 * @param profile is a RadioDataProfile (support is optional)
416 * @param apn is the APN to connect to if radio technology is GSM/UMTS. This APN must
417 * override the one in the profile. empty string indicates no APN overrride.
418 * @param user is the username for APN, or empty string
419 * @param password is the password for APN, or empty string
420 * @param authType is the PAP / CHAP auth type. Values:
421 * 0 => PAP and CHAP is never performed.
422 * 1 => PAP may be performed; CHAP is never performed.
423 * 2 => CHAP may be performed; PAP is never performed.
424 * 3 => PAP / CHAP may be performed - baseband dependent.
425 * @param protocol is the connection type to request must be one of the
426 * PDP_type values in TS 27.007 section 10.1.1.
427 * For example, "IP", "IPV6", "IPV4V6", or "PPP".
429 * Response function is IRadioResponse.setupDataCallResponse()
431 oneway setupDataCall(int32_t slotId, int32_t serial, int32_t radioTechnology,
432 int32_t profile, string apn, string user, string password, int32_t authType,
436 * Request ICC I/O operation.
437 * This is similar to the TS 27.007 "restricted SIM" operation
438 * where it assumes all of the EF selection must be done by the
441 * Arguments and responses that are unused for certain
442 * values of "command" must be ignored or set to empty string
444 * @param slotId SIM slot id for which the function is called; needed for multi-sim
445 * @param serial Serial number of request.
448 * Please note that IccIo has a "PIN2" field which may be empty string,
449 * or may specify a PIN2 for operations that require a PIN2 (eg
450 * updating FDN records)
452 * Response function is IRadioResponse.iccIOForAppResponse()
454 oneway iccIOForApp(int32_t slotId, int32_t serial, IccIo iccIo);
457 * Send a USSD message.
459 * If a USSD session already exists, the message must be sent in the
460 * context of that session. Otherwise, a new session must be created.
462 * The network reply must be reported via unsolOnUssd
464 * Only one USSD session must exist at a time, and the session is assumed
466 * a) The android system invokes cancelUssd()
467 * b) The implementation sends a unsolOnUssd() with a type code
468 * of "0" (USSD-Notify/no further action) or "2" (session terminated)
470 * @param slotId SIM slot id for which the function is called; needed for multi-sim
471 * @param serial Serial number of request.
472 * @param ussd string containing the USSD request in UTF-8 format
474 * Response function is IRadioResponse.sendUssdResponse()
476 * See also requestCancelUssd, unsolOnUssd
478 oneway sendUssd(int32_t slotId, int32_t serial, string ussd);
481 * Cancel the current USSD session if one exists.
483 * @param slotId SIM slot id for which the function is called; needed for multi-sim
484 * @param serial Serial number of request.
486 * Response function is IRadioResponse.cancelPendingUssdResponse()
488 oneway cancelPendingUssd(int32_t slotId, int32_t serial);
491 * Gets current CLIR status
493 * @param slotId SIM slot id for which the function is called; needed for multi-sim
494 * @param serial Serial number of request.
496 * Response function is IRadioResponse.getClirResponse()
498 oneway getClir(int32_t slotId, int32_t serial);
501 * Set current CLIR status
503 * @param slotId SIM slot id for which the function is called; needed for multi-sim
504 * @param serial Serial number of request.
505 * @param status "n" parameter from TS 27.007 7.7
507 * Response function is IRadioResponse.setClirResponse()
509 oneway setClir(int32_t slotId, int32_t serial, int32_t status);
512 * Request call forward status.
514 * @param slotId SIM slot id for which the function is called; needed for multi-sim
515 * @param serial Serial number of request.
516 * @param callInfo CallForwardInfo
518 * Response function is IRadioResponse.getCallForwardStatusResponse()
520 oneway getCallForwardStatus(int32_t slotId, int32_t serial,
521 CallForwardInfo callInfo);
524 * Configure call forward rule
526 * @param slotId SIM slot id for which the function is called; needed for multi-sim
527 * @param serial Serial number of request.
528 * @param callInfo CallForwardInfo
530 * Response function is IRadioResponse.setCallForwardResponse()
532 oneway setCallForward(int32_t slotId, int32_t serial, CallForwardInfo callInfo);
535 * Query current call waiting state
537 * @param slotId SIM slot id for which the function is called; needed for multi-sim
538 * @param serial Serial number of request.
539 * @param serviceClass Service class is the TS 27.007 service class to query
541 * Response function is IRadioResponse.getCallWaitingResponse()
543 oneway getCallWaiting(int32_t slotId, int32_t serial, int32_t serviceClass);
546 * Configure current call waiting state
548 * @param slotId SIM slot id for which the function is called; needed for multi-sim
549 * @param serial Serial number of request.
550 * @param enable is false for "disabled" and true for "enabled"
551 * @param serviceClass is the TS 27.007 service class bit vector of services to modify
553 * Response function is IRadioResponse.setCallWaitingResponse()
555 oneway setCallWaiting(int32_t slotId, int32_t serial, bool enable,
556 int32_t serviceClass);
559 * Acknowledge successful or failed receipt of SMS previously indicated
560 * via unsolResponseNewSms
562 * @param slotId SIM slot id for which the function is called; needed for multi-sim
563 * @param serial Serial number of request.
564 * @param success is true on successful receipt
565 * (basically, AT+CNMA=1 from TS 27.005 is 0 on failed receipt
566 * (basically, AT+CNMA=2 from TS 27.005)
567 * @param cause: if success is false, this contains the failure cause as defined
568 * in TS 23.040, 9.2.3.22.
570 * Response function is IRadioResponse.acknowledgeLastIncomingGsmSmsResponse()
572 oneway acknowledgeLastIncomingGsmSms(int32_t slotId, int32_t serial, bool success,
573 SmsAcknowledgeFailCause cause);
576 * Answer incoming call
577 * Must not be called for WAITING calls.
578 * switchWaitingOrHoldingAndActive() must be used in this case
581 * @param slotId SIM slot id for which the function is called; needed for multi-sim
582 * @param serial Serial number of request.
584 * Response function is IRadioResponse.acceptCallResponse()
586 oneway acceptCall(int32_t slotId, int32_t serial);
589 * Deactivate packet data connection and remove from the
590 * data call list if RadioError:NONE is returned. Any other return
591 * values must also try to remove the call from the list. An
592 * unsolDataCallListChanged must be
593 * issued because of an deactivateDataCall.
595 * @param slotId SIM slot id for which the function is called; needed for multi-sim
596 * @param serial Serial number of request.
597 * @param cid Indicates CID
598 * @param reasonRadioShutDown Indicates Disconnect Reason
599 * false => No specific reason specified
600 * true => Radio shutdown requested
602 * Response function is IRadioResponse.deactivateDataCallResponse()
604 oneway deactivateDataCall(int32_t slotId, int32_t serial, int32_t cid,
605 bool reasonRadioShutDown);
608 * Query the status of a facility lock state
610 * @param slotId SIM slot id for which the function is called; needed for multi-sim
611 * @param serial Serial number of request.
612 * @param facility is the facility string code from TS 27.007 7.4
613 * (eg "AO" for BAOC, "SC" for SIM lock)
614 * @param password is the password, or "" if not required
615 * @param serviceClass is the TS 27.007 service class bit vector of services to query
616 * @param appId is AID value, See ETSI 102.221 8.1 and 101.220 4, empty string if no value.
617 * This is only applicable in the case of Fixed Dialing Numbers (FDN) requests.
619 * Response function is IRadioResponse.getFacilityLockForAppResponse()
621 oneway getFacilityLockForApp(int32_t slotId, int32_t serial, string facility,
622 string password, int32_t serviceClass, string appId);
625 * Enable/disable one facility lock
627 * @param slotId SIM slot id for which the function is called; needed for multi-sim
628 * @param serial Serial number of request.
629 * @param facility is the facility string code from TS 27.007 7.4 (eg "AO" for BAOC)
630 * @param lockState false for "unlock" and true for "lock"
631 * @param password is the password
632 * @param serviceClass is string representation of decimal TS 27.007
633 * service class bit vector. Eg, the string
634 * "1" means "set this facility for voice services"
635 * @param appId is AID value, See ETSI 102.221 8.1 and 101.220 4, empty string if no value.
636 * This is only applicable in the case of Fixed Dialing Numbers (FDN) requests.
638 * Response function is IRadioResponse.setFacilityLockForAppResponse()
640 oneway setFacilityLockForApp(int32_t slotId, int32_t serial, string facility, bool lockState,
641 string password, int32_t serviceClass, string appId);
644 * Change call barring facility password
646 * @param slotId SIM slot id for which the function is called; needed for multi-sim
647 * @param serial Serial number of request.
648 * @param facility facility string code from TS 27.007 7.4 (eg "AO" for BAOC)
649 * @param oldPassword old password
650 * @param newPassword new password
652 * Response function is IRadioResponse.setBarringPasswordResponse()
654 oneway setBarringPassword(int32_t slotId, int32_t serial, string facility,
655 string oldPassword, string newPassword);
658 * Query current network selection mode
660 * @param slotId SIM slot id for which the function is called; needed for multi-sim
661 * @param serial Serial number of request.
663 * Response function is IRadioResponse.getNetworkSelectionModeResponse()
665 oneway getNetworkSelectionMode(int32_t slotId, int32_t serial);
668 * Specify that the network must be selected automatically.
669 * This request must not respond until the new operator is selected and registered.
671 * @param slotId SIM slot id for which the function is called; needed for multi-sim
672 * @param serial Serial number of request.
674 * Response function is IRadioResponse.setNetworkSelectionModeAutomaticResponse()
676 oneway setNetworkSelectionModeAutomatic(int32_t slotId, int32_t serial);
679 * Manually select a specified network.
680 * This request must not respond until the new operator is selected and registered.
682 * @param slotId SIM slot id for which the function is called; needed for multi-sim
683 * @param serial Serial number of request.
684 * @param operatorNumeric string specifying MCCMNC of network to select (eg "310170")
686 * Response function is IRadioResponse.setNetworkSelectionModeManualResponse()
688 oneway setNetworkSelectionModeManual(int32_t slotId, int32_t serial, string operatorNumeric);
691 * Scans for available networks
692 * This request must not respond until the new operator is selected and registered.
694 * @param slotId SIM slot id for which the function is called; needed for multi-sim
695 * @param serial Serial number of request.
697 * Response function is IRadioResponse.getAvailableNetworksResponse()
699 oneway getAvailableNetworks(int32_t slotId, int32_t serial);
702 * Start playing a DTMF tone. Continue playing DTMF tone until
703 * stopDtmf is received.
704 * If a startDtmf() is received while a tone is currently playing,
705 * it must cancel the previous tone and play the new one.
707 * @param slotId SIM slot id for which the function is called; needed for multi-sim
708 * @param serial Serial number of request.
709 * @param s string having a single character with one of 12 values: 0-9,*,#
711 * Response function is IRadioResponse.startDtmfResponse()
713 oneway startDtmf(int32_t slotId, int32_t serial, string s);
716 * Stop playing a currently playing DTMF tone.
718 * @param slotId SIM slot id for which the function is called; needed for multi-sim
719 * @param serial Serial number of request.
721 * Response function is IRadioResponse.stopDtmfResponse()
723 oneway stopDtmf(int32_t slotId, int32_t serial);
726 * Return string value indicating baseband version, eg response from AT+CGMR
728 * @param slotId SIM slot id for which the function is called; needed for multi-sim
729 * @param serial Serial number of request.
731 * Response function is IRadioResponse.getBasebandVersionResponse()
733 oneway getBasebandVersion(int32_t slotId, int32_t serial);
736 * Separate a party from a multiparty call placing the multiparty call
737 * (less the specified party) on hold and leaving the specified party
738 * as the only other member of the current (active) call
742 * See TS 22.084 1.3.8.2 (iii)
743 * TS 22.030 6.5.5 "Entering "2X followed by send"
744 * TS 27.007 "AT+CHLD=2x"
746 * @param slotId SIM slot id for which the function is called; needed for multi-sim
747 * @param serial Serial number of request.
748 * @param gsmIndex contains Connection index (value of 'x' in CHLD above)
750 * Response function is IRadioResponse.separateConnectionResponse()
752 oneway separateConnection(int32_t slotId, int32_t serial, int32_t gsmIndex);
755 * Turn on or off uplink (microphone) mute.
756 * Must only be sent while voice call is active.
757 * Must always be reset to "disable mute" when a new voice call is initiated
759 * @param slotId SIM slot id for which the function is called; needed for multi-sim
760 * @param serial Serial number of request.
761 * @param enable true for "enable mute" and false for "disable mute"
763 * Response function is IRadioResponse.setMuteResponse()
765 oneway setMute(int32_t slotId, int32_t serial, bool enable);
768 * Queries the current state of the uplink mute setting
770 * @param slotId SIM slot id for which the function is called; needed for multi-sim
771 * @param serial Serial number of request.
773 * Response function is IRadioResponse.getMuteResponse()
775 oneway getMute(int32_t slotId, int32_t serial);
778 * Queries the status of the CLIP supplementary service
779 * (for MMI code "*#30#")
781 * @param slotId SIM slot id for which the function is called; needed for multi-sim
782 * @param serial Serial number of request.
784 * Response function is IRadioResponse.getClipResponse()
786 oneway getClip(int32_t slotId, int32_t serial);
789 * Returns the data call list. An entry is added when a
790 * setupDataCall() is issued and removed on a
791 * deactivateDataCall(). The list is emptied when
792 * setRadioPower() off/on is issued.
794 * @param slotId SIM slot id for which the function is called; needed for multi-sim
795 * @param serial Serial number of request.
797 * Response function is IRadioResponse.getDataCallListResponse()
799 oneway getDataCallList(int32_t slotId, int32_t serial);
802 * This request is reserved for OEM-specific uses. It passes raw byte arrays back and forth.
804 * @param slotId SIM slot id for which the function is called; needed for multi-sim
805 * @param serial Serial number of request.
806 * @param data data passed as raw bytes to oem
808 * Response function is IRadioResponse.sendOemRilRequestRawResponse()
810 oneway sendOemRilRequestRaw(int32_t slotId, int32_t serial, vec<uint8_t> data);
813 * This request is reserved for OEM-specific uses. It passes strings back and forth.
815 * @param slotId SIM slot id for which the function is called; needed for multi-sim
816 * @param serial Serial number of request.
817 * @param data data passed as strings to oem
819 * Response function is IRadioResponse.sendOemRilRequestStringsResponse()
821 oneway sendOemRilRequestStrings(int32_t slotId, int32_t serial, vec<string> data);
824 * Indicates the current state of the screen. When the screen is off, the
825 * Radio must notify the baseband to suppress certain notifications (eg,
826 * signal strength and changes in LAC/CID or BID/SID/NID/latitude/longitude)
827 * in an effort to conserve power. These notifications must resume when the
830 * @param slotId SIM slot id for which the function is called; needed for multi-sim
831 * @param serial Serial number of request.
832 * @param enable true = screen on, false = screen off.
834 * Response function is IRadioResponse.sendScreenStateResponse()
836 oneway sendScreenState(int32_t slotId, int32_t serial, bool enable);
839 * Enables/disables supplementary service related notifications from the network.
840 * Notifications are reported via unsolSuppSvcNotification().
842 * @param slotId SIM slot id for which the function is called; needed for multi-sim
843 * @param serial Serial number of request.
844 * @param enable true = notifications enabled, false = notifications disabled.
846 * Response function is IRadioResponse.setSuppServiceNotificationsResponse()
848 oneway setSuppServiceNotifications(int32_t slotId, int32_t serial, bool enable);
851 * Stores a SMS message to SIM memory.
853 * @param slotId SIM slot id for which the function is called; needed for multi-sim
854 * @param serial Serial number of request.
855 * @param smsWriteArgs SmsWriteArgs defined in types.hal
857 * Response function is IRadioResponse.writeSmsToSimResponse()
859 oneway writeSmsToSim(int32_t slotId, int32_t serial, SmsWriteArgs smsWriteArgs);
862 * Deletes a SMS message from SIM memory.
864 * @param slotId SIM slot id for which the function is called; needed for multi-sim
865 * @param serial Serial number of request.
866 * @param index Record index of the message to delete.
868 * Response function is IRadioResponse.deleteSmsOnSimResponse()
870 oneway deleteSmsOnSim(int32_t slotId, int32_t serial, int32_t index);
873 * Assign a specified band for RF configuration.
875 * @param slotId SIM slot id for which the function is called; needed for multi-sim
876 * @param serial Serial number of request.
877 * @param mode RadioBandMode defined in types.hal
879 * Response function is IRadioResponse.setBandModeResponse()
881 oneway setBandMode(int32_t slotId, int32_t serial, RadioBandMode mode);
884 * Get the list of band modes supported by RF.
886 * @param slotId SIM slot id for which the function is called; needed for multi-sim
887 * @param serial Serial number of request.
889 * Response function is IRadioResponse.getAvailableBandModesResponse()
891 oneway getAvailableBandModes(int32_t slotId, int32_t serial);
894 * Requests to send a SAT/USAT envelope command to SIM.
895 * The SAT/USAT envelope command refers to 3GPP TS 11.14 and 3GPP TS 31.111
897 * @param slotId SIM slot id for which the function is called; needed for multi-sim
898 * @param serial Serial number of request.
899 * @param command SAT/USAT command in hexadecimal format string starting with command tag
901 * Response function is IRadioResponse.sendEnvelopeResponse()
903 oneway sendEnvelope(int32_t slotId, int32_t serial, string command);
906 * Requests to send a terminal response to SIM for a received proactive command
908 * @param slotId SIM slot id for which the function is called; needed for multi-sim
909 * @param serial Serial number of request.
910 * @param commandResponse SAT/USAT response in hexadecimal format string starting with
911 * first byte of response data
913 * Response function is IRadioResponse.sendTerminalResponseResponseToSim()
915 oneway sendTerminalResponseToSim(int32_t slotId, int32_t serial, string commandResponse);