1/* 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 19import IRadioResponse; 20import IRadioIndication; 21 22/** 23 * This interface is used by telephony & telecom to talk to cellular radio. 24 * All the functions have minimum one parameter: 25 * 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 */ 29interface IRadio { 30 /** 31 * Set response functions for radio requests & radio indications. 32 * 33 * @param radioResponse Object containing response functions 34 * @param radioIndication Object containing radio indications 35 */ 36 setResponseFunctions(IRadioResponse radioResponse, 37 IRadioIndication radioIndication); 38 39 /** 40 * Requests status of the ICC card 41 * 42 * @param serial Serial number of request. 43 * 44 * Response function is IRadioResponse.getIccCardStatusResponse() 45 * 46 */ 47 oneway getIccCardStatus(int32_t serial); 48 49 /** 50 * Supplies ICC PIN. Only called if CardStatus has AppState.PIN state 51 * 52 * @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 * 58 */ 59 oneway supplyIccPinForApp(int32_t serial, string pin, string aid); 60 61 /** 62 * Supplies ICC PUK and new PIN. 63 * 64 * @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 */ 72 oneway supplyIccPukForApp(int32_t serial, string puk, string pin, string aid); 73 74 /** 75 * Supplies ICC PIN2. Only called following operation where SIM_PIN2 was 76 * returned as a a failure from a previous operation. 77 * 78 * @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 */ 85 oneway supplyIccPin2ForApp(int32_t serial, string pin2, string aid); 86 87 /** 88 * Supplies ICC PUK2 and new PIN2. 89 * 90 * @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 */ 98 oneway supplyIccPuk2ForApp(int32_t serial, string puk2, string pin2, 99 string aid); 100 101 /** 102 * Supplies old ICC PIN and new PIN. 103 * 104 * @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 */ 112 oneway changeIccPinForApp(int32_t serial, string oldPin, string newPin, 113 string aid); 114 115 /** 116 * Supplies old ICC PIN2 and new PIN2. 117 * 118 * @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 */ 126 oneway changeIccPin2ForApp(int32_t serial, string oldPin2, string newPin2, 127 string aid); 128 129 /** 130 * Requests that network personalization be deactivated 131 * 132 * @param serial Serial number of request. 133 * @param netPin Network depersonlization code 134 * 135 * Response function is IRadioResponse.supplyNetworkDepersonalizationResponse() 136 * 137 */ 138 oneway supplyNetworkDepersonalization(int32_t serial, string netPin); 139 140 /** 141 * Requests current call list 142 * 143 * @param serial Serial number of request. 144 * 145 * Response function is IRadioResponse.getCurrentCallsResponse() 146 * 147 */ 148 oneway getCurrentCalls(int32_t serial); 149 150 /** 151 * Initiate voice call. 152 * This method is never used for supplementary service codes 153 * 154 * @param serial Serial number of request. 155 * @param dialInfo Dial struct 156 * 157 * Response function is IRadioResponse.dialResponse() 158 * 159 */ 160 oneway dial(int32_t serial, Dial dialInfo); 161 162 /** 163 * Get the SIM IMSI 164 * Only valid when radio state is "RADIO_STATE_ON" 165 * 166 * @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 */ 172 oneway getImsiForApp(int32_t serial, string aid); 173 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 * 179 * @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 */ 185 oneway hangup(int32_t serial, int32_t gsmIndex); 186 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 * 192 * @param serial Serial number of request. 193 * 194 * Response function is IRadioResponse.hangupWaitingOrBackgroundResponse() 195 * 196 */ 197 oneway hangupWaitingOrBackground(int32_t serial); 198 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 * 204 * @param serial Serial number of request. 205 * 206 * Response function is IRadioResponse.hangupForegroundResumeBackgroundResponse() 207 * 208 */ 209 oneway hangupForegroundResumeBackground(int32_t serial); 210 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 * 225 * @param serial Serial number of request. 226 * 227 * Response function is IRadioResponse.switchWaitingOrHoldingAndActiveResponse() 228 * 229 */ 230 oneway switchWaitingOrHoldingAndActive(int32_t serial); 231 232 /** 233 * Conference holding and active (like AT+CHLD=3) 234 * 235 * @param serial Serial number of request. 236 * 237 * Response function is IRadioResponse.conferenceResponse() 238 * 239 */ 240 oneway conference(int32_t serial); 241 242 /** 243 * Send UDUB (user determined user busy) to ringing or 244 * waiting call answer) 245 * 246 * @param serial Serial number of request. 247 * 248 * Response function is IRadioResponse.rejectCallResponse() 249 * 250 */ 251 oneway rejectCall(int32_t serial); 252 253 /** 254 * Requests the failure cause code for the most recently terminated call. 255 * 256 * @param serial Serial number of request. 257 * 258 * Response function is IRadioResponse.getLastCallFailCauseResponse() 259 * 260 */ 261 oneway getLastCallFailCause(int32_t serial); 262 263 /** 264 * Requests current signal strength and associated information. 265 * Must succeed if radio is on. 266 * 267 * @param serial Serial number of request. 268 * 269 * Response function is IRadioResponse.getSignalStrengthResponse() 270 */ 271 oneway getSignalStrength(int32_t serial); 272 273 /** 274 * Request current voice registration state 275 * 276 * @param serial Serial number of request. 277 * 278 * Response function is IRadioResponse.getVoiceRegistrationStateResponse() 279 */ 280 oneway getVoiceRegistrationState(int32_t serial); 281 282 /** 283 * Request current data registration state 284 * 285 * @param serial Serial number of request. 286 * 287 * Response function is IRadioResponse.getDataRegistrationStateResponse() 288 */ 289 oneway getDataRegistrationState(int32_t serial); 290 291 /** 292 * Request current operator ONS or EONS 293 * 294 * @param serial Serial number of request. 295 * 296 * Response function is IRadioResponse.getOperatorResponse() 297 */ 298 oneway getOperator(int32_t serial); 299 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 * 307 * @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 */ 312 oneway setRadioPower(int32_t serial, bool on); 313 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 * 321 * @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 */ 326 oneway sendDtmf(int32_t serial, string s); 327 328 /** 329 * Send an SMS message 330 * 331 * @param serial Serial number of request. 332 * @param message GsmSmsMessage as defined in types.hal 333 * 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 */ 340 oneway sendSms(int32_t serial, GsmSmsMessage message); 341 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 * 347 * @param serial Serial number of request. 348 * @param message GsmSmsMessage as defined in types.hal 349 * 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 */ 356 oneway sendSMSExpectMore(int32_t serial, GsmSmsMessage message); 357 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 * 366 * The Radio is expected to: 367 * - 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 * 377 * @param serial Serial number of request. 378 * @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 381 * earlier. 382 * @param roamingAllowed Indicating data roaming is allowed or not by the user. 383 * @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. 387 * 388 * Response function is IRadioResponse.setupDataCallResponse() 389 */ 390 oneway setupDataCall(int32_t serial, RadioTechnology radioTechnology, 391 DataProfileInfo dataProfileInfo, bool modemCognitive, bool roamingAllowed, 392 bool isRoaming); 393 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 * 403 * @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 */ 412 oneway iccIOForApp(int32_t serial, IccIo iccIo); 413 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 * 428 * @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 */ 435 oneway sendUssd(int32_t serial, string ussd); 436 437 /** 438 * Cancel the current USSD session if one exists. 439 * 440 * @param serial Serial number of request. 441 * 442 * Response function is IRadioResponse.cancelPendingUssdResponse() 443 */ 444 oneway cancelPendingUssd(int32_t serial); 445 446 /** 447 * Gets current CLIR status 448 * 449 * @param serial Serial number of request. 450 * 451 * Response function is IRadioResponse.getClirResponse() 452 */ 453 oneway getClir(int32_t serial); 454 455 /** 456 * Set current CLIR status 457 * 458 * @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 */ 463 oneway setClir(int32_t serial, int32_t status); 464 465 /** 466 * Request call forward status. 467 * 468 * @param serial Serial number of request. 469 * @param callInfo CallForwardInfo 470 * 471 * Response function is IRadioResponse.getCallForwardStatusResponse() 472 */ 473 oneway getCallForwardStatus(int32_t serial, 474 CallForwardInfo callInfo); 475 476 /** 477 * Configure call forward rule 478 * 479 * @param serial Serial number of request. 480 * @param callInfo CallForwardInfo 481 * 482 * Response function is IRadioResponse.setCallForwardResponse() 483 */ 484 oneway setCallForward(int32_t serial, CallForwardInfo callInfo); 485 486 /** 487 * Query current call waiting state 488 * 489 * @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 */ 494 oneway getCallWaiting(int32_t serial, int32_t serviceClass); 495 496 /** 497 * Configure current call waiting state 498 * 499 * @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 */ 505 oneway setCallWaiting(int32_t serial, bool enable, 506 int32_t serviceClass); 507 508 /** 509 * Acknowledge successful or failed receipt of SMS previously indicated 510 * via unsolResponseNewSms 511 * 512 * @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 */ 521 oneway acknowledgeLastIncomingGsmSms(int32_t serial, bool success, 522 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 * 530 * @param serial Serial number of request. 531 * 532 * Response function is IRadioResponse.acceptCallResponse() 533 */ 534 oneway acceptCall(int32_t serial); 535 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 * 543 * @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 */ 551 oneway deactivateDataCall(int32_t serial, int32_t cid, 552 bool reasonRadioShutDown); 553 554 /** 555 * Query the status of a facility lock state 556 * 557 * @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 */ 567 oneway getFacilityLockForApp(int32_t serial, string facility, 568 string password, int32_t serviceClass, string appId); 569 570 /** 571 * Enable/disable one facility lock 572 * 573 * @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 */ 585 oneway setFacilityLockForApp(int32_t serial, string facility, bool lockState, 586 string password, int32_t serviceClass, string appId); 587 588 /** 589 * Change call barring facility password 590 * 591 * @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 */ 598 oneway setBarringPassword(int32_t serial, string facility, 599 string oldPassword, string newPassword); 600 601 /** 602 * Query current network selection mode 603 * 604 * @param serial Serial number of request. 605 * 606 * Response function is IRadioResponse.getNetworkSelectionModeResponse() 607 */ 608 oneway getNetworkSelectionMode(int32_t serial); 609 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 * 614 * @param serial Serial number of request. 615 * 616 * Response function is IRadioResponse.setNetworkSelectionModeAutomaticResponse() 617 */ 618 oneway setNetworkSelectionModeAutomatic(int32_t serial); 619 620 /** 621 * Manually select a specified network. 622 * This request must not respond until the new operator is selected and registered. 623 * 624 * @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 */ 629 oneway setNetworkSelectionModeManual(int32_t serial, string operatorNumeric); 630 631 /** 632 * Scans for available networks 633 * 634 * @param serial Serial number of request. 635 * 636 * Response function is IRadioResponse.getAvailableNetworksResponse() 637 */ 638 oneway getAvailableNetworks(int32_t serial); 639 640 /** 641 * Start playing a DTMF tone. Continue playing DTMF tone until 642 * stopDtmf is received. 643 * If a startDtmf() is received while a tone is currently playing, 644 * it must cancel the previous tone and play the new one. 645 * 646 * @param serial Serial number of request. 647 * @param s string having a single character with one of 12 values: 0-9,*,# 648 * 649 * Response function is IRadioResponse.startDtmfResponse() 650 */ 651 oneway startDtmf(int32_t serial, string s); 652 653 /** 654 * Stop playing a currently playing DTMF tone. 655 * 656 * @param serial Serial number of request. 657 * 658 * Response function is IRadioResponse.stopDtmfResponse() 659 */ 660 oneway stopDtmf(int32_t serial); 661 662 /** 663 * Return string value indicating baseband version, eg response from AT+CGMR 664 * 665 * @param serial Serial number of request. 666 * 667 * Response function is IRadioResponse.getBasebandVersionResponse() 668 */ 669 oneway getBasebandVersion(int32_t serial); 670 671 /** 672 * Separate a party from a multiparty call placing the multiparty call 673 * (less the specified party) on hold and leaving the specified party 674 * as the only other member of the current (active) call 675 * 676 * Like AT+CHLD=2x 677 * 678 * See TS 22.084 1.3.8.2 (iii) 679 * TS 22.030 6.5.5 "Entering "2X followed by send" 680 * TS 27.007 "AT+CHLD=2x" 681 * 682 * @param serial Serial number of request. 683 * @param gsmIndex contains Connection index (value of 'x' in CHLD above) 684 * 685 * Response function is IRadioResponse.separateConnectionResponse() 686 */ 687 oneway separateConnection(int32_t serial, int32_t gsmIndex); 688 689 /** 690 * Turn on or off uplink (microphone) mute. 691 * Must only be sent while voice call is active. 692 * Must always be reset to "disable mute" when a new voice call is initiated 693 * 694 * @param serial Serial number of request. 695 * @param enable true for "enable mute" and false for "disable mute" 696 * 697 * Response function is IRadioResponse.setMuteResponse() 698 */ 699 oneway setMute(int32_t serial, bool enable); 700 701 /** 702 * Queries the current state of the uplink mute setting 703 * 704 * @param serial Serial number of request. 705 * 706 * Response function is IRadioResponse.getMuteResponse() 707 */ 708 oneway getMute(int32_t serial); 709 710 /** 711 * Queries the status of the CLIP supplementary service 712 * (for MMI code "*#30#") 713 * 714 * @param serial Serial number of request. 715 * 716 * Response function is IRadioResponse.getClipResponse() 717 */ 718 oneway getClip(int32_t serial); 719 720 /** 721 * Returns the data call list. An entry is added when a 722 * setupDataCall() is issued and removed on a 723 * deactivateDataCall(). The list is emptied when 724 * setRadioPower() off/on is issued. 725 * 726 * @param serial Serial number of request. 727 * 728 * Response function is IRadioResponse.getDataCallListResponse() 729 */ 730 oneway getDataCallList(int32_t serial); 731 732 /** 733 * Enables/disables supplementary service related notifications from the network. 734 * Notifications are reported via unsolSuppSvcNotification(). 735 * 736 * @param serial Serial number of request. 737 * @param enable true = notifications enabled, false = notifications disabled. 738 * 739 * Response function is IRadioResponse.setSuppServiceNotificationsResponse() 740 */ 741 oneway setSuppServiceNotifications(int32_t serial, bool enable); 742 743 /** 744 * Stores a SMS message to SIM memory. 745 * 746 * @param serial Serial number of request. 747 * @param smsWriteArgs SmsWriteArgs defined in types.hal 748 * 749 * Response function is IRadioResponse.writeSmsToSimResponse() 750 */ 751 oneway writeSmsToSim(int32_t serial, SmsWriteArgs smsWriteArgs); 752 753 /** 754 * Deletes a SMS message from SIM memory. 755 * 756 * @param serial Serial number of request. 757 * @param index Record index of the message to delete. 758 * 759 * Response function is IRadioResponse.deleteSmsOnSimResponse() 760 */ 761 oneway deleteSmsOnSim(int32_t serial, int32_t index); 762 763 /** 764 * Assign a specified band for RF configuration. 765 * 766 * @param serial Serial number of request. 767 * @param mode RadioBandMode defined in types.hal 768 * 769 * Response function is IRadioResponse.setBandModeResponse() 770 */ 771 oneway setBandMode(int32_t serial, RadioBandMode mode); 772 773 /** 774 * Get the list of band modes supported by RF. 775 * 776 * @param serial Serial number of request. 777 * 778 * Response function is IRadioResponse.getAvailableBandModesResponse() 779 */ 780 oneway getAvailableBandModes(int32_t serial); 781 782 /** 783 * Requests to send a SAT/USAT envelope command to SIM. 784 * The SAT/USAT envelope command refers to 3GPP TS 11.14 and 3GPP TS 31.111 785 * 786 * @param serial Serial number of request. 787 * @param command SAT/USAT command in hexadecimal format string starting with command tag 788 * 789 * Response function is IRadioResponse.sendEnvelopeResponse() 790 */ 791 oneway sendEnvelope(int32_t serial, string command); 792 793 /** 794 * Requests to send a terminal response to SIM for a received proactive command 795 * 796 * @param serial Serial number of request. 797 * @param commandResponse SAT/USAT response in hexadecimal format string starting with 798 * first byte of response data 799 * 800 * Response function is IRadioResponse.sendTerminalResponseResponseToSim() 801 */ 802 oneway sendTerminalResponseToSim(int32_t serial, string commandResponse); 803 804 /** 805 * When STK application gets stkCallSetup(), the call actually has 806 * been initialized by mobile device already. (We could see the call has been in the 'call 807 * list') So, STK application needs to accept/reject the call according to user 808 * operations. 809 * 810 * @param serial Serial number of request. 811 * @param accept true = accept the call setup, false = reject the call setup 812 * 813 * Response callback is IRadioResponse.handleStkCallSetupRequestFromSimResponse() 814 */ 815 oneway handleStkCallSetupRequestFromSim(int32_t serial, 816 bool accept); 817 818 /** 819 * Connects the two calls and disconnects the subscriber from both calls. 820 * 821 * @param serial Serial number of request. 822 * 823 * Response callback is IRadioResponse.explicitCallTransferResponse() 824 */ 825 oneway explicitCallTransfer(int32_t serial); 826 827 /** 828 * Requests to set the preferred network type for searching and registering 829 * (CS/PS domain, RAT, and operation mode) 830 * 831 * @param serial Serial number of request. 832 * @param nwType PreferredNetworkType defined in types.hal 833 * 834 * Response callback is IRadioResponse.setPreferredNetworkTypeResponse() 835 */ 836 oneway setPreferredNetworkType(int32_t serial, 837 PreferredNetworkType nwType); 838 839 /** 840 * Query the preferred network type (CS/PS domain, RAT, and operation mode) 841 * for searching and registering 842 * 843 * @param serial Serial number of request. 844 * 845 * Response callback is IRadioResponse.getPreferredNetworkTypeResponse() 846 */ 847 oneway getPreferredNetworkType(int32_t serial); 848 849 /** 850 * Request neighboring cell id in GSM network 851 * 852 * @param serial Serial number of request. 853 * 854 * Response callback is IRadioResponse.getNeighboringCidsResponse() 855 */ 856 oneway getNeighboringCids(int32_t serial); 857 858 /** 859 * Enables/disables network state change notifications due to changes in 860 * LAC and/or CID (for GSM) or BID/SID/NID/latitude/longitude (for CDMA). 861 * Basically +CREG=2 vs. +CREG=1 (TS 27.007). 862 * Note: The Radio implementation must default to "updates enabled" 863 * when the screen is on and "updates disabled" when the screen is off. 864 * 865 * @param serial Serial number of request. 866 * @param enable true = updates enabled (+CREG=2), false = updates disabled (+CREG=1) 867 * 868 * Response callback is IRadioResponse.setLocationUpdatesResponse() 869 */ 870 oneway setLocationUpdates(int32_t serial, bool enable); 871 872 /** 873 * Request to set the location where the CDMA subscription shall 874 * be retrieved 875 * 876 * @param serial Serial number of request. 877 * @param cdmaSub CdmaSubscriptionSource 878 * 879 * Response callback is IRadioResponse.setCdmaSubscriptionSourceResponse() 880 */ 881 oneway setCdmaSubscriptionSource(int32_t serial, 882 CdmaSubscriptionSource cdmaSub); 883 884 /** 885 * Request to set the roaming preferences in CDMA 886 * 887 * @param serial Serial number of request. 888 * @param type CdmaRoamingType defined in types.hal 889 * 890 * Response callback is IRadioResponse.setCdmaRoamingPreferenceResponse() 891 */ 892 oneway setCdmaRoamingPreference(int32_t serial, 893 CdmaRoamingType type); 894 895 /** 896 * Request the actual setting of the roaming preferences in CDMA in the modem 897 * 898 * @param serial Serial number of request. 899 * 900 * Response callback is IRadioResponse.getCdmaRoamingPreferenceResponse() 901 */ 902 oneway getCdmaRoamingPreference(int32_t serial); 903 904 /** 905 * Request to set the TTY mode 906 * 907 * @param serial Serial number of request. 908 * @param mode TtyMode 909 * 910 * Response callback is IRadioResponse.setTTYModeResponse() 911 */ 912 oneway setTTYMode(int32_t serial, TtyMode mode); 913 914 /** 915 * Request the setting of TTY mode 916 * 917 * @param serial Serial number of request. 918 * 919 * Response callback is IRadioResponse.getTTYModeResponse() 920 */ 921 oneway getTTYMode(int32_t serial); 922 923 /** 924 * Request to set the preferred voice privacy mode used in voice scrambling. 925 * 926 * @param serial Serial number of request. 927 * @param enable false for Standard Privacy Mode (Public Long Code Mask) 928 * true for Enhanced Privacy Mode (Private Long Code Mask) 929 * 930 * Response callback is IRadioResponse.setPreferredVoicePrivacyResponse() 931 */ 932 oneway setPreferredVoicePrivacy(int32_t serial, bool enable); 933 934 /** 935 * Request the setting of preferred voice privacy mode. 936 * 937 * @param serial Serial number of request. 938 * 939 * Response callback is IRadioResponse.getPreferredVoicePrivacyResponse() 940 */ 941 oneway getPreferredVoicePrivacy(int32_t serial); 942 943 /** 944 * Send FLASH command 945 * 946 * @param serial Serial number of request. 947 * @param featureCode String associated with Flash command 948 * 949 * Response callback is IRadioResponse.sendCDMAFeatureCodeResponse() 950 */ 951 oneway sendCDMAFeatureCode(int32_t serial, string featureCode); 952 953 /** 954 * Send DTMF string 955 * 956 * @param serial Serial number of request. 957 * @param dtmf DTMF string 958 * @param on DTMF ON length in milliseconds, or 0 to use default 959 * @param off is the DTMF OFF length in milliseconds, or 0 to use default 960 * 961 * Response callback is IRadioResponse.sendBurstDtmfResponse() 962 */ 963 oneway sendBurstDtmf(int32_t serial, string dtmf, int32_t on, int32_t off); 964 965 /** 966 * Send a CDMA SMS message 967 * 968 * @param serial Serial number of request. 969 * @param sms Cdma Sms to be sent described by CdmaSmsMessage in types.hal 970 * 971 * Response callback is IRadioResponse.sendCdmaSmsResponse() 972 */ 973 oneway sendCdmaSms(int32_t serial, CdmaSmsMessage sms); 974 975 /** 976 * Acknowledge the success or failure in the receipt of SMS 977 * previously indicated via responseCdmaNewSms() 978 * 979 * @param serial Serial number of request. 980 * @param smsAck Cdma Sms ack to be sent described by CdmaSmsAck in types.hal 981 * 982 * Response callback is IRadioResponse.acknowledgeLastIncomingCdmaSmsResponse() 983 */ 984 oneway acknowledgeLastIncomingCdmaSms(int32_t serial, CdmaSmsAck smsAck); 985 986 /** 987 * Request the setting of GSM/WCDMA Cell Broadcast SMS config. 988 * 989 * @param serial Serial number of request. 990 * 991 * Response callback is IRadioResponse.getGsmBroadcastConfigResponse() 992 */ 993 oneway getGsmBroadcastConfig(int32_t serial); 994 995 /** 996 * Set GSM/WCDMA Cell Broadcast SMS config 997 * 998 * @param serial Serial number of request. 999 * @param configInfo Setting of GSM/WCDMA Cell broadcast config 1000 * 1001 * Response callback is IRadioResponse.setGsmBroadcastConfigResponse() 1002 */ 1003 oneway setGsmBroadcastConfig(int32_t serial, vec<GsmBroadcastSmsConfigInfo> configInfo); 1004 1005 /** 1006 * Enable or disable the reception of GSM/WCDMA Cell Broadcast SMS 1007 * 1008 * @param serial Serial number of request. 1009 * @param activate indicates to activate or turn off the reception of GSM/WCDMA 1010 * Cell Broadcast SMS. true = activate, false = turn off 1011 * 1012 * Response callback is IRadioResponse.setGsmBroadcastActivationResponse() 1013 */ 1014 oneway setGsmBroadcastActivation(int32_t serial, bool activate); 1015 1016 /** 1017 * Request the setting of CDMA Broadcast SMS config 1018 * 1019 * @param serial Serial number of request. 1020 * 1021 * Response callback is IRadioResponse.getCdmaBroadcastConfigResponse() 1022 */ 1023 oneway getCdmaBroadcastConfig(int32_t serial); 1024 1025 /** 1026 * Set CDMA Broadcast SMS config 1027 * 1028 * @param serial Serial number of request. 1029 * @param configInfo CDMA Broadcast SMS config to be set. 1030 * 1031 * Response callback is IRadioResponse.setCdmaBroadcastConfigResponse() 1032 */ 1033 oneway setCdmaBroadcastConfig(int32_t serial, vec<CdmaBroadcastSmsConfigInfo> configInfo); 1034 1035 /** 1036 * Enable or disable the reception of CDMA Cell Broadcast SMS 1037 * 1038 * @param serial Serial number of request. 1039 * @param activate indicates to activate or turn off the reception of CDMA 1040 * Cell Broadcast SMS. true = activate, false = turn off 1041 * 1042 * Response callback is IRadioResponse.setCdmaBroadcastActivationResponse() 1043 */ 1044 oneway setCdmaBroadcastActivation(int32_t serial, bool activate); 1045 1046 /** 1047 * Request the device MDN / H_SID / H_NID. 1048 * The request is only allowed when CDMA subscription is available. When CDMA 1049 * subscription is changed, application layer must re-issue the request to 1050 * update the subscription information. 1051 * 1052 * @param serial Serial number of request. 1053 * 1054 * Response callback is IRadioResponse.getCDMASubscriptionResponse() 1055 */ 1056 oneway getCDMASubscription(int32_t serial); 1057 1058 /** 1059 * Stores a CDMA SMS message to RUIM memory. 1060 * 1061 * @param serial Serial number of request. 1062 * @param cdmaSms CDMA message as defined by CdmaSmsWriteArgs in types.hal 1063 * 1064 * Response callback is IRadioResponse.writeSmsToRuimResponse() 1065 */ 1066 oneway writeSmsToRuim(int32_t serial, CdmaSmsWriteArgs cdmaSms); 1067 1068 /** 1069 * Deletes a CDMA SMS message from RUIM memory. 1070 * 1071 * @param serial Serial number of request. 1072 * @param index record index of the message to delete 1073 * 1074 * Response callback is IRadioResponse.deleteSmsOnRuimResponse() 1075 */ 1076 oneway deleteSmsOnRuim(int32_t serial, int32_t index); 1077 1078 /** 1079 * Request the device ESN / MEID / IMEI / IMEISV. 1080 * The request is always allowed and contains GSM and CDMA device identity. 1081 * When CDMA subscription is changed the ESN/MEID changes. The application 1082 * layer must re-issue the request to update the device identity in this case. 1083 * 1084 * @param serial Serial number of request. 1085 * 1086 * Response callback is IRadioResponse.getDeviceIdentityResponse() 1087 */ 1088 oneway getDeviceIdentity(int32_t serial); 1089 1090 /** 1091 * Request the radio's system selection module to exit emergency 1092 * callback mode. Radio must not respond with SUCCESS until the modem has 1093 * completely exited from Emergency Callback Mode. 1094 * 1095 * @param serial Serial number of request. 1096 * 1097 * Response callback is IRadioResponse.exitEmergencyCallbackModeResponse() 1098 */ 1099 oneway exitEmergencyCallbackMode(int32_t serial); 1100 1101 /** 1102 * Get the default Short Message Service Center address on the device. 1103 * 1104 * @param serial Serial number of request. 1105 * 1106 * Response callback is IRadioResponse.getSmscAddressResponse() 1107 */ 1108 oneway getSmscAddress(int32_t serial); 1109 1110 /** 1111 * Set the default Short Message Service Center address on the device. 1112 * 1113 * @param serial Serial number of request. 1114 * @param smsc Short Message Service Center address to set 1115 * 1116 * Response callback is IRadioResponse.setSmscAddressResponse() 1117 */ 1118 oneway setSmscAddress(int32_t serial, string smsc); 1119 1120 /** 1121 * Indicates whether there is storage available for new SMS messages. 1122 * 1123 * @param serial Serial number of request. 1124 * @param available true if memory is available for storing new messages, 1125 * false if memory capacity is exceeded 1126 * 1127 * Response callback is IRadioResponse.reportSmsMemoryStatusResponse() 1128 */ 1129 oneway reportSmsMemoryStatus(int32_t serial, bool available); 1130 1131 /** 1132 * Indicates that the StkService is running and is 1133 * ready to receive unsolicited stkXXXXX commands. 1134 * 1135 * @param serial Serial number of request. 1136 * 1137 * Response callback is IRadioResponse.reportStkServiceIsRunningResponse() 1138 */ 1139 oneway reportStkServiceIsRunning(int32_t serial); 1140 1141 /** 1142 * Request to query the location where the CDMA subscription shall be retrieved. 1143 * 1144 * @param serial Serial number of request. 1145 * 1146 * Response callback is IRadioResponse.getCdmaSubscriptionSourceResponse() 1147 */ 1148 oneway getCdmaSubscriptionSource(int32_t serial); 1149 1150 /** 1151 * Request the ISIM application on the UICC to perform AKA 1152 * challenge/response algorithm for IMS authentication 1153 * 1154 * @param serial Serial number of request. 1155 * @param challenge challenge string in Base64 format 1156 * 1157 * Response callback is IRadioResponse.requestIsimAuthenticationResponse() 1158 */ 1159 oneway requestIsimAuthentication(int32_t serial, string challenge); 1160 1161 /** 1162 * Acknowledge successful or failed receipt of SMS previously indicated 1163 * via unsol responseNewSms(), including acknowledgement TPDU to send 1164 * as the RP-User-Data element of the RP-ACK or RP-ERROR PDU. 1165 * 1166 * @param serial Serial number of request. 1167 * @param success true on successful receipt (send RP-ACK) 1168 * false on failed receipt (send RP-ERROR) 1169 * @param ackPdu acknowledgement TPDU in hexadecimal format 1170 * 1171 * Response callback is IRadioResponse.acknowledgeIncomingGsmSmsWithPduResponse() 1172 */ 1173 oneway acknowledgeIncomingGsmSmsWithPdu(int32_t serial, bool success, string ackPdu); 1174 1175 /** 1176 * Requests to send a SAT/USAT envelope command to SIM. 1177 * The SAT/USAT envelope command refers to 3GPP TS 11.14 and 3GPP TS 31.111. 1178 * 1179 * This request has one difference from sendEnvelope(): 1180 * the SW1 and SW2 status bytes from the UICC response are returned along with 1181 * the response data, using the same structure as iccIOForApp(). 1182 * 1183 * The implementation must perform normal processing of a '91XX' 1184 * response in SW1/SW2 to retrieve the pending proactive command and send it 1185 * as an unsolicited response, as sendEnvelope() does. 1186 * 1187 * @param serial Serial number of request. 1188 * @param contents SAT/USAT command in hexadecimal format starting with command tag 1189 * 1190 * Response callback is IRadioResponse.sendEnvelopeWithStatusResponse() 1191 */ 1192 oneway sendEnvelopeWithStatus(int32_t serial, string contents); 1193 1194 /** 1195 * Query the radio technology type (3GPP/3GPP2) used for voice. Query is valid only 1196 * when radio state is not RADIO_STATE_UNAVAILABLE 1197 * 1198 * @param serial Serial number of request. 1199 * 1200 * Response callback is IRadioResponse.getVoiceRadioTechnologyResponse() 1201 */ 1202 oneway getVoiceRadioTechnology(int32_t serial); 1203 1204 /** 1205 * Request all of the current cell information known to the radio. The radio 1206 * must return list of all current cells, including the neighboring cells. If for a particular 1207 * cell information isn't known then the appropriate unknown value will be returned. 1208 * This does not cause or change the rate of unsolicited cellInfoList(). 1209 * 1210 * @param serial Serial number of request. 1211 * 1212 * Response callback is IRadioResponse.getCellInfoListResponse() 1213 */ 1214 oneway getCellInfoList(int32_t serial); 1215 1216 /** 1217 * Sets the minimum time between when unsolicited cellInfoList() must be invoked. 1218 * A value of 0, means invoke cellInfoList() when any of the reported 1219 * information changes. Setting the value to INT_MAX(0x7fffffff) means never issue 1220 * a unsolicited cellInfoList(). 1221 * 1222 * @param serial Serial number of request. 1223 * @param rate minimum time in milliseconds to indicate time between unsolicited cellInfoList() 1224 * 1225 * Response callback is IRadioResponse.setCellInfoListRateResponse() 1226 */ 1227 oneway setCellInfoListRate(int32_t serial, int32_t rate); 1228 1229 /** 1230 * Set an apn to initial attach network 1231 * 1232 * @param serial Serial number of request. 1233 * @param dataProfileInfo data profile containing APN settings 1234 * @param modemCognitive indicating the data profile was sent to the modem through 1235 * setDataProfile earlier. 1236 * @param isRoaming Indicating the device is roaming or not. The 'protocol' parameter in the old 1237 * RIL_InitialAttachApn must be filled accordingly based on the roaming 1238 * condition. Note this is for backward compatibility with the old radio modem. 1239 * The modem must not use this param for any other reason. 1240 * 1241 * Response callback is IRadioResponse.setInitialAttachApnResponse() 1242 */ 1243 oneway setInitialAttachApn(int32_t serial, DataProfileInfo dataProfileInfo, 1244 bool modemCognitive, bool isRoaming); 1245 1246 /** 1247 * Request current IMS registration state 1248 * 1249 * @param serial Serial number of request. 1250 * 1251 * Response callback is IRadioResponse.getImsRegistrationStateResponse() 1252 */ 1253 oneway getImsRegistrationState(int32_t serial); 1254 1255 /** 1256 * Send a SMS message over IMS. 1257 * Based on the return error, caller decides to resend if sending sms 1258 * fails. SMS_SEND_FAIL_RETRY means retry, and other errors means no retry. 1259 * In case of retry, data is encoded based on Voice Technology available. 1260 * 1261 * @param serial Serial number of request. 1262 * @param message ImsSmsMessage as defined in types.hal to be sent 1263 * 1264 * Response callback is IRadioResponse.sendImsSmsResponse() 1265 */ 1266 oneway sendImsSms(int32_t serial, ImsSmsMessage message); 1267 1268 /** 1269 * Request APDU exchange on the basic channel. This command reflects TS 27.007 1270 * "generic SIM access" operation (+CSIM). The modem must ensure proper function 1271 * of GSM/CDMA, and filter commands appropriately. It must filter 1272 * channel management and SELECT by DF name commands. 1273 * "sessionid" field must be ignored. 1274 * 1275 * @param serial Serial number of request. 1276 * @param message SimApdu as defined in types.hal to be sent 1277 * 1278 * Response callback is IRadioResponse.iccTransmitApduBasicChannelResponse() 1279 */ 1280 oneway iccTransmitApduBasicChannel(int32_t serial, SimApdu message); 1281 1282 /** 1283 * Open a new logical channel and select the given application. This command 1284 * reflects TS 27.007 "open logical channel" operation (+CCHO). 1285 * 1286 * @param serial Serial number of request. 1287 * @param aid AID value, See ETSI 102.221 and 101.220. 1288 * @param p2 P2 value, described in ISO 7816-4. Ignore if equal to P2Constant:NO_P2 1289 * 1290 * Response callback is IRadioResponse.iccOpenLogicalChannelResponse() 1291 */ 1292 oneway iccOpenLogicalChannel(int32_t serial, string aid, int32_t p2); 1293 1294 /** 1295 * Close a previously opened logical channel. This command reflects TS 27.007 1296 * "close logical channel" operation (+CCHC). 1297 * 1298 * @param serial Serial number of request. 1299 * @param channelId session id of the logical channel (+CCHC). 1300 * 1301 * Response callback is IRadioResponse.iccCloseLogicalChannelResponse() 1302 */ 1303 oneway iccCloseLogicalChannel(int32_t serial, int32_t channelId); 1304 1305 /** 1306 * Exchange APDUs with a UICC over a previously opened logical channel. This 1307 * command reflects TS 27.007 "generic logical channel access" operation 1308 * (+CGLA). The modem must filter channel management and SELECT by DF name 1309 * commands. 1310 * 1311 * @param serial Serial number of request. 1312 * @param message SimApdu as defined in types.hal to be sent 1313 * 1314 * Response callback is IRadioResponse.iccTransmitApduLogicalChannelResponse() 1315 */ 1316 oneway iccTransmitApduLogicalChannel(int32_t serial, SimApdu message); 1317 1318 /** 1319 * Read one of the radio NV items. 1320 * This is used for device configuration by some CDMA operators. 1321 * 1322 * @param serial Serial number of request. 1323 * @param itemId NvItem is radio NV item as defined in types.hal 1324 * 1325 * Response callback is IRadioResponse.nvReadItemResponse() 1326 */ 1327 oneway nvReadItem(int32_t serial, NvItem itemId); 1328 1329 /** 1330 * Write one of the radio NV items. 1331 * This is used for device configuration by some CDMA operators. 1332 * 1333 * @param serial Serial number of request. 1334 * @param item NvWriteItem as defined in types.hal 1335 * 1336 * Response callback is IRadioResponse.nvWriteItemResponse() 1337 */ 1338 oneway nvWriteItem(int32_t serial, NvWriteItem item); 1339 1340 /** 1341 * Update the CDMA Preferred Roaming List (PRL) in the radio NV storage. 1342 * This is used for device configuration by some CDMA operators. 1343 * 1344 * @param serial Serial number of request. 1345 * @param prl PRL as a byte array 1346 * 1347 * Response callback is IRadioResponse.nvWriteCdmaPrlResponse() 1348 */ 1349 oneway nvWriteCdmaPrl(int32_t serial, vec<uint8_t> prl); 1350 1351 /** 1352 * Reset the radio NV configuration to the factory state. 1353 * This is used for device configuration by some CDMA operators. 1354 * 1355 * @param serial Serial number of request. 1356 * @param resetType ResetNvType as defined in types.hal 1357 * 1358 * Response callback is IRadioResponse.nvResetConfigResponse() 1359 */ 1360 oneway nvResetConfig(int32_t serial, ResetNvType resetType); 1361 1362 /** 1363 * Selection/de-selection of a subscription from a SIM card 1364 * 1365 * @param serial Serial number of request. 1366 * @param uiccSub SelectUiccSub as defined in types.hal 1367 * 1368 * Response callback is IRadioResponse.setUiccSubscriptionResponse() 1369 */ 1370 oneway setUiccSubscription(int32_t serial, SelectUiccSub uiccSub); 1371 1372 /** 1373 * Tells the modem whether data calls are allowed or not 1374 * 1375 * @param serial Serial number of request. 1376 * @param allow true to allow data calls, false to disallow data calls 1377 * 1378 * Response callback is IRadioResponse.setDataAllowedResponse() 1379 */ 1380 oneway setDataAllowed(int32_t serial, bool allow); 1381 1382 /** 1383 * Request all of the current hardware (modem and sim) associated with Radio. 1384 * 1385 * @param serial Serial number of request. 1386 * 1387 * Response callback is IRadioResponse.getHardwareConfigResponse() 1388 */ 1389 oneway getHardwareConfig(int32_t serial); 1390 1391 /** 1392 * Returns the response of SIM Authentication through Radio challenge request. 1393 * 1394 * @param serial Serial number of request. 1395 * @param authContext P2 value of authentication command, see P2 parameter in 1396 * 3GPP TS 31.102 7.1.2 1397 * @param authData the challenge string in Base64 format, see 3GPP TS 31.102 7.1.2 1398 * @param aid AID value, See ETSI 102.221 8.1 and 101.220 4, empty string if no value 1399 * 1400 * Response callback is IRadioResponse.requestIccSimAuthenticationResponse() 1401 */ 1402 oneway requestIccSimAuthentication(int32_t serial, int32_t authContext, string authData, 1403 string aid); 1404 1405 /** 1406 * Set data profile in modem. 1407 * Modem must erase existed profiles from framework, and apply new profiles 1408 * 1409 * @param serial Serial number of request. 1410 * @param profiles Array of DataProfiles to set. 1411 * @param isRoaming Indicating the device is roaming or not. The 'protocol' parameter in the old 1412 * RIL API RIL_DataProfileInfo must be filled accordingly based on the 1413 * roaming condition. Note this is for backward compatibility with the old 1414 * radio modem. The modem must not use this param for any other reason. 1415 * 1416 * Response callback is IRadioResponse.setDataProfileResponse() 1417 */ 1418 oneway setDataProfile(int32_t serial, vec<DataProfileInfo> profiles, bool isRoaming); 1419 1420 /** 1421 * Device is shutting down. All further commands are ignored 1422 * and RADIO_NOT_AVAILABLE must be returned. 1423 * 1424 * @param serial Serial number of request. 1425 * 1426 * Response callback is IRadioResponse.requestShutdownResponse() 1427 */ 1428 oneway requestShutdown(int32_t serial); 1429 1430 /** 1431 * Used to get phone radio capability. 1432 * 1433 * @param serial Serial number of request. 1434 * 1435 * Response callback is IRadioResponse.getRadioCapabilityResponse() 1436 */ 1437 oneway getRadioCapability(int32_t serial); 1438 1439 /** 1440 * Used to set the phones radio capability. Be VERY careful 1441 * using this request as it may cause some vendor modems to reset. Because 1442 * of the possible modem reset any radio commands after this one may not be 1443 * processed. 1444 * 1445 * @param serial Serial number of request. 1446 * @param rc RadioCapability structure to be set 1447 * 1448 * Response callback is IRadioResponse.setRadioCapabilityResponse() 1449 */ 1450 oneway setRadioCapability(int32_t serial, RadioCapability rc); 1451 1452 /** 1453 * Start Link Capacity Estimate (LCE) service if supported by the radio. 1454 * 1455 * @param serial Serial number of request. 1456 * @param reportInterval desired reporting interval (ms). 1457 * @param pullMode LCE service mode. true: PULL; false: PUSH. 1458 * 1459 * Response callback is IRadioResponse.startLceServiceResponse() 1460 */ 1461 oneway startLceService(int32_t serial, int32_t reportInterval, bool pullMode); 1462 1463 /** 1464 * Stop Link Capacity Estimate (LCE) service, the STOP operation must be 1465 * idempotent for the radio modem. 1466 * 1467 * @param serial Serial number of request. 1468 * 1469 * Response callback is IRadioResponse.stopLceServiceResponse() 1470 */ 1471 oneway stopLceService(int32_t serial); 1472 1473 /** 1474 * Pull LCE service for capacity information. 1475 * 1476 * @param serial Serial number of request. 1477 * 1478 * Response callback is IRadioResponse.pullLceDataResponse() 1479 */ 1480 oneway pullLceData(int32_t serial); 1481 1482 /** 1483 * Get modem activity information for power consumption estimation. 1484 * Request clear-on-read statistics information that is used for 1485 * estimating the per-millisecond power consumption of the cellular 1486 * modem. 1487 * 1488 * @param serial Serial number of request. 1489 * 1490 * Response callback is IRadioResponse.getModemActivityInfoResponse() 1491 */ 1492 oneway getModemActivityInfo(int32_t serial); 1493 1494 /** 1495 * Set carrier restrictions. Expected modem behavior: 1496 * If never receives this command 1497 * - Must allow all carriers 1498 * Receives this command with allAllowed true 1499 * - Must allow all carriers. If a previously allowed SIM is present, modem must not reload 1500 * the SIM. If a previously disallowed SIM is present, reload the SIM and notify Android. 1501 * Receives this command with a list of carriers & allAllowed = false 1502 * - Only allow specified carriers, persist across power cycles and FDR. If a present SIM 1503 * is in the allowed list, modem must not reload the SIM. If a present SIM is *not* in 1504 * the allowed list, modem must detach from the registered network and only keep emergency 1505 * service, and notify Android SIM refresh reset with new SIM state being 1506 * CardState:RESTRICTED. Emergency service must be enabled. 1507 * 1508 * @param serial Serial number of request. 1509 * @param allAllowed true only when all carriers are allowed. Ignore "carriers" struct. 1510 * If false, consider "carriers" struct 1511 * @param carriers CarrierRestrictions consisting allowed and excluded carriers as defined 1512 * in types.hal 1513 * 1514 * Response callback is IRadioResponse.setAllowedCarriersResponse() 1515 */ 1516 oneway setAllowedCarriers(int32_t serial, bool allAllowed, CarrierRestrictions carriers); 1517 1518 /** 1519 * Get carrier restrictions. 1520 * 1521 * @param serial Serial number of request. 1522 * 1523 * Response callback is IRadioResponse.getAllowedCarriersResponse() 1524 */ 1525 oneway getAllowedCarriers(int32_t serial); 1526 1527 /** 1528 * Send the updated device state. 1529 * This is providing the device state information for the modem to perform power saving 1530 * strategies. 1531 * 1532 * @param serial Serial number of request. 1533 * @param deviceStateType The updated device state type. 1534 * @param state The updated state. See the definition of state at DeviceStateType. 1535 * 1536 * Response callback is IRadioResponse.sendDeviceStateResponse() 1537 */ 1538 oneway sendDeviceState(int32_t serial, DeviceStateType deviceStateType, bool state); 1539 1540 /** 1541 * Set the indication filter. 1542 * This is used to prevent unnecessary application processor wake up for power saving purposes 1543 * by suppressing the indications in certain scenarios. 1544 * 1545 * @param serial Serial number of request. 1546 * @param indicationFilter 32-bit bitmap of IndicationFilter. Bits set to 1 indicate the 1547 * indications are enabled. See IndicationFilter for the definition of each bit. 1548 * 1549 * Response callback is IRadioResponse.setIndicationFilterResponse() 1550 */ 1551 oneway setIndicationFilter(int32_t serial, bitfield<IndicationFilter> indicationFilter); 1552 1553 /** 1554 * Set SIM card power state. 1555 * Request is equivalent to inserting or removing the card. 1556 * 1557 * The radio modem must generate IRadioIndication.simStatusChanged() as if the SIM had been 1558 * inserted or removed. 1559 * 1560 * @param serial Serial number of request 1561 * @param powerUp True if powering up the sim card 1562 * 1563 * Response callback is IRadioResponse.setSimCardPowerResponse() 1564 */ 1565 oneway setSimCardPower(int32_t serial, bool powerUp); 1566 1567 /** 1568 * When response type received from a radio indication or radio response is 1569 * RadioIndicationType:UNSOLICITED_ACK_EXP or RadioResponseType:SOLICITED_ACK_EXP respectively, 1570 * acknowledge the receipt of those messages by sending responseAcknowledgement(). 1571 * 1572 */ 1573 oneway responseAcknowledgement(); 1574}; 1575