10825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville/*
20825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Copyright (C) 2006 The Android Open Source Project
30825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville *
40825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Licensed under the Apache License, Version 2.0 (the "License");
50825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * you may not use this file except in compliance with the License.
60825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * You may obtain a copy of the License at
70825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville *
80825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville *      http://www.apache.org/licenses/LICENSE-2.0
90825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville *
100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * Unless required by applicable law or agreed to in writing, software
110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * distributed under the License is distributed on an "AS IS" BASIS,
120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * See the License for the specific language governing permissions and
140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * limitations under the License.
150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */
160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
170825495a331bb44df395a0cdb79fab85e68db5d5Wink Savillepackage com.android.internal.telephony;
180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1921cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Haroldimport android.net.KeepalivePacketData;
2006ed6fceace1df6db89e2e4fa5b98da080a94435Jack Yuimport android.net.LinkProperties;
216509576d8eb86664d1b5383a1b637e00748e807eJack Yuimport android.os.Handler;
226509576d8eb86664d1b5383a1b637e00748e807eJack Yuimport android.os.Message;
238b38cd985149b459969dd2ac9e8013d852dc6760Sooraj Sasindranimport android.os.WorkSource;
246509576d8eb86664d1b5383a1b637e00748e807eJack Yuimport android.service.carrier.CarrierIdentifier;
258b38cd985149b459969dd2ac9e8013d852dc6760Sooraj Sasindranimport android.telephony.ClientRequestStats;
269179967a8da4955d6d8c6e2bbc6293d4c451b942pkanwarimport android.telephony.ImsiEncryptionInfo;
2784de7198887db7ba56c5cfd1d653033e7b4631a9yinxuimport android.telephony.NetworkScanRequest;
28886183cde1263ea524cdf08524442724e246ed42Jack Yuimport android.telephony.data.DataProfile;
296509576d8eb86664d1b5383a1b637e00748e807eJack Yu
30a63f55cf17629426d976830429a7612387532195Rika Brooksimport com.android.internal.telephony.cdma.CdmaSmsBroadcastConfigInfo;
310825495a331bb44df395a0cdb79fab85e68db5d5Wink Savilleimport com.android.internal.telephony.gsm.SmsBroadcastConfigInfo;
32d720945f2be5ea5fe0faf67e67d9ea0e184eba67Alex Yakavenkaimport com.android.internal.telephony.uicc.IccCardStatus;
330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
3440659286ac42ec77bbe7893830bd50c06f393ee8Meng Wangimport java.util.List;
350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville/**
370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville * {@hide}
380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville */
390825495a331bb44df395a0cdb79fab85e68db5d5Wink Savillepublic interface CommandsInterface {
400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    enum RadioState {
410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        RADIO_OFF,         /* Radio explicitly powered off (eg CFUN=0) */
420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        RADIO_UNAVAILABLE, /* Radio unavailable (eg, resetting or not booted) */
430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        RADIO_ON;          /* Radio is on */
440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public boolean isOn() /* and available...*/ {
460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return this == RADIO_ON;
470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        public boolean isAvailable() {
500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            return this != RADIO_UNAVAILABLE;
510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        }
520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    }
530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    //***** Constants
550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    // Used as parameter to dial() and setCLIR() below
570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    static final int CLIR_DEFAULT = 0;      // "use subscription default value"
580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    static final int CLIR_INVOCATION = 1;   // (restrict CLI presentation)
590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    static final int CLIR_SUPPRESSION = 2;  // (allow CLI presentation)
600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    // Used as parameters for call forward methods below
630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    static final int CF_ACTION_DISABLE          = 0;
640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    static final int CF_ACTION_ENABLE           = 1;
650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville//  static final int CF_ACTION_UNUSED           = 2;
660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    static final int CF_ACTION_REGISTRATION     = 3;
670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    static final int CF_ACTION_ERASURE          = 4;
680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    static final int CF_REASON_UNCONDITIONAL    = 0;
700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    static final int CF_REASON_BUSY             = 1;
710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    static final int CF_REASON_NO_REPLY         = 2;
720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    static final int CF_REASON_NOT_REACHABLE    = 3;
730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    static final int CF_REASON_ALL              = 4;
740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    static final int CF_REASON_ALL_CONDITIONAL  = 5;
750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    // Used for call barring methods below
770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    static final String CB_FACILITY_BAOC         = "AO";
780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    static final String CB_FACILITY_BAOIC        = "OI";
790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    static final String CB_FACILITY_BAOICxH      = "OX";
800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    static final String CB_FACILITY_BAIC         = "AI";
810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    static final String CB_FACILITY_BAICr        = "IR";
820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    static final String CB_FACILITY_BA_ALL       = "AB";
830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    static final String CB_FACILITY_BA_MO        = "AG";
840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    static final String CB_FACILITY_BA_MT        = "AC";
850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    static final String CB_FACILITY_BA_SIM       = "SC";
860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    static final String CB_FACILITY_BA_FD        = "FD";
870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    // Used for various supp services apis
900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    // See 27.007 +CCFC or +CLCK
910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    static final int SERVICE_CLASS_NONE     = 0; // no user input
920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    static final int SERVICE_CLASS_VOICE    = (1 << 0);
930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    static final int SERVICE_CLASS_DATA     = (1 << 1); //synonym for 16+32+64+128
940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    static final int SERVICE_CLASS_FAX      = (1 << 2);
950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    static final int SERVICE_CLASS_SMS      = (1 << 3);
960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    static final int SERVICE_CLASS_DATA_SYNC = (1 << 4);
970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    static final int SERVICE_CLASS_DATA_ASYNC = (1 << 5);
980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    static final int SERVICE_CLASS_PACKET   = (1 << 6);
990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    static final int SERVICE_CLASS_PAD      = (1 << 7);
1000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    static final int SERVICE_CLASS_MAX      = (1 << 7); // Max SERVICE_CLASS value
1010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    // Numeric representation of string values returned
1030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    // by messages sent to setOnUSSD handler
1040aa03d22e29d57d1064c292bcdb4e762e9abca01Anju Mathapati    static final int USSD_MODE_NOTIFY        = 0;
1050aa03d22e29d57d1064c292bcdb4e762e9abca01Anju Mathapati    static final int USSD_MODE_REQUEST       = 1;
1060aa03d22e29d57d1064c292bcdb4e762e9abca01Anju Mathapati    static final int USSD_MODE_NW_RELEASE    = 2;
1070aa03d22e29d57d1064c292bcdb4e762e9abca01Anju Mathapati    static final int USSD_MODE_LOCAL_CLIENT  = 3;
1080aa03d22e29d57d1064c292bcdb4e762e9abca01Anju Mathapati    static final int USSD_MODE_NOT_SUPPORTED = 4;
1090aa03d22e29d57d1064c292bcdb4e762e9abca01Anju Mathapati    static final int USSD_MODE_NW_TIMEOUT    = 5;
1100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    // GSM SMS fail cause for acknowledgeLastIncomingSMS. From TS 23.040, 9.2.3.22.
1120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    static final int GSM_SMS_FAIL_CAUSE_MEMORY_CAPACITY_EXCEEDED    = 0xD3;
1130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    static final int GSM_SMS_FAIL_CAUSE_USIM_APP_TOOLKIT_BUSY       = 0xD4;
1140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    static final int GSM_SMS_FAIL_CAUSE_USIM_DATA_DOWNLOAD_ERROR    = 0xD5;
1150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    static final int GSM_SMS_FAIL_CAUSE_UNSPECIFIED_ERROR           = 0xFF;
1160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    // CDMA SMS fail cause for acknowledgeLastIncomingCdmaSms.  From TS N.S0005, 6.5.2.125.
1180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    static final int CDMA_SMS_FAIL_CAUSE_INVALID_TELESERVICE_ID     = 4;
1190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    static final int CDMA_SMS_FAIL_CAUSE_RESOURCE_SHORTAGE          = 35;
1200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    static final int CDMA_SMS_FAIL_CAUSE_OTHER_TERMINAL_PROBLEM     = 39;
1210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    static final int CDMA_SMS_FAIL_CAUSE_ENCODING_PROBLEM           = 96;
1220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    //***** Methods
1240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    RadioState getRadioState();
1250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
1271260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa     * response.obj.result is an int[2]
1281260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa     *
129ace9a749c5a2a5e07527f728b7331423d16c36cdSukanya Rajkhowa     * response.obj.result[0] is IMS registration state
1301260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa     *                        0 - Not registered
1311260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa     *                        1 - Registered
1321795b863255a10f7734b4beb1fdfce9012857a26Wink Saville     * response.obj.result[1] is of type RILConstants.GSM_PHONE or
133ace9a749c5a2a5e07527f728b7331423d16c36cdSukanya Rajkhowa     *                                    RILConstants.CDMA_PHONE
1341260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa     */
1351260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa    void getImsRegistrationState(Message result);
1361260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa
1371260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa    /**
1380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Fires on any RadioState transition
1390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Always fires immediately as well
1400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
1410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * do not attempt to calculate transitions by storing getRadioState() values
1420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * on previous invocations of this notification. Instead, use the other
1430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * registration methods
1440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
1450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void registerForRadioStateChanged(Handler h, int what, Object obj);
1460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void unregisterForRadioStateChanged(Handler h);
1470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void registerForVoiceRadioTechChanged(Handler h, int what, Object obj);
1490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void unregisterForVoiceRadioTechChanged(Handler h);
1501260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa    void registerForImsNetworkStateChanged(Handler h, int what, Object obj);
1511260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa    void unregisterForImsNetworkStateChanged(Handler h);
1520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
1540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Fires on any transition into RadioState.isOn()
1550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Fires immediately if currently in that state
1560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * In general, actions should be idempotent. State may change
1570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * before event is received.
1580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
1590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void registerForOn(Handler h, int what, Object obj);
1600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void unregisterForOn(Handler h);
1610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
1630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Fires on any transition out of RadioState.isAvailable()
1640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Fires immediately if currently in that state
1650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * In general, actions should be idempotent. State may change
1660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * before event is received.
1670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
1680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void registerForAvailable(Handler h, int what, Object obj);
1690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void unregisterForAvailable(Handler h);
1700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
1720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Fires on any transition into !RadioState.isAvailable()
1730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Fires immediately if currently in that state
1740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * In general, actions should be idempotent. State may change
1750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * before event is received.
1760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
1770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void registerForNotAvailable(Handler h, int what, Object obj);
1780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void unregisterForNotAvailable(Handler h);
1790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
1810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Fires on any transition into RADIO_OFF or !RadioState.isAvailable()
1820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Fires immediately if currently in that state
1830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * In general, actions should be idempotent. State may change
1840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * before event is received.
1850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
1860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void registerForOffOrNotAvailable(Handler h, int what, Object obj);
1870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void unregisterForOffOrNotAvailable(Handler h);
1880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
1900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Fires on any change in ICC status
1910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
1920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void registerForIccStatusChanged(Handler h, int what, Object obj);
1930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void unregisterForIccStatusChanged(Handler h);
1944e10a61602bd065cdf71d0335493ac3444d5055ayinxu    /** Register for ICC slot status changed event */
1954e10a61602bd065cdf71d0335493ac3444d5055ayinxu    void registerForIccSlotStatusChanged(Handler h, int what, Object obj);
1964e10a61602bd065cdf71d0335493ac3444d5055ayinxu    /** Unregister for ICC slot status changed event */
1974e10a61602bd065cdf71d0335493ac3444d5055ayinxu    void unregisterForIccSlotStatusChanged(Handler h);
1980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void registerForCallStateChanged(Handler h, int what, Object obj);
2000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void unregisterForCallStateChanged(Handler h);
2016509576d8eb86664d1b5383a1b637e00748e807eJack Yu    /** Register for network state changed event */
2026509576d8eb86664d1b5383a1b637e00748e807eJack Yu    void registerForNetworkStateChanged(Handler h, int what, Object obj);
2036509576d8eb86664d1b5383a1b637e00748e807eJack Yu    /** Unregister from network state changed event */
2046509576d8eb86664d1b5383a1b637e00748e807eJack Yu    void unregisterForNetworkStateChanged(Handler h);
2056509576d8eb86664d1b5383a1b637e00748e807eJack Yu    /** Register for data call list changed event */
2066509576d8eb86664d1b5383a1b637e00748e807eJack Yu    void registerForDataCallListChanged(Handler h, int what, Object obj);
2076509576d8eb86664d1b5383a1b637e00748e807eJack Yu    /** Unregister from data call list changed event */
2086509576d8eb86664d1b5383a1b637e00748e807eJack Yu    void unregisterForDataCallListChanged(Handler h);
2090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /** InCall voice privacy notifications */
2110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void registerForInCallVoicePrivacyOn(Handler h, int what, Object obj);
2120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void unregisterForInCallVoicePrivacyOn(Handler h);
2130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void registerForInCallVoicePrivacyOff(Handler h, int what, Object obj);
2140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void unregisterForInCallVoicePrivacyOff(Handler h);
2150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
216a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville    /** Single Radio Voice Call State progress notifications */
217a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville    void registerForSrvccStateChanged(Handler h, int what, Object obj);
218a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville    void unregisterForSrvccStateChanged(Handler h);
219a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
220a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville    /**
221a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville     * Handlers for subscription status change indications.
222a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville     *
223a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville     * @param h Handler for subscription status change messages.
224a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville     * @param what User-defined message code.
225a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville     * @param obj User object.
226a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville     */
227a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville    void registerForSubscriptionStatusChanged(Handler h, int what, Object obj);
228a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville    void unregisterForSubscriptionStatusChanged(Handler h);
229a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
230a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville    /**
231a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville     * fires on any change in hardware configuration.
232a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville     */
233a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville    void registerForHardwareConfigChanged(Handler h, int what, Object obj);
234a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville    void unregisterForHardwareConfigChanged(Handler h);
235a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
2360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
2370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * unlike the register* methods, there's only one new 3GPP format SMS handler.
2380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * if you need to unregister, you should also tell the radio to stop
2390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * sending SMS's to you (via AT+CNMI)
2400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
2410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * AsyncResult.result is a String containing the SMS PDU
2420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
2430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void setOnNewGsmSms(Handler h, int what, Object obj);
2440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void unSetOnNewGsmSms(Handler h);
2450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
2470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * unlike the register* methods, there's only one new 3GPP2 format SMS handler.
2480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * if you need to unregister, you should also tell the radio to stop
2490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * sending SMS's to you (via AT+CNMI)
2500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
2510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * AsyncResult.result is a String containing the SMS PDU
2520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
2530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void setOnNewCdmaSms(Handler h, int what, Object obj);
2540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void unSetOnNewCdmaSms(Handler h);
2550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
2570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Set the handler for SMS Cell Broadcast messages.
2580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
2590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * AsyncResult.result is a byte array containing the SMS-CB PDU
2600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
2610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void setOnNewGsmBroadcastSms(Handler h, int what, Object obj);
2620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void unSetOnNewGsmBroadcastSms(Handler h);
2630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
2650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Register for NEW_SMS_ON_SIM unsolicited message
2660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
2670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * AsyncResult.result is an int array containing the index of new SMS
2680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
2690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void setOnSmsOnSim(Handler h, int what, Object obj);
2700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void unSetOnSmsOnSim(Handler h);
2710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
2730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Register for NEW_SMS_STATUS_REPORT unsolicited message
2740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
2750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * AsyncResult.result is a String containing the status report PDU
2760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
2770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void setOnSmsStatus(Handler h, int what, Object obj);
2780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void unSetOnSmsStatus(Handler h);
2790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
2810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * unlike the register* methods, there's only one NITZ time handler
2820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
2830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * AsyncResult.result is an Object[]
2840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * ((Object[])AsyncResult.result)[0] is a String containing the NITZ time string
2850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * ((Object[])AsyncResult.result)[1] is a Long containing the milliseconds since boot as
2860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *                                   returned by elapsedRealtime() when this NITZ time
2870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *                                   was posted.
2880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
2890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Please note that the delivery of this message may be delayed several
2900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * seconds on system startup
2910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
2920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void setOnNITZTime(Handler h, int what, Object obj);
2930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void unSetOnNITZTime(Handler h);
2940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
2950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
2960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * unlike the register* methods, there's only one USSD notify handler
2970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
2980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Represents the arrival of a USSD "notify" message, which may
2990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * or may not have been triggered by a previous USSD send
3000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
3010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * AsyncResult.result is a String[]
3020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * ((String[])(AsyncResult.result))[0] contains status code
3030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *      "0"   USSD-Notify -- text in ((const char **)data)[1]
3040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *      "1"   USSD-Request -- text in ((const char **)data)[1]
3050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *      "2"   Session terminated by network
3060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *      "3"   other local client (eg, SIM Toolkit) has responded
3070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *      "4"   Operation not supported
3080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *      "5"   Network timeout
3090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
3100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * ((String[])(AsyncResult.result))[1] contains the USSD message
3110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * The numeric representations of these are in USSD_MODE_*
3120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
3130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
3140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void setOnUSSD(Handler h, int what, Object obj);
3150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void unSetOnUSSD(Handler h);
3160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
3170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
3180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * unlike the register* methods, there's only one signal strength handler
3190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * AsyncResult.result is an int[2]
3200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * response.obj.result[0] is received signal strength (0-31, 99)
3210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * response.obj.result[1] is  bit error rate (0-7, 99)
3220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * as defined in TS 27.007 8.5
3230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
3240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
3250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void setOnSignalStrengthUpdate(Handler h, int what, Object obj);
3260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void unSetOnSignalStrengthUpdate(Handler h);
3270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
3280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
3290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Sets the handler for SIM/RUIM SMS storage full unsolicited message.
3300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Unlike the register* methods, there's only one notification handler
3310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
3320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param h Handler for notification message.
3330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param what User-defined message code.
3340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param obj User object.
3350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
3360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void setOnIccSmsFull(Handler h, int what, Object obj);
3370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void unSetOnIccSmsFull(Handler h);
3380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
3390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
3400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Sets the handler for SIM Refresh notifications.
3410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
3420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param h Handler for notification message.
3430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param what User-defined message code.
3440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param obj User object.
3450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
3460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void registerForIccRefresh(Handler h, int what, Object obj);
3470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void unregisterForIccRefresh(Handler h);
3480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
3490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void setOnIccRefresh(Handler h, int what, Object obj);
3500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void unsetOnIccRefresh(Handler h);
3510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
3520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
3530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Sets the handler for RING notifications.
3540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Unlike the register* methods, there's only one notification handler
3550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
3560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param h Handler for notification message.
3570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param what User-defined message code.
3580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param obj User object.
3590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
3600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void setOnCallRing(Handler h, int what, Object obj);
3610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void unSetOnCallRing(Handler h);
3620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
3630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
3640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Sets the handler for RESTRICTED_STATE changed notification,
3650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * eg, for Domain Specific Access Control
3660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * unlike the register* methods, there's only one signal strength handler
3670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
3680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * AsyncResult.result is an int[1]
3690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * response.obj.result[0] is a bitmask of RIL_RESTRICTED_STATE_* values
3700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
3710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
3720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void setOnRestrictedStateChanged(Handler h, int what, Object obj);
3730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void unSetOnRestrictedStateChanged(Handler h);
3740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
3750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
3760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Sets the handler for Supplementary Service Notifications.
3770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Unlike the register* methods, there's only one notification handler
3780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
3790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param h Handler for notification message.
3800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param what User-defined message code.
3810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param obj User object.
3820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
3830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void setOnSuppServiceNotification(Handler h, int what, Object obj);
3840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void unSetOnSuppServiceNotification(Handler h);
3850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
3860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
3870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Sets the handler for Session End Notifications for CAT.
3880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Unlike the register* methods, there's only one notification handler
3890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
3900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param h Handler for notification message.
3910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param what User-defined message code.
3920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param obj User object.
3930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
3940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void setOnCatSessionEnd(Handler h, int what, Object obj);
3950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void unSetOnCatSessionEnd(Handler h);
3960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
3970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
3980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Sets the handler for Proactive Commands for CAT.
3990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Unlike the register* methods, there's only one notification handler
4000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
4010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param h Handler for notification message.
4020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param what User-defined message code.
4030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param obj User object.
4040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
4050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void setOnCatProactiveCmd(Handler h, int what, Object obj);
4060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void unSetOnCatProactiveCmd(Handler h);
4070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
4080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
4090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Sets the handler for Event Notifications for CAT.
4100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Unlike the register* methods, there's only one notification handler
4110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
4120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param h Handler for notification message.
4130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param what User-defined message code.
4140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param obj User object.
4150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
4160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void setOnCatEvent(Handler h, int what, Object obj);
4170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void unSetOnCatEvent(Handler h);
4180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
4190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
4200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Sets the handler for Call Set Up Notifications for CAT.
4210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Unlike the register* methods, there's only one notification handler
4220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
4230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param h Handler for notification message.
4240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param what User-defined message code.
4250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param obj User object.
4260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
4270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void setOnCatCallSetUp(Handler h, int what, Object obj);
4280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void unSetOnCatCallSetUp(Handler h);
4290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
4300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
4310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Enables/disbables supplementary service related notifications from
4320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * the network.
4330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
4340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param enable true to enable notifications, false to disable.
4350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param result Message to be posted when command completes.
4360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
4370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void setSuppServiceNotifications(boolean enable, Message result);
4380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    //void unSetSuppServiceNotifications(Handler h);
4390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
4400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
44109b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja     * Sets the handler for Alpha Notification during STK Call Control.
44209b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja     * Unlike the register* methods, there's only one notification handler
44309b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja     *
44409b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja     * @param h Handler for notification message.
44509b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja     * @param what User-defined message code.
44609b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja     * @param obj User object.
44709b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja     */
44809b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja    void setOnCatCcAlphaNotify(Handler h, int what, Object obj);
44909b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja    void unSetOnCatCcAlphaNotify(Handler h);
45009b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja
45109b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja    /**
45209b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja     * Sets the handler for notifying Suplementary Services (SS)
45309b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja     * Data during STK Call Control.
45409b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja     * Unlike the register* methods, there's only one notification handler
45509b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja     *
45609b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja     * @param h Handler for notification message.
45709b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja     * @param what User-defined message code.
45809b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja     * @param obj User object.
45909b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja     */
46009b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja    void setOnSs(Handler h, int what, Object obj);
46109b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja    void unSetOnSs(Handler h);
46209b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja
46309b65da3b46e18c8acc146d722047ba2fb161bfePreeti Ahuja    /**
4640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Sets the handler for Event Notifications for CDMA Display Info.
4650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Unlike the register* methods, there's only one notification handler
4660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
4670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param h Handler for notification message.
4680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param what User-defined message code.
4690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param obj User object.
4700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
4710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void registerForDisplayInfo(Handler h, int what, Object obj);
4720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void unregisterForDisplayInfo(Handler h);
4730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
4740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
4750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Sets the handler for Event Notifications for CallWaiting Info.
4760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Unlike the register* methods, there's only one notification handler
4770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
4780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param h Handler for notification message.
4790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param what User-defined message code.
4800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param obj User object.
4810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
4820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void registerForCallWaitingInfo(Handler h, int what, Object obj);
4830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void unregisterForCallWaitingInfo(Handler h);
4840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
4850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
4860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Sets the handler for Event Notifications for Signal Info.
4870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Unlike the register* methods, there's only one notification handler
4880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
4890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param h Handler for notification message.
4900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param what User-defined message code.
4910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param obj User object.
4920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
4930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void registerForSignalInfo(Handler h, int what, Object obj);
4940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void unregisterForSignalInfo(Handler h);
4950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
4960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
4970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Registers the handler for CDMA number information record
4980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Unlike the register* methods, there's only one notification handler
4990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
5000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param h Handler for notification message.
5010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param what User-defined message code.
5020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param obj User object.
5030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
5040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void registerForNumberInfo(Handler h, int what, Object obj);
5050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void unregisterForNumberInfo(Handler h);
5060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
5070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
5080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Registers the handler for CDMA redirected number Information record
5090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Unlike the register* methods, there's only one notification handler
5100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
5110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param h Handler for notification message.
5120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param what User-defined message code.
5130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param obj User object.
5140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
5150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void registerForRedirectedNumberInfo(Handler h, int what, Object obj);
5160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void unregisterForRedirectedNumberInfo(Handler h);
5170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
5180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
5190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Registers the handler for CDMA line control information record
5200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Unlike the register* methods, there's only one notification handler
5210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
5220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param h Handler for notification message.
5230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param what User-defined message code.
5240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param obj User object.
5250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
5260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void registerForLineControlInfo(Handler h, int what, Object obj);
5270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void unregisterForLineControlInfo(Handler h);
5280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
5290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
5300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Registers the handler for CDMA T53 CLIR information record
5310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Unlike the register* methods, there's only one notification handler
5320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
5330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param h Handler for notification message.
5340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param what User-defined message code.
5350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param obj User object.
5360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
5370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void registerFoT53ClirlInfo(Handler h, int what, Object obj);
5380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void unregisterForT53ClirInfo(Handler h);
5390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
5400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
5410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Registers the handler for CDMA T53 audio control information record
5420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Unlike the register* methods, there's only one notification handler
5430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
5440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param h Handler for notification message.
5450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param what User-defined message code.
5460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param obj User object.
5470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
5480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void registerForT53AudioControlInfo(Handler h, int what, Object obj);
5490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void unregisterForT53AudioControlInfo(Handler h);
5500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
5510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
5520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Fires on if Modem enters Emergency Callback mode
5530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
5540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void setEmergencyCallbackMode(Handler h, int what, Object obj);
5550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
5560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     /**
5570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville      * Fires on any CDMA OTA provision status change
5580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville      */
5590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     void registerForCdmaOtaProvision(Handler h,int what, Object obj);
5600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     void unregisterForCdmaOtaProvision(Handler h);
5610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
5620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     /**
5630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville      * Registers the handler when out-band ringback tone is needed.<p>
5640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville      *
5650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville      *  Messages received from this:
5660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville      *  Message.obj will be an AsyncResult
5670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville      *  AsyncResult.userObj = obj
5680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville      *  AsyncResult.result = boolean. <p>
5690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville      */
5700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     void registerForRingbackTone(Handler h, int what, Object obj);
5710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     void unregisterForRingbackTone(Handler h);
5720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
5730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     /**
5740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville      * Registers the handler when mute/unmute need to be resent to get
5750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville      * uplink audio during a call.<p>
5760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville      *
5770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville      * @param h Handler for notification message.
5780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville      * @param what User-defined message code.
5790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville      * @param obj User object.
5800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville      *
5810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville      */
5820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     void registerForResendIncallMute(Handler h, int what, Object obj);
5830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     void unregisterForResendIncallMute(Handler h);
5840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
5850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     /**
5860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville      * Registers the handler for when Cdma subscription changed events
5870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville      *
5880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville      * @param h Handler for notification message.
5890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville      * @param what User-defined message code.
5900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville      * @param obj User object.
5910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville      *
5920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville      */
5930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     void registerForCdmaSubscriptionChanged(Handler h, int what, Object obj);
5940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     void unregisterForCdmaSubscriptionChanged(Handler h);
5950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
5960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     /**
5970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville      * Registers the handler for when Cdma prl changed events
5980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville      *
5990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville      * @param h Handler for notification message.
6000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville      * @param what User-defined message code.
6010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville      * @param obj User object.
6020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville      *
6030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville      */
6040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     void registerForCdmaPrlChanged(Handler h, int what, Object obj);
6050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     void unregisterForCdmaPrlChanged(Handler h);
6060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
6070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     /**
6080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville      * Registers the handler for when Cdma prl changed events
6090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville      *
6100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville      * @param h Handler for notification message.
6110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville      * @param what User-defined message code.
6120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville      * @param obj User object.
6130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville      *
6140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville      */
6150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     void registerForExitEmergencyCallbackMode(Handler h, int what, Object obj);
6160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     void unregisterForExitEmergencyCallbackMode(Handler h);
6170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
6180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     /**
6190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville      * Registers the handler for RIL_UNSOL_RIL_CONNECT events.
6200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville      *
6210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville      * When ril connects or disconnects a message is sent to the registrant
6220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville      * which contains an AsyncResult, ar, in msg.obj. The ar.result is an
6230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville      * Integer which is the version of the ril or -1 if the ril disconnected.
6240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville      *
6250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville      * @param h Handler for notification message.
6260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville      * @param what User-defined message code.
6270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville      * @param obj User object.
6280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville      */
6290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     void registerForRilConnected(Handler h, int what, Object obj);
6300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     void unregisterForRilConnected(Handler h);
6310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
6320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
6330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Supply the ICC PIN to the ICC card
6340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
6350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  returned message
6360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  retMsg.obj = AsyncResult ar
6370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.exception carries exception on failure
6380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  This exception is CommandException with an error of PASSWORD_INCORRECT
6390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  if the password is incorrect
6400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
6413522c54a64f577f2b657a775dae9b4eb2d8003d5Wink Saville     *  ar.result is an optional array of integers where the first entry
6423522c54a64f577f2b657a775dae9b4eb2d8003d5Wink Saville     *  is the number of attempts remaining before the ICC will be PUK locked.
6433522c54a64f577f2b657a775dae9b4eb2d8003d5Wink Saville     *
6440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * ar.exception and ar.result are null on success
6450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
6460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
6470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void supplyIccPin(String pin, Message result);
6480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
6490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
6500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Supply the PIN for the app with this AID on the ICC card
6510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
6520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  AID (Application ID), See ETSI 102.221 8.1 and 101.220 4
6530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
6540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  returned message
6550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  retMsg.obj = AsyncResult ar
6560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.exception carries exception on failure
6570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  This exception is CommandException with an error of PASSWORD_INCORRECT
6580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  if the password is incorrect
6590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
6603522c54a64f577f2b657a775dae9b4eb2d8003d5Wink Saville     *  ar.result is an optional array of integers where the first entry
6613522c54a64f577f2b657a775dae9b4eb2d8003d5Wink Saville     *  is the number of attempts remaining before the ICC will be PUK locked.
6623522c54a64f577f2b657a775dae9b4eb2d8003d5Wink Saville     *
6630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * ar.exception and ar.result are null on success
6640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
6650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
6660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void supplyIccPinForApp(String pin, String aid, Message result);
6670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
6680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
6690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Supply the ICC PUK and newPin to the ICC card
6700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
6710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  returned message
6720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  retMsg.obj = AsyncResult ar
6730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.exception carries exception on failure
6740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  This exception is CommandException with an error of PASSWORD_INCORRECT
6750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  if the password is incorrect
6760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
6773522c54a64f577f2b657a775dae9b4eb2d8003d5Wink Saville     *  ar.result is an optional array of integers where the first entry
6783522c54a64f577f2b657a775dae9b4eb2d8003d5Wink Saville     *  is the number of attempts remaining before the ICC is permanently disabled.
6793522c54a64f577f2b657a775dae9b4eb2d8003d5Wink Saville     *
6800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * ar.exception and ar.result are null on success
6810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
6820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
6830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void supplyIccPuk(String puk, String newPin, Message result);
6840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
6850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
6860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Supply the PUK, new pin for the app with this AID on the ICC card
6870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
6880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  AID (Application ID), See ETSI 102.221 8.1 and 101.220 4
6890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
6900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  retMsg.obj = AsyncResult ar
6910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.exception carries exception on failure
6920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  This exception is CommandException with an error of PASSWORD_INCORRECT
6930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  if the password is incorrect
6940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
6953522c54a64f577f2b657a775dae9b4eb2d8003d5Wink Saville     *  ar.result is an optional array of integers where the first entry
6963522c54a64f577f2b657a775dae9b4eb2d8003d5Wink Saville     *  is the number of attempts remaining before the ICC is permanently disabled.
6973522c54a64f577f2b657a775dae9b4eb2d8003d5Wink Saville     *
6980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * ar.exception and ar.result are null on success
6990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
7000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
7010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void supplyIccPukForApp(String puk, String newPin, String aid, Message result);
7020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
7030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
7040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Supply the ICC PIN2 to the ICC card
7050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Only called following operation where ICC_PIN2 was
7060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * returned as a a failure from a previous operation
7070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
7080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  returned message
7090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  retMsg.obj = AsyncResult ar
7100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.exception carries exception on failure
7110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  This exception is CommandException with an error of PASSWORD_INCORRECT
7120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  if the password is incorrect
7130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
7143522c54a64f577f2b657a775dae9b4eb2d8003d5Wink Saville     *  ar.result is an optional array of integers where the first entry
7153522c54a64f577f2b657a775dae9b4eb2d8003d5Wink Saville     *  is the number of attempts remaining before the ICC will be PUK locked.
7163522c54a64f577f2b657a775dae9b4eb2d8003d5Wink Saville     *
7170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * ar.exception and ar.result are null on success
7180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
7190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
7200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void supplyIccPin2(String pin2, Message result);
7210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
7220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
7230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Supply the PIN2 for the app with this AID on the ICC card
7240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Only called following operation where ICC_PIN2 was
7250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * returned as a a failure from a previous operation
7260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
7270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  AID (Application ID), See ETSI 102.221 8.1 and 101.220 4
7280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
7290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  returned message
7300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  retMsg.obj = AsyncResult ar
7310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.exception carries exception on failure
7320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  This exception is CommandException with an error of PASSWORD_INCORRECT
7330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  if the password is incorrect
7340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
7353522c54a64f577f2b657a775dae9b4eb2d8003d5Wink Saville     *  ar.result is an optional array of integers where the first entry
7363522c54a64f577f2b657a775dae9b4eb2d8003d5Wink Saville     *  is the number of attempts remaining before the ICC will be PUK locked.
7373522c54a64f577f2b657a775dae9b4eb2d8003d5Wink Saville     *
7380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * ar.exception and ar.result are null on success
7390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
7400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
7410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void supplyIccPin2ForApp(String pin2, String aid, Message result);
7420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
7430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
7440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Supply the SIM PUK2 to the SIM card
7450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Only called following operation where SIM_PUK2 was
7460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * returned as a a failure from a previous operation
7470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
7480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  returned message
7490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  retMsg.obj = AsyncResult ar
7500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.exception carries exception on failure
7510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  This exception is CommandException with an error of PASSWORD_INCORRECT
7520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  if the password is incorrect
7530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
7543522c54a64f577f2b657a775dae9b4eb2d8003d5Wink Saville     *  ar.result is an optional array of integers where the first entry
7553522c54a64f577f2b657a775dae9b4eb2d8003d5Wink Saville     *  is the number of attempts remaining before the ICC is permanently disabled.
7563522c54a64f577f2b657a775dae9b4eb2d8003d5Wink Saville     *
7570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * ar.exception and ar.result are null on success
7580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
7590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
7600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void supplyIccPuk2(String puk2, String newPin2, Message result);
7610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
7620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
7630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Supply the PUK2, newPin2 for the app with this AID on the ICC card
7640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Only called following operation where SIM_PUK2 was
7650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * returned as a a failure from a previous operation
7660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
7670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  AID (Application ID), See ETSI 102.221 8.1 and 101.220 4
7680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
7690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  returned message
7700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  retMsg.obj = AsyncResult ar
7710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.exception carries exception on failure
7720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  This exception is CommandException with an error of PASSWORD_INCORRECT
7730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  if the password is incorrect
7740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
7753522c54a64f577f2b657a775dae9b4eb2d8003d5Wink Saville     *  ar.result is an optional array of integers where the first entry
7763522c54a64f577f2b657a775dae9b4eb2d8003d5Wink Saville     *  is the number of attempts remaining before the ICC is permanently disabled.
7773522c54a64f577f2b657a775dae9b4eb2d8003d5Wink Saville     *
7780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * ar.exception and ar.result are null on success
7790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
7800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
7810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void supplyIccPuk2ForApp(String puk2, String newPin2, String aid, Message result);
7820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
7833522c54a64f577f2b657a775dae9b4eb2d8003d5Wink Saville    // TODO: Add java doc and indicate that msg.arg1 contains the number of attempts remaining.
7840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void changeIccPin(String oldPin, String newPin, Message result);
7850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void changeIccPinForApp(String oldPin, String newPin, String aidPtr, Message result);
7860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void changeIccPin2(String oldPin2, String newPin2, Message result);
7870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void changeIccPin2ForApp(String oldPin2, String newPin2, String aidPtr, Message result);
7880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
7890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void changeBarringPassword(String facility, String oldPwd, String newPwd, Message result);
7900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
7910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void supplyNetworkDepersonalization(String netpin, Message result);
7920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
7930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
7940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  returned message
7950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  retMsg.obj = AsyncResult ar
7960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.exception carries exception on failure
7970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.userObject contains the orignal value of result.obj
7980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.result contains a List of DriverCall
7990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *      The ar.result List is sorted by DriverCall.index
8000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
8010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void getCurrentCalls (Message result);
8020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
8030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
8040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  returned message
8050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  retMsg.obj = AsyncResult ar
8060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.exception carries exception on failure
8070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.userObject contains the orignal value of result.obj
808ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville     *  ar.result contains a List of DataCallResponse
8090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  @deprecated Do not use.
8100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
8110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Deprecated
8120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void getPDPContextList(Message result);
8130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
8140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
8150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  returned message
8160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  retMsg.obj = AsyncResult ar
8170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.exception carries exception on failure
8180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.userObject contains the orignal value of result.obj
819ff4e317d24f0d23bdc0f306d53ddc51f2f1ecf6aWink Saville     *  ar.result contains a List of DataCallResponse
8200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
8210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void getDataCallList(Message result);
8220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
8230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
8240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  returned message
8250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  retMsg.obj = AsyncResult ar
8260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.exception carries exception on failure
8270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.userObject contains the orignal value of result.obj
8280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.result is null on success and failure
8290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
8300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * CLIR_DEFAULT     == on "use subscription default value"
8310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * CLIR_SUPPRESSION == on "CLIR suppression" (allow CLI presentation)
8320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * CLIR_INVOCATION  == on "CLIR invocation" (restrict CLI presentation)
8330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
8340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void dial (String address, int clirMode, Message result);
8350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
8360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
8370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  returned message
8380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  retMsg.obj = AsyncResult ar
8390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.exception carries exception on failure
8400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.userObject contains the orignal value of result.obj
8410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.result is null on success and failure
8420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
8430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * CLIR_DEFAULT     == on "use subscription default value"
8440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * CLIR_SUPPRESSION == on "CLIR suppression" (allow CLI presentation)
8450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * CLIR_INVOCATION  == on "CLIR invocation" (restrict CLI presentation)
8460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
8470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void dial(String address, int clirMode, UUSInfo uusInfo, Message result);
8480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
8490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
8500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  returned message
8510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  retMsg.obj = AsyncResult ar
8520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.exception carries exception on failure
8530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.userObject contains the orignal value of result.obj
8540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.result is String containing IMSI on success
8550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
8560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void getIMSI(Message result);
8570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
8580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
8590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  returned message
8600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  retMsg.obj = AsyncResult ar
8610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.exception carries exception on failure
8620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.userObject contains the orignal value of result.obj
8630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.result is String containing IMSI on success
8640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
8650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void getIMSIForApp(String aid, Message result);
8660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
8670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
8680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  returned message
8690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  retMsg.obj = AsyncResult ar
8700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.exception carries exception on failure
8710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.userObject contains the orignal value of result.obj
8720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.result is String containing IMEI on success
8730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
8740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void getIMEI(Message result);
8750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
8760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
8770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  returned message
8780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  retMsg.obj = AsyncResult ar
8790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.exception carries exception on failure
8800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.userObject contains the orignal value of result.obj
8810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.result is String containing IMEISV on success
8820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
8830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void getIMEISV(Message result);
8840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
8850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
8860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Hang up one individual connection.
8870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  returned message
8880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  retMsg.obj = AsyncResult ar
8890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.exception carries exception on failure
8900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.userObject contains the orignal value of result.obj
8910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.result is null on success and failure
8920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
8930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  3GPP 22.030 6.5.5
8940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  "Releases a specific active call X"
8950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
8960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void hangupConnection (int gsmIndex, Message result);
8970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
8980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
8990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * 3GPP 22.030 6.5.5
9000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  "Releases all held calls or sets User Determined User Busy (UDUB)
9010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *   for a waiting call."
9020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.exception carries exception on failure
9030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.userObject contains the orignal value of result.obj
9040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.result is null on success and failure
9050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
9060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void hangupWaitingOrBackground (Message result);
9070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
9080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
9090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * 3GPP 22.030 6.5.5
9100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * "Releases all active calls (if any exist) and accepts
9110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  the other (held or waiting) call."
9120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
9130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.exception carries exception on failure
9140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.userObject contains the orignal value of result.obj
9150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.result is null on success and failure
9160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
9170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void hangupForegroundResumeBackground (Message result);
9180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
9190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
9200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * 3GPP 22.030 6.5.5
9210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * "Places all active calls (if any exist) on hold and accepts
9220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  the other (held or waiting) call."
9230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
9240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.exception carries exception on failure
9250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.userObject contains the orignal value of result.obj
9260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.result is null on success and failure
9270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
9280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void switchWaitingOrHoldingAndActive (Message result);
9290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
9300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
9310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * 3GPP 22.030 6.5.5
9320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * "Adds a held call to the conversation"
9330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
9340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.exception carries exception on failure
9350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.userObject contains the orignal value of result.obj
9360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.result is null on success and failure
9370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
9380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void conference (Message result);
9390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
9400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
9410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Set preferred Voice Privacy (VP).
9420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
9430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param enable true is enhanced and false is normal VP
9440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param result is a callback message
9450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
9460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void setPreferredVoicePrivacy(boolean enable, Message result);
9470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
9480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
9490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Get currently set preferred Voice Privacy (VP) mode.
9500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
9510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param result is a callback message
9520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
9530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void getPreferredVoicePrivacy(Message result);
9540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
9550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
9560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * 3GPP 22.030 6.5.5
9570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * "Places all active calls on hold except call X with which
9580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  communication shall be supported."
9590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
9600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void separateConnection (int gsmIndex, Message result);
9610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
9620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
9630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
9640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.exception carries exception on failure
9650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.userObject contains the orignal value of result.obj
9660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.result is null on success and failure
9670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
9680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void acceptCall (Message result);
9690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
9700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
9710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  also known as UDUB
9720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.exception carries exception on failure
9730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.userObject contains the orignal value of result.obj
9740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.result is null on success and failure
9750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
9760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void rejectCall (Message result);
9770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
9780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
9790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * 3GPP 22.030 6.5.5
9800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * "Connects the two calls and disconnects the subscriber from both calls"
9810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
9820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.exception carries exception on failure
9830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.userObject contains the orignal value of result.obj
9840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.result is null on success and failure
9850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
9860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void explicitCallTransfer (Message result);
9870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
9880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
9890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * cause code returned as int[0] in Message.obj.response
9900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Returns integer cause code defined in TS 24.008
9910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Annex H or closest approximation.
9920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Most significant codes:
9930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * - Any defined in 22.001 F.4 (for generating busy/congestion)
9940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * - Cause 68: ACM >= ACMMax
9950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
9960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void getLastCallFailCause (Message result);
9970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
9980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
9990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
10000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Reason for last PDP context deactivate or failure to activate
10010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * cause code returned as int[0] in Message.obj.response
10020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * returns an integer cause code defined in TS 24.008
10030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * section 6.1.3.1.3 or close approximation
10040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @deprecated Do not use.
10050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
10060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    @Deprecated
10070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void getLastPdpFailCause (Message result);
10080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
10100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * The preferred new alternative to getLastPdpFailCause
10110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * that is also CDMA-compatible.
10120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
10130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void getLastDataCallFailCause (Message result);
10140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void setMute (boolean enableMute, Message response);
10160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void getMute (Message response);
10180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
10200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * response.obj is an AsyncResult
10210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * response.obj.result is an int[2]
10220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * response.obj.result[0] is received signal strength (0-31, 99)
10230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * response.obj.result[1] is  bit error rate (0-7, 99)
10240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * as defined in TS 27.007 8.5
10250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
10260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void getSignalStrength (Message response);
10270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
10300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * response.obj.result is an int[3]
10310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * response.obj.result[0] is registration state 0-5 from TS 27.007 7.2
10320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * response.obj.result[1] is LAC if registered or -1 if not
10330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * response.obj.result[2] is CID if registered or -1 if not
10340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * valid LAC and CIDs are 0x0000 - 0xffff
10350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
10360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Please note that registration state 4 ("unknown") is treated
10370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * as "out of service" above
10380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
10390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void getVoiceRegistrationState (Message response);
10400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
10420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * response.obj.result is an int[3]
10430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * response.obj.result[0] is registration state 0-5 from TS 27.007 7.2
10440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * response.obj.result[1] is LAC if registered or -1 if not
10450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * response.obj.result[2] is CID if registered or -1 if not
10460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * valid LAC and CIDs are 0x0000 - 0xffff
10470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
10480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Please note that registration state 4 ("unknown") is treated
10490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * as "out of service" above
10500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
10510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void getDataRegistrationState (Message response);
10520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
10540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * response.obj.result is a String[3]
10550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * response.obj.result[0] is long alpha or null if unregistered
10560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * response.obj.result[1] is short alpha or null if unregistered
10570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * response.obj.result[2] is numeric or null if unregistered
10580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
10590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void getOperator(Message response);
10600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
10620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.exception carries exception on failure
10630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.userObject contains the orignal value of result.obj
10640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.result is null on success and failure
10650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
10660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void sendDtmf(char c, Message result);
10670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
10700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.exception carries exception on failure
10710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.userObject contains the orignal value of result.obj
10720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.result is null on success and failure
10730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
10740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void startDtmf(char c, Message result);
10750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
10770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.exception carries exception on failure
10780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.userObject contains the orignal value of result.obj
10790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.result is null on success and failure
10800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
10810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void stopDtmf(Message result);
10820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
10840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.exception carries exception on failure
10850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.userObject contains the orignal value of result.obj
10860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  ar.result is null on success and failure
10870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
10880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void sendBurstDtmf(String dtmfString, int on, int off, Message result);
10890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
10910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * smscPDU is smsc address in PDU form GSM BCD format prefixed
10920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *      by a length byte (as expected by TS 27.005) or NULL for default SMSC
10930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * pdu is SMS in PDU format as an ASCII hex string
10940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *      less the SMSC address
10950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
10960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void sendSMS (String smscPDU, String pdu, Message response);
10970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
10980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
10996ad88a8a2caf739e78c8d5f7f50fc7fa84a07ca7Chaitanya Saggurthi     * Send an SMS message, Identical to sendSMS,
11006ad88a8a2caf739e78c8d5f7f50fc7fa84a07ca7Chaitanya Saggurthi     * except that more messages are expected to be sent soon
11016ad88a8a2caf739e78c8d5f7f50fc7fa84a07ca7Chaitanya Saggurthi     * smscPDU is smsc address in PDU form GSM BCD format prefixed
11026ad88a8a2caf739e78c8d5f7f50fc7fa84a07ca7Chaitanya Saggurthi     *      by a length byte (as expected by TS 27.005) or NULL for default SMSC
11036ad88a8a2caf739e78c8d5f7f50fc7fa84a07ca7Chaitanya Saggurthi     * pdu is SMS in PDU format as an ASCII hex string
11046ad88a8a2caf739e78c8d5f7f50fc7fa84a07ca7Chaitanya Saggurthi     *      less the SMSC address
11056ad88a8a2caf739e78c8d5f7f50fc7fa84a07ca7Chaitanya Saggurthi     */
11066ad88a8a2caf739e78c8d5f7f50fc7fa84a07ca7Chaitanya Saggurthi    void sendSMSExpectMore (String smscPDU, String pdu, Message response);
11076ad88a8a2caf739e78c8d5f7f50fc7fa84a07ca7Chaitanya Saggurthi
11086ad88a8a2caf739e78c8d5f7f50fc7fa84a07ca7Chaitanya Saggurthi    /**
11090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param pdu is CDMA-SMS in internal pseudo-PDU format
11100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param response sent when operation completes
11110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
11120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void sendCdmaSms(byte[] pdu, Message response);
11130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
11151260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa     * send SMS over IMS with 3GPP/GSM SMS format
11161260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa     * @param smscPDU is smsc address in PDU form GSM BCD format prefixed
11171260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa     *      by a length byte (as expected by TS 27.005) or NULL for default SMSC
11181260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa     * @param pdu is SMS in PDU format as an ASCII hex string
11191260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa     *      less the SMSC address
11201260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa     * @param retry indicates if this is a retry; 0 == not retry, nonzero = retry
11211260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa     * @param messageRef valid field if retry is set to nonzero.
11221260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa     *        Contains messageRef from RIL_SMS_Response corresponding to failed MO SMS
11231260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa     * @param response sent when operation completes
11241260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa     */
11251260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa    void sendImsGsmSms (String smscPDU, String pdu, int retry, int messageRef,
11261260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa            Message response);
11271260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa
11281260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa    /**
11291260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa     * send SMS over IMS with 3GPP2/CDMA SMS format
11301260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa     * @param pdu is CDMA-SMS in internal pseudo-PDU format
11311260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa     * @param response sent when operation completes
11321260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa     * @param retry indicates if this is a retry; 0 == not retry, nonzero = retry
11331260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa     * @param messageRef valid field if retry is set to nonzero.
11341260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa     *        Contains messageRef from RIL_SMS_Response corresponding to failed MO SMS
11351260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa     * @param response sent when operation completes
11361260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa     */
11371260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa    void sendImsCdmaSms(byte[] pdu, int retry, int messageRef, Message response);
11381260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa
11391260f1c6c909f2940989b72afe1b91fd83845eaaSukanya Rajkhowa    /**
11400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Deletes the specified SMS record from SIM memory (EF_SMS).
11410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
11420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param index index of the SMS record to delete
11430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param response sent when operation completes
11440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
11450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void deleteSmsOnSim(int index, Message response);
11460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
11480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Deletes the specified SMS record from RUIM memory (EF_SMS in DF_CDMA).
11490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
11500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param index index of the SMS record to delete
11510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param response sent when operation completes
11520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
11530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void deleteSmsOnRuim(int index, Message response);
11540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
11560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Writes an SMS message to SIM memory (EF_SMS).
11570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
11580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param status status of message on SIM.  One of:
11590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *                  SmsManger.STATUS_ON_ICC_READ
11600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *                  SmsManger.STATUS_ON_ICC_UNREAD
11610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *                  SmsManger.STATUS_ON_ICC_SENT
11620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *                  SmsManger.STATUS_ON_ICC_UNSENT
11630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param pdu message PDU, as hex string
11640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param response sent when operation completes.
11650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *                  response.obj will be an AsyncResult, and will indicate
11660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *                  any error that may have occurred (eg, out of memory).
11670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
11680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void writeSmsToSim(int status, String smsc, String pdu, Message response);
11690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void writeSmsToRuim(int status, String pdu, Message response);
11710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void setRadioPower(boolean on, Message response);
11730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void acknowledgeLastIncomingGsmSms(boolean success, int cause, Message response);
11750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void acknowledgeLastIncomingCdmaSms(boolean success, int cause, Message response);
11770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
11790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Acknowledge successful or failed receipt of last incoming SMS,
11800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * including acknowledgement TPDU to send as the RP-User-Data element
11810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * of the RP-ACK or RP-ERROR PDU.
11820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
11830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param success true to send RP-ACK, false to send RP-ERROR
11840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param ackPdu the acknowledgement TPDU in hexadecimal format
11850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param response sent when operation completes.
11860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
11870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void acknowledgeIncomingGsmSmsWithPdu(boolean success, String ackPdu, Message response);
11880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
11900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * parameters equivalent to 27.007 AT+CRSM command
11910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * response.obj will be an AsyncResult
11920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * response.obj.result will be an IccIoResult on success
11930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
11940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void iccIO (int command, int fileid, String path, int p1, int p2, int p3,
11950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            String data, String pin2, Message response);
11960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
11970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
11980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * parameters equivalent to 27.007 AT+CRSM command
11990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * response.obj will be an AsyncResult
12000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * response.obj.userObj will be a IccIoResult on success
12010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
12020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void iccIOForApp (int command, int fileid, String path, int p1, int p2, int p3,
12030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            String data, String pin2, String aid, Message response);
12040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
12060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * (AsyncResult)response.obj).result is an int[] with element [0] set to
12070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * 1 for "CLIP is provisioned", and 0 for "CLIP is not provisioned".
12080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
12090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param response is callback message
12100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
12110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void queryCLIP(Message response);
12130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
12150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * response.obj will be a an int[2]
12160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
12170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * response.obj[0] will be TS 27.007 +CLIR parameter 'n'
12180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  0 presentation indicator is used according to the subscription of the CLIR service
12190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  1 CLIR invocation
12200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  2 CLIR suppression
12210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
12220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * response.obj[1] will be TS 27.007 +CLIR parameter 'm'
12230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  0 CLIR not provisioned
12240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  1 CLIR provisioned in permanent mode
12250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  2 unknown (e.g. no network, etc.)
12260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  3 CLIR temporary mode presentation restricted
12270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  4 CLIR temporary mode presentation allowed
12280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
12290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void getCLIR(Message response);
12310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
12330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * clirMode is one of the CLIR_* constants above
12340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
12350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * response.obj is null
12360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
12370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void setCLIR(int clirMode, Message response);
12390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
12410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * (AsyncResult)response.obj).result is an int[] with element [0] set to
12420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * 0 for disabled, 1 for enabled.
12430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
12440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param serviceClass is a sum of SERVICE_CLASS_*
12450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param response is callback message
12460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
12470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void queryCallWaiting(int serviceClass, Message response);
12490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
12510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param enable is true to enable, false to disable
12520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param serviceClass is a sum of SERVICE_CLASS_*
12530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param response is callback message
12540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
12550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void setCallWaiting(boolean enable, int serviceClass, Message response);
12570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
12590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param action is one of CF_ACTION_*
12600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param cfReason is one of CF_REASON_*
12610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param serviceClass is a sum of SERVICE_CLASSS_*
12620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
12630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void setCallForward(int action, int cfReason, int serviceClass,
12640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville                String number, int timeSeconds, Message response);
12650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
12670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * cfReason is one of CF_REASON_*
12680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
12690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * ((AsyncResult)response.obj).result will be an array of
12700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * CallForwardInfo's
12710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
12720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * An array of length 0 means "disabled for all codes"
12730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
12740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void queryCallForwardStatus(int cfReason, int serviceClass,
12750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville            String number, Message response);
12760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void setNetworkSelectionModeAutomatic(Message response);
12780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void setNetworkSelectionModeManual(String operatorNumeric, Message response);
12800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
12820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Queries whether the current network selection mode is automatic
12830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * or manual
12840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
12850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * ((AsyncResult)response.obj).result  is an int[] with element [0] being
12860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * a 0 for automatic selection and a 1 for manual selection
12870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
12880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void getNetworkSelectionMode(Message response);
12900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
12910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
12920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Queries the currently available networks
12930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
1294c8c651f856047c6c761de788a14097600701cdabyinxu     * ((AsyncResult)response.obj).result is a List of NetworkInfo objects
12950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
12960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void getAvailableNetworks(Message response);
12970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1298c8c651f856047c6c761de788a14097600701cdabyinxu    /**
1299c8c651f856047c6c761de788a14097600701cdabyinxu     * Starts a radio network scan
1300c8c651f856047c6c761de788a14097600701cdabyinxu     *
1301c8c651f856047c6c761de788a14097600701cdabyinxu     * ((AsyncResult)response.obj).result is a NetworkScanResult object
1302c8c651f856047c6c761de788a14097600701cdabyinxu     */
130384de7198887db7ba56c5cfd1d653033e7b4631a9yinxu    void startNetworkScan(NetworkScanRequest nsr, Message response);
13040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1305c8c651f856047c6c761de788a14097600701cdabyinxu    /**
1306c8c651f856047c6c761de788a14097600701cdabyinxu     * Stops the ongoing network scan
1307c8c651f856047c6c761de788a14097600701cdabyinxu     *
1308c8c651f856047c6c761de788a14097600701cdabyinxu     * ((AsyncResult)response.obj).result is a NetworkScanResult object
1309c8c651f856047c6c761de788a14097600701cdabyinxu     *
1310c8c651f856047c6c761de788a14097600701cdabyinxu     */
1311c8c651f856047c6c761de788a14097600701cdabyinxu    void stopNetworkScan(Message response);
1312c8c651f856047c6c761de788a14097600701cdabyinxu
1313c8c651f856047c6c761de788a14097600701cdabyinxu    /**
1314c8c651f856047c6c761de788a14097600701cdabyinxu     * Gets the baseband version
1315c8c651f856047c6c761de788a14097600701cdabyinxu     */
1316c8c651f856047c6c761de788a14097600701cdabyinxu    void getBasebandVersion(Message response);
13170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
13190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * (AsyncResult)response.obj).result will be an Integer representing
13200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * the sum of enabled service classes (sum of SERVICE_CLASS_*)
13210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
13220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param facility one of CB_FACILTY_*
13230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param password password or "" if not required
13240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param serviceClass is a sum of SERVICE_CLASS_*
13250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param response is callback message
13260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
13270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void queryFacilityLock (String facility, String password, int serviceClass,
13290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        Message response);
13300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
13320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * (AsyncResult)response.obj).result will be an Integer representing
13330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * the sum of enabled service classes (sum of SERVICE_CLASS_*) for the
13340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * application with appId.
13350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
13360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param facility one of CB_FACILTY_*
13370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param password password or "" if not required
13380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param serviceClass is a sum of SERVICE_CLASS_*
13390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param appId is application Id or null if none
13400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param response is callback message
13410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
13420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void queryFacilityLockForApp(String facility, String password, int serviceClass, String appId,
13440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        Message response);
13450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
13470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param facility one of CB_FACILTY_*
13480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param lockState true means lock, false means unlock
13490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param password password or "" if not required
13500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param serviceClass is a sum of SERVICE_CLASS_*
13510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param response is callback message
13520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
13530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void setFacilityLock (String facility, boolean lockState, String password,
13540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        int serviceClass, Message response);
13550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
13570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Set the facility lock for the app with this AID on the ICC card.
13580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
13590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param facility one of CB_FACILTY_*
13600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param lockState true means lock, false means unlock
13610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param password password or "" if not required
13620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param serviceClass is a sum of SERVICE_CLASS_*
13630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param appId is application Id or null if none
13640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param response is callback message
13650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
13660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void setFacilityLockForApp(String facility, boolean lockState, String password,
13670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville        int serviceClass, String appId, Message response);
13680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void sendUSSD (String ussdString, Message response);
13700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
13720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Cancels a pending USSD session if one exists.
13730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param response callback message
13740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
13750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void cancelPendingUssd (Message response);
13760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void resetRadio(Message result);
13780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
13800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Assign a specified band for RF configuration.
13810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
13820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param bandMode one of BM_*_BAND
13830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param response is callback message
13840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
13850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void setBandMode (int bandMode, Message response);
13860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
13880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Query the list of band mode supported by RF.
13890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
13900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param response is callback message
13918a3cf2d80c0cdee7360404dd0ac08ca6f9a7e246Derek Tan     *        ((AsyncResult)response.obj).result  is an int[] where int[0] is
13928a3cf2d80c0cdee7360404dd0ac08ca6f9a7e246Derek Tan     *        the size of the array and the rest of each element representing
13938a3cf2d80c0cdee7360404dd0ac08ca6f9a7e246Derek Tan     *        one available BM_*_BAND
13940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
13950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void queryAvailableBandMode (Message response);
13960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
13970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
13980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  Requests to set the preferred network type for searching and registering
13990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * (CS/PS domain, RAT, and operation mode)
14000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param networkType one of  NT_*_TYPE
14010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param response is callback message
14020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
14030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void setPreferredNetworkType(int networkType , Message response);
14040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     /**
14060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  Query the preferred network type setting
14070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
14080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param response is callback message to report one of  NT_*_TYPE
14090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
14100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void getPreferredNetworkType(Message response);
14110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
14130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Query neighboring cell ids
14140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
14150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param response s callback message to cell ids
14168b38cd985149b459969dd2ac9e8013d852dc6760Sooraj Sasindran     * @param workSource calling WorkSource
14170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
14188b38cd985149b459969dd2ac9e8013d852dc6760Sooraj Sasindran    default void getNeighboringCids(Message response, WorkSource workSource){}
14190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
14210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Request to enable/disable network state change notifications when
14220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * location information (lac and/or cid) has changed.
14230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
14240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param enable true to enable, false to disable
14250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param response callback message
14260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
14270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void setLocationUpdates(boolean enable, Message response);
14280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
14300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Gets the default SMSC address.
14310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
14320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param result Callback message contains the SMSC address.
14330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
14340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void getSmscAddress(Message result);
14350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
14370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Sets the default SMSC address.
14380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
14390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param address new SMSC address
14400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param result Callback message is empty on completion
14410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
14420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void setSmscAddress(String address, Message result);
14430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
14450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Indicates whether there is storage available for new SMS messages.
14460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param available true if storage is available
14470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param result callback message
14480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
14490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void reportSmsMemoryStatus(boolean available, Message result);
14500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
14520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Indicates to the vendor ril that StkService is running
14530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * and is ready to receive RIL_UNSOL_STK_XXXX commands.
14540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
14550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param result callback message
14560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
14570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void reportStkServiceIsRunning(Message result);
14580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
1459ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian    void invokeOemRilRequestRaw(byte[] data, Message response);
1460ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian
14613dd2f4b1d5d89bb2e785df8e6ede6bf25937b0bdpkanwar    /**
14623dd2f4b1d5d89bb2e785df8e6ede6bf25937b0bdpkanwar     * Sends carrier specific information to the vendor ril that can be used to
14633dd2f4b1d5d89bb2e785df8e6ede6bf25937b0bdpkanwar     * encrypt the IMSI and IMPI.
14643dd2f4b1d5d89bb2e785df8e6ede6bf25937b0bdpkanwar     *
14653dd2f4b1d5d89bb2e785df8e6ede6bf25937b0bdpkanwar     * @param publicKey the public key of the carrier used to encrypt IMSI/IMPI.
14663dd2f4b1d5d89bb2e785df8e6ede6bf25937b0bdpkanwar     * @param keyIdentifier the key identifier is optional information that is carrier
14673dd2f4b1d5d89bb2e785df8e6ede6bf25937b0bdpkanwar     *        specific.
14683dd2f4b1d5d89bb2e785df8e6ede6bf25937b0bdpkanwar     * @param response callback message
14693dd2f4b1d5d89bb2e785df8e6ede6bf25937b0bdpkanwar     */
14709179967a8da4955d6d8c6e2bbc6293d4c451b942pkanwar    void setCarrierInfoForImsiEncryption(ImsiEncryptionInfo imsiEncryptionInfo,
14713dd2f4b1d5d89bb2e785df8e6ede6bf25937b0bdpkanwar                                         Message response);
14723dd2f4b1d5d89bb2e785df8e6ede6bf25937b0bdpkanwar
1473ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian    void invokeOemRilRequestStrings(String[] strings, Message response);
1474ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian
1475ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian    /**
1476ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian     * Fires when RIL_UNSOL_OEM_HOOK_RAW is received from the RIL.
1477ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian     */
1478ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian    void setOnUnsolOemHookRaw(Handler h, int what, Object obj);
1479ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian    void unSetOnUnsolOemHookRaw(Handler h);
1480ac009536df32d886e1bab79f07e61200ea6bdcf9Shuo Qian
14810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
14820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Send TERMINAL RESPONSE to the SIM, after processing a proactive command
14830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * sent by the SIM.
14840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
14850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param contents  String containing SAT/USAT response in hexadecimal
14860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *                  format starting with first byte of response data. See
14870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *                  TS 102 223 for details.
14880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param response  Callback message
14890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
14900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void sendTerminalResponse(String contents, Message response);
14910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
14920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
14930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Send ENVELOPE to the SIM, after processing a proactive command sent by
14940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * the SIM.
14950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
14960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param contents  String containing SAT/USAT response in hexadecimal
14970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *                  format starting with command tag. See TS 102 223 for
14980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *                  details.
14990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param response  Callback message
15000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
15010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void sendEnvelope(String contents, Message response);
15020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
15040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Send ENVELOPE to the SIM, such as an SMS-PP data download envelope
15050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * for a SIM data download message. This method has one difference
15060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * from {@link #sendEnvelope}: The SW1 and SW2 status bytes from the UICC response
15070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * are returned along with the response data.
15080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
15090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * response.obj will be an AsyncResult
15100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * response.obj.result will be an IccIoResult on success
15110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
15120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param contents  String containing SAT/USAT response in hexadecimal
15130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *                  format starting with command tag. See TS 102 223 for
15140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *                  details.
15150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param response  Callback message
15160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
15170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void sendEnvelopeWithStatus(String contents, Message response);
15180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
15200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Accept or reject the call setup request from SIM.
15210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
15220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param accept   true if the call is to be accepted, false otherwise.
15230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param response Callback message
15240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
15250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void handleCallSetupRequestFromSim(boolean accept, Message response);
15260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
15280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Activate or deactivate cell broadcast SMS for GSM.
15290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
15300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param activate
15310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *            true = activate, false = deactivate
15320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param result Callback message is empty on completion
15330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
15340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void setGsmBroadcastActivation(boolean activate, Message result);
15350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
15370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Configure cell broadcast SMS for GSM.
15380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
15390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param response Callback message is empty on completion
15400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
15410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void setGsmBroadcastConfig(SmsBroadcastConfigInfo[] config, Message response);
15420825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15430825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
15440825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Query the current configuration of cell broadcast SMS of GSM.
15450825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
15460825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param response
15470825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *        Callback message contains the configuration from the modem
15480825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *        on completion
15490825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
15500825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void getGsmBroadcastConfig(Message response);
15510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15520825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    //***** new Methods for CDMA support
15530825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
15550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Request the device ESN / MEID / IMEI / IMEISV.
15560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * "response" is const char **
15570825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *   [0] is IMEI if GSM subscription is available
15580825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *   [1] is IMEISV if GSM subscription is available
15590825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *   [2] is ESN if CDMA subscription is available
15600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *   [3] is MEID if CDMA subscription is available
15610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
15620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void getDeviceIdentity(Message response);
15630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
15650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Request the device MDN / H_SID / H_NID / MIN.
15660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * "response" is const char **
15670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *   [0] is MDN if CDMA subscription is available
15680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *   [1] is a comma separated list of H_SID (Home SID) in decimal format
15690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *       if CDMA subscription is available
15700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *   [2] is a comma separated list of H_NID (Home NID) in decimal format
15710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *       if CDMA subscription is available
15720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *   [3] is MIN (10 digits, MIN2+MIN1) if CDMA subscription is available
15730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
15740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void getCDMASubscription(Message response);
15750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
15770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Send Flash Code.
15780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * "response" is is NULL
15790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *   [0] is a FLASH string
15800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
15810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void sendCDMAFeatureCode(String FeatureCode, Message response);
15820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /** Set the Phone type created */
15840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void setPhoneType(int phoneType);
15850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15860825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
15870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  Query the CDMA roaming preference setting
15880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
15890825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param response is callback message to report one of  CDMA_RM_*
15900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
15910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void queryCdmaRoamingPreference(Message response);
15920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
15930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
15940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  Requests to set the CDMA roaming preference
15950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param cdmaRoamingType one of  CDMA_RM_*
15960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param response is callback message
15970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
15980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void setCdmaRoamingPreference(int cdmaRoamingType, Message response);
15990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
16010825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  Requests to set the CDMA subscription mode
16020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param cdmaSubscriptionType one of  CDMA_SUBSCRIPTION_*
16030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param response is callback message
16040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
16050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void setCdmaSubscriptionSource(int cdmaSubscriptionType, Message response);
16060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
16080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  Requests to get the CDMA subscription srouce
16090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param response is callback message
16100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
16110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void getCdmaSubscriptionSource(Message response);
16120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
16140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  Set the TTY mode
16150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
16160825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param ttyMode one of the following:
16170825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * - {@link com.android.internal.telephony.Phone#TTY_MODE_OFF}
16180825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * - {@link com.android.internal.telephony.Phone#TTY_MODE_FULL}
16190825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * - {@link com.android.internal.telephony.Phone#TTY_MODE_HCO}
16200825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * - {@link com.android.internal.telephony.Phone#TTY_MODE_VCO}
16210825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param response is callback message
16220825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
16230825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void setTTYMode(int ttyMode, Message response);
16240825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16250825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
16260825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  Query the TTY mode
16270825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * (AsyncResult)response.obj).result is an int[] with element [0] set to
16280825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * tty mode:
16290825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * - {@link com.android.internal.telephony.Phone#TTY_MODE_OFF}
16300825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * - {@link com.android.internal.telephony.Phone#TTY_MODE_FULL}
16310825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * - {@link com.android.internal.telephony.Phone#TTY_MODE_HCO}
16320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * - {@link com.android.internal.telephony.Phone#TTY_MODE_VCO}
16330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param response is callback message
16340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
16350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    void queryTTYMode(Message response);
16360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
16380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Setup a packet data connection On successful completion, the result
163906ed6fceace1df6db89e2e4fa5b98da080a94435Jack Yu     * message will return a SetupDataResult object containing the connection information.
16400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
164106ed6fceace1df6db89e2e4fa5b98da080a94435Jack Yu     * @param accessNetworkType
164206ed6fceace1df6db89e2e4fa5b98da080a94435Jack Yu     *            Access network to use. Values is one of AccessNetworkConstants.AccessNetworkType.
1643caecd75617c11d33e000c4d90f8a6557c5b2de7eJack Yu     * @param dataProfile
1644caecd75617c11d33e000c4d90f8a6557c5b2de7eJack Yu     *            Data profile for data call setup
1645caecd75617c11d33e000c4d90f8a6557c5b2de7eJack Yu     * @param isRoaming
1646caecd75617c11d33e000c4d90f8a6557c5b2de7eJack Yu     *            Device is roaming or not
1647caecd75617c11d33e000c4d90f8a6557c5b2de7eJack Yu     * @param allowRoaming
1648caecd75617c11d33e000c4d90f8a6557c5b2de7eJack Yu     *            Flag indicating data roaming is enabled or not
164906ed6fceace1df6db89e2e4fa5b98da080a94435Jack Yu     * @param reason
165006ed6fceace1df6db89e2e4fa5b98da080a94435Jack Yu     *            The reason for data setup
165106ed6fceace1df6db89e2e4fa5b98da080a94435Jack Yu     * @param linkProperties
165206ed6fceace1df6db89e2e4fa5b98da080a94435Jack Yu     *            If the reason is for handover, this indicates the link properties of the existing
165306ed6fceace1df6db89e2e4fa5b98da080a94435Jack Yu     *            data connection
16540825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param result
16550825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *            Callback message
16560825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
165706ed6fceace1df6db89e2e4fa5b98da080a94435Jack Yu    void setupDataCall(int accessNetworkType, DataProfile dataProfile, boolean isRoaming,
165806ed6fceace1df6db89e2e4fa5b98da080a94435Jack Yu                       boolean allowRoaming, int reason, LinkProperties linkProperties,
165906ed6fceace1df6db89e2e4fa5b98da080a94435Jack Yu                       Message result);
16600825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16610825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
16620825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Deactivate packet data connection
16630825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
16640825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param cid
16650825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *            The connection ID
16660825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param reason
16670825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *            Data disconnect reason.
16680825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param result
16690825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *            Callback message is empty on completion
16700825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
16710825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void deactivateDataCall(int cid, int reason, Message result);
16720825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16730825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
16740825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Activate or deactivate cell broadcast SMS for CDMA.
16750825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
16760825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param activate
16770825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *            true = activate, false = deactivate
16780825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param result
16790825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *            Callback message is empty on completion
16800825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
16810825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void setCdmaBroadcastActivation(boolean activate, Message result);
16820825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16830825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
16840825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Configure cdma cell broadcast SMS.
16850825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
1686a63f55cf17629426d976830429a7612387532195Rika Brooks     * @param response
16870825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *            Callback message is empty on completion
16880825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
1689a63f55cf17629426d976830429a7612387532195Rika Brooks    public void setCdmaBroadcastConfig(CdmaSmsBroadcastConfigInfo[] configs, Message response);
16900825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16910825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
16920825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Query the current configuration of cdma cell broadcast SMS.
16930825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
16940825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param result
16950825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *            Callback message contains the configuration from the modem on completion
16960825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
16970825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void getCdmaBroadcastConfig(Message result);
16980825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
16990825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
17000825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *  Requests the radio's system selection module to exit emergency callback mode.
17011a87ab3d7170d618f048c4f5af8c7504a587aaa5Jack Yu     *  This function should only be called from for CDMA.
17020825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
17030825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param response callback message
17040825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
17050825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void exitEmergencyCallbackMode(Message response);
17060825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
17070825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
17080825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Request the status of the ICC and UICC cards.
17090825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
17100825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * @param result
17110825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *          Callback message containing {@link IccCardStatus} structure for the card.
17120825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
17130825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void getIccCardStatus(Message result);
17140825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
17150825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
17164e10a61602bd065cdf71d0335493ac3444d5055ayinxu     * Request the status of all the physical UICC slots.
17174e10a61602bd065cdf71d0335493ac3444d5055ayinxu     *
17184e10a61602bd065cdf71d0335493ac3444d5055ayinxu     * @param result Callback message containing a {@link java.util.ArrayList} of
17194e10a61602bd065cdf71d0335493ac3444d5055ayinxu     * {@link com.android.internal.telephony.uicc.IccSlotStatus} instances for all the slots.
17204e10a61602bd065cdf71d0335493ac3444d5055ayinxu     */
17214e10a61602bd065cdf71d0335493ac3444d5055ayinxu    void getIccSlotsStatus(Message result);
17224e10a61602bd065cdf71d0335493ac3444d5055ayinxu
17234e10a61602bd065cdf71d0335493ac3444d5055ayinxu    /**
17244e10a61602bd065cdf71d0335493ac3444d5055ayinxu     * Set the mapping from logical slots to physical slots.
17254e10a61602bd065cdf71d0335493ac3444d5055ayinxu     *
17264e10a61602bd065cdf71d0335493ac3444d5055ayinxu     * @param physicalSlots Mapping from logical slots to physical slots.
17274e10a61602bd065cdf71d0335493ac3444d5055ayinxu     * @param result Callback message is empty on completion.
17284e10a61602bd065cdf71d0335493ac3444d5055ayinxu     */
17294e10a61602bd065cdf71d0335493ac3444d5055ayinxu    void setLogicalToPhysicalSlotMapping(int[] physicalSlots, Message result);
17304e10a61602bd065cdf71d0335493ac3444d5055ayinxu
17314e10a61602bd065cdf71d0335493ac3444d5055ayinxu    /**
17320825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Return if the current radio is LTE on CDMA. This
17330825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * is a tri-state return value as for a period of time
17340825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * the mode may be unknown.
17350825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     *
1736cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville     * @return {@link PhoneConstants#LTE_ON_CDMA_UNKNOWN}, {@link PhoneConstants#LTE_ON_CDMA_FALSE}
1737cbaa45bbf2cab852b6c9c3a887e9f803d4e857eaWink Saville     * or {@link PhoneConstants#LTE_ON_CDMA_TRUE}
17380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
17390825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public int getLteOnCdmaMode();
17400825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville
17410825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    /**
1742a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville     * Request the SIM application on the UICC to perform authentication
1743a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville     * challenge/response algorithm. The data string and challenge response are
1744a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville     * Base64 encoded Strings.
1745a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville     * Can support EAP-SIM, EAP-AKA with results encoded per 3GPP TS 31.102.
1746a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville     *
1747ce083ae9d277bea9fbc1c143766adf1013f4a50eAmit Mahajan     * @param authContext is the P2 parameter that specifies the authentication context per 3GPP TS
1748ce083ae9d277bea9fbc1c143766adf1013f4a50eAmit Mahajan     *                    31.102 (Section 7.1.2)
1749a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville     * @param data authentication challenge data
1750ce083ae9d277bea9fbc1c143766adf1013f4a50eAmit Mahajan     * @param aid used to determine which application/slot to send the auth command to. See ETSI
1751ce083ae9d277bea9fbc1c143766adf1013f4a50eAmit Mahajan     *            102.221 8.1 and 101.220 4
1752a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville     * @param response a callback message with the String response in the obj field
1753a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville     */
1754ce083ae9d277bea9fbc1c143766adf1013f4a50eAmit Mahajan    public void requestIccSimAuthentication(int authContext, String data, String aid, Message response);
1755a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
1756a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville    /**
17575fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville     * Get the current Voice Radio Technology.
17585fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville     *
17595fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville     * AsyncResult.result is an int array with the first value
17605fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville     * being one of the ServiceState.RIL_RADIO_TECHNOLOGY_xxx values.
17615fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville     *
17625fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville     * @param result is sent back to handler and result.obj is a AsyncResult
17635fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville     */
17645fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville    void getVoiceRadioTechnology(Message result);
17655fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville
17665fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville    /**
17675fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville     * Return the current set of CellInfo records
17685fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville     *
17695fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville     * AsyncResult.result is a of Collection<CellInfo>
17705fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville     *
17715fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville     * @param result is sent back to handler and result.obj is a AsyncResult
17728b38cd985149b459969dd2ac9e8013d852dc6760Sooraj Sasindran     * @param workSource calling WorkSource
17735fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville     */
17748b38cd985149b459969dd2ac9e8013d852dc6760Sooraj Sasindran    default void getCellInfoList(Message result, WorkSource workSource) {}
17755fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville
17765fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville    /**
17775fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville     * Sets the minimum time in milli-seconds between when RIL_UNSOL_CELL_INFO_LIST
17785fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville     * should be invoked.
17795fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville     *
1780a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville     * The default, 0, means invoke RIL_UNSOL_CELL_INFO_LIST when any of the reported
17815fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville     * information changes. Setting the value to INT_MAX(0x7fffffff) means never issue
17825fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville     * A RIL_UNSOL_CELL_INFO_LIST.
17835fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville     *
1784a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville     *
17855fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville
17865fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville     * @param rateInMillis is sent back to handler and result.obj is a AsyncResult
17875fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville     * @param response.obj is AsyncResult ar when sent to associated handler
17885fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville     *                        ar.exception carries exception on failure or null on success
17895fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville     *                        otherwise the error.
17908b38cd985149b459969dd2ac9e8013d852dc6760Sooraj Sasindran     * @param workSource calling WorkSource
17915fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville     */
17928b38cd985149b459969dd2ac9e8013d852dc6760Sooraj Sasindran    default void setCellInfoListRate(int rateInMillis, Message response, WorkSource workSource){}
17935fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville
17945fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville    /**
17955fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville     * Fires when RIL_UNSOL_CELL_INFO_LIST is received from the RIL.
17965fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville     */
17975fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville    void registerForCellInfoList(Handler h, int what, Object obj);
17985fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville    void unregisterForCellInfoList(Handler h);
17995fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville
18005fb811ff076aa6b4a9ceca6edaf504a4c6d9ad20Wink Saville    /**
18018f332a7ac42f70f096ca469ee12a2abcbf273c9dEric Schwarzenbach     * Fires when a new {@link android.telephony.PhysicalChannelConfig} list is received from the
18028f332a7ac42f70f096ca469ee12a2abcbf273c9dEric Schwarzenbach     * RIL.
18038f332a7ac42f70f096ca469ee12a2abcbf273c9dEric Schwarzenbach     */
18048f332a7ac42f70f096ca469ee12a2abcbf273c9dEric Schwarzenbach    void registerForPhysicalChannelConfiguration(Handler h, int what, Object obj);
18058f332a7ac42f70f096ca469ee12a2abcbf273c9dEric Schwarzenbach
18068f332a7ac42f70f096ca469ee12a2abcbf273c9dEric Schwarzenbach    /**
18078f332a7ac42f70f096ca469ee12a2abcbf273c9dEric Schwarzenbach     * Unregisters the handler for {@link android.telephony.PhysicalChannelConfig} updates.
18088f332a7ac42f70f096ca469ee12a2abcbf273c9dEric Schwarzenbach     */
18098f332a7ac42f70f096ca469ee12a2abcbf273c9dEric Schwarzenbach    void unregisterForPhysicalChannelConfiguration(Handler h);
18108f332a7ac42f70f096ca469ee12a2abcbf273c9dEric Schwarzenbach
18118f332a7ac42f70f096ca469ee12a2abcbf273c9dEric Schwarzenbach    /**
18125d5eea6ed231163c225144316b0d1913d48678a4Sungmin Choi     * Set Initial Attach Apn
18135d5eea6ed231163c225144316b0d1913d48678a4Sungmin Choi     *
1814caecd75617c11d33e000c4d90f8a6557c5b2de7eJack Yu     * @param dataProfile
1815caecd75617c11d33e000c4d90f8a6557c5b2de7eJack Yu     *            data profile for initial APN attach
1816caecd75617c11d33e000c4d90f8a6557c5b2de7eJack Yu     * @param isRoaming
1817caecd75617c11d33e000c4d90f8a6557c5b2de7eJack Yu     *            indicating the device is roaming or not
18185d5eea6ed231163c225144316b0d1913d48678a4Sungmin Choi     * @param result
18195d5eea6ed231163c225144316b0d1913d48678a4Sungmin Choi     *            callback message contains the information of SUCCESS/FAILURE
18205d5eea6ed231163c225144316b0d1913d48678a4Sungmin Choi     */
1821caecd75617c11d33e000c4d90f8a6557c5b2de7eJack Yu    void setInitialAttachApn(DataProfile dataProfile, boolean isRoaming, Message result);
18225d5eea6ed231163c225144316b0d1913d48678a4Sungmin Choi
18235d5eea6ed231163c225144316b0d1913d48678a4Sungmin Choi    /**
18249d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan     * Set data profiles in modem
18259d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan     *
18269d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan     * @param dps
18279d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan     *            Array of the data profiles set to modem
1828caecd75617c11d33e000c4d90f8a6557c5b2de7eJack Yu     * @param isRoaming
1829caecd75617c11d33e000c4d90f8a6557c5b2de7eJack Yu     *            Indicating if the device is roaming or not
18309d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan     * @param result
18319d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan     *            callback message contains the information of SUCCESS/FAILURE
18329d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan     */
1833caecd75617c11d33e000c4d90f8a6557c5b2de7eJack Yu    void setDataProfile(DataProfile[] dps, boolean isRoaming, Message result);
18349d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan
18359d4ec7d45061f1da05f16cd244eb0a798e7f36bbAmit Mahajan    /**
18360825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     * Notifiy that we are testing an emergency call
18370825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville     */
18380825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville    public void testingEmergencyCall();
18391de1d3c6da7aa16d1a1b4a3f85484803788d2f8bWink Saville
184040d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal    /**
184140d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal     * Open a logical channel to the SIM.
184240d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal     *
184340d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal     * Input parameters equivalent to TS 27.007 AT+CCHO command.
184440d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal     *
184540d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal     * @param AID Application id. See ETSI 102.221 and 101.220.
184610d75a759b897da1077e3aa21ced4c46698c5552Ajay Nambi     * @param p2 P2 parameter (described in ISO 7816-4).
184740d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal     * @param response Callback message. response.obj will be an int [1] with
18481bedce664e0a12039294e8fd48a83ece0d271ce0Shishir Agrawal     *            element [0] set to the id of the logical channel.
184940d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal     */
185010d75a759b897da1077e3aa21ced4c46698c5552Ajay Nambi    public void iccOpenLogicalChannel(String AID, int p2, Message response);
185140d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal
185240d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal    /**
185340d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal     * Close a previously opened logical channel to the SIM.
185440d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal     *
185540d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal     * Input parameters equivalent to TS 27.007 AT+CCHC command.
185640d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal     *
185740d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal     * @param channel Channel id. Id of the channel to be closed.
185840d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal     * @param response Callback message.
185940d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal     */
186040d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal    public void iccCloseLogicalChannel(int channel, Message response);
186140d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal
186240d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal    /**
186340d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal     * Exchange APDUs with the SIM on a logical channel.
186440d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal     *
186540d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal     * Input parameters equivalent to TS 27.007 AT+CGLA command.
186640d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal     *
186740d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal     * @param channel Channel id of the channel to use for communication. Has to
186840d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal     *            be greater than zero.
186940d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal     * @param cla Class of the APDU command.
187040d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal     * @param instruction Instruction of the APDU command.
187140d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal     * @param p1 P1 value of the APDU command.
187240d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal     * @param p2 P2 value of the APDU command.
187340d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal     * @param p3 P3 value of the APDU command. If p3 is negative a 4 byte APDU
187440d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal     *            is sent to the SIM.
187540d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal     * @param data Data to be sent with the APDU.
187640d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal     * @param response Callback message. response.obj.userObj will be
187740d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal     *            an IccIoResult on success.
187840d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal     */
187940d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal    public void iccTransmitApduLogicalChannel(int channel, int cla, int instruction,
188040d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal            int p1, int p2, int p3, String data, Message response);
188140d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal
188240d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal    /**
188340d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal     * Exchange APDUs with the SIM on a basic channel.
188440d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal     *
188540d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal     * Input parameters equivalent to TS 27.007 AT+CSIM command.
188640d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal     *
188740d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal     * @param cla Class of the APDU command.
188840d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal     * @param instruction Instruction of the APDU command.
188940d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal     * @param p1 P1 value of the APDU command.
189040d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal     * @param p2 P2 value of the APDU command.
189140d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal     * @param p3 P3 value of the APDU command. If p3 is negative a 4 byte APDU
189240d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal     *            is sent to the SIM.
189340d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal     * @param data Data to be sent with the APDU.
189440d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal     * @param response Callback message. response.obj.userObj will be
189540d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal     *            an IccIoResult on success.
189640d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal     */
189740d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal    public void iccTransmitApduBasicChannel(int cla, int instruction, int p1, int p2,
189840d1d394302d83eb56f66cf08daecc612c97cd28Shishir Agrawal            int p3, String data, Message response);
18991de1d3c6da7aa16d1a1b4a3f85484803788d2f8bWink Saville
19001de1d3c6da7aa16d1a1b4a3f85484803788d2f8bWink Saville    /**
1901f28ac81ec36df38307648d404cff4b2b11f46861Jake Hamby     * Read one of the NV items defined in {@link RadioNVItems} / {@code ril_nv_items.h}.
1902f28ac81ec36df38307648d404cff4b2b11f46861Jake Hamby     * Used for device configuration by some CDMA operators.
1903f28ac81ec36df38307648d404cff4b2b11f46861Jake Hamby     *
1904f28ac81ec36df38307648d404cff4b2b11f46861Jake Hamby     * @param itemID the ID of the item to read
1905f28ac81ec36df38307648d404cff4b2b11f46861Jake Hamby     * @param response callback message with the String response in the obj field
1906f28ac81ec36df38307648d404cff4b2b11f46861Jake Hamby     */
1907f28ac81ec36df38307648d404cff4b2b11f46861Jake Hamby    void nvReadItem(int itemID, Message response);
1908f28ac81ec36df38307648d404cff4b2b11f46861Jake Hamby
1909f28ac81ec36df38307648d404cff4b2b11f46861Jake Hamby    /**
1910f28ac81ec36df38307648d404cff4b2b11f46861Jake Hamby     * Write one of the NV items defined in {@link RadioNVItems} / {@code ril_nv_items.h}.
1911f28ac81ec36df38307648d404cff4b2b11f46861Jake Hamby     * Used for device configuration by some CDMA operators.
1912f28ac81ec36df38307648d404cff4b2b11f46861Jake Hamby     *
1913f28ac81ec36df38307648d404cff4b2b11f46861Jake Hamby     * @param itemID the ID of the item to read
1914f28ac81ec36df38307648d404cff4b2b11f46861Jake Hamby     * @param itemValue the value to write, as a String
1915f28ac81ec36df38307648d404cff4b2b11f46861Jake Hamby     * @param response Callback message.
1916f28ac81ec36df38307648d404cff4b2b11f46861Jake Hamby     */
1917f28ac81ec36df38307648d404cff4b2b11f46861Jake Hamby    void nvWriteItem(int itemID, String itemValue, Message response);
1918f28ac81ec36df38307648d404cff4b2b11f46861Jake Hamby
1919f28ac81ec36df38307648d404cff4b2b11f46861Jake Hamby    /**
1920f28ac81ec36df38307648d404cff4b2b11f46861Jake Hamby     * Update the CDMA Preferred Roaming List (PRL) in the radio NV storage.
1921f28ac81ec36df38307648d404cff4b2b11f46861Jake Hamby     * Used for device configuration by some CDMA operators.
1922f28ac81ec36df38307648d404cff4b2b11f46861Jake Hamby     *
1923f28ac81ec36df38307648d404cff4b2b11f46861Jake Hamby     * @param preferredRoamingList byte array containing the new PRL
1924f28ac81ec36df38307648d404cff4b2b11f46861Jake Hamby     * @param response Callback message.
1925f28ac81ec36df38307648d404cff4b2b11f46861Jake Hamby     */
1926f28ac81ec36df38307648d404cff4b2b11f46861Jake Hamby    void nvWriteCdmaPrl(byte[] preferredRoamingList, Message response);
1927f28ac81ec36df38307648d404cff4b2b11f46861Jake Hamby
1928f28ac81ec36df38307648d404cff4b2b11f46861Jake Hamby    /**
1929f4016c89cdb71c75b63b73a9f6d5b84681307142Jake Hamby     * Perform the specified type of NV config reset. The radio will be taken offline
1930f4016c89cdb71c75b63b73a9f6d5b84681307142Jake Hamby     * and the device must be rebooted after erasing the NV. Used for device
1931f4016c89cdb71c75b63b73a9f6d5b84681307142Jake Hamby     * configuration by some CDMA operators.
1932f28ac81ec36df38307648d404cff4b2b11f46861Jake Hamby     *
1933f4016c89cdb71c75b63b73a9f6d5b84681307142Jake Hamby     * @param resetType reset type: 1: reload NV reset, 2: erase NV reset, 3: factory NV reset
1934f28ac81ec36df38307648d404cff4b2b11f46861Jake Hamby     * @param response Callback message.
1935f28ac81ec36df38307648d404cff4b2b11f46861Jake Hamby     */
1936f28ac81ec36df38307648d404cff4b2b11f46861Jake Hamby    void nvResetConfig(int resetType, Message response);
1937f28ac81ec36df38307648d404cff4b2b11f46861Jake Hamby
1938f28ac81ec36df38307648d404cff4b2b11f46861Jake Hamby    /**
1939a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville     *  returned message
1940a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville     *  retMsg.obj = AsyncResult ar
1941a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville     *  ar.exception carries exception on failure
1942a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville     *  ar.userObject contains the orignal value of result.obj
1943a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville     *  ar.result contains a List of HardwareConfig
1944a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville     */
1945a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville    void getHardwareConfig (Message result);
1946a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
1947a56f405d3006b1d8378b5f7757a5613b75fa8fb4Adrian Salido    /**
1948a56f405d3006b1d8378b5f7757a5613b75fa8fb4Adrian Salido     * @return version of the ril.
1949a56f405d3006b1d8378b5f7757a5613b75fa8fb4Adrian Salido     */
1950a56f405d3006b1d8378b5f7757a5613b75fa8fb4Adrian Salido    int getRilVersion();
1951a56f405d3006b1d8378b5f7757a5613b75fa8fb4Adrian Salido
1952a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville   /**
1953a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville     * Sets user selected subscription at Modem.
1954a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville     *
1955a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville     * @param slotId
1956a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville     *          Slot.
1957a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville     * @param appIndex
1958a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville     *          Application index in the card.
1959a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville     * @param subId
1960a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville     *          Indicates subscription 0 or subscription 1.
1961a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville     * @param subStatus
1962a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville     *          Activation status, 1 = activate and 0 = deactivate.
1963a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville     * @param result
1964a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville     *          Callback message contains the information of SUCCESS/FAILURE.
1965a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville     */
1966a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville    // FIXME Update the doc and consider modifying the request to make more generic.
1967a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville    public void setUiccSubscription(int slotId, int appIndex, int subId, int subStatus,
1968a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville            Message result);
1969a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville
1970a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville    /**
1971a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville     * Tells the modem if data is allowed or not.
1972a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville     *
1973a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville     * @param allowed
1974a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville     *          true = allowed, false = not alowed
1975a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville     * @param result
1976a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville     *          Callback message contains the information of SUCCESS/FAILURE.
1977a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville     */
1978a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville    // FIXME We may need to pass AID and slotid also
1979a8467dd0c524787104b1ccdddc5e8af10ba729edWink Saville    public void setDataAllowed(boolean allowed, Message result);
198003586878fb3d870373f2fdf65afb81cc5ae97067Naveen Kalla
198103586878fb3d870373f2fdf65afb81cc5ae97067Naveen Kalla    /**
198203586878fb3d870373f2fdf65afb81cc5ae97067Naveen Kalla     * Inform RIL that the device is shutting down
198303586878fb3d870373f2fdf65afb81cc5ae97067Naveen Kalla     *
198403586878fb3d870373f2fdf65afb81cc5ae97067Naveen Kalla     * @param result Callback message contains the information of SUCCESS/FAILURE
198503586878fb3d870373f2fdf65afb81cc5ae97067Naveen Kalla     */
198603586878fb3d870373f2fdf65afb81cc5ae97067Naveen Kalla    public void requestShutdown(Message result);
19872b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville
19882b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville    /**
19892b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville     *  Set phone radio type and access technology.
19902b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville     *
19912b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville     *  @param rc the phone radio capability defined in
19922b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville     *         RadioCapability. It's a input object used to transfer parameter to logic modem
19932b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville     *
19942b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville     *  @param result Callback message.
19952b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville     */
19962b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville    public void setRadioCapability(RadioCapability rc, Message result);
19972b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville
19982b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville    /**
19992b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville     *  Get phone radio capability
20002b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville     *
20012b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville     *  @param result Callback message.
20022b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville     */
20032b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville    public void getRadioCapability(Message result);
20042b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville
20052b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville    /**
20062b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville     * Registers the handler when phone radio capability is changed.
20072b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville     *
20082b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville     * @param h Handler for notification message.
20092b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville     * @param what User-defined message code.
20102b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville     * @param obj User object.
20112b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville     */
20122b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville    public void registerForRadioCapabilityChanged(Handler h, int what, Object obj);
20132b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville
20142b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville    /**
20152b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville     * Unregister for notifications when phone radio capability is changed.
20162b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville     *
20172b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville     * @param h Handler to be removed from the registrant list.
20182b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville     */
20192b40e6226b4b71408964bca46f0a9f256cd4f523Wink Saville    public void unregisterForRadioCapabilityChanged(Handler h);
202065bee39d7e417fb898c3948696d5d8a38046c449fenglu
202165bee39d7e417fb898c3948696d5d8a38046c449fenglu    /**
202265bee39d7e417fb898c3948696d5d8a38046c449fenglu     * Start LCE (Link Capacity Estimation) service with a desired reporting interval.
202365bee39d7e417fb898c3948696d5d8a38046c449fenglu     *
202465bee39d7e417fb898c3948696d5d8a38046c449fenglu     * @param reportIntervalMs
202565bee39d7e417fb898c3948696d5d8a38046c449fenglu     *        LCE info reporting interval (ms).
202665bee39d7e417fb898c3948696d5d8a38046c449fenglu     *
202765bee39d7e417fb898c3948696d5d8a38046c449fenglu     * @param result Callback message contains the current LCE status.
202865bee39d7e417fb898c3948696d5d8a38046c449fenglu     * {byte status, int actualIntervalMs}
202965bee39d7e417fb898c3948696d5d8a38046c449fenglu     */
203065bee39d7e417fb898c3948696d5d8a38046c449fenglu    public void startLceService(int reportIntervalMs, boolean pullMode, Message result);
203165bee39d7e417fb898c3948696d5d8a38046c449fenglu
203265bee39d7e417fb898c3948696d5d8a38046c449fenglu    /**
203365bee39d7e417fb898c3948696d5d8a38046c449fenglu     * Stop LCE service.
203465bee39d7e417fb898c3948696d5d8a38046c449fenglu     *
203565bee39d7e417fb898c3948696d5d8a38046c449fenglu     * @param result Callback message contains the current LCE status:
203665bee39d7e417fb898c3948696d5d8a38046c449fenglu     * {byte status, int actualIntervalMs}
203765bee39d7e417fb898c3948696d5d8a38046c449fenglu     *
203865bee39d7e417fb898c3948696d5d8a38046c449fenglu     */
203965bee39d7e417fb898c3948696d5d8a38046c449fenglu    public void stopLceService(Message result);
204065bee39d7e417fb898c3948696d5d8a38046c449fenglu
204165bee39d7e417fb898c3948696d5d8a38046c449fenglu    /**
204265bee39d7e417fb898c3948696d5d8a38046c449fenglu     * Pull LCE service for capacity data.
204365bee39d7e417fb898c3948696d5d8a38046c449fenglu     *
204465bee39d7e417fb898c3948696d5d8a38046c449fenglu     * @param result Callback message contains the capacity info:
204565bee39d7e417fb898c3948696d5d8a38046c449fenglu     * {int capacityKbps, byte confidenceLevel, byte lceSuspendedTemporarily}
204665bee39d7e417fb898c3948696d5d8a38046c449fenglu     */
204765bee39d7e417fb898c3948696d5d8a38046c449fenglu    public void pullLceData(Message result);
204865bee39d7e417fb898c3948696d5d8a38046c449fenglu
204965bee39d7e417fb898c3948696d5d8a38046c449fenglu    /**
205065bee39d7e417fb898c3948696d5d8a38046c449fenglu     * Register a LCE info listener.
205165bee39d7e417fb898c3948696d5d8a38046c449fenglu     *
205265bee39d7e417fb898c3948696d5d8a38046c449fenglu     * @param h Handler for notification message.
205365bee39d7e417fb898c3948696d5d8a38046c449fenglu     * @param what User-defined message code.
205465bee39d7e417fb898c3948696d5d8a38046c449fenglu     * @param obj User object.
205565bee39d7e417fb898c3948696d5d8a38046c449fenglu     */
205665bee39d7e417fb898c3948696d5d8a38046c449fenglu    void registerForLceInfo(Handler h, int what, Object obj);
205765bee39d7e417fb898c3948696d5d8a38046c449fenglu
205865bee39d7e417fb898c3948696d5d8a38046c449fenglu    /**
205965bee39d7e417fb898c3948696d5d8a38046c449fenglu     * Unregister the LCE Info listener.
206065bee39d7e417fb898c3948696d5d8a38046c449fenglu     *
206165bee39d7e417fb898c3948696d5d8a38046c449fenglu     * @param h handle to be removed.
206265bee39d7e417fb898c3948696d5d8a38046c449fenglu     */
206365bee39d7e417fb898c3948696d5d8a38046c449fenglu    void unregisterForLceInfo(Handler h);
206427eef341b171f925ef43dd088cc559280fd7d2b9Prerepa Viswanadham
206527eef341b171f925ef43dd088cc559280fd7d2b9Prerepa Viswanadham    /**
206627eef341b171f925ef43dd088cc559280fd7d2b9Prerepa Viswanadham     *
206727eef341b171f925ef43dd088cc559280fd7d2b9Prerepa Viswanadham     * Get modem activity info and stats
206827eef341b171f925ef43dd088cc559280fd7d2b9Prerepa Viswanadham     *
206927eef341b171f925ef43dd088cc559280fd7d2b9Prerepa Viswanadham     * @param result Callback message contains the modem activity information
207027eef341b171f925ef43dd088cc559280fd7d2b9Prerepa Viswanadham     */
207127eef341b171f925ef43dd088cc559280fd7d2b9Prerepa Viswanadham    public void getModemActivityInfo(Message result);
207240659286ac42ec77bbe7893830bd50c06f393ee8Meng Wang
207340659286ac42ec77bbe7893830bd50c06f393ee8Meng Wang    /**
207440659286ac42ec77bbe7893830bd50c06f393ee8Meng Wang     * Set allowed carriers
207540659286ac42ec77bbe7893830bd50c06f393ee8Meng Wang     *
207640659286ac42ec77bbe7893830bd50c06f393ee8Meng Wang     * @param carriers Allowed carriers
207740659286ac42ec77bbe7893830bd50c06f393ee8Meng Wang     * @param result Callback message contains the number of carriers set successfully
207840659286ac42ec77bbe7893830bd50c06f393ee8Meng Wang     */
207940659286ac42ec77bbe7893830bd50c06f393ee8Meng Wang    public void setAllowedCarriers(List<CarrierIdentifier> carriers, Message result);
208040659286ac42ec77bbe7893830bd50c06f393ee8Meng Wang
208140659286ac42ec77bbe7893830bd50c06f393ee8Meng Wang    /**
208240659286ac42ec77bbe7893830bd50c06f393ee8Meng Wang     * Get allowed carriers
208340659286ac42ec77bbe7893830bd50c06f393ee8Meng Wang     *
208440659286ac42ec77bbe7893830bd50c06f393ee8Meng Wang     * @param result Callback message contains the allowed carriers
208540659286ac42ec77bbe7893830bd50c06f393ee8Meng Wang     */
208640659286ac42ec77bbe7893830bd50c06f393ee8Meng Wang    public void getAllowedCarriers(Message result);
20874b4d80db8a8d447d3c1110831c2a821a2bd2a186Robert Greenwalt
20884b4d80db8a8d447d3c1110831c2a821a2bd2a186Robert Greenwalt    /**
20894b4d80db8a8d447d3c1110831c2a821a2bd2a186Robert Greenwalt     * Register for unsolicited PCO data.  This information is carrier-specific,
20904b4d80db8a8d447d3c1110831c2a821a2bd2a186Robert Greenwalt     * opaque binary blobs destined for carrier apps for interpretation.
20914b4d80db8a8d447d3c1110831c2a821a2bd2a186Robert Greenwalt     *
209221cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold     * @param h Handler for notification message.
20934b4d80db8a8d447d3c1110831c2a821a2bd2a186Robert Greenwalt     * @param what User-defined message code.
20944b4d80db8a8d447d3c1110831c2a821a2bd2a186Robert Greenwalt     * @param obj User object.
20954b4d80db8a8d447d3c1110831c2a821a2bd2a186Robert Greenwalt     */
20964b4d80db8a8d447d3c1110831c2a821a2bd2a186Robert Greenwalt    public void registerForPcoData(Handler h, int what, Object obj);
20974b4d80db8a8d447d3c1110831c2a821a2bd2a186Robert Greenwalt
20984b4d80db8a8d447d3c1110831c2a821a2bd2a186Robert Greenwalt    /**
20994b4d80db8a8d447d3c1110831c2a821a2bd2a186Robert Greenwalt     * Unregister for PCO data.
21004b4d80db8a8d447d3c1110831c2a821a2bd2a186Robert Greenwalt     *
21014b4d80db8a8d447d3c1110831c2a821a2bd2a186Robert Greenwalt     * @param h handler to be removed
21024b4d80db8a8d447d3c1110831c2a821a2bd2a186Robert Greenwalt     */
21034b4d80db8a8d447d3c1110831c2a821a2bd2a186Robert Greenwalt    public void unregisterForPcoData(Handler h);
21048b38cd985149b459969dd2ac9e8013d852dc6760Sooraj Sasindran
2105df97820b2db85a96b3d87e9968c1898ece1e6736Jack Yu    /**
210644fd6f60bc5aca75938a2c3e725f88b6e897983aNaveen Kalla     * Register for modem reset indication.
210744fd6f60bc5aca75938a2c3e725f88b6e897983aNaveen Kalla     *
210844fd6f60bc5aca75938a2c3e725f88b6e897983aNaveen Kalla     * @param h  Handler for the notification message
210944fd6f60bc5aca75938a2c3e725f88b6e897983aNaveen Kalla     * @param what User-defined message code
211044fd6f60bc5aca75938a2c3e725f88b6e897983aNaveen Kalla     * @param obj User object
211144fd6f60bc5aca75938a2c3e725f88b6e897983aNaveen Kalla     */
211244fd6f60bc5aca75938a2c3e725f88b6e897983aNaveen Kalla    void registerForModemReset(Handler h, int what, Object obj);
211344fd6f60bc5aca75938a2c3e725f88b6e897983aNaveen Kalla
211444fd6f60bc5aca75938a2c3e725f88b6e897983aNaveen Kalla    /**
211544fd6f60bc5aca75938a2c3e725f88b6e897983aNaveen Kalla     * Unregister for modem reset
211644fd6f60bc5aca75938a2c3e725f88b6e897983aNaveen Kalla     *
211744fd6f60bc5aca75938a2c3e725f88b6e897983aNaveen Kalla     * @param h handler to be removed
211844fd6f60bc5aca75938a2c3e725f88b6e897983aNaveen Kalla     */
211944fd6f60bc5aca75938a2c3e725f88b6e897983aNaveen Kalla    void unregisterForModemReset(Handler h);
212044fd6f60bc5aca75938a2c3e725f88b6e897983aNaveen Kalla
212144fd6f60bc5aca75938a2c3e725f88b6e897983aNaveen Kalla    /**
212250b941e59787a21dd2d4f3d25d700538efb9abc5Jack Yu     * Send the updated device state
212350b941e59787a21dd2d4f3d25d700538efb9abc5Jack Yu     *
212450b941e59787a21dd2d4f3d25d700538efb9abc5Jack Yu     * @param stateType Device state type
212550b941e59787a21dd2d4f3d25d700538efb9abc5Jack Yu     * @param state True if enabled, otherwise disabled
212650b941e59787a21dd2d4f3d25d700538efb9abc5Jack Yu     * @param result callback message contains the information of SUCCESS/FAILURE
212750b941e59787a21dd2d4f3d25d700538efb9abc5Jack Yu     */
212850b941e59787a21dd2d4f3d25d700538efb9abc5Jack Yu    void sendDeviceState(int stateType, boolean state, Message result);
212950b941e59787a21dd2d4f3d25d700538efb9abc5Jack Yu
213050b941e59787a21dd2d4f3d25d700538efb9abc5Jack Yu    /**
213150b941e59787a21dd2d4f3d25d700538efb9abc5Jack Yu     * Send the device state to the modem
213250b941e59787a21dd2d4f3d25d700538efb9abc5Jack Yu     *
213350b941e59787a21dd2d4f3d25d700538efb9abc5Jack Yu     * @param filter unsolicited response filter. See DeviceStateMonitor.UnsolicitedResponseFilter
213450b941e59787a21dd2d4f3d25d700538efb9abc5Jack Yu     * @param result callback message contains the information of SUCCESS/FAILURE
213550b941e59787a21dd2d4f3d25d700538efb9abc5Jack Yu     */
213650b941e59787a21dd2d4f3d25d700538efb9abc5Jack Yu    void setUnsolResponseFilter(int filter, Message result);
213750b941e59787a21dd2d4f3d25d700538efb9abc5Jack Yu
213850b941e59787a21dd2d4f3d25d700538efb9abc5Jack Yu    /**
2139c7776a8f093a315d3baced16f57c5214116ed3d7Eric Schwarzenbach     * Send the signal strength reporting criteria to the modem.
2140c7776a8f093a315d3baced16f57c5214116ed3d7Eric Schwarzenbach     *
2141c7776a8f093a315d3baced16f57c5214116ed3d7Eric Schwarzenbach     * @param hysteresisMs A hysteresis time in milliseconds. A value of 0 disables hysteresis.
2142c7776a8f093a315d3baced16f57c5214116ed3d7Eric Schwarzenbach     * @param hysteresisDb An interval in dB defining the required magnitude change between reports.
2143c7776a8f093a315d3baced16f57c5214116ed3d7Eric Schwarzenbach     *     A value of 0 disables hysteresis.
2144c7776a8f093a315d3baced16f57c5214116ed3d7Eric Schwarzenbach     * @param thresholdsDbm An array of trigger thresholds in dBm. A size of 0 disables thresholds.
2145c7776a8f093a315d3baced16f57c5214116ed3d7Eric Schwarzenbach     * @param ran RadioAccessNetwork for which to apply criteria.
2146c7776a8f093a315d3baced16f57c5214116ed3d7Eric Schwarzenbach     * @param result callback message contains the information of SUCCESS/FAILURE
2147c7776a8f093a315d3baced16f57c5214116ed3d7Eric Schwarzenbach     */
2148c7776a8f093a315d3baced16f57c5214116ed3d7Eric Schwarzenbach    void setSignalStrengthReportingCriteria(int hysteresisMs, int hysteresisDb, int[] thresholdsDbm,
2149c7776a8f093a315d3baced16f57c5214116ed3d7Eric Schwarzenbach            int ran, Message result);
2150c7776a8f093a315d3baced16f57c5214116ed3d7Eric Schwarzenbach
2151c7776a8f093a315d3baced16f57c5214116ed3d7Eric Schwarzenbach    /**
2152c7776a8f093a315d3baced16f57c5214116ed3d7Eric Schwarzenbach     * Send the link capacity reporting criteria to the modem
2153c7776a8f093a315d3baced16f57c5214116ed3d7Eric Schwarzenbach     *
2154c7776a8f093a315d3baced16f57c5214116ed3d7Eric Schwarzenbach     * @param hysteresisMs A hysteresis time in milliseconds. A value of 0 disables hysteresis.
2155c7776a8f093a315d3baced16f57c5214116ed3d7Eric Schwarzenbach     * @param hysteresisDlKbps An interval in kbps defining the required magnitude change between DL
2156c7776a8f093a315d3baced16f57c5214116ed3d7Eric Schwarzenbach     *     reports. A value of 0 disables hysteresis.
2157c7776a8f093a315d3baced16f57c5214116ed3d7Eric Schwarzenbach     * @param hysteresisUlKbps An interval in kbps defining the required magnitude change between UL
2158c7776a8f093a315d3baced16f57c5214116ed3d7Eric Schwarzenbach     *     reports. A value of 0 disables hysteresis.
2159c7776a8f093a315d3baced16f57c5214116ed3d7Eric Schwarzenbach     * @param thresholdsDlKbps An array of trigger thresholds in kbps for downlink reports. A size
2160c7776a8f093a315d3baced16f57c5214116ed3d7Eric Schwarzenbach     *     of 0 disables thresholds.
2161c7776a8f093a315d3baced16f57c5214116ed3d7Eric Schwarzenbach     * @param thresholdsUlKbps An array of trigger thresholds in kbps for uplink reports. A size
2162c7776a8f093a315d3baced16f57c5214116ed3d7Eric Schwarzenbach     *     of 0 disables thresholds.
2163c7776a8f093a315d3baced16f57c5214116ed3d7Eric Schwarzenbach     * @param ran RadioAccessNetwork for which to apply criteria.
2164c7776a8f093a315d3baced16f57c5214116ed3d7Eric Schwarzenbach     * @param result callback message contains the information of SUCCESS/FAILURE
2165c7776a8f093a315d3baced16f57c5214116ed3d7Eric Schwarzenbach     */
2166c7776a8f093a315d3baced16f57c5214116ed3d7Eric Schwarzenbach    void setLinkCapacityReportingCriteria(int hysteresisMs, int hysteresisDlKbps,
2167c7776a8f093a315d3baced16f57c5214116ed3d7Eric Schwarzenbach            int hysteresisUlKbps, int[] thresholdsDlKbps, int[] thresholdsUlKbps, int ran,
2168c7776a8f093a315d3baced16f57c5214116ed3d7Eric Schwarzenbach            Message result);
2169c7776a8f093a315d3baced16f57c5214116ed3d7Eric Schwarzenbach
2170c7776a8f093a315d3baced16f57c5214116ed3d7Eric Schwarzenbach    /**
2171df97820b2db85a96b3d87e9968c1898ece1e6736Jack Yu     * Set SIM card power up or down
2172df97820b2db85a96b3d87e9968c1898ece1e6736Jack Yu     *
21732d4f7c72eb95807a2235068dde9c4c98cda2f626Grace Chen     * @param state  State of SIM (power down, power up, pass through)
21742d4f7c72eb95807a2235068dde9c4c98cda2f626Grace Chen     * - {@link android.telephony.TelephonyManager#CARD_POWER_DOWN}
21752d4f7c72eb95807a2235068dde9c4c98cda2f626Grace Chen     * - {@link android.telephony.TelephonyManager#CARD_POWER_UP}
21762d4f7c72eb95807a2235068dde9c4c98cda2f626Grace Chen     * - {@link android.telephony.TelephonyManager#CARD_POWER_UP_PASS_THROUGH}
2177df97820b2db85a96b3d87e9968c1898ece1e6736Jack Yu     * @param result callback message contains the information of SUCCESS/FAILURE
2178df97820b2db85a96b3d87e9968c1898ece1e6736Jack Yu     */
21792d4f7c72eb95807a2235068dde9c4c98cda2f626Grace Chen    void setSimCardPower(int state, Message result);
2180df97820b2db85a96b3d87e9968c1898ece1e6736Jack Yu
21813dd2f4b1d5d89bb2e785df8e6ede6bf25937b0bdpkanwar    /**
21823dd2f4b1d5d89bb2e785df8e6ede6bf25937b0bdpkanwar     * Register for unsolicited Carrier Public Key.
21833dd2f4b1d5d89bb2e785df8e6ede6bf25937b0bdpkanwar     *
218421cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold     * @param h Handler for notification message.
21853dd2f4b1d5d89bb2e785df8e6ede6bf25937b0bdpkanwar     * @param what User-defined message code.
21863dd2f4b1d5d89bb2e785df8e6ede6bf25937b0bdpkanwar     * @param obj User object.
21873dd2f4b1d5d89bb2e785df8e6ede6bf25937b0bdpkanwar     */
21883dd2f4b1d5d89bb2e785df8e6ede6bf25937b0bdpkanwar    void registerForCarrierInfoForImsiEncryption(Handler h, int what, Object obj);
21893dd2f4b1d5d89bb2e785df8e6ede6bf25937b0bdpkanwar
21903dd2f4b1d5d89bb2e785df8e6ede6bf25937b0bdpkanwar    /**
21913dd2f4b1d5d89bb2e785df8e6ede6bf25937b0bdpkanwar     * DeRegister for unsolicited Carrier Public Key.
21923dd2f4b1d5d89bb2e785df8e6ede6bf25937b0bdpkanwar     *
219321cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold     * @param h Handler for notification message.
21943dd2f4b1d5d89bb2e785df8e6ede6bf25937b0bdpkanwar     */
21953dd2f4b1d5d89bb2e785df8e6ede6bf25937b0bdpkanwar    void unregisterForCarrierInfoForImsiEncryption(Handler h);
21963dd2f4b1d5d89bb2e785df8e6ede6bf25937b0bdpkanwar
2197c8c651f856047c6c761de788a14097600701cdabyinxu    /**
2198c8c651f856047c6c761de788a14097600701cdabyinxu     * Register for unsolicited Network Scan result.
2199c8c651f856047c6c761de788a14097600701cdabyinxu     *
220021cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold     * @param h Handler for notification message.
2201c8c651f856047c6c761de788a14097600701cdabyinxu     * @param what User-defined message code.
2202c8c651f856047c6c761de788a14097600701cdabyinxu     * @param obj User object.
2203c8c651f856047c6c761de788a14097600701cdabyinxu     */
2204c8c651f856047c6c761de788a14097600701cdabyinxu    void registerForNetworkScanResult(Handler h, int what, Object obj);
2205c8c651f856047c6c761de788a14097600701cdabyinxu
2206c8c651f856047c6c761de788a14097600701cdabyinxu    /**
2207c8c651f856047c6c761de788a14097600701cdabyinxu     * DeRegister for unsolicited Network Scan result.
2208c8c651f856047c6c761de788a14097600701cdabyinxu     *
220921cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold     * @param h Handler for notification message.
2210c8c651f856047c6c761de788a14097600701cdabyinxu     */
2211c8c651f856047c6c761de788a14097600701cdabyinxu    void unregisterForNetworkScanResult(Handler h);
2212c8c651f856047c6c761de788a14097600701cdabyinxu
221321cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold    /**
221421cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold     * Register for unsolicited NATT Keepalive Status Indications
221521cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold     *
221621cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold     * @param h Handler for notification message.
221721cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold     * @param what User-defined message code.
221821cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold     * @param obj User object.
221921cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold     */
222021cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold    void registerForNattKeepaliveStatus(Handler h, int what, Object obj);
222121cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold
222221cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold    /**
222321cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold     * Deregister for unsolicited NATT Keepalive Status Indications.
222421cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold     *
222521cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold     * @param h Handler for notification message.
222621cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold     */
222721cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold    void unregisterForNattKeepaliveStatus(Handler h);
222821cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold
222921cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold    /**
223021cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold     * Start sending NATT Keepalive packets on a specified data connection
223121cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold     *
223221cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold     * @param contextId cid that identifies the data connection for this keepalive
223321cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold     * @param packetData the keepalive packet data description
223421cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold     * @param intervalMillis a time interval in ms between keepalive packet transmissions
223521cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold     * @param result a Message to return to the requester
223621cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold     */
223721cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold    void startNattKeepalive(
223821cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold            int contextId, KeepalivePacketData packetData, int intervalMillis, Message result);
223921cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold
224021cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold    /**
224121cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold     * Stop sending NATT Keepalive packets on a specified data connection
224221cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold     *
224321cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold     * @param sessionHandle the keepalive session handle (from the modem) to stop
224421cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold     * @param result a Message to return to the requester
224521cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold     */
224621cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold    void stopNattKeepalive(int sessionHandle, Message result);
224721cb4001dec43dc8a3e031eb4a64c721a03bd6eeNathan Harold
22488b38cd985149b459969dd2ac9e8013d852dc6760Sooraj Sasindran    default public List<ClientRequestStats> getClientRequestStats() {
22498b38cd985149b459969dd2ac9e8013d852dc6760Sooraj Sasindran        return null;
22508b38cd985149b459969dd2ac9e8013d852dc6760Sooraj Sasindran    }
22510825495a331bb44df395a0cdb79fab85e68db5d5Wink Saville}
2252