blob: 37e0bdefb2d782398958ec38af30e0237cd7c5fa [file] [log] [blame]
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08001/*
2 * Copyright (C) 2006 The Android Open Source Project
3 *
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
7 *
8 * http://www.apache.org/licenses/LICENSE-2.0
9 *
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
15 */
16
Wink Saville7f856802009-06-09 10:23:37 -070017#ifndef ANDROID_RIL_H
The Android Open Source Project00f06fc2009-03-03 19:32:15 -080018#define ANDROID_RIL_H 1
19
20#include <stdlib.h>
Wink Saville8a9e0212013-04-09 12:11:38 -070021#include <stdint.h>
Sukanya Rajkhowaa18b9d12013-09-10 12:30:13 -070022#include <telephony/ril_cdma_sms.h>
Jake Hamby8a4a2332014-01-15 13:12:05 -080023#include <telephony/ril_nv_items.h>
Etan Cohend3652192014-06-20 08:28:44 -070024#include <telephony/ril_msim.h>
Jake Hamby8a4a2332014-01-15 13:12:05 -080025
Wink Savillef4c4d362009-04-02 01:37:03 -070026#ifndef FEATURE_UNIT_TEST
The Android Open Source Project00f06fc2009-03-03 19:32:15 -080027#include <sys/time.h>
Wink Savillef4c4d362009-04-02 01:37:03 -070028#endif /* !FEATURE_UNIT_TEST */
The Android Open Source Project00f06fc2009-03-03 19:32:15 -080029
30#ifdef __cplusplus
31extern "C" {
32#endif
33
Etan Cohend3652192014-06-20 08:28:44 -070034
35#if defined(ANDROID_SIM_COUNT_2)
36#define SIM_COUNT 2
37#elif defined(ANDROID_SIM_COUNT_3)
38#define SIM_COUNT 3
39#elif defined(ANDROID_SIM_COUNT_4)
40#define SIM_COUNT 4
41#else
42#define SIM_COUNT 1
43#endif
44
45#ifndef ANDROID_MULTI_SIM
46#define SIM_COUNT 1
47#endif
48
Sanket Padawe88cf6a52016-01-11 12:45:43 -080049/*
50 * RIL version.
51 * Value of RIL_VERSION should not be changed in future. Here onwards,
52 * when a new change is supposed to be introduced which could involve new
53 * schemes added like Wakelocks, data structures added/updated, etc, we would
54 * just document RIL version associated with that change below. When OEM updates its
55 * RIL with those changes, they would return that new RIL version during RIL_REGISTER.
56 * We should make use of the returned version by vendor to identify appropriate scheme
57 * or data structure version to use.
58 *
59 * Documentation of RIL version and associated changes
Sanket Padawef53c5fa2016-01-27 10:00:38 -080060 * RIL_VERSION = 12 : This version corresponds to updated data structures namely
Sanket Padawe88cf6a52016-01-11 12:45:43 -080061 * RIL_Data_Call_Response_v11, RIL_SIM_IO_v6, RIL_CardStatus_v6,
62 * RIL_SimRefreshResponse_v7, RIL_CDMA_CallWaiting_v6,
Sanket Padawe6ff9a872016-01-27 15:09:12 -080063 * RIL_LTE_SignalStrength_v8, RIL_SignalStrength_v10, RIL_CellIdentityGsm_v12
64 * RIL_CellIdentityWcdma_v12, RIL_CellIdentityLte_v12,RIL_CellInfoGsm_v12,
65 * RIL_CellInfoWcdma_v12, RIL_CellInfoLte_v12, RIL_CellInfo_v12.
Sanket Padawe88cf6a52016-01-11 12:45:43 -080066 *
Sanket Padawe6ff9a872016-01-27 15:09:12 -080067 * RIL_VERSION = 13 : This version includes new wakelock semantics and as the first
Robert Greenwalt27e99c52016-06-01 16:31:38 -070068 * strongly versioned version it enforces structure use.
Jack Yu06181bb2017-01-10 12:10:41 -080069 *
Robert Greenwalt27e99c52016-06-01 16:31:38 -070070 * RIL_VERSION = 14 : New data structures are added, namely RIL_CarrierMatchType,
71 * RIL_Carrier, RIL_CarrierRestrictions and RIL_PCO_Data.
72 * New commands added: RIL_REQUEST_SET_CARRIER_RESTRICTIONS,
Wileen Chiu718c0bf2017-01-04 11:37:19 -080073 * RIL_REQUEST_SET_CARRIER_RESTRICTIONS and RIL_UNSOL_PCO_DATA.
Jack Yu06181bb2017-01-10 12:10:41 -080074 *
Wileen Chiu718c0bf2017-01-04 11:37:19 -080075 * RIL_VERSION = 15 : New commands added:
76 * RIL_REQUEST_SEND_DEVICE_STATE,
77 * RIL_REQUEST_SET_UNSOLICITED_RESPONSE_FILTER,
78 * RIL_REQUEST_SET_SIM_CARD_POWER
79 * The new parameters for RIL_REQUEST_SETUP_DATA_CALL,
Jack Yu06181bb2017-01-10 12:10:41 -080080 * Updated data structures: RIL_DataProfileInfo_v15, RIL_InitialAttachApn_v15
Sooraj Sasindrand8db60c2016-11-30 18:36:03 -080081 * New data structure RIL_DataRegistrationStateResponse,
82 * RIL_VoiceRegistrationStateResponse same is
83 * used in RIL_REQUEST_DATA_REGISTRATION_STATE and
84 * RIL_REQUEST_VOICE_REGISTRATION_STATE respectively.
Sanket Padawe88cf6a52016-01-11 12:45:43 -080085 */
Sanket Padawef53c5fa2016-01-27 10:00:38 -080086#define RIL_VERSION 12
87#define LAST_IMPRECISE_RIL_VERSION 12 // Better self-documented name
Alex Yakavenka45e740e2012-01-31 11:48:27 -080088#define RIL_VERSION_MIN 6 /* Minimum RIL_VERSION supported */
The Android Open Source Project00f06fc2009-03-03 19:32:15 -080089
Wink Savillea592eeb2009-05-22 13:26:36 -070090#define CDMA_ALPHA_INFO_BUFFER_LENGTH 64
91#define CDMA_NUMBER_INFO_BUFFER_LENGTH 81
92
Etan Cohend3652192014-06-20 08:28:44 -070093#define MAX_RILDS 3
94#define MAX_SOCKET_NAME_LENGTH 6
95#define MAX_CLIENT_ID_LENGTH 2
96#define MAX_DEBUG_SOCKET_NAME_LENGTH 12
97#define MAX_QEMU_PIPE_NAME_LENGTH 11
Wink Saville8b4e4f72014-10-17 15:01:45 -070098#define MAX_UUID_LENGTH 64
99
Etan Cohend3652192014-06-20 08:28:44 -0700100
The Android Open Source Project00f06fc2009-03-03 19:32:15 -0800101typedef void * RIL_Token;
102
103typedef enum {
Etan Cohend3652192014-06-20 08:28:44 -0700104 RIL_SOCKET_1,
105#if (SIM_COUNT >= 2)
106 RIL_SOCKET_2,
107#if (SIM_COUNT >= 3)
108 RIL_SOCKET_3,
109#endif
110#if (SIM_COUNT >= 4)
111 RIL_SOCKET_4,
112#endif
113#endif
114 RIL_SOCKET_NUM
115} RIL_SOCKET_ID;
116
117
118typedef enum {
The Android Open Source Project00f06fc2009-03-03 19:32:15 -0800119 RIL_E_SUCCESS = 0,
120 RIL_E_RADIO_NOT_AVAILABLE = 1, /* If radio did not start or is resetting */
121 RIL_E_GENERIC_FAILURE = 2,
122 RIL_E_PASSWORD_INCORRECT = 3, /* for PIN/PIN2 methods only! */
123 RIL_E_SIM_PIN2 = 4, /* Operation requires SIM PIN2 to be entered */
124 RIL_E_SIM_PUK2 = 5, /* Operation requires SIM PIN2 to be entered */
125 RIL_E_REQUEST_NOT_SUPPORTED = 6,
126 RIL_E_CANCELLED = 7,
127 RIL_E_OP_NOT_ALLOWED_DURING_VOICE_CALL = 8, /* data ops are not allowed during voice
128 call on a Class C GPRS device */
129 RIL_E_OP_NOT_ALLOWED_BEFORE_REG_TO_NW = 9, /* data ops are not allowed before device
130 registers in network */
Wink Saville3d54e742009-05-18 18:00:44 -0700131 RIL_E_SMS_SEND_FAIL_RETRY = 10, /* fail to send sms and need retry */
132 RIL_E_SIM_ABSENT = 11, /* fail to set the location where CDMA subscription
133 shall be retrieved because of SIM or RUIM
Wink Savillef4c4d362009-04-02 01:37:03 -0700134 card absent */
Wink Saville3d54e742009-05-18 18:00:44 -0700135 RIL_E_SUBSCRIPTION_NOT_AVAILABLE = 12, /* fail to find CDMA subscription from specified
Wink Savillef4c4d362009-04-02 01:37:03 -0700136 location */
jsh602f80f2009-07-10 15:44:37 -0700137 RIL_E_MODE_NOT_SUPPORTED = 13, /* HW does not support preferred network type */
John Wang75534472010-04-20 15:11:42 -0700138 RIL_E_FDN_CHECK_FAILURE = 14, /* command failed because recipient is not on FDN list */
Shishir Agrawal2458d8d2013-11-27 14:53:05 -0800139 RIL_E_ILLEGAL_SIM_OR_ME = 15, /* network selection failed due to
John Wang75534472010-04-20 15:11:42 -0700140 illegal SIM or ME */
Shishir Agrawal2458d8d2013-11-27 14:53:05 -0800141 RIL_E_MISSING_RESOURCE = 16, /* no logical channel available */
Amit Mahajan54563d32014-11-22 00:54:49 +0000142 RIL_E_NO_SUCH_ELEMENT = 17, /* application not found on SIM */
143 RIL_E_DIAL_MODIFIED_TO_USSD = 18, /* DIAL request modified to USSD */
144 RIL_E_DIAL_MODIFIED_TO_SS = 19, /* DIAL request modified to SS */
145 RIL_E_DIAL_MODIFIED_TO_DIAL = 20, /* DIAL request modified to DIAL with different
146 data */
147 RIL_E_USSD_MODIFIED_TO_DIAL = 21, /* USSD request modified to DIAL */
148 RIL_E_USSD_MODIFIED_TO_SS = 22, /* USSD request modified to SS */
149 RIL_E_USSD_MODIFIED_TO_USSD = 23, /* USSD request modified to different USSD
150 request */
151 RIL_E_SS_MODIFIED_TO_DIAL = 24, /* SS request modified to DIAL */
152 RIL_E_SS_MODIFIED_TO_USSD = 25, /* SS request modified to USSD */
153 RIL_E_SUBSCRIPTION_NOT_SUPPORTED = 26, /* Subscription not supported by RIL */
fengluf7408292015-04-14 14:53:55 -0700154 RIL_E_SS_MODIFIED_TO_SS = 27, /* SS request modified to different SS request */
Sooraj Sasindran7e333b32016-01-27 14:30:45 -0800155 RIL_E_LCE_NOT_SUPPORTED = 36, /* LCE service not supported(36 in RILConstants.java) */
156 RIL_E_NO_MEMORY = 37, /* Not sufficient memory to process the request */
157 RIL_E_INTERNAL_ERR = 38, /* Hit unexpected vendor internal error scenario */
158 RIL_E_SYSTEM_ERR = 39, /* Hit platform or system error */
159 RIL_E_MODEM_ERR = 40, /* Hit unexpected modem error */
Ajay Nambi10345892016-03-19 09:02:28 -0700160 RIL_E_INVALID_STATE = 41, /* Unexpected request for the current state */
Sooraj Sasindran7e333b32016-01-27 14:30:45 -0800161 RIL_E_NO_RESOURCES = 42, /* Not sufficient resource to process the request */
162 RIL_E_SIM_ERR = 43, /* Received error from SIM card */
163 RIL_E_INVALID_ARGUMENTS = 44, /* Received invalid arguments in request */
164 RIL_E_INVALID_SIM_STATE = 45, /* Can not process the request in current SIM state */
165 RIL_E_INVALID_MODEM_STATE = 46, /* Can not process the request in current Modem state */
166 RIL_E_INVALID_CALL_ID = 47, /* Received invalid call id in request */
167 RIL_E_NO_SMS_TO_ACK = 48, /* ACK received when there is no SMS to ack */
Nathan Haroldc97b2842016-02-02 12:04:35 -0800168 RIL_E_NETWORK_ERR = 49, /* Received error from network */
Sanket Padawe0106aed2016-02-09 09:56:31 -0800169 RIL_E_REQUEST_RATE_LIMITED = 50, /* Operation denied due to overly-frequent requests */
twen.changdf7add02016-03-04 18:27:48 +0800170 RIL_E_SIM_BUSY = 51, /* SIM is busy */
171 RIL_E_SIM_FULL = 52, /* The target EF is full */
172 RIL_E_NETWORK_REJECT = 53, /* Request is rejected by network */
173 RIL_E_OPERATION_NOT_ALLOWED = 54, /* Not allowed the request now */
174 RIL_E_EMPTY_RECORD = 55, /* The request record is empty */
Ajay Nambi68900f52016-03-11 12:02:55 -0800175 RIL_E_INVALID_SMS_FORMAT = 56, /* Invalid sms format */
176 RIL_E_ENCODING_ERR = 57, /* Message not encoded properly */
177 RIL_E_INVALID_SMSC_ADDRESS = 58, /* SMSC address specified is invalid */
178 RIL_E_NO_SUCH_ENTRY = 59, /* No such entry present to perform the request */
179 RIL_E_NETWORK_NOT_READY = 60, /* Network is not ready to perform the request */
180 RIL_E_NOT_PROVISIONED = 61, /* Device doesnot have this value provisioned */
Ajay Nambi10345892016-03-19 09:02:28 -0700181 RIL_E_NO_SUBSCRIPTION = 62, /* Device doesnot have subscription */
182 RIL_E_NO_NETWORK_FOUND = 63, /* Network cannot be found */
183 RIL_E_DEVICE_IN_USE = 64, /* Operation cannot be performed because the device
184 is currently in use */
185 RIL_E_ABORTED = 65, /* Operation aborted */
Sanket Padawef220dc52017-01-02 23:46:00 -0800186 RIL_E_INVALID_RESPONSE = 66, /* Invalid response sent by vendor code */
Sanket Padawe0106aed2016-02-09 09:56:31 -0800187 // OEM specific error codes. To be used by OEM when they don't want to reveal
188 // specific error codes which would be replaced by Generic failure.
189 RIL_E_OEM_ERROR_1 = 501,
190 RIL_E_OEM_ERROR_2 = 502,
191 RIL_E_OEM_ERROR_3 = 503,
192 RIL_E_OEM_ERROR_4 = 504,
193 RIL_E_OEM_ERROR_5 = 505,
194 RIL_E_OEM_ERROR_6 = 506,
195 RIL_E_OEM_ERROR_7 = 507,
196 RIL_E_OEM_ERROR_8 = 508,
197 RIL_E_OEM_ERROR_9 = 509,
198 RIL_E_OEM_ERROR_10 = 510,
199 RIL_E_OEM_ERROR_11 = 511,
200 RIL_E_OEM_ERROR_12 = 512,
201 RIL_E_OEM_ERROR_13 = 513,
202 RIL_E_OEM_ERROR_14 = 514,
203 RIL_E_OEM_ERROR_15 = 515,
204 RIL_E_OEM_ERROR_16 = 516,
205 RIL_E_OEM_ERROR_17 = 517,
206 RIL_E_OEM_ERROR_18 = 518,
207 RIL_E_OEM_ERROR_19 = 519,
208 RIL_E_OEM_ERROR_20 = 520,
209 RIL_E_OEM_ERROR_21 = 521,
210 RIL_E_OEM_ERROR_22 = 522,
211 RIL_E_OEM_ERROR_23 = 523,
212 RIL_E_OEM_ERROR_24 = 524,
213 RIL_E_OEM_ERROR_25 = 525
The Android Open Source Project00f06fc2009-03-03 19:32:15 -0800214} RIL_Errno;
215
216typedef enum {
217 RIL_CALL_ACTIVE = 0,
218 RIL_CALL_HOLDING = 1,
219 RIL_CALL_DIALING = 2, /* MO call only */
220 RIL_CALL_ALERTING = 3, /* MO call only */
221 RIL_CALL_INCOMING = 4, /* MT call only */
222 RIL_CALL_WAITING = 5 /* MT call only */
223} RIL_CallState;
224
225typedef enum {
Wink Savillef4c4d362009-04-02 01:37:03 -0700226 RADIO_STATE_OFF = 0, /* Radio explictly powered off (eg CFUN=0) */
227 RADIO_STATE_UNAVAILABLE = 1, /* Radio unavailable (eg, resetting or not booted) */
Naveen Kalla2bc78d62011-12-07 16:22:53 -0800228 RADIO_STATE_ON = 10 /* Radio is on */
The Android Open Source Project00f06fc2009-03-03 19:32:15 -0800229} RIL_RadioState;
230
Wink Saville43808972011-01-13 17:39:51 -0800231typedef enum {
232 RADIO_TECH_UNKNOWN = 0,
233 RADIO_TECH_GPRS = 1,
234 RADIO_TECH_EDGE = 2,
235 RADIO_TECH_UMTS = 3,
236 RADIO_TECH_IS95A = 4,
237 RADIO_TECH_IS95B = 5,
238 RADIO_TECH_1xRTT = 6,
239 RADIO_TECH_EVDO_0 = 7,
240 RADIO_TECH_EVDO_A = 8,
241 RADIO_TECH_HSDPA = 9,
242 RADIO_TECH_HSUPA = 10,
243 RADIO_TECH_HSPA = 11,
244 RADIO_TECH_EVDO_B = 12,
245 RADIO_TECH_EHRPD = 13,
Glenn Kastenc9419612011-02-02 17:44:18 -0800246 RADIO_TECH_LTE = 14,
Naveen Kalla2bc78d62011-12-07 16:22:53 -0800247 RADIO_TECH_HSPAP = 15, // HSPA+
Etan Cohend3652192014-06-20 08:28:44 -0700248 RADIO_TECH_GSM = 16, // Only supports voice
Yashdev Singh3c8f37c2015-02-23 13:04:28 -0800249 RADIO_TECH_TD_SCDMA = 17,
Ajay Nambi6dbb43c2015-05-14 18:50:20 -0700250 RADIO_TECH_IWLAN = 18,
251 RADIO_TECH_LTE_CA = 19
Wink Saville43808972011-01-13 17:39:51 -0800252} RIL_RadioTechnology;
253
Wink Saville8b4e4f72014-10-17 15:01:45 -0700254typedef enum {
255 RAF_UNKNOWN = (1 << RADIO_TECH_UNKNOWN),
256 RAF_GPRS = (1 << RADIO_TECH_GPRS),
257 RAF_EDGE = (1 << RADIO_TECH_EDGE),
258 RAF_UMTS = (1 << RADIO_TECH_UMTS),
259 RAF_IS95A = (1 << RADIO_TECH_IS95A),
260 RAF_IS95B = (1 << RADIO_TECH_IS95B),
261 RAF_1xRTT = (1 << RADIO_TECH_1xRTT),
262 RAF_EVDO_0 = (1 << RADIO_TECH_EVDO_0),
263 RAF_EVDO_A = (1 << RADIO_TECH_EVDO_A),
264 RAF_HSDPA = (1 << RADIO_TECH_HSDPA),
265 RAF_HSUPA = (1 << RADIO_TECH_HSUPA),
266 RAF_HSPA = (1 << RADIO_TECH_HSPA),
267 RAF_EVDO_B = (1 << RADIO_TECH_EVDO_B),
268 RAF_EHRPD = (1 << RADIO_TECH_EHRPD),
269 RAF_LTE = (1 << RADIO_TECH_LTE),
270 RAF_HSPAP = (1 << RADIO_TECH_HSPAP),
271 RAF_GSM = (1 << RADIO_TECH_GSM),
272 RAF_TD_SCDMA = (1 << RADIO_TECH_TD_SCDMA),
Ajay Nambi6dbb43c2015-05-14 18:50:20 -0700273 RAF_LTE_CA = (1 << RADIO_TECH_LTE_CA)
Wink Saville8b4e4f72014-10-17 15:01:45 -0700274} RIL_RadioAccessFamily;
275
276typedef enum {
Nathan Harold92839f12016-02-12 10:02:28 -0800277 BAND_MODE_UNSPECIFIED = 0, //"unspecified" (selected by baseband automatically)
278 BAND_MODE_EURO = 1, //"EURO band" (GSM-900 / DCS-1800 / WCDMA-IMT-2000)
279 BAND_MODE_USA = 2, //"US band" (GSM-850 / PCS-1900 / WCDMA-850 / WCDMA-PCS-1900)
280 BAND_MODE_JPN = 3, //"JPN band" (WCDMA-800 / WCDMA-IMT-2000)
281 BAND_MODE_AUS = 4, //"AUS band" (GSM-900 / DCS-1800 / WCDMA-850 / WCDMA-IMT-2000)
282 BAND_MODE_AUS_2 = 5, //"AUS band 2" (GSM-900 / DCS-1800 / WCDMA-850)
283 BAND_MODE_CELL_800 = 6, //"Cellular" (800-MHz Band)
284 BAND_MODE_PCS = 7, //"PCS" (1900-MHz Band)
285 BAND_MODE_JTACS = 8, //"Band Class 3" (JTACS Band)
286 BAND_MODE_KOREA_PCS = 9, //"Band Class 4" (Korean PCS Band)
287 BAND_MODE_5_450M = 10, //"Band Class 5" (450-MHz Band)
288 BAND_MODE_IMT2000 = 11, //"Band Class 6" (2-GMHz IMT2000 Band)
289 BAND_MODE_7_700M_2 = 12, //"Band Class 7" (Upper 700-MHz Band)
290 BAND_MODE_8_1800M = 13, //"Band Class 8" (1800-MHz Band)
291 BAND_MODE_9_900M = 14, //"Band Class 9" (900-MHz Band)
292 BAND_MODE_10_800M_2 = 15, //"Band Class 10" (Secondary 800-MHz Band)
293 BAND_MODE_EURO_PAMR_400M = 16, //"Band Class 11" (400-MHz European PAMR Band)
294 BAND_MODE_AWS = 17, //"Band Class 15" (AWS Band)
295 BAND_MODE_USA_2500M = 18 //"Band Class 16" (US 2.5-GHz Band)
296} RIL_RadioBandMode;
297
298typedef enum {
Wink Saville8b4e4f72014-10-17 15:01:45 -0700299 RC_PHASE_CONFIGURED = 0, // LM is configured is initial value and value after FINISH completes
300 RC_PHASE_START = 1, // START is sent before Apply and indicates that an APPLY will be
301 // forthcoming with these same parameters
302 RC_PHASE_APPLY = 2, // APPLY is sent after all LM's receive START and returned
303 // RIL_RadioCapability.status = 0, if any START's fail no
304 // APPLY will be sent
305 RC_PHASE_UNSOL_RSP = 3, // UNSOL_RSP is sent with RIL_UNSOL_RADIO_CAPABILITY
306 RC_PHASE_FINISH = 4 // FINISH is sent after all commands have completed. If an error
307 // occurs in any previous command the RIL_RadioAccessesFamily and
Legler Wu8caf06f2014-10-29 14:02:14 +0800308 // logicalModemUuid fields will be the prior configuration thus
Wink Saville8b4e4f72014-10-17 15:01:45 -0700309 // restoring the configuration to the previous value. An error
310 // returned by this command will generally be ignored or may
311 // cause that logical modem to be removed from service.
312} RadioCapabilityPhase;
313
314typedef enum {
315 RC_STATUS_NONE = 0, // This parameter has no meaning with RC_PHASE_START,
316 // RC_PHASE_APPLY
317 RC_STATUS_SUCCESS = 1, // Tell modem the action transaction of set radio
318 // capability was success with RC_PHASE_FINISH
319 RC_STATUS_FAIL = 2, // Tell modem the action transaction of set radio
320 // capability is fail with RC_PHASE_FINISH.
321} RadioCapabilityStatus;
322
323#define RIL_RADIO_CAPABILITY_VERSION 1
324typedef struct {
Legler Wu8caf06f2014-10-29 14:02:14 +0800325 int version; // Version of structure, RIL_RADIO_CAPABILITY_VERSION
Wink Saville8b4e4f72014-10-17 15:01:45 -0700326 int session; // Unique session value defined by framework returned in all "responses/unsol"
327 int phase; // CONFIGURED, START, APPLY, FINISH
328 int rat; // RIL_RadioAccessFamily for the radio
329 char logicalModemUuid[MAX_UUID_LENGTH]; // A UUID typically "com.xxxx.lmX where X is the logical modem.
330 int status; // Return status and an input parameter for RC_PHASE_FINISH
331} RIL_RadioCapability;
332
Wink Savillec0114b32011-02-18 10:14:07 -0800333// Do we want to split Data from Voice and the use
334// RIL_RadioTechnology for get/setPreferredVoice/Data ?
335typedef enum {
336 PREF_NET_TYPE_GSM_WCDMA = 0, /* GSM/WCDMA (WCDMA preferred) */
337 PREF_NET_TYPE_GSM_ONLY = 1, /* GSM only */
338 PREF_NET_TYPE_WCDMA = 2, /* WCDMA */
339 PREF_NET_TYPE_GSM_WCDMA_AUTO = 3, /* GSM/WCDMA (auto mode, according to PRL) */
340 PREF_NET_TYPE_CDMA_EVDO_AUTO = 4, /* CDMA and EvDo (auto mode, according to PRL) */
341 PREF_NET_TYPE_CDMA_ONLY = 5, /* CDMA only */
342 PREF_NET_TYPE_EVDO_ONLY = 6, /* EvDo only */
343 PREF_NET_TYPE_GSM_WCDMA_CDMA_EVDO_AUTO = 7, /* GSM/WCDMA, CDMA, and EvDo (auto mode, according to PRL) */
344 PREF_NET_TYPE_LTE_CDMA_EVDO = 8, /* LTE, CDMA and EvDo */
345 PREF_NET_TYPE_LTE_GSM_WCDMA = 9, /* LTE, GSM/WCDMA */
346 PREF_NET_TYPE_LTE_CMDA_EVDO_GSM_WCDMA = 10, /* LTE, CDMA, EvDo, GSM/WCDMA */
Uma Maheswari Ramalingam0e094872011-09-28 13:25:48 -0700347 PREF_NET_TYPE_LTE_ONLY = 11, /* LTE only */
348 PREF_NET_TYPE_LTE_WCDMA = 12 /* LTE/WCDMA */
Wink Savillec0114b32011-02-18 10:14:07 -0800349} RIL_PreferredNetworkType;
350
351/* Source for cdma subscription */
352typedef enum {
353 CDMA_SUBSCRIPTION_SOURCE_RUIM_SIM = 0,
354 CDMA_SUBSCRIPTION_SOURCE_NV = 1
355} RIL_CdmaSubscriptionSource;
356
Wink Saville74fa3882009-12-22 15:35:41 -0800357/* User-to-User signaling Info activation types derived from 3GPP 23.087 v8.0 */
358typedef enum {
359 RIL_UUS_TYPE1_IMPLICIT = 0,
360 RIL_UUS_TYPE1_REQUIRED = 1,
361 RIL_UUS_TYPE1_NOT_REQUIRED = 2,
362 RIL_UUS_TYPE2_REQUIRED = 3,
363 RIL_UUS_TYPE2_NOT_REQUIRED = 4,
364 RIL_UUS_TYPE3_REQUIRED = 5,
365 RIL_UUS_TYPE3_NOT_REQUIRED = 6
366} RIL_UUS_Type;
367
368/* User-to-User Signaling Information data coding schemes. Possible values for
369 * Octet 3 (Protocol Discriminator field) in the UUIE. The values have been
370 * specified in section 10.5.4.25 of 3GPP TS 24.008 */
371typedef enum {
372 RIL_UUS_DCS_USP = 0, /* User specified protocol */
373 RIL_UUS_DCS_OSIHLP = 1, /* OSI higher layer protocol */
374 RIL_UUS_DCS_X244 = 2, /* X.244 */
375 RIL_UUS_DCS_RMCF = 3, /* Reserved for system mangement
376 convergence function */
377 RIL_UUS_DCS_IA5c = 4 /* IA5 characters */
378} RIL_UUS_DCS;
379
380/* User-to-User Signaling Information defined in 3GPP 23.087 v8.0
381 * This data is passed in RIL_ExtensionRecord and rec contains this
382 * structure when type is RIL_UUS_INFO_EXT_REC */
383typedef struct {
384 RIL_UUS_Type uusType; /* UUS Type */
385 RIL_UUS_DCS uusDcs; /* UUS Data Coding Scheme */
386 int uusLength; /* Length of UUS Data */
387 char * uusData; /* UUS Data */
388} RIL_UUS_Info;
389
390/* CDMA Signal Information Record as defined in C.S0005 section 3.7.5.5 */
Wink Saville1b5fd232009-04-22 14:50:00 -0700391typedef struct {
392 char isPresent; /* non-zero if signal information record is present */
393 char signalType; /* as defined 3.7.5.5-1 */
394 char alertPitch; /* as defined 3.7.5.5-2 */
395 char signal; /* as defined 3.7.5.5-3, 3.7.5.5-4 or 3.7.5.5-5 */
396} RIL_CDMA_SignalInfoRecord;
397
Wink Saville1b5fd232009-04-22 14:50:00 -0700398typedef struct {
399 RIL_CallState state;
400 int index; /* Connection Index for use with, eg, AT+CHLD */
401 int toa; /* type of address, eg 145 = intl */
402 char isMpty; /* nonzero if is mpty call */
403 char isMT; /* nonzero if call is mobile terminated */
404 char als; /* ALS line indicator if available
405 (0 = line 1) */
406 char isVoice; /* nonzero if this is is a voice call */
407 char isVoicePrivacy; /* nonzero if CDMA voice privacy mode is active */
408 char * number; /* Remote party number */
409 int numberPresentation; /* 0=Allowed, 1=Restricted, 2=Not Specified/Unknown 3=Payphone */
410 char * name; /* Remote party name */
411 int namePresentation; /* 0=Allowed, 1=Restricted, 2=Not Specified/Unknown 3=Payphone */
Wink Saville74fa3882009-12-22 15:35:41 -0800412 RIL_UUS_Info * uusInfo; /* NULL or Pointer to User-User Signaling Information */
The Android Open Source Project00f06fc2009-03-03 19:32:15 -0800413} RIL_Call;
414
Wink Savillec0114b32011-02-18 10:14:07 -0800415/* Deprecated, use RIL_Data_Call_Response_v6 */
The Android Open Source Project00f06fc2009-03-03 19:32:15 -0800416typedef struct {
Wink Saville43808972011-01-13 17:39:51 -0800417 int cid; /* Context ID, uniquely identifies this call */
Wink Saville1b5fd232009-04-22 14:50:00 -0700418 int active; /* 0=inactive, 1=active/physical link down, 2=active/physical link up */
Lorenzo Colitti4f81dcf2010-09-01 19:38:57 -0700419 char * type; /* One of the PDP_type values in TS 27.007 section 10.1.1.
420 For example, "IP", "IPV6", "IPV4V6", or "PPP". */
Wink Saville43808972011-01-13 17:39:51 -0800421 char * apn; /* ignored */
Wink Savillec0114b32011-02-18 10:14:07 -0800422 char * address; /* An address, e.g., "192.0.1.3" or "2001:db8::1". */
423} RIL_Data_Call_Response_v4;
Wink Saville43808972011-01-13 17:39:51 -0800424
425/*
426 * Returned by RIL_REQUEST_SETUP_DATA_CALL, RIL_REQUEST_DATA_CALL_LIST
427 * and RIL_UNSOL_DATA_CALL_LIST_CHANGED, on error status != 0.
428 */
429typedef struct {
430 int status; /* A RIL_DataCallFailCause, 0 which is PDP_FAIL_NONE if no error */
Kazuhiro Ondobeb25b52011-06-17 16:26:45 -0500431 int suggestedRetryTime; /* If status != 0, this fields indicates the suggested retry
432 back-off timer value RIL wants to override the one
433 pre-configured in FW.
434 The unit is miliseconds.
435 The value < 0 means no value is suggested.
Kazuhiro Ondo16157582011-07-24 07:56:32 -0700436 The value 0 means retry should be done ASAP.
Wink Saville8a9e0212013-04-09 12:11:38 -0700437 The value of INT_MAX(0x7fffffff) means no retry. */
Wink Saville43808972011-01-13 17:39:51 -0800438 int cid; /* Context ID, uniquely identifies this call */
439 int active; /* 0=inactive, 1=active/physical link down, 2=active/physical link up */
440 char * type; /* One of the PDP_type values in TS 27.007 section 10.1.1.
441 For example, "IP", "IPV6", "IPV4V6", or "PPP". If status is
442 PDP_FAIL_ONLY_SINGLE_BEARER_ALLOWED this is the type supported
443 such as "IP" or "IPV6" */
444 char * ifname; /* The network interface name */
Wink Savillec0114b32011-02-18 10:14:07 -0800445 char * addresses; /* A space-delimited list of addresses with optional "/" prefix length,
446 e.g., "192.0.1.3" or "192.0.1.11/16 2001:db8::1/64".
Wink Saville43808972011-01-13 17:39:51 -0800447 May not be empty, typically 1 IPv4 or 1 IPv6 or
Wink Savillec0114b32011-02-18 10:14:07 -0800448 one of each. If the prefix length is absent the addresses
449 are assumed to be point to point with IPv4 having a prefix
450 length of 32 and IPv6 128. */
Wink Saville43808972011-01-13 17:39:51 -0800451 char * dnses; /* A space-delimited list of DNS server addresses,
452 e.g., "192.0.1.3" or "192.0.1.11 2001:db8::1".
453 May be empty. */
Wink Savillec0114b32011-02-18 10:14:07 -0800454 char * gateways; /* A space-delimited list of default gateway addresses,
455 e.g., "192.0.1.3" or "192.0.1.11 2001:db8::1".
456 May be empty in which case the addresses represent point
457 to point connections. */
458} RIL_Data_Call_Response_v6;
The Android Open Source Project00f06fc2009-03-03 19:32:15 -0800459
Etan Cohend3652192014-06-20 08:28:44 -0700460typedef struct {
461 int status; /* A RIL_DataCallFailCause, 0 which is PDP_FAIL_NONE if no error */
462 int suggestedRetryTime; /* If status != 0, this fields indicates the suggested retry
463 back-off timer value RIL wants to override the one
464 pre-configured in FW.
465 The unit is miliseconds.
466 The value < 0 means no value is suggested.
467 The value 0 means retry should be done ASAP.
468 The value of INT_MAX(0x7fffffff) means no retry. */
469 int cid; /* Context ID, uniquely identifies this call */
470 int active; /* 0=inactive, 1=active/physical link down, 2=active/physical link up */
471 char * type; /* One of the PDP_type values in TS 27.007 section 10.1.1.
472 For example, "IP", "IPV6", "IPV4V6", or "PPP". If status is
473 PDP_FAIL_ONLY_SINGLE_BEARER_ALLOWED this is the type supported
474 such as "IP" or "IPV6" */
475 char * ifname; /* The network interface name */
476 char * addresses; /* A space-delimited list of addresses with optional "/" prefix length,
477 e.g., "192.0.1.3" or "192.0.1.11/16 2001:db8::1/64".
478 May not be empty, typically 1 IPv4 or 1 IPv6 or
479 one of each. If the prefix length is absent the addresses
480 are assumed to be point to point with IPv4 having a prefix
481 length of 32 and IPv6 128. */
482 char * dnses; /* A space-delimited list of DNS server addresses,
483 e.g., "192.0.1.3" or "192.0.1.11 2001:db8::1".
484 May be empty. */
485 char * gateways; /* A space-delimited list of default gateway addresses,
486 e.g., "192.0.1.3" or "192.0.1.11 2001:db8::1".
487 May be empty in which case the addresses represent point
488 to point connections. */
489 char * pcscf; /* the Proxy Call State Control Function address
490 via PCO(Protocol Configuration Option) for IMS client. */
Sukanya Rajkhowab44dda32014-06-02 14:03:44 -0700491} RIL_Data_Call_Response_v9;
492
493typedef struct {
494 int status; /* A RIL_DataCallFailCause, 0 which is PDP_FAIL_NONE if no error */
495 int suggestedRetryTime; /* If status != 0, this fields indicates the suggested retry
496 back-off timer value RIL wants to override the one
497 pre-configured in FW.
498 The unit is miliseconds.
499 The value < 0 means no value is suggested.
500 The value 0 means retry should be done ASAP.
501 The value of INT_MAX(0x7fffffff) means no retry. */
502 int cid; /* Context ID, uniquely identifies this call */
503 int active; /* 0=inactive, 1=active/physical link down, 2=active/physical link up */
504 char * type; /* One of the PDP_type values in TS 27.007 section 10.1.1.
505 For example, "IP", "IPV6", "IPV4V6", or "PPP". If status is
506 PDP_FAIL_ONLY_SINGLE_BEARER_ALLOWED this is the type supported
507 such as "IP" or "IPV6" */
508 char * ifname; /* The network interface name */
509 char * addresses; /* A space-delimited list of addresses with optional "/" prefix length,
510 e.g., "192.0.1.3" or "192.0.1.11/16 2001:db8::1/64".
511 May not be empty, typically 1 IPv4 or 1 IPv6 or
512 one of each. If the prefix length is absent the addresses
513 are assumed to be point to point with IPv4 having a prefix
514 length of 32 and IPv6 128. */
515 char * dnses; /* A space-delimited list of DNS server addresses,
516 e.g., "192.0.1.3" or "192.0.1.11 2001:db8::1".
517 May be empty. */
518 char * gateways; /* A space-delimited list of default gateway addresses,
519 e.g., "192.0.1.3" or "192.0.1.11 2001:db8::1".
520 May be empty in which case the addresses represent point
521 to point connections. */
522 char * pcscf; /* the Proxy Call State Control Function address
523 via PCO(Protocol Configuration Option) for IMS client. */
524 int mtu; /* MTU received from network
525 Value <= 0 means network has either not sent a value or
526 sent an invalid value */
527} RIL_Data_Call_Response_v11;
Etan Cohend3652192014-06-20 08:28:44 -0700528
Sukanya Rajkhowaa18b9d12013-09-10 12:30:13 -0700529typedef enum {
530 RADIO_TECH_3GPP = 1, /* 3GPP Technologies - GSM, WCDMA */
531 RADIO_TECH_3GPP2 = 2 /* 3GPP2 Technologies - CDMA */
532} RIL_RadioTechnologyFamily;
533
534typedef struct {
535 RIL_RadioTechnologyFamily tech;
536 unsigned char retry; /* 0 == not retry, nonzero == retry */
537 int messageRef; /* Valid field if retry is set to nonzero.
538 Contains messageRef from RIL_SMS_Response
539 corresponding to failed MO SMS.
540 */
541
542 union {
543 /* Valid field if tech is RADIO_TECH_3GPP2. See RIL_REQUEST_CDMA_SEND_SMS */
544 RIL_CDMA_SMS_Message* cdmaMessage;
545
546 /* Valid field if tech is RADIO_TECH_3GPP. See RIL_REQUEST_SEND_SMS */
Sanket Padawe05c23072016-08-08 15:42:17 -0700547 char** gsmMessage; /* This is an array of pointers where pointers
548 are contiguous but elements pointed by those pointers
549 are not contiguous
550 */
Sukanya Rajkhowaa18b9d12013-09-10 12:30:13 -0700551 } message;
552} RIL_IMS_SMS_Message;
553
The Android Open Source Project00f06fc2009-03-03 19:32:15 -0800554typedef struct {
Tammo Spalink8e3a2ca2009-09-11 11:26:30 +0800555 int messageRef; /* TP-Message-Reference for GSM,
556 and BearerData MessageId for CDMA
557 (See 3GPP2 C.S0015-B, v2.0, table 4.5-1). */
The Android Open Source Project00f06fc2009-03-03 19:32:15 -0800558 char *ackPDU; /* or NULL if n/a */
Jaikumar Ganesh920c78f2009-06-04 10:53:15 -0700559 int errorCode; /* See 3GPP 27.005, 3.2.5 for GSM/UMTS,
560 3GPP2 N.S0005 (IS-41C) Table 171 for CDMA,
561 -1 if unknown or not applicable*/
The Android Open Source Project00f06fc2009-03-03 19:32:15 -0800562} RIL_SMS_Response;
563
564/** Used by RIL_REQUEST_WRITE_SMS_TO_SIM */
565typedef struct {
566 int status; /* Status of message. See TS 27.005 3.1, "<stat>": */
567 /* 0 = "REC UNREAD" */
568 /* 1 = "REC READ" */
569 /* 2 = "STO UNSENT" */
570 /* 3 = "STO SENT" */
johnwangf8bc1672009-05-14 19:19:47 -0700571 char * pdu; /* PDU of message to write, as an ASCII hex string less the SMSC address,
572 the TP-layer length is "strlen(pdu)/2". */
The Android Open Source Project00f06fc2009-03-03 19:32:15 -0800573 char * smsc; /* SMSC address in GSM BCD format prefixed by a length byte
574 (as expected by TS 27.005) or NULL for default SMSC */
575} RIL_SMS_WriteArgs;
576
577/** Used by RIL_REQUEST_DIAL */
578typedef struct {
579 char * address;
580 int clir;
581 /* (same as 'n' paremeter in TS 27.007 7.7 "+CLIR"
582 * clir == 0 on "use subscription default value"
583 * clir == 1 on "CLIR invocation" (restrict CLI presentation)
584 * clir == 2 on "CLIR suppression" (allow CLI presentation)
585 */
Wink Saville74fa3882009-12-22 15:35:41 -0800586 RIL_UUS_Info * uusInfo; /* NULL or Pointer to User-User Signaling Information */
The Android Open Source Project00f06fc2009-03-03 19:32:15 -0800587} RIL_Dial;
588
589typedef struct {
590 int command; /* one of the commands listed for TS 27.007 +CRSM*/
591 int fileid; /* EF id */
592 char *path; /* "pathid" from TS 27.007 +CRSM command.
593 Path is in hex asciii format eg "7f205f70"
Wink Saville1b5fd232009-04-22 14:50:00 -0700594 Path must always be provided.
The Android Open Source Project00f06fc2009-03-03 19:32:15 -0800595 */
596 int p1;
597 int p2;
598 int p3;
599 char *data; /* May be NULL*/
600 char *pin2; /* May be NULL*/
Wink Savillec0114b32011-02-18 10:14:07 -0800601} RIL_SIM_IO_v5;
602
603typedef struct {
604 int command; /* one of the commands listed for TS 27.007 +CRSM*/
605 int fileid; /* EF id */
606 char *path; /* "pathid" from TS 27.007 +CRSM command.
607 Path is in hex asciii format eg "7f205f70"
608 Path must always be provided.
609 */
610 int p1;
611 int p2;
612 int p3;
613 char *data; /* May be NULL*/
614 char *pin2; /* May be NULL*/
615 char *aidPtr; /* AID value, See ETSI 102.221 8.1 and 101.220 4, NULL if no value. */
616} RIL_SIM_IO_v6;
The Android Open Source Project00f06fc2009-03-03 19:32:15 -0800617
Shishir Agrawal2458d8d2013-11-27 14:53:05 -0800618/* Used by RIL_REQUEST_SIM_TRANSMIT_APDU_CHANNEL and
619 * RIL_REQUEST_SIM_TRANSMIT_APDU_BASIC. */
620typedef struct {
621 int sessionid; /* "sessionid" from TS 27.007 +CGLA command. Should be
622 ignored for +CSIM command. */
623
624 /* Following fields are used to derive the APDU ("command" and "length"
625 values in TS 27.007 +CSIM and +CGLA commands). */
626 int cla;
627 int instruction;
628 int p1;
629 int p2;
630 int p3; /* A negative P3 implies a 4 byte APDU. */
631 char *data; /* May be NULL. In hex string format. */
632} RIL_SIM_APDU;
633
The Android Open Source Project00f06fc2009-03-03 19:32:15 -0800634typedef struct {
635 int sw1;
636 int sw2;
Amit Mahajan2875bc22014-08-06 10:03:15 -0700637 char *simResponse; /* In hex string format ([a-fA-F0-9]*), except for SIM_AUTHENTICATION
638 response for which it is in Base64 format, see 3GPP TS 31.102 7.1.2 */
The Android Open Source Project00f06fc2009-03-03 19:32:15 -0800639} RIL_SIM_IO_Response;
640
641/* See also com.android.internal.telephony.gsm.CallForwardInfo */
642
643typedef struct {
644 int status; /*
645 * For RIL_REQUEST_QUERY_CALL_FORWARD_STATUS
646 * status 1 = active, 0 = not active
647 *
648 * For RIL_REQUEST_SET_CALL_FORWARD:
649 * status is:
650 * 0 = disable
651 * 1 = enable
652 * 2 = interrogate
653 * 3 = registeration
654 * 4 = erasure
655 */
656
Wink Saville3d54e742009-05-18 18:00:44 -0700657 int reason; /* from TS 27.007 7.11 "reason" */
658 int serviceClass;/* From 27.007 +CCFC/+CLCK "class"
659 See table for Android mapping from
660 MMI service code
661 0 means user doesn't input class */
662 int toa; /* "type" from TS 27.007 7.11 */
663 char * number; /* "number" from TS 27.007 7.11. May be NULL */
664 int timeSeconds; /* for CF no reply only */
The Android Open Source Project00f06fc2009-03-03 19:32:15 -0800665}RIL_CallForwardInfo;
666
667typedef struct {
johnwange0ba6a92009-09-11 19:14:52 -0700668 char * cid; /* Combination of LAC and Cell Id in 32 bits in GSM.
669 * Upper 16 bits is LAC and lower 16 bits
670 * is CID (as described in TS 27.005)
The Android Open Source Project00f06fc2009-03-03 19:32:15 -0800671 * Primary Scrambling Code (as described in TS 25.331)
Wink Saville7f856802009-06-09 10:23:37 -0700672 * in 9 bits in UMTS
johnwange0ba6a92009-09-11 19:14:52 -0700673 * Valid values are hexadecimal 0x0000 - 0xffffffff.
The Android Open Source Project00f06fc2009-03-03 19:32:15 -0800674 */
johnwange0ba6a92009-09-11 19:14:52 -0700675 int rssi; /* Received RSSI in GSM,
676 * Level index of CPICH Received Signal Code Power in UMTS
The Android Open Source Project00f06fc2009-03-03 19:32:15 -0800677 */
678} RIL_NeighboringCell;
679
fengluf7408292015-04-14 14:53:55 -0700680typedef struct {
681 char lce_status; /* LCE service status:
682 * -1 = not supported;
683 * 0 = stopped;
684 * 1 = active.
685 */
686 unsigned int actual_interval_ms; /* actual LCE reporting interval,
687 * meaningful only if LCEStatus = 1.
688 */
689} RIL_LceStatusInfo;
690
691typedef struct {
fenglu290add32015-05-01 17:05:15 -0700692 unsigned int last_hop_capacity_kbps; /* last-hop cellular capacity: kilobits/second. */
fengluf7408292015-04-14 14:53:55 -0700693 unsigned char confidence_level; /* capacity estimate confidence: 0-100 */
694 unsigned char lce_suspended; /* LCE report going to be suspended? (e.g., radio
695 * moves to inactive state or network type change)
696 * 1 = suspended;
697 * 0 = not suspended.
698 */
699} RIL_LceDataInfo;
700
Meng Wangb4e34312016-05-12 14:54:36 -0700701typedef enum {
702 RIL_MATCH_ALL = 0, /* Apply to all carriers with the same mcc/mnc */
703 RIL_MATCH_SPN = 1, /* Use SPN and mcc/mnc to identify the carrier */
704 RIL_MATCH_IMSI_PREFIX = 2, /* Use IMSI prefix and mcc/mnc to identify the carrier */
705 RIL_MATCH_GID1 = 3, /* Use GID1 and mcc/mnc to identify the carrier */
706 RIL_MATCH_GID2 = 4, /* Use GID2 and mcc/mnc to identify the carrier */
707} RIL_CarrierMatchType;
708
709typedef struct {
710 const char * mcc;
711 const char * mnc;
712 RIL_CarrierMatchType match_type; /* Specify match type for the carrier.
713 * If it’s RIL_MATCH_ALL, match_data is null;
714 * otherwise, match_data is the value for the match type.
715 */
716 const char * match_data;
717} RIL_Carrier;
718
719typedef struct {
720 int32_t len_allowed_carriers; /* length of array allowed_carriers */
721 int32_t len_excluded_carriers; /* length of array excluded_carriers */
722 RIL_Carrier * allowed_carriers; /* whitelist for allowed carriers */
723 RIL_Carrier * excluded_carriers; /* blacklist for explicitly excluded carriers
724 * which match allowed_carriers. Eg. allowed_carriers match
725 * mcc/mnc, excluded_carriers has same mcc/mnc and gid1
726 * is ABCD. It means except the carrier whose gid1 is ABCD,
727 * all carriers with the same mcc/mnc are allowed.
728 */
729} RIL_CarrierRestrictions;
730
The Android Open Source Project00f06fc2009-03-03 19:32:15 -0800731/* See RIL_REQUEST_LAST_CALL_FAIL_CAUSE */
732typedef enum {
Naveen Kalla1b3a6fe2010-04-21 16:44:37 -0700733 CALL_FAIL_UNOBTAINABLE_NUMBER = 1,
Sooraj Sasindrand2102792014-09-12 17:00:03 +0800734 CALL_FAIL_NO_ROUTE_TO_DESTINATION = 3,
735 CALL_FAIL_CHANNEL_UNACCEPTABLE = 6,
736 CALL_FAIL_OPERATOR_DETERMINED_BARRING = 8,
The Android Open Source Project00f06fc2009-03-03 19:32:15 -0800737 CALL_FAIL_NORMAL = 16,
738 CALL_FAIL_BUSY = 17,
Sooraj Sasindrand2102792014-09-12 17:00:03 +0800739 CALL_FAIL_NO_USER_RESPONDING = 18,
740 CALL_FAIL_NO_ANSWER_FROM_USER = 19,
741 CALL_FAIL_CALL_REJECTED = 21,
742 CALL_FAIL_NUMBER_CHANGED = 22,
743 CALL_FAIL_PREEMPTION = 25,
744 CALL_FAIL_DESTINATION_OUT_OF_ORDER = 27,
745 CALL_FAIL_INVALID_NUMBER_FORMAT = 28,
746 CALL_FAIL_FACILITY_REJECTED = 29,
747 CALL_FAIL_RESP_TO_STATUS_ENQUIRY = 30,
748 CALL_FAIL_NORMAL_UNSPECIFIED = 31,
The Android Open Source Project00f06fc2009-03-03 19:32:15 -0800749 CALL_FAIL_CONGESTION = 34,
Sooraj Sasindrand2102792014-09-12 17:00:03 +0800750 CALL_FAIL_NETWORK_OUT_OF_ORDER = 38,
751 CALL_FAIL_TEMPORARY_FAILURE = 41,
752 CALL_FAIL_SWITCHING_EQUIPMENT_CONGESTION = 42,
753 CALL_FAIL_ACCESS_INFORMATION_DISCARDED = 43,
754 CALL_FAIL_REQUESTED_CIRCUIT_OR_CHANNEL_NOT_AVAILABLE = 44,
755 CALL_FAIL_RESOURCES_UNAVAILABLE_OR_UNSPECIFIED = 47,
756 CALL_FAIL_QOS_UNAVAILABLE = 49,
757 CALL_FAIL_REQUESTED_FACILITY_NOT_SUBSCRIBED = 50,
758 CALL_FAIL_INCOMING_CALLS_BARRED_WITHIN_CUG = 55,
759 CALL_FAIL_BEARER_CAPABILITY_NOT_AUTHORIZED = 57,
760 CALL_FAIL_BEARER_CAPABILITY_UNAVAILABLE = 58,
761 CALL_FAIL_SERVICE_OPTION_NOT_AVAILABLE = 63,
762 CALL_FAIL_BEARER_SERVICE_NOT_IMPLEMENTED = 65,
The Android Open Source Project00f06fc2009-03-03 19:32:15 -0800763 CALL_FAIL_ACM_LIMIT_EXCEEDED = 68,
Sooraj Sasindrand2102792014-09-12 17:00:03 +0800764 CALL_FAIL_REQUESTED_FACILITY_NOT_IMPLEMENTED = 69,
765 CALL_FAIL_ONLY_DIGITAL_INFORMATION_BEARER_AVAILABLE = 70,
766 CALL_FAIL_SERVICE_OR_OPTION_NOT_IMPLEMENTED = 79,
767 CALL_FAIL_INVALID_TRANSACTION_IDENTIFIER = 81,
768 CALL_FAIL_USER_NOT_MEMBER_OF_CUG = 87,
769 CALL_FAIL_INCOMPATIBLE_DESTINATION = 88,
770 CALL_FAIL_INVALID_TRANSIT_NW_SELECTION = 91,
771 CALL_FAIL_SEMANTICALLY_INCORRECT_MESSAGE = 95,
772 CALL_FAIL_INVALID_MANDATORY_INFORMATION = 96,
773 CALL_FAIL_MESSAGE_TYPE_NON_IMPLEMENTED = 97,
774 CALL_FAIL_MESSAGE_TYPE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 98,
775 CALL_FAIL_INFORMATION_ELEMENT_NON_EXISTENT = 99,
776 CALL_FAIL_CONDITIONAL_IE_ERROR = 100,
777 CALL_FAIL_MESSAGE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 101,
778 CALL_FAIL_RECOVERY_ON_TIMER_EXPIRED = 102,
779 CALL_FAIL_PROTOCOL_ERROR_UNSPECIFIED = 111,
780 CALL_FAIL_INTERWORKING_UNSPECIFIED = 127,
The Android Open Source Project00f06fc2009-03-03 19:32:15 -0800781 CALL_FAIL_CALL_BARRED = 240,
782 CALL_FAIL_FDN_BLOCKED = 241,
jsh602f80f2009-07-10 15:44:37 -0700783 CALL_FAIL_IMSI_UNKNOWN_IN_VLR = 242,
784 CALL_FAIL_IMEI_NOT_ACCEPTED = 243,
Amit Mahajan54563d32014-11-22 00:54:49 +0000785 CALL_FAIL_DIAL_MODIFIED_TO_USSD = 244, /* STK Call Control */
786 CALL_FAIL_DIAL_MODIFIED_TO_SS = 245,
787 CALL_FAIL_DIAL_MODIFIED_TO_DIAL = 246,
Wink Saville1b5fd232009-04-22 14:50:00 -0700788 CALL_FAIL_CDMA_LOCKED_UNTIL_POWER_CYCLE = 1000,
789 CALL_FAIL_CDMA_DROP = 1001,
790 CALL_FAIL_CDMA_INTERCEPT = 1002,
791 CALL_FAIL_CDMA_REORDER = 1003,
792 CALL_FAIL_CDMA_SO_REJECT = 1004,
793 CALL_FAIL_CDMA_RETRY_ORDER = 1005,
794 CALL_FAIL_CDMA_ACCESS_FAILURE = 1006,
795 CALL_FAIL_CDMA_PREEMPTED = 1007,
796 CALL_FAIL_CDMA_NOT_EMERGENCY = 1008, /* For non-emergency number dialed
797 during emergency callback mode */
Naveen Kalla03c1edf2009-09-23 11:18:35 -0700798 CALL_FAIL_CDMA_ACCESS_BLOCKED = 1009, /* CDMA network access probes blocked */
Sooraj Sasindrand2102792014-09-12 17:00:03 +0800799 CALL_FAIL_ERROR_UNSPECIFIED = 0xffff /* This error will be deprecated soon,
800 vendor code should make sure to map error
801 code to specific error */
The Android Open Source Project00f06fc2009-03-03 19:32:15 -0800802} RIL_LastCallFailCause;
803
Chao Liu548a81e2015-05-14 16:13:46 -0700804typedef struct {
805 RIL_LastCallFailCause cause_code;
806 char * vendor_cause;
807} RIL_LastCallFailCauseInfo;
808
Wink Savillef4c4d362009-04-02 01:37:03 -0700809/* See RIL_REQUEST_LAST_DATA_CALL_FAIL_CAUSE */
The Android Open Source Project00f06fc2009-03-03 19:32:15 -0800810typedef enum {
Wink Saville43808972011-01-13 17:39:51 -0800811 PDP_FAIL_NONE = 0, /* No error, connection ok */
812
813 /* an integer cause code defined in TS 24.008
814 section 6.1.3.1.3 or TS 24.301 Release 8+ Annex B.
815 If the implementation does not have access to the exact cause codes,
816 then it should return one of the following values,
817 as the UI layer needs to distinguish these
818 cases for error notification and potential retries. */
Jaikumar Ganeshd6aa2e32009-05-04 11:09:46 -0700819 PDP_FAIL_OPERATOR_BARRED = 0x08, /* no retry */
Sanket Padaweac308b92016-01-07 14:41:17 -0800820 PDP_FAIL_NAS_SIGNALLING = 0x0E,
821 PDP_FAIL_LLC_SNDCP = 0x19,
Jaikumar Ganeshd6aa2e32009-05-04 11:09:46 -0700822 PDP_FAIL_INSUFFICIENT_RESOURCES = 0x1A,
823 PDP_FAIL_MISSING_UKNOWN_APN = 0x1B, /* no retry */
824 PDP_FAIL_UNKNOWN_PDP_ADDRESS_TYPE = 0x1C, /* no retry */
825 PDP_FAIL_USER_AUTHENTICATION = 0x1D, /* no retry */
826 PDP_FAIL_ACTIVATION_REJECT_GGSN = 0x1E, /* no retry */
827 PDP_FAIL_ACTIVATION_REJECT_UNSPECIFIED = 0x1F,
828 PDP_FAIL_SERVICE_OPTION_NOT_SUPPORTED = 0x20, /* no retry */
829 PDP_FAIL_SERVICE_OPTION_NOT_SUBSCRIBED = 0x21, /* no retry */
830 PDP_FAIL_SERVICE_OPTION_OUT_OF_ORDER = 0x22,
Wink Saville43808972011-01-13 17:39:51 -0800831 PDP_FAIL_NSAPI_IN_USE = 0x23, /* no retry */
Hui Wang11e8b232014-09-19 16:40:17 -0500832 PDP_FAIL_REGULAR_DEACTIVATION = 0x24, /* possibly restart radio,
833 based on framework config */
Sanket Padaweac308b92016-01-07 14:41:17 -0800834 PDP_FAIL_QOS_NOT_ACCEPTED = 0x25,
835 PDP_FAIL_NETWORK_FAILURE = 0x26,
836 PDP_FAIL_UMTS_REACTIVATION_REQ = 0x27,
837 PDP_FAIL_FEATURE_NOT_SUPP = 0x28,
838 PDP_FAIL_TFT_SEMANTIC_ERROR = 0x29,
839 PDP_FAIL_TFT_SYTAX_ERROR = 0x2A,
840 PDP_FAIL_UNKNOWN_PDP_CONTEXT = 0x2B,
841 PDP_FAIL_FILTER_SEMANTIC_ERROR = 0x2C,
842 PDP_FAIL_FILTER_SYTAX_ERROR = 0x2D,
843 PDP_FAIL_PDP_WITHOUT_ACTIVE_TFT = 0x2E,
Wink Saville43808972011-01-13 17:39:51 -0800844 PDP_FAIL_ONLY_IPV4_ALLOWED = 0x32, /* no retry */
845 PDP_FAIL_ONLY_IPV6_ALLOWED = 0x33, /* no retry */
846 PDP_FAIL_ONLY_SINGLE_BEARER_ALLOWED = 0x34,
Sanket Padaweac308b92016-01-07 14:41:17 -0800847 PDP_FAIL_ESM_INFO_NOT_RECEIVED = 0x35,
848 PDP_FAIL_PDN_CONN_DOES_NOT_EXIST = 0x36,
849 PDP_FAIL_MULTI_CONN_TO_SAME_PDN_NOT_ALLOWED = 0x37,
850 PDP_FAIL_MAX_ACTIVE_PDP_CONTEXT_REACHED = 0x41,
851 PDP_FAIL_UNSUPPORTED_APN_IN_CURRENT_PLMN = 0x42,
852 PDP_FAIL_INVALID_TRANSACTION_ID = 0x51,
853 PDP_FAIL_MESSAGE_INCORRECT_SEMANTIC = 0x5F,
854 PDP_FAIL_INVALID_MANDATORY_INFO = 0x60,
855 PDP_FAIL_MESSAGE_TYPE_UNSUPPORTED = 0x61,
856 PDP_FAIL_MSG_TYPE_NONCOMPATIBLE_STATE = 0x62,
857 PDP_FAIL_UNKNOWN_INFO_ELEMENT = 0x63,
858 PDP_FAIL_CONDITIONAL_IE_ERROR = 0x64,
859 PDP_FAIL_MSG_AND_PROTOCOL_STATE_UNCOMPATIBLE = 0x65,
860 PDP_FAIL_PROTOCOL_ERRORS = 0x6F, /* no retry */
861 PDP_FAIL_APN_TYPE_CONFLICT = 0x70,
862 PDP_FAIL_INVALID_PCSCF_ADDR = 0x71,
863 PDP_FAIL_INTERNAL_CALL_PREEMPT_BY_HIGH_PRIO_APN = 0x72,
864 PDP_FAIL_EMM_ACCESS_BARRED = 0x73,
865 PDP_FAIL_EMERGENCY_IFACE_ONLY = 0x74,
866 PDP_FAIL_IFACE_MISMATCH = 0x75,
867 PDP_FAIL_COMPANION_IFACE_IN_USE = 0x76,
868 PDP_FAIL_IP_ADDRESS_MISMATCH = 0x77,
869 PDP_FAIL_IFACE_AND_POL_FAMILY_MISMATCH = 0x78,
870 PDP_FAIL_EMM_ACCESS_BARRED_INFINITE_RETRY = 0x79,
871 PDP_FAIL_AUTH_FAILURE_ON_EMERGENCY_CALL = 0x7A,
Wink Saville43808972011-01-13 17:39:51 -0800872
Sanket Padawe0106aed2016-02-09 09:56:31 -0800873 // OEM specific error codes. To be used by OEMs when they don't want to
874 // reveal error code which would be replaced by PDP_FAIL_ERROR_UNSPECIFIED
875 PDP_FAIL_OEM_DCFAILCAUSE_1 = 0x1001,
876 PDP_FAIL_OEM_DCFAILCAUSE_2 = 0x1002,
877 PDP_FAIL_OEM_DCFAILCAUSE_3 = 0x1003,
878 PDP_FAIL_OEM_DCFAILCAUSE_4 = 0x1004,
879 PDP_FAIL_OEM_DCFAILCAUSE_5 = 0x1005,
880 PDP_FAIL_OEM_DCFAILCAUSE_6 = 0x1006,
881 PDP_FAIL_OEM_DCFAILCAUSE_7 = 0x1007,
882 PDP_FAIL_OEM_DCFAILCAUSE_8 = 0x1008,
883 PDP_FAIL_OEM_DCFAILCAUSE_9 = 0x1009,
884 PDP_FAIL_OEM_DCFAILCAUSE_10 = 0x100A,
885 PDP_FAIL_OEM_DCFAILCAUSE_11 = 0x100B,
886 PDP_FAIL_OEM_DCFAILCAUSE_12 = 0x100C,
887 PDP_FAIL_OEM_DCFAILCAUSE_13 = 0x100D,
888 PDP_FAIL_OEM_DCFAILCAUSE_14 = 0x100E,
889 PDP_FAIL_OEM_DCFAILCAUSE_15 = 0x100F,
890
Jaikumar Ganeshd6aa2e32009-05-04 11:09:46 -0700891 /* Not mentioned in the specification */
Wink Savillec0114b32011-02-18 10:14:07 -0800892 PDP_FAIL_VOICE_REGISTRATION_FAIL = -1,
893 PDP_FAIL_DATA_REGISTRATION_FAIL = -2,
Wink Saville43808972011-01-13 17:39:51 -0800894
895 /* reasons for data call drop - network/modem disconnect */
Wink Saville3492c6e2013-10-03 13:53:27 -0700896 PDP_FAIL_SIGNAL_LOST = -3,
Wink Saville43808972011-01-13 17:39:51 -0800897 PDP_FAIL_PREF_RADIO_TECH_CHANGED = -4,/* preferred technology has changed, should retry
898 with parameters appropriate for new technology */
899 PDP_FAIL_RADIO_POWER_OFF = -5, /* data call was disconnected because radio was resetting,
900 powered off - no retry */
901 PDP_FAIL_TETHERED_CALL_ACTIVE = -6, /* data call was disconnected by modem because tethered
902 mode was up on same APN/data profile - no retry until
903 tethered call is off */
904
Sanket Padaweac308b92016-01-07 14:41:17 -0800905 PDP_FAIL_ERROR_UNSPECIFIED = 0xffff, /* retry silently. Will be deprecated soon as
906 new error codes are added making this unnecessary */
Wink Saville43808972011-01-13 17:39:51 -0800907} RIL_DataCallFailCause;
The Android Open Source Project00f06fc2009-03-03 19:32:15 -0800908
jsh602f80f2009-07-10 15:44:37 -0700909/* See RIL_REQUEST_SETUP_DATA_CALL */
910typedef enum {
911 RIL_DATA_PROFILE_DEFAULT = 0,
912 RIL_DATA_PROFILE_TETHERED = 1,
Hui Wang8d679622014-10-16 14:59:27 -0500913 RIL_DATA_PROFILE_IMS = 2,
914 RIL_DATA_PROFILE_FOTA = 3,
915 RIL_DATA_PROFILE_CBS = 4,
916 RIL_DATA_PROFILE_OEM_BASE = 1000, /* Start of OEM-specific profiles */
917 RIL_DATA_PROFILE_INVALID = 0xFFFFFFFF
jsh602f80f2009-07-10 15:44:37 -0700918} RIL_DataProfile;
919
The Android Open Source Project00f06fc2009-03-03 19:32:15 -0800920/* Used by RIL_UNSOL_SUPP_SVC_NOTIFICATION */
921typedef struct {
922 int notificationType; /*
923 * 0 = MO intermediate result code
924 * 1 = MT unsolicited result code
925 */
926 int code; /* See 27.007 7.17
927 "code1" for MO
928 "code2" for MT. */
929 int index; /* CUG index. See 27.007 7.17. */
930 int type; /* "type" from 27.007 7.17 (MT only). */
931 char * number; /* "number" from 27.007 7.17
932 (MT only, may be NULL). */
933} RIL_SuppSvcNotification;
934
Wink Savillef4c4d362009-04-02 01:37:03 -0700935#define RIL_CARD_MAX_APPS 8
936
937typedef enum {
Meng Wangb4e34312016-05-12 14:54:36 -0700938 RIL_CARDSTATE_ABSENT = 0,
939 RIL_CARDSTATE_PRESENT = 1,
940 RIL_CARDSTATE_ERROR = 2,
941 RIL_CARDSTATE_RESTRICTED = 3 /* card is present but not usable due to carrier restrictions.*/
Wink Savillef4c4d362009-04-02 01:37:03 -0700942} RIL_CardState;
943
944typedef enum {
945 RIL_PERSOSUBSTATE_UNKNOWN = 0, /* initial state */
946 RIL_PERSOSUBSTATE_IN_PROGRESS = 1, /* in between each lock transition */
Wink Saville7f856802009-06-09 10:23:37 -0700947 RIL_PERSOSUBSTATE_READY = 2, /* when either SIM or RUIM Perso is finished
948 since each app can only have 1 active perso
Wink Savillef4c4d362009-04-02 01:37:03 -0700949 involved */
950 RIL_PERSOSUBSTATE_SIM_NETWORK = 3,
951 RIL_PERSOSUBSTATE_SIM_NETWORK_SUBSET = 4,
952 RIL_PERSOSUBSTATE_SIM_CORPORATE = 5,
953 RIL_PERSOSUBSTATE_SIM_SERVICE_PROVIDER = 6,
954 RIL_PERSOSUBSTATE_SIM_SIM = 7,
955 RIL_PERSOSUBSTATE_SIM_NETWORK_PUK = 8, /* The corresponding perso lock is blocked */
956 RIL_PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK = 9,
957 RIL_PERSOSUBSTATE_SIM_CORPORATE_PUK = 10,
958 RIL_PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK = 11,
959 RIL_PERSOSUBSTATE_SIM_SIM_PUK = 12,
960 RIL_PERSOSUBSTATE_RUIM_NETWORK1 = 13,
961 RIL_PERSOSUBSTATE_RUIM_NETWORK2 = 14,
962 RIL_PERSOSUBSTATE_RUIM_HRPD = 15,
963 RIL_PERSOSUBSTATE_RUIM_CORPORATE = 16,
964 RIL_PERSOSUBSTATE_RUIM_SERVICE_PROVIDER = 17,
965 RIL_PERSOSUBSTATE_RUIM_RUIM = 18,
966 RIL_PERSOSUBSTATE_RUIM_NETWORK1_PUK = 19, /* The corresponding perso lock is blocked */
967 RIL_PERSOSUBSTATE_RUIM_NETWORK2_PUK = 20,
968 RIL_PERSOSUBSTATE_RUIM_HRPD_PUK = 21,
969 RIL_PERSOSUBSTATE_RUIM_CORPORATE_PUK = 22,
970 RIL_PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK = 23,
971 RIL_PERSOSUBSTATE_RUIM_RUIM_PUK = 24
972} RIL_PersoSubstate;
973
974typedef enum {
975 RIL_APPSTATE_UNKNOWN = 0,
976 RIL_APPSTATE_DETECTED = 1,
977 RIL_APPSTATE_PIN = 2, /* If PIN1 or UPin is required */
978 RIL_APPSTATE_PUK = 3, /* If PUK1 or Puk for UPin is required */
Wink Saville7f856802009-06-09 10:23:37 -0700979 RIL_APPSTATE_SUBSCRIPTION_PERSO = 4, /* perso_substate should be look at
Wink Savillef4c4d362009-04-02 01:37:03 -0700980 when app_state is assigned to this value */
981 RIL_APPSTATE_READY = 5
982} RIL_AppState;
983
984typedef enum {
985 RIL_PINSTATE_UNKNOWN = 0,
986 RIL_PINSTATE_ENABLED_NOT_VERIFIED = 1,
987 RIL_PINSTATE_ENABLED_VERIFIED = 2,
988 RIL_PINSTATE_DISABLED = 3,
989 RIL_PINSTATE_ENABLED_BLOCKED = 4,
990 RIL_PINSTATE_ENABLED_PERM_BLOCKED = 5
991} RIL_PinState;
992
993typedef enum {
994 RIL_APPTYPE_UNKNOWN = 0,
995 RIL_APPTYPE_SIM = 1,
996 RIL_APPTYPE_USIM = 2,
997 RIL_APPTYPE_RUIM = 3,
Wink Savillec0114b32011-02-18 10:14:07 -0800998 RIL_APPTYPE_CSIM = 4,
999 RIL_APPTYPE_ISIM = 5
Wink Savillef4c4d362009-04-02 01:37:03 -07001000} RIL_AppType;
1001
Sooraj Sasindrand8db60c2016-11-30 18:36:03 -08001002/*
1003 * Please note that registration state UNKNOWN is
1004 * treated as "out of service" in the Android telephony.
1005 * Registration state REG_DENIED must be returned if Location Update
1006 * Reject (with cause 17 - Network Failure) is received
1007 * repeatedly from the network, to facilitate
1008 * "managed roaming"
1009 */
1010typedef enum {
1011 RIL_NOT_REG_AND_NOT_SEARCHING = 0, // Not registered, MT is not currently searching
1012 // a new operator to register
1013 RIL_REG_HOME = 1, // Registered, home network
1014 RIL_NOT_REG_AND_SEARCHING = 2, // Not registered, but MT is currently searching
1015 // a new operator to register
1016 RIL_REG_DENIED = 3, // Registration denied
1017 RIL_UNKNOWN = 4, // Unknown
1018 RIL_REG_ROAMING = 5, // Registered, roaming
1019 RIL_NOT_REG_AND_EMERGENCY_AVAILABLE_AND_NOT_SEARCHING = 10, // Same as
1020 // RIL_NOT_REG_AND_NOT_SEARCHING but indicates that
1021 // emergency calls are enabled.
1022 RIL_NOT_REG_AND_EMERGENCY_AVAILABLE_AND_SEARCHING = 12, // Same as RIL_NOT_REG_AND_SEARCHING
1023 // but indicates that
1024 // emergency calls are enabled.
1025 RIL_REG_DENIED_AND_EMERGENCY_AVAILABLE = 13, // Same as REG_DENIED but indicates that
1026 // emergency calls are enabled.
1027 RIL_UNKNOWN_AND_EMERGENCY_AVAILABLE = 14, // Same as UNKNOWN but indicates that
1028 // emergency calls are enabled.
1029} RIL_RegState;
1030
Wink Savillef4c4d362009-04-02 01:37:03 -07001031typedef struct
1032{
Wink Saville7f856802009-06-09 10:23:37 -07001033 RIL_AppType app_type;
1034 RIL_AppState app_state;
1035 RIL_PersoSubstate perso_substate; /* applicable only if app_state ==
Wink Savillef4c4d362009-04-02 01:37:03 -07001036 RIL_APPSTATE_SUBSCRIPTION_PERSO */
Wink Saville7f856802009-06-09 10:23:37 -07001037 char *aid_ptr; /* null terminated string, e.g., from 0xA0, 0x00 -> 0x41,
Wink Savillef4c4d362009-04-02 01:37:03 -07001038 0x30, 0x30, 0x30 */
1039 char *app_label_ptr; /* null terminated string */
Wink Savillec0114b32011-02-18 10:14:07 -08001040 int pin1_replaced; /* applicable to USIM, CSIM & ISIM */
Wink Saville7f856802009-06-09 10:23:37 -07001041 RIL_PinState pin1;
1042 RIL_PinState pin2;
Wink Savillef4c4d362009-04-02 01:37:03 -07001043} RIL_AppStatus;
1044
Wink Savillec0114b32011-02-18 10:14:07 -08001045/* Deprecated, use RIL_CardStatus_v6 */
1046typedef struct
1047{
1048 RIL_CardState card_state;
1049 RIL_PinState universal_pin_state; /* applicable to USIM and CSIM: RIL_PINSTATE_xxx */
1050 int gsm_umts_subscription_app_index; /* value < RIL_CARD_MAX_APPS, -1 if none */
1051 int cdma_subscription_app_index; /* value < RIL_CARD_MAX_APPS, -1 if none */
1052 int num_applications; /* value <= RIL_CARD_MAX_APPS */
1053 RIL_AppStatus applications[RIL_CARD_MAX_APPS];
1054} RIL_CardStatus_v5;
1055
Wink Savillef4c4d362009-04-02 01:37:03 -07001056typedef struct
1057{
Wink Saville7f856802009-06-09 10:23:37 -07001058 RIL_CardState card_state;
Wink Savillef4c4d362009-04-02 01:37:03 -07001059 RIL_PinState universal_pin_state; /* applicable to USIM and CSIM: RIL_PINSTATE_xxx */
Wink Savillec0114b32011-02-18 10:14:07 -08001060 int gsm_umts_subscription_app_index; /* value < RIL_CARD_MAX_APPS, -1 if none */
1061 int cdma_subscription_app_index; /* value < RIL_CARD_MAX_APPS, -1 if none */
1062 int ims_subscription_app_index; /* value < RIL_CARD_MAX_APPS, -1 if none */
Wink Savillef4c4d362009-04-02 01:37:03 -07001063 int num_applications; /* value <= RIL_CARD_MAX_APPS */
1064 RIL_AppStatus applications[RIL_CARD_MAX_APPS];
Wink Savillec0114b32011-02-18 10:14:07 -08001065} RIL_CardStatus_v6;
Wink Savillef4c4d362009-04-02 01:37:03 -07001066
Alex Yakavenka45e740e2012-01-31 11:48:27 -08001067/** The result of a SIM refresh, returned in data[0] of RIL_UNSOL_SIM_REFRESH
1068 * or as part of RIL_SimRefreshResponse_v7
1069 */
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08001070typedef enum {
1071 /* A file on SIM has been updated. data[1] contains the EFID. */
1072 SIM_FILE_UPDATE = 0,
Alex Yakavenka45e740e2012-01-31 11:48:27 -08001073 /* SIM initialized. All files should be re-read. */
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08001074 SIM_INIT = 1,
1075 /* SIM reset. SIM power required, SIM may be locked and all files should be re-read. */
1076 SIM_RESET = 2
1077} RIL_SimRefreshResult;
1078
Alex Yakavenka45e740e2012-01-31 11:48:27 -08001079typedef struct {
1080 RIL_SimRefreshResult result;
1081 int ef_id; /* is the EFID of the updated file if the result is */
1082 /* SIM_FILE_UPDATE or 0 for any other result. */
1083 char * aid; /* is AID(application ID) of the card application */
1084 /* See ETSI 102.221 8.1 and 101.220 4 */
1085 /* For SIM_FILE_UPDATE result it can be set to AID of */
1086 /* application in which updated EF resides or it can be */
1087 /* NULL if EF is outside of an application. */
1088 /* For SIM_INIT result this field is set to AID of */
1089 /* application that caused REFRESH */
1090 /* For SIM_RESET result it is NULL. */
1091} RIL_SimRefreshResponse_v7;
1092
Wink Savillec0114b32011-02-18 10:14:07 -08001093/* Deprecated, use RIL_CDMA_CallWaiting_v6 */
1094typedef struct {
1095 char * number; /* Remote party number */
1096 int numberPresentation; /* 0=Allowed, 1=Restricted, 2=Not Specified/Unknown */
1097 char * name; /* Remote party name */
1098 RIL_CDMA_SignalInfoRecord signalInfoRecord;
1099} RIL_CDMA_CallWaiting_v5;
1100
Wink Saville1b5fd232009-04-22 14:50:00 -07001101typedef struct {
1102 char * number; /* Remote party number */
1103 int numberPresentation; /* 0=Allowed, 1=Restricted, 2=Not Specified/Unknown */
1104 char * name; /* Remote party name */
Wink Saville3d54e742009-05-18 18:00:44 -07001105 RIL_CDMA_SignalInfoRecord signalInfoRecord;
Wink Savillec0114b32011-02-18 10:14:07 -08001106 /* Number type/Number plan required to support International Call Waiting */
1107 int number_type; /* 0=Unknown, 1=International, 2=National,
1108 3=Network specific, 4=subscriber */
1109 int number_plan; /* 0=Unknown, 1=ISDN, 3=Data, 4=Telex, 8=Nat'l, 9=Private */
1110} RIL_CDMA_CallWaiting_v6;
Wink Saville1b5fd232009-04-22 14:50:00 -07001111
Wink Savillea592eeb2009-05-22 13:26:36 -07001112/**
1113 * Which types of Cell Broadcast Message (CBM) are to be received by the ME
1114 *
1115 * uFromServiceID - uToServiceID defines a range of CBM message identifiers
1116 * whose value is 0x0000 - 0xFFFF as defined in TS 23.041 9.4.1.2.2 for GMS
1117 * and 9.4.4.2.2 for UMTS. All other values can be treated as empty
1118 * CBM message ID.
1119 *
1120 * uFromCodeScheme - uToCodeScheme defines a range of CBM data coding schemes
1121 * whose value is 0x00 - 0xFF as defined in TS 23.041 9.4.1.2.3 for GMS
1122 * and 9.4.4.2.3 for UMTS.
1123 * All other values can be treated as empty CBM data coding scheme.
1124 *
1125 * selected 0 means message types specified in <fromServiceId, toServiceId>
1126 * and <fromCodeScheme, toCodeScheme>are not accepted, while 1 means accepted.
1127 *
1128 * Used by RIL_REQUEST_GSM_GET_BROADCAST_CONFIG and
1129 * RIL_REQUEST_GSM_SET_BROADCAST_CONFIG.
1130 */
Wink Savillef4c4d362009-04-02 01:37:03 -07001131typedef struct {
Wink Savillea592eeb2009-05-22 13:26:36 -07001132 int fromServiceId;
1133 int toServiceId;
1134 int fromCodeScheme;
1135 int toCodeScheme;
1136 unsigned char selected;
1137} RIL_GSM_BroadcastSmsConfigInfo;
Wink Savillef4c4d362009-04-02 01:37:03 -07001138
The Android Open Source Project34a51082009-03-05 14:34:37 -08001139/* No restriction at all including voice/SMS/USSD/SS/AV64 and packet data. */
1140#define RIL_RESTRICTED_STATE_NONE 0x00
1141/* Block emergency call due to restriction. But allow all normal voice/SMS/USSD/SS/AV64. */
1142#define RIL_RESTRICTED_STATE_CS_EMERGENCY 0x01
1143/* Block all normal voice/SMS/USSD/SS/AV64 due to restriction. Only Emergency call allowed. */
1144#define RIL_RESTRICTED_STATE_CS_NORMAL 0x02
Wink Savillea592eeb2009-05-22 13:26:36 -07001145/* Block all voice/SMS/USSD/SS/AV64 including emergency call due to restriction.*/
The Android Open Source Project34a51082009-03-05 14:34:37 -08001146#define RIL_RESTRICTED_STATE_CS_ALL 0x04
1147/* Block packet data access due to restriction. */
1148#define RIL_RESTRICTED_STATE_PS_ALL 0x10
1149
Wink Saville1b5fd232009-04-22 14:50:00 -07001150/* The status for an OTASP/OTAPA session */
1151typedef enum {
1152 CDMA_OTA_PROVISION_STATUS_SPL_UNLOCKED,
1153 CDMA_OTA_PROVISION_STATUS_SPC_RETRIES_EXCEEDED,
1154 CDMA_OTA_PROVISION_STATUS_A_KEY_EXCHANGED,
1155 CDMA_OTA_PROVISION_STATUS_SSD_UPDATED,
1156 CDMA_OTA_PROVISION_STATUS_NAM_DOWNLOADED,
1157 CDMA_OTA_PROVISION_STATUS_MDN_DOWNLOADED,
1158 CDMA_OTA_PROVISION_STATUS_IMSI_DOWNLOADED,
1159 CDMA_OTA_PROVISION_STATUS_PRL_DOWNLOADED,
1160 CDMA_OTA_PROVISION_STATUS_COMMITTED,
1161 CDMA_OTA_PROVISION_STATUS_OTAPA_STARTED,
1162 CDMA_OTA_PROVISION_STATUS_OTAPA_STOPPED,
1163 CDMA_OTA_PROVISION_STATUS_OTAPA_ABORTED
1164} RIL_CDMA_OTA_ProvisionStatus;
1165
1166typedef struct {
1167 int signalStrength; /* Valid values are (0-31, 99) as defined in TS 27.007 8.5 */
1168 int bitErrorRate; /* bit error rate (0-7, 99) as defined in TS 27.007 8.5 */
1169} RIL_GW_SignalStrength;
1170
Wink Savillec57b3eb2013-04-17 12:51:41 -07001171typedef struct {
1172 int signalStrength; /* Valid values are (0-31, 99) as defined in TS 27.007 8.5 */
1173 int bitErrorRate; /* bit error rate (0-7, 99) as defined in TS 27.007 8.5 */
Sanket Padawef53c5fa2016-01-27 10:00:38 -08001174 int timingAdvance; /* Timing Advance in bit periods. 1 bit period = 48/13 us.
1175 * INT_MAX denotes invalid value */
1176} RIL_GSM_SignalStrength_v12;
1177
1178typedef struct {
1179 int signalStrength; /* Valid values are (0-31, 99) as defined in TS 27.007 8.5 */
1180 int bitErrorRate; /* bit error rate (0-7, 99) as defined in TS 27.007 8.5 */
Wink Savillec57b3eb2013-04-17 12:51:41 -07001181} RIL_SignalStrengthWcdma;
Wink Saville1b5fd232009-04-22 14:50:00 -07001182
1183typedef struct {
1184 int dbm; /* Valid values are positive integers. This value is the actual RSSI value
1185 * multiplied by -1. Example: If the actual RSSI is -75, then this response
1186 * value will be 75.
1187 */
1188 int ecio; /* Valid values are positive integers. This value is the actual Ec/Io multiplied
1189 * by -10. Example: If the actual Ec/Io is -12.5 dB, then this response value
1190 * will be 125.
1191 */
1192} RIL_CDMA_SignalStrength;
1193
1194
1195typedef struct {
1196 int dbm; /* Valid values are positive integers. This value is the actual RSSI value
1197 * multiplied by -1. Example: If the actual RSSI is -75, then this response
1198 * value will be 75.
1199 */
1200 int ecio; /* Valid values are positive integers. This value is the actual Ec/Io multiplied
1201 * by -10. Example: If the actual Ec/Io is -12.5 dB, then this response value
1202 * will be 125.
1203 */
1204 int signalNoiseRatio; /* Valid values are 0-8. 8 is the highest signal to noise ratio. */
1205} RIL_EVDO_SignalStrength;
1206
Wink Savillec0114b32011-02-18 10:14:07 -08001207typedef struct {
1208 int signalStrength; /* Valid values are (0-31, 99) as defined in TS 27.007 8.5 */
Wink Saville473adc92011-06-13 10:24:09 -07001209 int rsrp; /* The current Reference Signal Receive Power in dBm multipled by -1.
1210 * Range: 44 to 140 dBm
1211 * INT_MAX: 0x7FFFFFFF denotes invalid value.
1212 * Reference: 3GPP TS 36.133 9.1.4 */
1213 int rsrq; /* The current Reference Signal Receive Quality in dB multiplied by -1.
1214 * Range: 20 to 3 dB.
1215 * INT_MAX: 0x7FFFFFFF denotes invalid value.
1216 * Reference: 3GPP TS 36.133 9.1.7 */
1217 int rssnr; /* The current reference signal signal-to-noise ratio in 0.1 dB units.
1218 * Range: -200 to +300 (-200 = -20.0 dB, +300 = 30dB).
1219 * INT_MAX : 0x7FFFFFFF denotes invalid value.
1220 * Reference: 3GPP TS 36.101 8.1.1 */
1221 int cqi; /* The current Channel Quality Indicator.
1222 * Range: 0 to 15.
1223 * INT_MAX : 0x7FFFFFFF denotes invalid value.
1224 * Reference: 3GPP TS 36.101 9.2, 9.3, A.4 */
Wink Savillec0114b32011-02-18 10:14:07 -08001225} RIL_LTE_SignalStrength;
1226
Wink Saville8a9e0212013-04-09 12:11:38 -07001227typedef struct {
1228 int signalStrength; /* Valid values are (0-31, 99) as defined in TS 27.007 8.5 */
1229 int rsrp; /* The current Reference Signal Receive Power in dBm multipled by -1.
1230 * Range: 44 to 140 dBm
1231 * INT_MAX: 0x7FFFFFFF denotes invalid value.
1232 * Reference: 3GPP TS 36.133 9.1.4 */
1233 int rsrq; /* The current Reference Signal Receive Quality in dB multiplied by -1.
1234 * Range: 20 to 3 dB.
1235 * INT_MAX: 0x7FFFFFFF denotes invalid value.
1236 * Reference: 3GPP TS 36.133 9.1.7 */
1237 int rssnr; /* The current reference signal signal-to-noise ratio in 0.1 dB units.
1238 * Range: -200 to +300 (-200 = -20.0 dB, +300 = 30dB).
1239 * INT_MAX : 0x7FFFFFFF denotes invalid value.
1240 * Reference: 3GPP TS 36.101 8.1.1 */
1241 int cqi; /* The current Channel Quality Indicator.
1242 * Range: 0 to 15.
1243 * INT_MAX : 0x7FFFFFFF denotes invalid value.
1244 * Reference: 3GPP TS 36.101 9.2, 9.3, A.4 */
1245 int timingAdvance; /* timing advance in micro seconds for a one way trip from cell to device.
1246 * Approximate distance can be calculated using 300m/us * timingAdvance.
1247 * Range: 0 to 0x7FFFFFFE
1248 * INT_MAX : 0x7FFFFFFF denotes invalid value.
1249 * Reference: 3GPP 36.321 section 6.1.3.5
1250 * also: http://www.cellular-planningoptimization.com/2010/02/timing-advance-with-calculation.html */
1251} RIL_LTE_SignalStrength_v8;
1252
Etan Cohend3652192014-06-20 08:28:44 -07001253typedef struct {
1254 int rscp; /* The Received Signal Code Power in dBm multipled by -1.
1255 * Range : 25 to 120
1256 * INT_MAX: 0x7FFFFFFF denotes invalid value.
1257 * Reference: 3GPP TS 25.123, section 9.1.1.1 */
1258} RIL_TD_SCDMA_SignalStrength;
1259
Wink Savillec0114b32011-02-18 10:14:07 -08001260/* Deprecated, use RIL_SignalStrength_v6 */
1261typedef struct {
1262 RIL_GW_SignalStrength GW_SignalStrength;
1263 RIL_CDMA_SignalStrength CDMA_SignalStrength;
1264 RIL_EVDO_SignalStrength EVDO_SignalStrength;
1265} RIL_SignalStrength_v5;
Wink Saville1b5fd232009-04-22 14:50:00 -07001266
1267typedef struct {
1268 RIL_GW_SignalStrength GW_SignalStrength;
1269 RIL_CDMA_SignalStrength CDMA_SignalStrength;
1270 RIL_EVDO_SignalStrength EVDO_SignalStrength;
Wink Savillec0114b32011-02-18 10:14:07 -08001271 RIL_LTE_SignalStrength LTE_SignalStrength;
1272} RIL_SignalStrength_v6;
Wink Saville1b5fd232009-04-22 14:50:00 -07001273
Wink Saville8a9e0212013-04-09 12:11:38 -07001274typedef struct {
1275 RIL_GW_SignalStrength GW_SignalStrength;
1276 RIL_CDMA_SignalStrength CDMA_SignalStrength;
1277 RIL_EVDO_SignalStrength EVDO_SignalStrength;
1278 RIL_LTE_SignalStrength_v8 LTE_SignalStrength;
1279} RIL_SignalStrength_v8;
1280
Etan Cohend3652192014-06-20 08:28:44 -07001281typedef struct {
1282 RIL_GW_SignalStrength GW_SignalStrength;
1283 RIL_CDMA_SignalStrength CDMA_SignalStrength;
1284 RIL_EVDO_SignalStrength EVDO_SignalStrength;
1285 RIL_LTE_SignalStrength_v8 LTE_SignalStrength;
1286 RIL_TD_SCDMA_SignalStrength TD_SCDMA_SignalStrength;
1287} RIL_SignalStrength_v10;
1288
Wink Saville8a9e0212013-04-09 12:11:38 -07001289typedef struct {
Wink Savillec57b3eb2013-04-17 12:51:41 -07001290 int mcc; /* 3-digit Mobile Country Code, 0..999, INT_MAX if unknown */
1291 int mnc; /* 2 or 3-digit Mobile Network Code, 0..999, INT_MAX if unknown */
1292 int lac; /* 16-bit Location Area Code, 0..65535, INT_MAX if unknown */
1293 int cid; /* 16-bit GSM Cell Identity described in TS 27.007, 0..65535, INT_MAX if unknown */
Wink Saville8a9e0212013-04-09 12:11:38 -07001294} RIL_CellIdentityGsm;
1295
Sanket Padawef53c5fa2016-01-27 10:00:38 -08001296typedef struct {
1297 int mcc; /* 3-digit Mobile Country Code, 0..999, INT_MAX if unknown */
1298 int mnc; /* 2 or 3-digit Mobile Network Code, 0..999, INT_MAX if unknown */
1299 int lac; /* 16-bit Location Area Code, 0..65535, INT_MAX if unknown */
1300 int cid; /* 16-bit GSM Cell Identity described in TS 27.007, 0..65535, INT_MAX if unknown */
1301 int arfcn; /* 16-bit GSM Absolute RF channel number, INT_MAX if unknown */
Nathan Haroldf3769da2016-05-05 12:19:39 -07001302 uint8_t bsic;/* 6-bit Base Station Identity Code, 0xFF if unknown */
Sanket Padawef53c5fa2016-01-27 10:00:38 -08001303} RIL_CellIdentityGsm_v12;
1304
Wink Savillec57b3eb2013-04-17 12:51:41 -07001305typedef struct {
1306 int mcc; /* 3-digit Mobile Country Code, 0..999, INT_MAX if unknown */
1307 int mnc; /* 2 or 3-digit Mobile Network Code, 0..999, INT_MAX if unknown */
1308 int lac; /* 16-bit Location Area Code, 0..65535, INT_MAX if unknown */
1309 int cid; /* 28-bit UMTS Cell Identity described in TS 25.331, 0..268435455, INT_MAX if unknown */
1310 int psc; /* 9-bit UMTS Primary Scrambling Code described in TS 25.331, 0..511, INT_MAX if unknown */
1311} RIL_CellIdentityWcdma;
1312
Sanket Padawef53c5fa2016-01-27 10:00:38 -08001313typedef struct {
1314 int mcc; /* 3-digit Mobile Country Code, 0..999, INT_MAX if unknown */
1315 int mnc; /* 2 or 3-digit Mobile Network Code, 0..999, INT_MAX if unknown */
1316 int lac; /* 16-bit Location Area Code, 0..65535, INT_MAX if unknown */
1317 int cid; /* 28-bit UMTS Cell Identity described in TS 25.331, 0..268435455, INT_MAX if unknown */
1318 int psc; /* 9-bit UMTS Primary Scrambling Code described in TS 25.331, 0..511, INT_MAX if unknown */
1319 int uarfcn; /* 16-bit UMTS Absolute RF Channel Number, INT_MAX if unknown */
1320} RIL_CellIdentityWcdma_v12;
1321
Wink Saville8a9e0212013-04-09 12:11:38 -07001322typedef struct {
Wink Savillec57b3eb2013-04-17 12:51:41 -07001323 int networkId; /* Network Id 0..65535, INT_MAX if unknown */
1324 int systemId; /* CDMA System Id 0..32767, INT_MAX if unknown */
1325 int basestationId; /* Base Station Id 0..65535, INT_MAX if unknown */
Wink Saville8a9e0212013-04-09 12:11:38 -07001326 int longitude; /* Longitude is a decimal number as specified in 3GPP2 C.S0005-A v6.0.
1327 * It is represented in units of 0.25 seconds and ranges from -2592000
1328 * to 2592000, both values inclusive (corresponding to a range of -180
Wink Savillec57b3eb2013-04-17 12:51:41 -07001329 * to +180 degrees). INT_MAX if unknown */
Wink Saville8a9e0212013-04-09 12:11:38 -07001330
1331 int latitude; /* Latitude is a decimal number as specified in 3GPP2 C.S0005-A v6.0.
1332 * It is represented in units of 0.25 seconds and ranges from -1296000
1333 * to 1296000, both values inclusive (corresponding to a range of -90
Wink Savillec57b3eb2013-04-17 12:51:41 -07001334 * to +90 degrees). INT_MAX if unknown */
Wink Saville8a9e0212013-04-09 12:11:38 -07001335} RIL_CellIdentityCdma;
1336
Wink Saville8a9e0212013-04-09 12:11:38 -07001337typedef struct {
Wink Savillec57b3eb2013-04-17 12:51:41 -07001338 int mcc; /* 3-digit Mobile Country Code, 0..999, INT_MAX if unknown */
1339 int mnc; /* 2 or 3-digit Mobile Network Code, 0..999, INT_MAX if unknown */
1340 int ci; /* 28-bit Cell Identity described in TS ???, INT_MAX if unknown */
1341 int pci; /* physical cell id 0..503, INT_MAX if unknown */
1342 int tac; /* 16-bit tracking area code, INT_MAX if unknown */
Wink Saville8a9e0212013-04-09 12:11:38 -07001343} RIL_CellIdentityLte;
1344
Sanket Padawef53c5fa2016-01-27 10:00:38 -08001345typedef struct {
1346 int mcc; /* 3-digit Mobile Country Code, 0..999, INT_MAX if unknown */
1347 int mnc; /* 2 or 3-digit Mobile Network Code, 0..999, INT_MAX if unknown */
1348 int ci; /* 28-bit Cell Identity described in TS ???, INT_MAX if unknown */
1349 int pci; /* physical cell id 0..503, INT_MAX if unknown */
1350 int tac; /* 16-bit tracking area code, INT_MAX if unknown */
1351 int earfcn; /* 18-bit LTE Absolute RC Channel Number, INT_MAX if unknown */
1352} RIL_CellIdentityLte_v12;
1353
Etan Cohend3652192014-06-20 08:28:44 -07001354typedef struct {
1355 int mcc; /* 3-digit Mobile Country Code, 0..999, INT_MAX if unknown */
1356 int mnc; /* 2 or 3-digit Mobile Network Code, 0..999, INT_MAX if unknown */
1357 int lac; /* 16-bit Location Area Code, 0..65535, INT_MAX if unknown */
1358 int cid; /* 28-bit UMTS Cell Identity described in TS 25.331, 0..268435455, INT_MAX if unknown */
1359 int cpid; /* 8-bit Cell Parameters ID described in TS 25.331, 0..127, INT_MAX if unknown */
1360} RIL_CellIdentityTdscdma;
1361
Wink Saville8a9e0212013-04-09 12:11:38 -07001362typedef struct {
1363 RIL_CellIdentityGsm cellIdentityGsm;
1364 RIL_GW_SignalStrength signalStrengthGsm;
1365} RIL_CellInfoGsm;
1366
Sanket Padawef53c5fa2016-01-27 10:00:38 -08001367typedef struct {
1368 RIL_CellIdentityGsm_v12 cellIdentityGsm;
1369 RIL_GSM_SignalStrength_v12 signalStrengthGsm;
1370} RIL_CellInfoGsm_v12;
1371
Wink Savillec57b3eb2013-04-17 12:51:41 -07001372typedef struct {
1373 RIL_CellIdentityWcdma cellIdentityWcdma;
1374 RIL_SignalStrengthWcdma signalStrengthWcdma;
1375} RIL_CellInfoWcdma;
1376
Sanket Padawef53c5fa2016-01-27 10:00:38 -08001377typedef struct {
1378 RIL_CellIdentityWcdma_v12 cellIdentityWcdma;
1379 RIL_SignalStrengthWcdma signalStrengthWcdma;
1380} RIL_CellInfoWcdma_v12;
1381
Wink Saville8a9e0212013-04-09 12:11:38 -07001382typedef struct {
1383 RIL_CellIdentityCdma cellIdentityCdma;
1384 RIL_CDMA_SignalStrength signalStrengthCdma;
1385 RIL_EVDO_SignalStrength signalStrengthEvdo;
1386} RIL_CellInfoCdma;
1387
Wink Saville8a9e0212013-04-09 12:11:38 -07001388typedef struct {
1389 RIL_CellIdentityLte cellIdentityLte;
1390 RIL_LTE_SignalStrength_v8 signalStrengthLte;
1391} RIL_CellInfoLte;
1392
Sanket Padawef53c5fa2016-01-27 10:00:38 -08001393typedef struct {
1394 RIL_CellIdentityLte_v12 cellIdentityLte;
1395 RIL_LTE_SignalStrength_v8 signalStrengthLte;
1396} RIL_CellInfoLte_v12;
1397
Etan Cohend3652192014-06-20 08:28:44 -07001398typedef struct {
1399 RIL_CellIdentityTdscdma cellIdentityTdscdma;
1400 RIL_TD_SCDMA_SignalStrength signalStrengthTdscdma;
1401} RIL_CellInfoTdscdma;
1402
Wink Saville8a9e0212013-04-09 12:11:38 -07001403// Must be the same as CellInfo.TYPE_XXX
1404typedef enum {
Sooraj Sasindrand8db60c2016-11-30 18:36:03 -08001405 RIL_CELL_INFO_TYPE_NONE = 0, /* indicates no cell information */
Wink Saville8a9e0212013-04-09 12:11:38 -07001406 RIL_CELL_INFO_TYPE_GSM = 1,
1407 RIL_CELL_INFO_TYPE_CDMA = 2,
1408 RIL_CELL_INFO_TYPE_LTE = 3,
Wink Savillec57b3eb2013-04-17 12:51:41 -07001409 RIL_CELL_INFO_TYPE_WCDMA = 4,
Etan Cohend3652192014-06-20 08:28:44 -07001410 RIL_CELL_INFO_TYPE_TD_SCDMA = 5
Wink Saville8a9e0212013-04-09 12:11:38 -07001411} RIL_CellInfoType;
1412
1413// Must be the same as CellInfo.TIMESTAMP_TYPE_XXX
1414typedef enum {
1415 RIL_TIMESTAMP_TYPE_UNKNOWN = 0,
1416 RIL_TIMESTAMP_TYPE_ANTENNA = 1,
1417 RIL_TIMESTAMP_TYPE_MODEM = 2,
1418 RIL_TIMESTAMP_TYPE_OEM_RIL = 3,
1419 RIL_TIMESTAMP_TYPE_JAVA_RIL = 4,
1420} RIL_TimeStampType;
1421
1422typedef struct {
1423 RIL_CellInfoType cellInfoType; /* cell type for selecting from union CellInfo */
1424 int registered; /* !0 if this cell is registered 0 if not registered */
1425 RIL_TimeStampType timeStampType; /* type of time stamp represented by timeStamp */
1426 uint64_t timeStamp; /* Time in nanos as returned by ril_nano_time */
1427 union {
1428 RIL_CellInfoGsm gsm;
1429 RIL_CellInfoCdma cdma;
1430 RIL_CellInfoLte lte;
Wink Savillec57b3eb2013-04-17 12:51:41 -07001431 RIL_CellInfoWcdma wcdma;
Etan Cohend3652192014-06-20 08:28:44 -07001432 RIL_CellInfoTdscdma tdscdma;
Wink Saville8a9e0212013-04-09 12:11:38 -07001433 } CellInfo;
1434} RIL_CellInfo;
1435
Sanket Padawef53c5fa2016-01-27 10:00:38 -08001436typedef struct {
1437 RIL_CellInfoType cellInfoType; /* cell type for selecting from union CellInfo */
1438 int registered; /* !0 if this cell is registered 0 if not registered */
1439 RIL_TimeStampType timeStampType; /* type of time stamp represented by timeStamp */
1440 uint64_t timeStamp; /* Time in nanos as returned by ril_nano_time */
1441 union {
1442 RIL_CellInfoGsm_v12 gsm;
1443 RIL_CellInfoCdma cdma;
1444 RIL_CellInfoLte_v12 lte;
1445 RIL_CellInfoWcdma_v12 wcdma;
1446 RIL_CellInfoTdscdma tdscdma;
1447 } CellInfo;
1448} RIL_CellInfo_v12;
1449
Sooraj Sasindrand8db60c2016-11-30 18:36:03 -08001450typedef struct {
1451 RIL_CellInfoType cellInfoType; /* cell type for selecting from union CellInfo */
1452 union {
1453 RIL_CellIdentityGsm_v12 cellIdentityGsm;
1454 RIL_CellIdentityWcdma_v12 cellIdentityWcdma;
1455 RIL_CellIdentityLte_v12 cellIdentityLte;
1456 RIL_CellIdentityTdscdma cellIdentityTdscdma;
1457 RIL_CellIdentityCdma cellIdentityCdma;
1458 };
1459}RIL_CellIdentity_v16;
1460
1461typedef struct {
1462 RIL_RegState regState; // Valid reg states are RIL_NOT_REG_AND_NOT_SEARCHING,
1463 // REG_HOME, RIL_NOT_REG_AND_SEARCHING, REG_DENIED,
1464 // UNKNOWN, REG_ROAMING defined in RegState
1465 RIL_RadioTechnology rat; // indicates the available voice radio technology,
1466 // valid values as defined by RadioTechnology.
1467 int32_t cssSupported; // concurrent services support indicator. if
1468 // registered on a CDMA system.
1469 // 0 - Concurrent services not supported,
1470 // 1 - Concurrent services supported
1471 int32_t roamingIndicator; // TSB-58 Roaming Indicator if registered
1472 // on a CDMA or EVDO system or -1 if not.
1473 // Valid values are 0-255.
1474 int32_t systemIsInPrl; // indicates whether the current system is in the
1475 // PRL if registered on a CDMA or EVDO system or -1 if
1476 // not. 0=not in the PRL, 1=in the PRL
1477 int32_t defaultRoamingIndicator; // default Roaming Indicator from the PRL,
1478 // if registered on a CDMA or EVDO system or -1 if not.
1479 // Valid values are 0-255.
1480 int32_t reasonForDenial; // reasonForDenial if registration state is 3
1481 // (Registration denied) this is an enumerated reason why
1482 // registration was denied. See 3GPP TS 24.008,
1483 // 10.5.3.6 and Annex G.
1484 // 0 - General
1485 // 1 - Authentication Failure
1486 // 2 - IMSI unknown in HLR
1487 // 3 - Illegal MS
1488 // 4 - Illegal ME
1489 // 5 - PLMN not allowed
1490 // 6 - Location area not allowed
1491 // 7 - Roaming not allowed
1492 // 8 - No Suitable Cells in this Location Area
1493 // 9 - Network failure
1494 // 10 - Persistent location update reject
1495 // 11 - PLMN not allowed
1496 // 12 - Location area not allowed
1497 // 13 - Roaming not allowed in this Location Area
1498 // 15 - No Suitable Cells in this Location Area
1499 // 17 - Network Failure
1500 // 20 - MAC Failure
1501 // 21 - Sync Failure
1502 // 22 - Congestion
1503 // 23 - GSM Authentication unacceptable
1504 // 25 - Not Authorized for this CSG
1505 // 32 - Service option not supported
1506 // 33 - Requested service option not subscribed
1507 // 34 - Service option temporarily out of order
1508 // 38 - Call cannot be identified
1509 // 48-63 - Retry upon entry into a new cell
1510 // 95 - Semantically incorrect message
1511 // 96 - Invalid mandatory information
1512 // 97 - Message type non-existent or not implemented
1513 // 98 - Message type not compatible with protocol state
1514 // 99 - Information element non-existent or
1515 // not implemented
1516 // 100 - Conditional IE error
1517 // 101 - Message not compatible with protocol state;
1518 RIL_CellIdentity_v16 cellIdentity; // current cell information
1519}RIL_VoiceRegistrationStateResponse;
1520
1521
1522typedef struct {
1523 RIL_RegState regState; // Valid reg states are RIL_NOT_REG_AND_NOT_SEARCHING,
1524 // REG_HOME, RIL_NOT_REG_AND_SEARCHING, REG_DENIED,
1525 // UNKNOWN, REG_ROAMING defined in RegState
1526 RIL_RadioTechnology rat; // indicates the available data radio technology,
1527 // valid values as defined by RadioTechnology.
1528 int32_t reasonDataDenied; // if registration state is 3 (Registration
1529 // denied) this is an enumerated reason why
1530 // registration was denied. See 3GPP TS 24.008,
1531 // Annex G.6 "Additional cause codes for GMM".
1532 // 7 == GPRS services not allowed
1533 // 8 == GPRS services and non-GPRS services not allowed
1534 // 9 == MS identity cannot be derived by the network
1535 // 10 == Implicitly detached
1536 // 14 == GPRS services not allowed in this PLMN
1537 // 16 == MSC temporarily not reachable
1538 // 40 == No PDP context activated
1539 int32_t maxDataCalls; // The maximum number of simultaneous Data Calls that
1540 // must be established using setupDataCall().
1541 RIL_CellIdentity_v16 cellIdentity; // Current cell information
1542}RIL_DataRegistrationStateResponse;
1543
Wink Saville1b5fd232009-04-22 14:50:00 -07001544/* Names of the CDMA info records (C.S0005 section 3.7.5) */
1545typedef enum {
1546 RIL_CDMA_DISPLAY_INFO_REC,
1547 RIL_CDMA_CALLED_PARTY_NUMBER_INFO_REC,
1548 RIL_CDMA_CALLING_PARTY_NUMBER_INFO_REC,
1549 RIL_CDMA_CONNECTED_NUMBER_INFO_REC,
1550 RIL_CDMA_SIGNAL_INFO_REC,
1551 RIL_CDMA_REDIRECTING_NUMBER_INFO_REC,
1552 RIL_CDMA_LINE_CONTROL_INFO_REC,
1553 RIL_CDMA_EXTENDED_DISPLAY_INFO_REC,
1554 RIL_CDMA_T53_CLIR_INFO_REC,
1555 RIL_CDMA_T53_RELEASE_INFO_REC,
1556 RIL_CDMA_T53_AUDIO_CONTROL_INFO_REC
1557} RIL_CDMA_InfoRecName;
1558
1559/* Display Info Rec as defined in C.S0005 section 3.7.5.1
1560 Extended Display Info Rec as defined in C.S0005 section 3.7.5.16
1561 Note: the Extended Display info rec contains multiple records of the
1562 form: display_tag, display_len, and display_len occurrences of the
1563 chari field if the display_tag is not 10000000 or 10000001.
1564 To save space, the records are stored consecutively in a byte buffer.
1565 The display_tag, display_len and chari fields are all 1 byte.
1566*/
1567
1568typedef struct {
1569 char alpha_len;
Wink Savillea592eeb2009-05-22 13:26:36 -07001570 char alpha_buf[CDMA_ALPHA_INFO_BUFFER_LENGTH];
Wink Saville1b5fd232009-04-22 14:50:00 -07001571} RIL_CDMA_DisplayInfoRecord;
1572
1573/* Called Party Number Info Rec as defined in C.S0005 section 3.7.5.2
1574 Calling Party Number Info Rec as defined in C.S0005 section 3.7.5.3
1575 Connected Number Info Rec as defined in C.S0005 section 3.7.5.4
1576*/
1577
1578typedef struct {
1579 char len;
Wink Savillea592eeb2009-05-22 13:26:36 -07001580 char buf[CDMA_NUMBER_INFO_BUFFER_LENGTH];
Wink Saville1b5fd232009-04-22 14:50:00 -07001581 char number_type;
1582 char number_plan;
1583 char pi;
1584 char si;
1585} RIL_CDMA_NumberInfoRecord;
1586
1587/* Redirecting Number Information Record as defined in C.S0005 section 3.7.5.11 */
1588typedef enum {
1589 RIL_REDIRECTING_REASON_UNKNOWN = 0,
1590 RIL_REDIRECTING_REASON_CALL_FORWARDING_BUSY = 1,
1591 RIL_REDIRECTING_REASON_CALL_FORWARDING_NO_REPLY = 2,
1592 RIL_REDIRECTING_REASON_CALLED_DTE_OUT_OF_ORDER = 9,
1593 RIL_REDIRECTING_REASON_CALL_FORWARDING_BY_THE_CALLED_DTE = 10,
1594 RIL_REDIRECTING_REASON_CALL_FORWARDING_UNCONDITIONAL = 15,
1595 RIL_REDIRECTING_REASON_RESERVED
1596} RIL_CDMA_RedirectingReason;
1597
1598typedef struct {
1599 RIL_CDMA_NumberInfoRecord redirectingNumber;
1600 /* redirectingReason is set to RIL_REDIRECTING_REASON_UNKNOWN if not included */
1601 RIL_CDMA_RedirectingReason redirectingReason;
1602} RIL_CDMA_RedirectingNumberInfoRecord;
1603
1604/* Line Control Information Record as defined in C.S0005 section 3.7.5.15 */
1605typedef struct {
1606 char lineCtrlPolarityIncluded;
1607 char lineCtrlToggle;
1608 char lineCtrlReverse;
1609 char lineCtrlPowerDenial;
1610} RIL_CDMA_LineControlInfoRecord;
1611
1612/* T53 CLIR Information Record */
1613typedef struct {
1614 char cause;
1615} RIL_CDMA_T53_CLIRInfoRecord;
1616
1617/* T53 Audio Control Information Record */
1618typedef struct {
1619 char upLink;
1620 char downLink;
1621} RIL_CDMA_T53_AudioControlInfoRecord;
1622
1623typedef struct {
1624
1625 RIL_CDMA_InfoRecName name;
1626
1627 union {
1628 /* Display and Extended Display Info Rec */
1629 RIL_CDMA_DisplayInfoRecord display;
1630
1631 /* Called Party Number, Calling Party Number, Connected Number Info Rec */
1632 RIL_CDMA_NumberInfoRecord number;
1633
1634 /* Signal Info Rec */
1635 RIL_CDMA_SignalInfoRecord signal;
1636
1637 /* Redirecting Number Info Rec */
1638 RIL_CDMA_RedirectingNumberInfoRecord redir;
1639
1640 /* Line Control Info Rec */
1641 RIL_CDMA_LineControlInfoRecord lineCtrl;
1642
1643 /* T53 CLIR Info Rec */
1644 RIL_CDMA_T53_CLIRInfoRecord clir;
1645
1646 /* T53 Audio Control Info Rec */
1647 RIL_CDMA_T53_AudioControlInfoRecord audioCtrl;
1648 } rec;
1649} RIL_CDMA_InformationRecord;
1650
1651#define RIL_CDMA_MAX_NUMBER_OF_INFO_RECS 10
1652
1653typedef struct {
1654 char numberOfInfoRecs;
1655 RIL_CDMA_InformationRecord infoRec[RIL_CDMA_MAX_NUMBER_OF_INFO_RECS];
1656} RIL_CDMA_InformationRecords;
1657
Jake Hamby8a4a2332014-01-15 13:12:05 -08001658/* See RIL_REQUEST_NV_READ_ITEM */
1659typedef struct {
1660 RIL_NV_Item itemID;
1661} RIL_NV_ReadItem;
1662
1663/* See RIL_REQUEST_NV_WRITE_ITEM */
1664typedef struct {
1665 RIL_NV_Item itemID;
1666 char * value;
1667} RIL_NV_WriteItem;
1668
Etan Cohend3652192014-06-20 08:28:44 -07001669typedef enum {
1670 HANDOVER_STARTED = 0,
1671 HANDOVER_COMPLETED = 1,
1672 HANDOVER_FAILED = 2,
1673 HANDOVER_CANCELED = 3
1674} RIL_SrvccState;
1675
1676/* hardware configuration reported to RILJ. */
1677typedef enum {
1678 RIL_HARDWARE_CONFIG_MODEM = 0,
1679 RIL_HARDWARE_CONFIG_SIM = 1,
1680} RIL_HardwareConfig_Type;
1681
1682typedef enum {
1683 RIL_HARDWARE_CONFIG_STATE_ENABLED = 0,
1684 RIL_HARDWARE_CONFIG_STATE_STANDBY = 1,
1685 RIL_HARDWARE_CONFIG_STATE_DISABLED = 2,
1686} RIL_HardwareConfig_State;
1687
1688typedef struct {
1689 int rilModel;
1690 uint32_t rat; /* bitset - ref. RIL_RadioTechnology. */
1691 int maxVoice;
1692 int maxData;
1693 int maxStandby;
1694} RIL_HardwareConfig_Modem;
1695
1696typedef struct {
Wink Saville8b4e4f72014-10-17 15:01:45 -07001697 char modemUuid[MAX_UUID_LENGTH];
Etan Cohend3652192014-06-20 08:28:44 -07001698} RIL_HardwareConfig_Sim;
1699
1700typedef struct {
1701 RIL_HardwareConfig_Type type;
Wink Saville8b4e4f72014-10-17 15:01:45 -07001702 char uuid[MAX_UUID_LENGTH];
Etan Cohend3652192014-06-20 08:28:44 -07001703 RIL_HardwareConfig_State state;
1704 union {
1705 RIL_HardwareConfig_Modem modem;
1706 RIL_HardwareConfig_Sim sim;
1707 } cfg;
1708} RIL_HardwareConfig;
1709
Amit Mahajan54563d32014-11-22 00:54:49 +00001710typedef enum {
1711 SS_CFU,
1712 SS_CF_BUSY,
1713 SS_CF_NO_REPLY,
1714 SS_CF_NOT_REACHABLE,
1715 SS_CF_ALL,
1716 SS_CF_ALL_CONDITIONAL,
1717 SS_CLIP,
1718 SS_CLIR,
1719 SS_COLP,
1720 SS_COLR,
1721 SS_WAIT,
1722 SS_BAOC,
1723 SS_BAOIC,
1724 SS_BAOIC_EXC_HOME,
1725 SS_BAIC,
1726 SS_BAIC_ROAMING,
1727 SS_ALL_BARRING,
1728 SS_OUTGOING_BARRING,
1729 SS_INCOMING_BARRING
1730} RIL_SsServiceType;
1731
1732typedef enum {
1733 SS_ACTIVATION,
1734 SS_DEACTIVATION,
1735 SS_INTERROGATION,
1736 SS_REGISTRATION,
1737 SS_ERASURE
1738} RIL_SsRequestType;
1739
1740typedef enum {
1741 SS_ALL_TELE_AND_BEARER_SERVICES,
1742 SS_ALL_TELESEVICES,
1743 SS_TELEPHONY,
1744 SS_ALL_DATA_TELESERVICES,
1745 SS_SMS_SERVICES,
1746 SS_ALL_TELESERVICES_EXCEPT_SMS
1747} RIL_SsTeleserviceType;
1748
1749#define SS_INFO_MAX 4
1750#define NUM_SERVICE_CLASSES 7
1751
1752typedef struct {
1753 int numValidIndexes; /* This gives the number of valid values in cfInfo.
1754 For example if voice is forwarded to one number and data
1755 is forwarded to a different one then numValidIndexes will be
1756 2 indicating total number of valid values in cfInfo.
1757 Similarly if all the services are forwarded to the same
1758 number then the value of numValidIndexes will be 1. */
1759
1760 RIL_CallForwardInfo cfInfo[NUM_SERVICE_CLASSES]; /* This is the response data
1761 for SS request to query call
1762 forward status. see
1763 RIL_REQUEST_QUERY_CALL_FORWARD_STATUS */
1764} RIL_CfData;
1765
1766typedef struct {
1767 RIL_SsServiceType serviceType;
1768 RIL_SsRequestType requestType;
1769 RIL_SsTeleserviceType teleserviceType;
1770 int serviceClass;
1771 RIL_Errno result;
1772
1773 union {
1774 int ssInfo[SS_INFO_MAX]; /* This is the response data for most of the SS GET/SET
1775 RIL requests. E.g. RIL_REQUSET_GET_CLIR returns
1776 two ints, so first two values of ssInfo[] will be
1777 used for response if serviceType is SS_CLIR and
1778 requestType is SS_INTERROGATION */
1779
1780 RIL_CfData cfData;
1781 };
1782} RIL_StkCcUnsolSsResponse;
1783
Wink Saville7f856802009-06-09 10:23:37 -07001784/**
Wink Savillec29360a2014-07-13 05:17:28 -07001785 * Data connection power state
1786 */
1787typedef enum {
1788 RIL_DC_POWER_STATE_LOW = 1, // Low power state
1789 RIL_DC_POWER_STATE_MEDIUM = 2, // Medium power state
1790 RIL_DC_POWER_STATE_HIGH = 3, // High power state
1791 RIL_DC_POWER_STATE_UNKNOWN = INT32_MAX // Unknown state
1792} RIL_DcPowerStates;
1793
1794/**
1795 * Data connection real time info
1796 */
1797typedef struct {
1798 uint64_t time; // Time in nanos as returned by ril_nano_time
1799 RIL_DcPowerStates powerState; // Current power state
1800} RIL_DcRtInfo;
1801
Amit Mahajanc796e222014-08-13 16:54:01 +00001802/**
1803 * Data profile to modem
1804 */
1805typedef struct {
1806 /* id of the data profile */
1807 int profileId;
1808 /* the APN to connect to */
1809 char* apn;
1810 /** one of the PDP_type values in TS 27.007 section 10.1.1.
1811 * For example, "IP", "IPV6", "IPV4V6", or "PPP".
1812 */
1813 char* protocol;
1814 /** authentication protocol used for this PDP context
1815 * (None: 0, PAP: 1, CHAP: 2, PAP&CHAP: 3)
1816 */
1817 int authType;
1818 /* the username for APN, or NULL */
1819 char* user;
1820 /* the password for APN, or NULL */
1821 char* password;
1822 /* the profile type, TYPE_COMMON-0, TYPE_3GPP-1, TYPE_3GPP2-2 */
1823 int type;
1824 /* the period in seconds to limit the maximum connections */
1825 int maxConnsTime;
1826 /* the maximum connections during maxConnsTime */
1827 int maxConns;
1828 /** the required wait time in seconds after a successful UE initiated
1829 * disconnect of a given PDN connection before the device can send
1830 * a new PDN connection request for that given PDN
1831 */
1832 int waitTime;
1833 /* true to enable the profile, 0 to disable, 1 to enable */
1834 int enabled;
1835} RIL_DataProfileInfo;
Wink Savillec29360a2014-07-13 05:17:28 -07001836
Jack Yu06181bb2017-01-10 12:10:41 -08001837typedef struct {
1838 /* id of the data profile */
1839 int profileId;
1840 /* the APN to connect to */
1841 char* apn;
1842 /** one of the PDP_type values in TS 27.007 section 10.1.1.
1843 * For example, "IP", "IPV6", "IPV4V6", or "PPP".
1844 */
1845 char* protocol;
1846 /** one of the PDP_type values in TS 27.007 section 10.1.1 used on roaming network.
1847 * For example, "IP", "IPV6", "IPV4V6", or "PPP".
1848 */
1849 char *roamingProtocol;
1850 /** authentication protocol used for this PDP context
1851 * (None: 0, PAP: 1, CHAP: 2, PAP&CHAP: 3)
1852 */
1853 int authType;
1854 /* the username for APN, or NULL */
1855 char* user;
1856 /* the password for APN, or NULL */
1857 char* password;
1858 /* the profile type, TYPE_COMMON-0, TYPE_3GPP-1, TYPE_3GPP2-2 */
1859 int type;
1860 /* the period in seconds to limit the maximum connections */
1861 int maxConnsTime;
1862 /* the maximum connections during maxConnsTime */
1863 int maxConns;
1864 /** the required wait time in seconds after a successful UE initiated
1865 * disconnect of a given PDN connection before the device can send
1866 * a new PDN connection request for that given PDN
1867 */
1868 int waitTime;
1869 /* true to enable the profile, 0 to disable, 1 to enable */
1870 int enabled;
1871 /* supported APN types bitmask. See RIL_ApnTypes for the value of each bit. */
1872 int supportedTypesBitmask;
1873 /** the bearer bitmask. See RIL_RadioAccessFamily for the value of each bit. */
1874 int bearerBitmask;
1875 /** maximum transmission unit (MTU) size in bytes */
1876 int mtu;
1877 /** the MVNO type: possible values are "imsi", "gid", "spn" */
1878 char *mvnoType;
1879 /** MVNO match data. Can be anything defined by the carrier. For example,
1880 * SPN like: "A MOBILE", "BEN NL", etc...
1881 * IMSI like: "302720x94", "2060188", etc...
1882 * GID like: "4E", "33", etc...
1883 */
1884 char *mvnoMatchData;
1885} RIL_DataProfileInfo_v15;
1886
Sooraj Sasindran73f2ccb2015-04-08 17:23:07 -07001887/* Tx Power Levels */
Prerepa Viswanadham73157492015-05-28 00:37:32 -07001888#define RIL_NUM_TX_POWER_LEVELS 5
Sooraj Sasindran73f2ccb2015-04-08 17:23:07 -07001889
Nathan Haroldc8635212016-10-10 11:15:21 -07001890/**
1891 * Aggregate modem activity information
1892 */
Sooraj Sasindran73f2ccb2015-04-08 17:23:07 -07001893typedef struct {
1894
Nathan Haroldc8635212016-10-10 11:15:21 -07001895 /* total time (in ms) when modem is in a low power or
1896 * sleep state
1897 */
Sooraj Sasindran73f2ccb2015-04-08 17:23:07 -07001898 uint32_t sleep_mode_time_ms;
1899
Nathan Haroldc8635212016-10-10 11:15:21 -07001900 /* total time (in ms) when modem is awake but neither
1901 * the transmitter nor receiver are active/awake */
Sooraj Sasindran73f2ccb2015-04-08 17:23:07 -07001902 uint32_t idle_mode_time_ms;
1903
Nathan Haroldc8635212016-10-10 11:15:21 -07001904 /* total time (in ms) during which the transmitter is active/awake,
1905 * subdivided by manufacturer-defined device-specific
1906 * contiguous increasing ranges of transmit power between
1907 * 0 and the transmitter's maximum transmit power.
1908 */
Prerepa Viswanadham73157492015-05-28 00:37:32 -07001909 uint32_t tx_mode_time_ms[RIL_NUM_TX_POWER_LEVELS];
Sooraj Sasindran73f2ccb2015-04-08 17:23:07 -07001910
Nathan Haroldc8635212016-10-10 11:15:21 -07001911 /* total time (in ms) for which receiver is active/awake and
1912 * the transmitter is inactive */
Sooraj Sasindran73f2ccb2015-04-08 17:23:07 -07001913 uint32_t rx_mode_time_ms;
1914} RIL_ActivityStatsInfo;
1915
Jack Yu06181bb2017-01-10 12:10:41 -08001916typedef enum {
1917 RIL_APN_TYPE_UNKNOWN = 0x0, // Unknown
1918 RIL_APN_TYPE_DEFAULT = 0x1, // APN type for default data traffic
1919 RIL_APN_TYPE_MMS = 0x2, // APN type for MMS traffic
1920 RIL_APN_TYPE_SUPL = 0x4, // APN type for SUPL assisted GPS
1921 RIL_APN_TYPE_DUN = 0x8, // APN type for DUN traffic
1922 RIL_APN_TYPE_HIPRI = 0x10, // APN type for HiPri traffic
1923 RIL_APN_TYPE_FOTA = 0x20, // APN type for FOTA
1924 RIL_APN_TYPE_IMS = 0x40, // APN type for IMS
1925 RIL_APN_TYPE_CBS = 0x80, // APN type for CBS
1926 RIL_APN_TYPE_IA = 0x100, // APN type for IA Initial Attach APN
1927 RIL_APN_TYPE_EMERGENCY = 0x200, // APN type for Emergency PDN. This is not an IA apn,
1928 // but is used for access to carrier services in an
1929 // emergency call situation.
1930 RIL_APN_TYPE_ALL = 0xFFFFFFFF // All APN types
1931} RIL_ApnTypes;
1932
1933typedef enum {
1934 RIL_DST_POWER_SAVE_MODE, // Device power save mode (provided by PowerManager)
1935 // Non-zero value indicates the device is in power save mode.
1936 RIL_DST_CHARGING_STATE, // Device charging state (provided by BatteryManager)
1937 // Non-zero value indicates the device is charging.
1938 RIL_DST_LOW_DATA_EXPECTED // Low data expected mode. Non-zero value indicates low data
1939 // traffic is expected, for example, when the device is idle
1940 // (e.g. not doing tethering in the background). Note
1941 // this doesn't mean no data is expected.
1942} RIL_DeviceStateType;
1943
1944typedef enum {
1945 RIL_UR_SIGNAL_STRENGTH = 0x01, // When this bit is set, modem should always send the
1946 // signal strength update through
1947 // RIL_UNSOL_SIGNAL_STRENGTH, otherwise suppress it.
1948 RIL_UR_FULL_NETWORK_STATE = 0x02, // When this bit is set, modem should always send
1949 // RIL_UNSOL_RESPONSE_VOICE_NETWORK_STATE_CHANGED
1950 // when any field in
1951 // RIL_REQUEST_VOICE_REGISTRATION_STATE or
1952 // RIL_REQUEST_DATA_REGISTRATION_STATE changes. When
1953 // this bit is not set, modem should suppress
1954 // RIL_UNSOL_RESPONSE_VOICE_NETWORK_STATE_CHANGED
1955 // only when insignificant fields change
1956 // (e.g. cell info).
1957 // Modem should continue sending
1958 // RIL_UNSOL_RESPONSE_VOICE_NETWORK_STATE_CHANGED
1959 // when significant fields are updated even when this
1960 // bit is not set. The following fields are
1961 // considered significant, registration state and
1962 // radio technology.
1963 RIL_UR_DATA_CALL_DORMANCY_CHANGED = 0x04 // When this bit is set, modem should send the data
1964 // call list changed unsolicited response
1965 // RIL_UNSOL_DATA_CALL_LIST_CHANGED whenever any
1966 // field in RIL_Data_Call_Response changes.
1967 // Otherwise modem should suppress the unsolicited
1968 // response when the only changed field is 'active'
1969 // (for data dormancy). For all other fields change,
1970 // modem should continue sending
1971 // RIL_UNSOL_DATA_CALL_LIST_CHANGED regardless this
1972 // bit is set or not.
1973} RIL_UnsolicitedResponseFilter;
1974
Wink Savillec29360a2014-07-13 05:17:28 -07001975/**
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08001976 * RIL_REQUEST_GET_SIM_STATUS
1977 *
1978 * Requests status of the SIM interface and the SIM card
Wink Saville7f856802009-06-09 10:23:37 -07001979 *
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08001980 * "data" is NULL
1981 *
Wink Savillefd729372011-02-22 16:19:39 -08001982 * "response" is const RIL_CardStatus_v6 *
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08001983 *
1984 * Valid errors:
1985 * Must never fail
1986 */
1987#define RIL_REQUEST_GET_SIM_STATUS 1
1988
1989/**
1990 * RIL_REQUEST_ENTER_SIM_PIN
1991 *
John Wang309ac292009-07-30 14:53:23 -07001992 * Supplies SIM PIN. Only called if RIL_CardStatus has RIL_APPSTATE_PIN state
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08001993 *
1994 * "data" is const char **
1995 * ((const char **)data)[0] is PIN value
Wink Savillec0114b32011-02-18 10:14:07 -08001996 * ((const char **)data)[1] is AID value, See ETSI 102.221 8.1 and 101.220 4, NULL if no value.
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08001997 *
jsh593c9102009-06-24 16:13:44 -07001998 * "response" is int *
1999 * ((int *)response)[0] is the number of retries remaining, or -1 if unknown
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002000 *
2001 * Valid errors:
Wink Saville7f856802009-06-09 10:23:37 -07002002 *
2003 * SUCCESS
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002004 * RADIO_NOT_AVAILABLE (radio resetting)
2005 * GENERIC_FAILURE
2006 * PASSWORD_INCORRECT
2007 */
2008
2009#define RIL_REQUEST_ENTER_SIM_PIN 2
2010
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002011/**
2012 * RIL_REQUEST_ENTER_SIM_PUK
2013 *
Wink Saville7f856802009-06-09 10:23:37 -07002014 * Supplies SIM PUK and new PIN.
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002015 *
2016 * "data" is const char **
2017 * ((const char **)data)[0] is PUK value
2018 * ((const char **)data)[1] is new PIN value
Wink Savillec0114b32011-02-18 10:14:07 -08002019 * ((const char **)data)[2] is AID value, See ETSI 102.221 8.1 and 101.220 4, NULL if no value.
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002020 *
jsh593c9102009-06-24 16:13:44 -07002021 * "response" is int *
2022 * ((int *)response)[0] is the number of retries remaining, or -1 if unknown
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002023 *
2024 * Valid errors:
Wink Saville7f856802009-06-09 10:23:37 -07002025 *
2026 * SUCCESS
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002027 * RADIO_NOT_AVAILABLE (radio resetting)
2028 * GENERIC_FAILURE
2029 * PASSWORD_INCORRECT
2030 * (PUK is invalid)
2031 */
2032
2033#define RIL_REQUEST_ENTER_SIM_PUK 3
2034
2035/**
2036 * RIL_REQUEST_ENTER_SIM_PIN2
2037 *
2038 * Supplies SIM PIN2. Only called following operation where SIM_PIN2 was
2039 * returned as a a failure from a previous operation.
2040 *
2041 * "data" is const char **
2042 * ((const char **)data)[0] is PIN2 value
Wink Savillec0114b32011-02-18 10:14:07 -08002043 * ((const char **)data)[1] is AID value, See ETSI 102.221 8.1 and 101.220 4, NULL if no value.
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002044 *
jsh593c9102009-06-24 16:13:44 -07002045 * "response" is int *
2046 * ((int *)response)[0] is the number of retries remaining, or -1 if unknown
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002047 *
2048 * Valid errors:
Wink Saville7f856802009-06-09 10:23:37 -07002049 *
2050 * SUCCESS
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002051 * RADIO_NOT_AVAILABLE (radio resetting)
2052 * GENERIC_FAILURE
2053 * PASSWORD_INCORRECT
2054 */
2055
2056#define RIL_REQUEST_ENTER_SIM_PIN2 4
2057
2058/**
2059 * RIL_REQUEST_ENTER_SIM_PUK2
2060 *
Wink Saville7f856802009-06-09 10:23:37 -07002061 * Supplies SIM PUK2 and new PIN2.
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002062 *
2063 * "data" is const char **
2064 * ((const char **)data)[0] is PUK2 value
2065 * ((const char **)data)[1] is new PIN2 value
Wink Savillec0114b32011-02-18 10:14:07 -08002066 * ((const char **)data)[2] is AID value, See ETSI 102.221 8.1 and 101.220 4, NULL if no value.
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002067 *
jsh593c9102009-06-24 16:13:44 -07002068 * "response" is int *
2069 * ((int *)response)[0] is the number of retries remaining, or -1 if unknown
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002070 *
2071 * Valid errors:
Wink Saville7f856802009-06-09 10:23:37 -07002072 *
2073 * SUCCESS
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002074 * RADIO_NOT_AVAILABLE (radio resetting)
2075 * GENERIC_FAILURE
2076 * PASSWORD_INCORRECT
2077 * (PUK2 is invalid)
2078 */
2079
2080#define RIL_REQUEST_ENTER_SIM_PUK2 5
2081
2082/**
2083 * RIL_REQUEST_CHANGE_SIM_PIN
2084 *
Wink Saville7f856802009-06-09 10:23:37 -07002085 * Supplies old SIM PIN and new PIN.
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002086 *
2087 * "data" is const char **
2088 * ((const char **)data)[0] is old PIN value
2089 * ((const char **)data)[1] is new PIN value
Wink Savillec0114b32011-02-18 10:14:07 -08002090 * ((const char **)data)[2] is AID value, See ETSI 102.221 8.1 and 101.220 4, NULL if no value.
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002091 *
jsh593c9102009-06-24 16:13:44 -07002092 * "response" is int *
2093 * ((int *)response)[0] is the number of retries remaining, or -1 if unknown
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002094 *
2095 * Valid errors:
Wink Saville7f856802009-06-09 10:23:37 -07002096 *
2097 * SUCCESS
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002098 * RADIO_NOT_AVAILABLE (radio resetting)
2099 * GENERIC_FAILURE
2100 * PASSWORD_INCORRECT
2101 * (old PIN is invalid)
Wink Saville7f856802009-06-09 10:23:37 -07002102 *
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002103 */
2104
2105#define RIL_REQUEST_CHANGE_SIM_PIN 6
2106
2107
2108/**
2109 * RIL_REQUEST_CHANGE_SIM_PIN2
2110 *
Wink Saville7f856802009-06-09 10:23:37 -07002111 * Supplies old SIM PIN2 and new PIN2.
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002112 *
2113 * "data" is const char **
2114 * ((const char **)data)[0] is old PIN2 value
2115 * ((const char **)data)[1] is new PIN2 value
Wink Savillec0114b32011-02-18 10:14:07 -08002116 * ((const char **)data)[2] is AID value, See ETSI 102.221 8.1 and 101.220 4, NULL if no value.
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002117 *
jsh593c9102009-06-24 16:13:44 -07002118 * "response" is int *
2119 * ((int *)response)[0] is the number of retries remaining, or -1 if unknown
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002120 *
2121 * Valid errors:
Wink Saville7f856802009-06-09 10:23:37 -07002122 *
2123 * SUCCESS
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002124 * RADIO_NOT_AVAILABLE (radio resetting)
2125 * GENERIC_FAILURE
2126 * PASSWORD_INCORRECT
2127 * (old PIN2 is invalid)
Wink Saville7f856802009-06-09 10:23:37 -07002128 *
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002129 */
2130
2131#define RIL_REQUEST_CHANGE_SIM_PIN2 7
2132
2133/**
2134 * RIL_REQUEST_ENTER_NETWORK_DEPERSONALIZATION
2135 *
2136 * Requests that network personlization be deactivated
2137 *
2138 * "data" is const char **
2139 * ((const char **)(data))[0]] is network depersonlization code
2140 *
jsh593c9102009-06-24 16:13:44 -07002141 * "response" is int *
2142 * ((int *)response)[0] is the number of retries remaining, or -1 if unknown
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002143 *
2144 * Valid errors:
Wink Saville7f856802009-06-09 10:23:37 -07002145 *
2146 * SUCCESS
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002147 * RADIO_NOT_AVAILABLE (radio resetting)
2148 * GENERIC_FAILURE
2149 * PASSWORD_INCORRECT
2150 * (code is invalid)
2151 */
2152
2153#define RIL_REQUEST_ENTER_NETWORK_DEPERSONALIZATION 8
2154
2155/**
Wink Saville7f856802009-06-09 10:23:37 -07002156 * RIL_REQUEST_GET_CURRENT_CALLS
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002157 *
2158 * Requests current call list
2159 *
2160 * "data" is NULL
2161 *
2162 * "response" must be a "const RIL_Call **"
Wink Saville7f856802009-06-09 10:23:37 -07002163 *
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002164 * Valid errors:
Wink Saville7f856802009-06-09 10:23:37 -07002165 *
2166 * SUCCESS
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002167 * RADIO_NOT_AVAILABLE (radio resetting)
Ajay Nambi10345892016-03-19 09:02:28 -07002168 * NO_MEMORY
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002169 * GENERIC_FAILURE
2170 * (request will be made again in a few hundred msec)
2171 */
2172
2173#define RIL_REQUEST_GET_CURRENT_CALLS 9
2174
2175
Wink Saville7f856802009-06-09 10:23:37 -07002176/**
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002177 * RIL_REQUEST_DIAL
2178 *
2179 * Initiate voice call
2180 *
2181 * "data" is const RIL_Dial *
2182 * "response" is NULL
Wink Saville7f856802009-06-09 10:23:37 -07002183 *
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002184 * This method is never used for supplementary service codes
2185 *
2186 * Valid errors:
Wink Saville7f856802009-06-09 10:23:37 -07002187 * SUCCESS
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002188 * RADIO_NOT_AVAILABLE (radio resetting)
Amit Mahajan54563d32014-11-22 00:54:49 +00002189 * DIAL_MODIFIED_TO_USSD
2190 * DIAL_MODIFIED_TO_SS
2191 * DIAL_MODIFIED_TO_DIAL
Ajay Nambi10345892016-03-19 09:02:28 -07002192 * INVALID_ARGUMENTS
2193 * NO_MEMORY
2194 * INVALID_STATE
2195 * NO_RESOURCES
2196 * INTERNAL_ERR
2197 * FDN_CHECK_FAILURE
2198 * MODEM_ERR
2199 * NO_SUBSCRIPTION
2200 * NO_NETWORK_FOUND
2201 * INVALID_CALL_ID
2202 * DEVICE_IN_USE
2203 * MODE_NOT_SUPPORTED
2204 * ABORTED
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002205 * GENERIC_FAILURE
2206 */
2207#define RIL_REQUEST_DIAL 10
2208
2209/**
2210 * RIL_REQUEST_GET_IMSI
2211 *
2212 * Get the SIM IMSI
2213 *
Naveen Kalla2bc78d62011-12-07 16:22:53 -08002214 * Only valid when radio state is "RADIO_STATE_ON"
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002215 *
Wink Savillec0114b32011-02-18 10:14:07 -08002216 * "data" is const char **
2217 * ((const char **)data)[0] is AID value, See ETSI 102.221 8.1 and 101.220 4, NULL if no value.
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002218 * "response" is a const char * containing the IMSI
2219 *
2220 * Valid errors:
Wink Saville7f856802009-06-09 10:23:37 -07002221 * SUCCESS
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002222 * RADIO_NOT_AVAILABLE (radio resetting)
2223 * GENERIC_FAILURE
2224 */
2225
2226#define RIL_REQUEST_GET_IMSI 11
2227
2228/**
2229 * RIL_REQUEST_HANGUP
2230 *
2231 * Hang up a specific line (like AT+CHLD=1x)
2232 *
John Wang06bae4b2010-11-18 16:37:09 -08002233 * After this HANGUP request returns, RIL should show the connection is NOT
2234 * active anymore in next RIL_REQUEST_GET_CURRENT_CALLS query.
2235 *
Wink Saville7f856802009-06-09 10:23:37 -07002236 * "data" is an int *
Wink Savillef4c4d362009-04-02 01:37:03 -07002237 * (int *)data)[0] contains Connection index (value of 'x' in CHLD above)
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002238 *
2239 * "response" is NULL
2240 *
2241 * Valid errors:
Wink Saville7f856802009-06-09 10:23:37 -07002242 * SUCCESS
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002243 * RADIO_NOT_AVAILABLE (radio resetting)
Ajay Nambi10345892016-03-19 09:02:28 -07002244 * INVALID_ARGUMENTS
2245 * NO_MEMORY
2246 * INVALID_STATE
2247 * MODEM_ERR
2248 * INTERNAL_ERR
2249 * NO_MEMORY
2250 * INVALID_CALL_ID
2251 * INVALID_ARGUMENTS
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002252 * GENERIC_FAILURE
2253 */
2254
2255#define RIL_REQUEST_HANGUP 12
2256
2257/**
2258 * RIL_REQUEST_HANGUP_WAITING_OR_BACKGROUND
2259 *
2260 * Hang up waiting or held (like AT+CHLD=0)
2261 *
John Wang06bae4b2010-11-18 16:37:09 -08002262 * After this HANGUP request returns, RIL should show the connection is NOT
2263 * active anymore in next RIL_REQUEST_GET_CURRENT_CALLS query.
2264 *
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002265 * "data" is NULL
2266 * "response" is NULL
2267 *
2268 * Valid errors:
Wink Saville7f856802009-06-09 10:23:37 -07002269 * SUCCESS
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002270 * RADIO_NOT_AVAILABLE (radio resetting)
Ajay Nambi10345892016-03-19 09:02:28 -07002271 * INVALID_STATE
2272 * NO_MEMORY
2273 * MODEM_ERR
2274 * INTERNAL_ERR
2275 * NO_MEMORY
2276 * INVALID_CALL_ID
2277 * NO_RESOURCES
2278 * OPERATION_NOT_ALLOWED
2279 * INVALID_ARGUMENTS
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002280 * GENERIC_FAILURE
2281 */
2282
2283#define RIL_REQUEST_HANGUP_WAITING_OR_BACKGROUND 13
2284
2285/**
2286 * RIL_REQUEST_HANGUP_FOREGROUND_RESUME_BACKGROUND
2287 *
2288 * Hang up waiting or held (like AT+CHLD=1)
2289 *
John Wang06bae4b2010-11-18 16:37:09 -08002290 * After this HANGUP request returns, RIL should show the connection is NOT
2291 * active anymore in next RIL_REQUEST_GET_CURRENT_CALLS query.
2292 *
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002293 * "data" is NULL
2294 * "response" is NULL
2295 *
2296 * Valid errors:
Wink Saville7f856802009-06-09 10:23:37 -07002297 * SUCCESS
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002298 * RADIO_NOT_AVAILABLE (radio resetting)
Ajay Nambi10345892016-03-19 09:02:28 -07002299 * INVALID_STATE
2300 * NO_MEMORY
2301 * MODEM_ERR
2302 * INTERNAL_ERR
2303 * INVALID_CALL_ID
2304 * OPERATION_NOT_ALLOWED
2305 * INVALID_ARGUMENTS
2306 * NO_RESOURCES
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002307 * GENERIC_FAILURE
2308 */
2309
2310#define RIL_REQUEST_HANGUP_FOREGROUND_RESUME_BACKGROUND 14
2311
2312/**
2313 * RIL_REQUEST_SWITCH_WAITING_OR_HOLDING_AND_ACTIVE
2314 *
2315 * Switch waiting or holding call and active call (like AT+CHLD=2)
2316 *
2317 * State transitions should be is follows:
2318 *
2319 * If call 1 is waiting and call 2 is active, then if this re
2320 *
2321 * BEFORE AFTER
2322 * Call 1 Call 2 Call 1 Call 2
2323 * ACTIVE HOLDING HOLDING ACTIVE
2324 * ACTIVE WAITING HOLDING ACTIVE
2325 * HOLDING WAITING HOLDING ACTIVE
2326 * ACTIVE IDLE HOLDING IDLE
2327 * IDLE IDLE IDLE IDLE
2328 *
2329 * "data" is NULL
2330 * "response" is NULL
2331 *
2332 * Valid errors:
Wink Saville7f856802009-06-09 10:23:37 -07002333 * SUCCESS
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002334 * RADIO_NOT_AVAILABLE (radio resetting)
Ajay Nambi10345892016-03-19 09:02:28 -07002335 * INVALID_STATE
2336 * NO_MEMORY
2337 * MODEM_ERR
2338 * INTERNAL_ERR
2339 * INVALID_STATE
2340 * INVALID_ARGUMENTS
2341 * INVALID_CALL_ID
2342 * OPERATION_NOT_ALLOWED
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002343 * GENERIC_FAILURE
2344 */
2345
2346#define RIL_REQUEST_SWITCH_WAITING_OR_HOLDING_AND_ACTIVE 15
2347#define RIL_REQUEST_SWITCH_HOLDING_AND_ACTIVE 15
2348
2349/**
2350 * RIL_REQUEST_CONFERENCE
2351 *
2352 * Conference holding and active (like AT+CHLD=3)
2353
2354 * "data" is NULL
2355 * "response" is NULL
2356 *
2357 * Valid errors:
Wink Saville7f856802009-06-09 10:23:37 -07002358 * SUCCESS
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002359 * RADIO_NOT_AVAILABLE (radio resetting)
Ajay Nambi10345892016-03-19 09:02:28 -07002360 * NO_MEMORY
2361 * MODEM_ERR
2362 * INTERNAL_ERR
2363 * INVALID_STATE
2364 * INVALID_CALL_ID
2365 * INVALID_ARGUMENTS
2366 * OPERATION_NOT_ALLOWED
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002367 * GENERIC_FAILURE
2368 */
2369#define RIL_REQUEST_CONFERENCE 16
2370
2371/**
2372 * RIL_REQUEST_UDUB
2373 *
Wink Saville7f856802009-06-09 10:23:37 -07002374 * Send UDUB (user determined used busy) to ringing or
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002375 * waiting call answer)(RIL_BasicRequest r);
2376 *
2377 * "data" is NULL
2378 * "response" is NULL
2379 *
2380 * Valid errors:
Wink Saville7f856802009-06-09 10:23:37 -07002381 * SUCCESS
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002382 * RADIO_NOT_AVAILABLE (radio resetting)
Ajay Nambi10345892016-03-19 09:02:28 -07002383 * INVALID_STATE
2384 * NO_RESOURCES
2385 * NO_MEMORY
2386 * MODEM_ERR
2387 * INTERNAL_ERR
2388 * INVALID_CALL_ID
2389 * OPERATION_NOT_ALLOWED
2390 * INVALID_ARGUMENTS
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002391 * GENERIC_FAILURE
2392 */
2393#define RIL_REQUEST_UDUB 17
2394
2395/**
2396 * RIL_REQUEST_LAST_CALL_FAIL_CAUSE
2397 *
2398 * Requests the failure cause code for the most recently terminated call
2399 *
2400 * "data" is NULL
2401 * "response" is a "int *"
Wink Saville1b5fd232009-04-22 14:50:00 -07002402 * ((int *)response)[0] is RIL_LastCallFailCause. GSM failure reasons are
Naveen Kalla03c1edf2009-09-23 11:18:35 -07002403 * mapped to cause codes defined in TS 24.008 Annex H where possible. CDMA
2404 * failure reasons are derived from the possible call failure scenarios
2405 * described in the "CDMA IS-2000 Release A (C.S0005-A v6.0)" standard.
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002406 *
The Android Open Source Project34a51082009-03-05 14:34:37 -08002407 * The implementation should return CALL_FAIL_ERROR_UNSPECIFIED for blocked
2408 * MO calls by restricted state (See RIL_UNSOL_RESTRICTED_STATE_CHANGED)
2409 *
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002410 * If the implementation does not have access to the exact cause codes,
2411 * then it should return one of the values listed in RIL_LastCallFailCause,
2412 * as the UI layer needs to distinguish these cases for tone generation or
2413 * error notification.
2414 *
2415 * Valid errors:
2416 * SUCCESS
2417 * RADIO_NOT_AVAILABLE
Ajay Nambi10345892016-03-19 09:02:28 -07002418 * NO_MEMORY
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002419 * GENERIC_FAILURE
2420 *
Wink Savillef4c4d362009-04-02 01:37:03 -07002421 * See also: RIL_REQUEST_LAST_DATA_CALL_FAIL_CAUSE
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002422 */
2423#define RIL_REQUEST_LAST_CALL_FAIL_CAUSE 18
2424
2425/**
2426 * RIL_REQUEST_SIGNAL_STRENGTH
2427 *
Wink Saville1b5fd232009-04-22 14:50:00 -07002428 * Requests current signal strength and associated information
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002429 *
2430 * Must succeed if radio is on.
2431 *
2432 * "data" is NULL
Wink Saville1b5fd232009-04-22 14:50:00 -07002433 *
2434 * "response" is a const RIL_SignalStrength *
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002435 *
2436 * Valid errors:
2437 * SUCCESS
2438 * RADIO_NOT_AVAILABLE
2439 */
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002440#define RIL_REQUEST_SIGNAL_STRENGTH 19
Wink Saville3d54e742009-05-18 18:00:44 -07002441
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002442/**
Wink Savillec0114b32011-02-18 10:14:07 -08002443 * RIL_REQUEST_VOICE_REGISTRATION_STATE
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002444 *
2445 * Request current registration state
2446 *
2447 * "data" is NULL
Sooraj Sasindrand8db60c2016-11-30 18:36:03 -08002448 * "response" is a const RIL_VoiceRegistrationStateResponse *
Wink Saville1b5fd232009-04-22 14:50:00 -07002449 *
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002450 * Valid errors:
2451 * SUCCESS
2452 * RADIO_NOT_AVAILABLE
2453 * GENERIC_FAILURE
2454 */
Wink Savillec0114b32011-02-18 10:14:07 -08002455#define RIL_REQUEST_VOICE_REGISTRATION_STATE 20
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002456
2457/**
Wink Savillec0114b32011-02-18 10:14:07 -08002458 * RIL_REQUEST_DATA_REGISTRATION_STATE
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002459 *
Wink Savillec0114b32011-02-18 10:14:07 -08002460 * Request current DATA registration state
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002461 *
2462 * "data" is NULL
Sooraj Sasindrand8db60c2016-11-30 18:36:03 -08002463 * "response" is a const RIL_DataRegistrationStateResponse *
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002464 *
2465 * Valid errors:
2466 * SUCCESS
2467 * RADIO_NOT_AVAILABLE
2468 * GENERIC_FAILURE
2469 */
Wink Savillec0114b32011-02-18 10:14:07 -08002470#define RIL_REQUEST_DATA_REGISTRATION_STATE 21
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002471
2472/**
2473 * RIL_REQUEST_OPERATOR
2474 *
2475 * Request current operator ONS or EONS
2476 *
2477 * "data" is NULL
2478 * "response" is a "const char **"
Wink Saville7f856802009-06-09 10:23:37 -07002479 * ((const char **)response)[0] is long alpha ONS or EONS
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002480 * or NULL if unregistered
2481 *
Wink Saville7f856802009-06-09 10:23:37 -07002482 * ((const char **)response)[1] is short alpha ONS or EONS
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002483 * or NULL if unregistered
2484 * ((const char **)response)[2] is 5 or 6 digit numeric code (MCC + MNC)
2485 * or NULL if unregistered
Wink Saville7f856802009-06-09 10:23:37 -07002486 *
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002487 * Valid errors:
2488 * SUCCESS
2489 * RADIO_NOT_AVAILABLE
2490 * GENERIC_FAILURE
2491 */
2492#define RIL_REQUEST_OPERATOR 22
2493
2494/**
2495 * RIL_REQUEST_RADIO_POWER
2496 *
2497 * Toggle radio on and off (for "airplane" mode)
Wink Saville29487ef2011-04-15 09:15:31 -07002498 * If the radio is is turned off/on the radio modem subsystem
2499 * is expected return to an initialized state. For instance,
2500 * any voice and data calls will be terminated and all associated
2501 * lists emptied.
2502 *
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002503 * "data" is int *
2504 * ((int *)data)[0] is > 0 for "Radio On"
2505 * ((int *)data)[0] is == 0 for "Radio Off"
2506 *
2507 * "response" is NULL
2508 *
2509 * Turn radio on if "on" > 0
2510 * Turn radio off if "on" == 0
2511 *
2512 * Valid errors:
2513 * SUCCESS
2514 * RADIO_NOT_AVAILABLE
twen.changdf7add02016-03-04 18:27:48 +08002515 * OPERATION_NOT_ALLOWED
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002516 * GENERIC_FAILURE
2517 */
2518#define RIL_REQUEST_RADIO_POWER 23
2519
2520/**
2521 * RIL_REQUEST_DTMF
2522 *
2523 * Send a DTMF tone
2524 *
2525 * If the implementation is currently playing a tone requested via
2526 * RIL_REQUEST_DTMF_START, that tone should be cancelled and the new tone
2527 * should be played instead
2528 *
jsh602f80f2009-07-10 15:44:37 -07002529 * "data" is a char * containing a single character with one of 12 values: 0-9,*,#
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002530 * "response" is NULL
Wink Saville7f856802009-06-09 10:23:37 -07002531 *
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002532 * FIXME should this block/mute microphone?
2533 * How does this interact with local DTMF feedback?
2534 *
2535 * Valid errors:
2536 * SUCCESS
2537 * RADIO_NOT_AVAILABLE
Ajay Nambi10345892016-03-19 09:02:28 -07002538 * INVALID_ARGUMENTS
2539 * NO_RESOURCES
2540 * NO_MEMORY
2541 * MODEM_ERR
2542 * INTERNAL_ERR
2543 * INVALID_CALL_ID
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002544 * GENERIC_FAILURE
2545 *
2546 * See also: RIL_REQUEST_DTMF_STOP, RIL_REQUEST_DTMF_START
2547 *
2548 */
2549#define RIL_REQUEST_DTMF 24
2550
2551/**
2552 * RIL_REQUEST_SEND_SMS
Wink Saville7f856802009-06-09 10:23:37 -07002553 *
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002554 * Send an SMS message
2555 *
2556 * "data" is const char **
2557 * ((const char **)data)[0] is SMSC address in GSM BCD format prefixed
2558 * by a length byte (as expected by TS 27.005) or NULL for default SMSC
2559 * ((const char **)data)[1] is SMS in PDU format as an ASCII hex string
2560 * less the SMSC address
2561 * TP-Layer-Length is be "strlen(((const char **)data)[1])/2"
2562 *
2563 * "response" is a const RIL_SMS_Response *
2564 *
2565 * Based on the return error, caller decides to resend if sending sms
Wink Saville7f856802009-06-09 10:23:37 -07002566 * fails. SMS_SEND_FAIL_RETRY means retry (i.e. error cause is 332)
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002567 * and GENERIC_FAILURE means no retry (i.e. error cause is 500)
2568 *
2569 * Valid errors:
2570 * SUCCESS
2571 * RADIO_NOT_AVAILABLE
2572 * SMS_SEND_FAIL_RETRY
jsh602f80f2009-07-10 15:44:37 -07002573 * FDN_CHECK_FAILURE
twen.changdf7add02016-03-04 18:27:48 +08002574 * NETWORK_REJECT
Ajay Nambi68900f52016-03-11 12:02:55 -08002575 * INVALID_STATE
2576 * INVALID_ARGUMENTS
2577 * NO_MEMORY
2578 * REQUEST_RATE_LIMITED
2579 * INVALID_SMS_FORMAT
2580 * SYSTEM_ERR
2581 * ENCODING_ERR
2582 * INVALID_SMSC_ADDRESS
2583 * MODEM_ERR
2584 * NETWORK_ERR
2585 * MODE_NOT_SUPPORTED
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002586 * GENERIC_FAILURE
2587 *
2588 * FIXME how do we specify TP-Message-Reference if we need to resend?
2589 */
2590#define RIL_REQUEST_SEND_SMS 25
2591
2592
2593/**
2594 * RIL_REQUEST_SEND_SMS_EXPECT_MORE
Wink Saville7f856802009-06-09 10:23:37 -07002595 *
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002596 * Send an SMS message. Identical to RIL_REQUEST_SEND_SMS,
2597 * except that more messages are expected to be sent soon. If possible,
2598 * keep SMS relay protocol link open (eg TS 27.005 AT+CMMS command)
2599 *
2600 * "data" is const char **
2601 * ((const char **)data)[0] is SMSC address in GSM BCD format prefixed
2602 * by a length byte (as expected by TS 27.005) or NULL for default SMSC
2603 * ((const char **)data)[1] is SMS in PDU format as an ASCII hex string
2604 * less the SMSC address
2605 * TP-Layer-Length is be "strlen(((const char **)data)[1])/2"
2606 *
2607 * "response" is a const RIL_SMS_Response *
2608 *
2609 * Based on the return error, caller decides to resend if sending sms
Wink Saville7f856802009-06-09 10:23:37 -07002610 * fails. SMS_SEND_FAIL_RETRY means retry (i.e. error cause is 332)
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002611 * and GENERIC_FAILURE means no retry (i.e. error cause is 500)
2612 *
2613 * Valid errors:
2614 * SUCCESS
2615 * RADIO_NOT_AVAILABLE
2616 * SMS_SEND_FAIL_RETRY
twen.changdf7add02016-03-04 18:27:48 +08002617 * NETWORK_REJECT
Ajay Nambi68900f52016-03-11 12:02:55 -08002618 * INVALID_STATE
2619 * INVALID_ARGUMENTS
2620 * NO_MEMORY
2621 * INVALID_SMS_FORMAT
2622 * SYSTEM_ERR
2623 * REQUEST_RATE_LIMITED
2624 * FDN_CHECK_FAILURE
2625 * MODEM_ERR
2626 * NETWORK_ERR
2627 * ENCODING_ERR
2628 * INVALID_SMSC_ADDRESS
2629 * MODE_NOT_SUPPORTED
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002630 * GENERIC_FAILURE
2631 *
2632 */
2633#define RIL_REQUEST_SEND_SMS_EXPECT_MORE 26
2634
2635
2636/**
Wink Savillef4c4d362009-04-02 01:37:03 -07002637 * RIL_REQUEST_SETUP_DATA_CALL
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002638 *
Wink Saville29487ef2011-04-15 09:15:31 -07002639 * Setup a packet data connection. If RIL_Data_Call_Response_v6.status
2640 * return success it is added to the list of data calls and a
2641 * RIL_UNSOL_DATA_CALL_LIST_CHANGED is sent. The call remains in the
2642 * list until RIL_REQUEST_DEACTIVATE_DATA_CALL is issued or the
2643 * radio is powered off/on. This list is returned by RIL_REQUEST_DATA_CALL_LIST
2644 * and RIL_UNSOL_DATA_CALL_LIST_CHANGED.
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002645 *
Wink Saville43808972011-01-13 17:39:51 -08002646 * The RIL is expected to:
2647 * - Create one data call context.
2648 * - Create and configure a dedicated interface for the context
2649 * - The interface must be point to point.
2650 * - The interface is configured with one or more addresses and
2651 * is capable of sending and receiving packets. The prefix length
2652 * of the addresses must be /32 for IPv4 and /128 for IPv6.
2653 * - Must NOT change the linux routing table.
Wink Savillec0114b32011-02-18 10:14:07 -08002654 * - Support up to RIL_REQUEST_DATA_REGISTRATION_STATE response[5]
Wink Saville43808972011-01-13 17:39:51 -08002655 * number of simultaneous data call contexts.
2656 *
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002657 * "data" is a const char **
Wink Savillec0114b32011-02-18 10:14:07 -08002658 * ((const char **)data)[0] Radio technology to use: 0-CDMA, 1-GSM/UMTS, 2...
2659 * for values above 2 this is RIL_RadioTechnology + 2.
jsh602f80f2009-07-10 15:44:37 -07002660 * ((const char **)data)[1] is a RIL_DataProfile (support is optional)
Wink Saville7f856802009-06-09 10:23:37 -07002661 * ((const char **)data)[2] is the APN to connect to if radio technology is GSM/UMTS. This APN will
Wink Savillef4c4d362009-04-02 01:37:03 -07002662 * override the one in the profile. NULL indicates no APN overrride.
2663 * ((const char **)data)[3] is the username for APN, or NULL
2664 * ((const char **)data)[4] is the password for APN, or NULL
Jaikumar Ganesh920c78f2009-06-04 10:53:15 -07002665 * ((const char **)data)[5] is the PAP / CHAP auth type. Values:
2666 * 0 => PAP and CHAP is never performed.
2667 * 1 => PAP may be performed; CHAP is never performed.
2668 * 2 => CHAP may be performed; PAP is never performed.
2669 * 3 => PAP / CHAP may be performed - baseband dependent.
Jack Yu06181bb2017-01-10 12:10:41 -08002670 * ((const char **)data)[6] is the non-roaming/home connection type to request. Must be one of the
Wink Savillec0114b32011-02-18 10:14:07 -08002671 * PDP_type values in TS 27.007 section 10.1.1.
Lorenzo Colitti4f81dcf2010-09-01 19:38:57 -07002672 * For example, "IP", "IPV6", "IPV4V6", or "PPP".
Jack Yu06181bb2017-01-10 12:10:41 -08002673 * ((const char **)data)[7] is the roaming connection type to request. Must be one of the
2674 * PDP_type values in TS 27.007 section 10.1.1.
2675 * For example, "IP", "IPV6", "IPV4V6", or "PPP".
2676 * ((const char **)data)[8] is the bitmask of APN type in decimal string format. The
2677 * bitmask will encapsulate the following values:
2678 * ia,mms,agps,supl,hipri,fota,dun,ims,default.
2679 * ((const char **)data)[9] is the bearer bitmask in decimal string format. Each bit is a
2680 * RIL_RadioAccessFamily. "0" or NULL indicates all RATs.
2681 * ((const char **)data)[10] is the boolean in string format indicating the APN setting was
2682 * sent to the modem through RIL_REQUEST_SET_DATA_PROFILE earlier.
2683 * ((const char **)data)[11] is the mtu size in bytes of the mobile interface to which
2684 * the apn is connected.
2685 * ((const char **)data)[12] is the MVNO type:
2686 * possible values are "imsi", "gid", "spn".
2687 * ((const char **)data)[13] is MVNO match data in string. Can be anything defined by the carrier.
2688 * For example,
2689 * SPN like: "A MOBILE", "BEN NL", etc...
2690 * IMSI like: "302720x94", "2060188", etc...
2691 * GID like: "4E", "33", etc...
2692 * ((const char **)data)[14] is the boolean string indicating data roaming is allowed or not. "1"
2693 * indicates data roaming is enabled by the user, "0" indicates disabled.
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002694 *
Sukanya Rajkhowab44dda32014-06-02 14:03:44 -07002695 * "response" is a RIL_Data_Call_Response_v11
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002696 *
2697 * FIXME may need way to configure QoS settings
Wink Saville3d54e742009-05-18 18:00:44 -07002698 *
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002699 * Valid errors:
Wink Saville43808972011-01-13 17:39:51 -08002700 * SUCCESS should be returned on both success and failure of setup with
Wink Savillec0114b32011-02-18 10:14:07 -08002701 * the RIL_Data_Call_Response_v6.status containing the actual status.
2702 * For all other errors the RIL_Data_Call_Resonse_v6 is ignored.
Wink Saville43808972011-01-13 17:39:51 -08002703 *
2704 * Other errors could include:
2705 * RADIO_NOT_AVAILABLE, GENERIC_FAILURE, OP_NOT_ALLOWED_BEFORE_REG_TO_NW,
2706 * OP_NOT_ALLOWED_DURING_VOICE_CALL and REQUEST_NOT_SUPPORTED.
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002707 *
Wink Savillef4c4d362009-04-02 01:37:03 -07002708 * See also: RIL_REQUEST_DEACTIVATE_DATA_CALL
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002709 */
Wink Savillef4c4d362009-04-02 01:37:03 -07002710#define RIL_REQUEST_SETUP_DATA_CALL 27
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002711
2712
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002713/**
2714 * RIL_REQUEST_SIM_IO
2715 *
2716 * Request SIM I/O operation.
2717 * This is similar to the TS 27.007 "restricted SIM" operation
2718 * where it assumes all of the EF selection will be done by the
2719 * callee.
2720 *
Wink Savillefd729372011-02-22 16:19:39 -08002721 * "data" is a const RIL_SIM_IO_v6 *
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002722 * Please note that RIL_SIM_IO has a "PIN2" field which may be NULL,
2723 * or may specify a PIN2 for operations that require a PIN2 (eg
2724 * updating FDN records)
2725 *
2726 * "response" is a const RIL_SIM_IO_Response *
2727 *
2728 * Arguments and responses that are unused for certain
2729 * values of "command" should be ignored or set to NULL
2730 *
2731 * Valid errors:
2732 * SUCCESS
2733 * RADIO_NOT_AVAILABLE
2734 * GENERIC_FAILURE
2735 * SIM_PIN2
2736 * SIM_PUK2
2737 */
2738#define RIL_REQUEST_SIM_IO 28
2739
2740/**
2741 * RIL_REQUEST_SEND_USSD
2742 *
2743 * Send a USSD message
2744 *
2745 * If a USSD session already exists, the message should be sent in the
2746 * context of that session. Otherwise, a new session should be created.
2747 *
2748 * The network reply should be reported via RIL_UNSOL_ON_USSD
2749 *
2750 * Only one USSD session may exist at a time, and the session is assumed
2751 * to exist until:
2752 * a) The android system invokes RIL_REQUEST_CANCEL_USSD
2753 * b) The implementation sends a RIL_UNSOL_ON_USSD with a type code
2754 * of "0" (USSD-Notify/no further action) or "2" (session terminated)
2755 *
2756 * "data" is a const char * containing the USSD request in UTF-8 format
2757 * "response" is NULL
2758 *
2759 * Valid errors:
2760 * SUCCESS
2761 * RADIO_NOT_AVAILABLE
jsh602f80f2009-07-10 15:44:37 -07002762 * FDN_CHECK_FAILURE
Amit Mahajan54563d32014-11-22 00:54:49 +00002763 * USSD_MODIFIED_TO_DIAL
2764 * USSD_MODIFIED_TO_SS
2765 * USSD_MODIFIED_TO_USSD
twen.changdf7add02016-03-04 18:27:48 +08002766 * SIM_BUSY
2767 * OPERATION_NOT_ALLOWED
Ajay Nambi10345892016-03-19 09:02:28 -07002768 * INVALID_ARGUMENTS
2769 * NO_MEMORY
2770 * MODEM_ERR
2771 * INTERNAL_ERR
2772 * ABORTED
2773 * SYSTEM_ERR
2774 * INVALID_STATE
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002775 * GENERIC_FAILURE
2776 *
2777 * See also: RIL_REQUEST_CANCEL_USSD, RIL_UNSOL_ON_USSD
2778 */
2779
2780#define RIL_REQUEST_SEND_USSD 29
2781
2782/**
2783 * RIL_REQUEST_CANCEL_USSD
Wink Saville7f856802009-06-09 10:23:37 -07002784 *
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002785 * Cancel the current USSD session if one exists
2786 *
2787 * "data" is null
2788 * "response" is NULL
2789 *
2790 * Valid errors:
2791 * SUCCESS
2792 * RADIO_NOT_AVAILABLE
twen.changdf7add02016-03-04 18:27:48 +08002793 * SIM_BUSY
2794 * OPERATION_NOT_ALLOWED
Ajay Nambi10345892016-03-19 09:02:28 -07002795 * MODEM_ERR
2796 * INTERNAL_ERR
2797 * NO_MEMORY
2798 * INVALID_STATE
Wink Saville7f856802009-06-09 10:23:37 -07002799 * GENERIC_FAILURE
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002800 */
2801
2802#define RIL_REQUEST_CANCEL_USSD 30
2803
Wink Saville7f856802009-06-09 10:23:37 -07002804/**
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002805 * RIL_REQUEST_GET_CLIR
2806 *
2807 * Gets current CLIR status
2808 * "data" is NULL
2809 * "response" is int *
2810 * ((int *)data)[0] is "n" parameter from TS 27.007 7.7
2811 * ((int *)data)[1] is "m" parameter from TS 27.007 7.7
2812 *
2813 * Valid errors:
2814 * SUCCESS
2815 * RADIO_NOT_AVAILABLE
Amit Mahajan54563d32014-11-22 00:54:49 +00002816 * SS_MODIFIED_TO_DIAL
2817 * SS_MODIFIED_TO_USSD
2818 * SS_MODIFIED_TO_SS
Ajay Nambi10345892016-03-19 09:02:28 -07002819 * NO_MEMORY
2820 * MODEM_ERR
2821 * INTERNAL_ERR
2822 * FDN_CHECK_FAILURE
2823 * SYSTEM_ERR
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002824 * GENERIC_FAILURE
2825 */
2826#define RIL_REQUEST_GET_CLIR 31
2827
2828/**
2829 * RIL_REQUEST_SET_CLIR
2830 *
2831 * "data" is int *
2832 * ((int *)data)[0] is "n" parameter from TS 27.007 7.7
2833 *
2834 * "response" is NULL
2835 *
2836 * Valid errors:
2837 * SUCCESS
2838 * RADIO_NOT_AVAILABLE
Amit Mahajan54563d32014-11-22 00:54:49 +00002839 * SS_MODIFIED_TO_DIAL
2840 * SS_MODIFIED_TO_USSD
2841 * SS_MODIFIED_TO_SS
Ajay Nambi10345892016-03-19 09:02:28 -07002842 * INVALID_ARGUMENTS
2843 * SYSTEM_ERR
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002844 * GENERIC_FAILURE
2845 */
2846#define RIL_REQUEST_SET_CLIR 32
2847
2848/**
2849 * RIL_REQUEST_QUERY_CALL_FORWARD_STATUS
2850 *
2851 * "data" is const RIL_CallForwardInfo *
2852 *
2853 * "response" is const RIL_CallForwardInfo **
2854 * "response" points to an array of RIL_CallForwardInfo *'s, one for
2855 * each distinct registered phone number.
2856 *
2857 * For example, if data is forwarded to +18005551212 and voice is forwarded
2858 * to +18005559999, then two separate RIL_CallForwardInfo's should be returned
Wink Saville7f856802009-06-09 10:23:37 -07002859 *
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002860 * If, however, both data and voice are forwarded to +18005551212, then
2861 * a single RIL_CallForwardInfo can be returned with the service class
2862 * set to "data + voice = 3")
2863 *
2864 * Valid errors:
2865 * SUCCESS
2866 * RADIO_NOT_AVAILABLE
Amit Mahajan54563d32014-11-22 00:54:49 +00002867 * SS_MODIFIED_TO_DIAL
2868 * SS_MODIFIED_TO_USSD
2869 * SS_MODIFIED_TO_SS
Ajay Nambi10345892016-03-19 09:02:28 -07002870 * INVALID_ARGUMENTS
2871 * NO_MEMORY
2872 * SYSTEM_ERR
2873 * MODEM_ERR
2874 * INTERNAL_ERR
2875 * NO_MEMORY
2876 * FDN_CHECK_FAILURE
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002877 * GENERIC_FAILURE
2878 */
2879#define RIL_REQUEST_QUERY_CALL_FORWARD_STATUS 33
2880
2881
2882/**
2883 * RIL_REQUEST_SET_CALL_FORWARD
2884 *
2885 * Configure call forward rule
2886 *
2887 * "data" is const RIL_CallForwardInfo *
2888 * "response" is NULL
Wink Saville7f856802009-06-09 10:23:37 -07002889 *
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002890 * Valid errors:
2891 * SUCCESS
2892 * RADIO_NOT_AVAILABLE
Amit Mahajan54563d32014-11-22 00:54:49 +00002893 * SS_MODIFIED_TO_DIAL
2894 * SS_MODIFIED_TO_USSD
2895 * SS_MODIFIED_TO_SS
Ajay Nambi10345892016-03-19 09:02:28 -07002896 * INVALID_ARGUMENTS
2897 * NO_MEMORY
2898 * SYSTEM_ERR
2899 * MODEM_ERR
2900 * INTERNAL_ERR
2901 * INVALID_STATE
2902 * FDN_CHECK_FAILURE
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002903 * GENERIC_FAILURE
2904 */
2905#define RIL_REQUEST_SET_CALL_FORWARD 34
2906
2907
2908/**
2909 * RIL_REQUEST_QUERY_CALL_WAITING
2910 *
2911 * Query current call waiting state
2912 *
2913 * "data" is const int *
2914 * ((const int *)data)[0] is the TS 27.007 service class to query.
2915 * "response" is a const int *
2916 * ((const int *)response)[0] is 0 for "disabled" and 1 for "enabled"
2917 *
2918 * If ((const int *)response)[0] is = 1, then ((const int *)response)[1]
2919 * must follow, with the TS 27.007 service class bit vector of services
2920 * for which call waiting is enabled.
2921 *
Wink Saville7f856802009-06-09 10:23:37 -07002922 * For example, if ((const int *)response)[0] is 1 and
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002923 * ((const int *)response)[1] is 3, then call waiting is enabled for data
2924 * and voice and disabled for everything else
2925 *
2926 * Valid errors:
2927 * SUCCESS
2928 * RADIO_NOT_AVAILABLE
Amit Mahajan54563d32014-11-22 00:54:49 +00002929 * SS_MODIFIED_TO_DIAL
2930 * SS_MODIFIED_TO_USSD
2931 * SS_MODIFIED_TO_SS
Ajay Nambi10345892016-03-19 09:02:28 -07002932 * NO_MEMORY
2933 * MODEM_ERR
2934 * INTERNAL_ERR
2935 * NO_MEMORY
2936 * FDN_CHECK_FAILURE
2937 * INVALID_ARGUMENTS
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002938 * GENERIC_FAILURE
2939 */
2940#define RIL_REQUEST_QUERY_CALL_WAITING 35
2941
2942
2943/**
2944 * RIL_REQUEST_SET_CALL_WAITING
2945 *
2946 * Configure current call waiting state
2947 *
2948 * "data" is const int *
2949 * ((const int *)data)[0] is 0 for "disabled" and 1 for "enabled"
2950 * ((const int *)data)[1] is the TS 27.007 service class bit vector of
2951 * services to modify
2952 * "response" is NULL
2953 *
2954 * Valid errors:
2955 * SUCCESS
2956 * RADIO_NOT_AVAILABLE
Amit Mahajan54563d32014-11-22 00:54:49 +00002957 * SS_MODIFIED_TO_DIAL
2958 * SS_MODIFIED_TO_USSD
2959 * SS_MODIFIED_TO_SS
Ajay Nambi10345892016-03-19 09:02:28 -07002960 * INVALID_ARGUMENTS
2961 * NO_MEMORY
2962 * MODEM_ERR
2963 * INTERNAL_ERR
2964 * INVALID_STATE
2965 * FDN_CHECK_FAILURE
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002966 * GENERIC_FAILURE
2967 */
2968#define RIL_REQUEST_SET_CALL_WAITING 36
2969
2970/**
2971 * RIL_REQUEST_SMS_ACKNOWLEDGE
2972 *
2973 * Acknowledge successful or failed receipt of SMS previously indicated
Wink Saville7f856802009-06-09 10:23:37 -07002974 * via RIL_UNSOL_RESPONSE_NEW_SMS
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002975 *
2976 * "data" is int *
jshb60444e2009-05-29 11:09:17 -07002977 * ((int *)data)[0] is 1 on successful receipt
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002978 * (basically, AT+CNMA=1 from TS 27.005
jshb60444e2009-05-29 11:09:17 -07002979 * is 0 on failed receipt
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002980 * (basically, AT+CNMA=2 from TS 27.005)
jshb60444e2009-05-29 11:09:17 -07002981 * ((int *)data)[1] if data[0] is 0, this contains the failure cause as defined
2982 * in TS 23.040, 9.2.3.22. Currently only 0xD3 (memory
2983 * capacity exceeded) and 0xFF (unspecified error) are
2984 * reported.
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002985 *
2986 * "response" is NULL
2987 *
2988 * FIXME would like request that specified RP-ACK/RP-ERROR PDU
2989 *
2990 * Valid errors:
2991 * SUCCESS
2992 * RADIO_NOT_AVAILABLE
2993 * GENERIC_FAILURE
2994 */
2995#define RIL_REQUEST_SMS_ACKNOWLEDGE 37
2996
2997/**
Wink Savillef4c4d362009-04-02 01:37:03 -07002998 * RIL_REQUEST_GET_IMEI - DEPRECATED
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08002999 *
3000 * Get the device IMEI, including check digit
3001 *
johnwangf8bc1672009-05-14 19:19:47 -07003002 * The request is DEPRECATED, use RIL_REQUEST_DEVICE_IDENTITY
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003003 * Valid when RadioState is not RADIO_STATE_UNAVAILABLE
3004 *
3005 * "data" is NULL
3006 * "response" is a const char * containing the IMEI
3007 *
3008 * Valid errors:
Wink Saville7f856802009-06-09 10:23:37 -07003009 * SUCCESS
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003010 * RADIO_NOT_AVAILABLE (radio resetting)
3011 * GENERIC_FAILURE
3012 */
3013
3014#define RIL_REQUEST_GET_IMEI 38
3015
3016/**
Wink Savillef4c4d362009-04-02 01:37:03 -07003017 * RIL_REQUEST_GET_IMEISV - DEPRECATED
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003018 *
3019 * Get the device IMEISV, which should be two decimal digits
3020 *
johnwangf8bc1672009-05-14 19:19:47 -07003021 * The request is DEPRECATED, use RIL_REQUEST_DEVICE_IDENTITY
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003022 * Valid when RadioState is not RADIO_STATE_UNAVAILABLE
3023 *
3024 * "data" is NULL
3025 * "response" is a const char * containing the IMEISV
3026 *
3027 * Valid errors:
Wink Saville7f856802009-06-09 10:23:37 -07003028 * SUCCESS
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003029 * RADIO_NOT_AVAILABLE (radio resetting)
3030 * GENERIC_FAILURE
3031 */
3032
3033#define RIL_REQUEST_GET_IMEISV 39
3034
3035
3036/**
3037 * RIL_REQUEST_ANSWER
3038 *
3039 * Answer incoming call
3040 *
3041 * Will not be called for WAITING calls.
3042 * RIL_REQUEST_SWITCH_WAITING_OR_HOLDING_AND_ACTIVE will be used in this case
3043 * instead
3044 *
3045 * "data" is NULL
3046 * "response" is NULL
3047 *
3048 * Valid errors:
Wink Saville7f856802009-06-09 10:23:37 -07003049 * SUCCESS
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003050 * RADIO_NOT_AVAILABLE (radio resetting)
Ajay Nambi10345892016-03-19 09:02:28 -07003051 * INVALID_STATE
3052 * NO_MEMORY
3053 * SYSTEM_ERR
3054 * MODEM_ERR
3055 * INTERNAL_ERR
3056 * INVALID_CALL_ID
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003057 * GENERIC_FAILURE
3058 */
3059
3060#define RIL_REQUEST_ANSWER 40
3061
3062/**
Wink Savillef4c4d362009-04-02 01:37:03 -07003063 * RIL_REQUEST_DEACTIVATE_DATA_CALL
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003064 *
Wink Saville29487ef2011-04-15 09:15:31 -07003065 * Deactivate packet data connection and remove from the
3066 * data call list if SUCCESS is returned. Any other return
3067 * values should also try to remove the call from the list,
3068 * but that may not be possible. In any event a
3069 * RIL_REQUEST_RADIO_POWER off/on must clear the list. An
3070 * RIL_UNSOL_DATA_CALL_LIST_CHANGED is not expected to be
3071 * issued because of an RIL_REQUEST_DEACTIVATE_DATA_CALL.
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003072 *
3073 * "data" is const char **
Wink Savillef4c4d362009-04-02 01:37:03 -07003074 * ((char**)data)[0] indicating CID
Kazuhiro Ondod86799a2010-12-02 13:22:35 -06003075 * ((char**)data)[1] indicating Disconnect Reason
3076 * 0 => No specific reason specified
3077 * 1 => Radio shutdown requested
Wink Saville7f856802009-06-09 10:23:37 -07003078 *
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003079 * "response" is NULL
3080 *
3081 * Valid errors:
3082 * SUCCESS
3083 * RADIO_NOT_AVAILABLE
3084 * GENERIC_FAILURE
3085 *
Wink Savillef4c4d362009-04-02 01:37:03 -07003086 * See also: RIL_REQUEST_SETUP_DATA_CALL
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003087 */
Wink Savillef4c4d362009-04-02 01:37:03 -07003088#define RIL_REQUEST_DEACTIVATE_DATA_CALL 41
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003089
3090/**
3091 * RIL_REQUEST_QUERY_FACILITY_LOCK
3092 *
3093 * Query the status of a facility lock state
3094 *
3095 * "data" is const char **
Wink Saville7f856802009-06-09 10:23:37 -07003096 * ((const char **)data)[0] is the facility string code from TS 27.007 7.4
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003097 * (eg "AO" for BAOC, "SC" for SIM lock)
3098 * ((const char **)data)[1] is the password, or "" if not required
3099 * ((const char **)data)[2] is the TS 27.007 service class bit vector of
3100 * services to query
Wink Savillec0114b32011-02-18 10:14:07 -08003101 * ((const char **)data)[3] is AID value, See ETSI 102.221 8.1 and 101.220 4, NULL if no value.
Wink Savillefd729372011-02-22 16:19:39 -08003102 * This is only applicable in the case of Fixed Dialing Numbers
3103 * (FDN) requests.
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003104 *
3105 * "response" is an int *
3106 * ((const int *)response) 0 is the TS 27.007 service class bit vector of
Wink Saville7f856802009-06-09 10:23:37 -07003107 * services for which the specified barring facility
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003108 * is active. "0" means "disabled for all"
Wink Saville7f856802009-06-09 10:23:37 -07003109 *
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003110 *
3111 * Valid errors:
3112 * SUCCESS
3113 * RADIO_NOT_AVAILABLE
Amit Mahajan54563d32014-11-22 00:54:49 +00003114 * SS_MODIFIED_TO_DIAL
3115 * SS_MODIFIED_TO_USSD
3116 * SS_MODIFIED_TO_SS
Ajay Nambi10345892016-03-19 09:02:28 -07003117 * INVALID_ARGUMENTS
3118 * NO_MEMORY
3119 * INTERNAL_ERR
3120 * SYSTEM_ERR
3121 * MODEM_ERR
3122 * FDN_CHECK_FAILURE
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003123 * GENERIC_FAILURE
3124 *
3125 */
3126#define RIL_REQUEST_QUERY_FACILITY_LOCK 42
3127
3128/**
3129 * RIL_REQUEST_SET_FACILITY_LOCK
3130 *
3131 * Enable/disable one facility lock
3132 *
3133 * "data" is const char **
3134 *
3135 * ((const char **)data)[0] = facility string code from TS 27.007 7.4
3136 * (eg "AO" for BAOC)
3137 * ((const char **)data)[1] = "0" for "unlock" and "1" for "lock"
3138 * ((const char **)data)[2] = password
3139 * ((const char **)data)[3] = string representation of decimal TS 27.007
3140 * service class bit vector. Eg, the string
3141 * "1" means "set this facility for voice services"
Wink Savillec0114b32011-02-18 10:14:07 -08003142 * ((const char **)data)[4] = AID value, See ETSI 102.221 8.1 and 101.220 4, NULL if no value.
Wink Savillefd729372011-02-22 16:19:39 -08003143 * This is only applicable in the case of Fixed Dialing Numbers
3144 * (FDN) requests.
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003145 *
jsh593c9102009-06-24 16:13:44 -07003146 * "response" is int *
3147 * ((int *)response)[0] is the number of retries remaining, or -1 if unknown
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003148 *
3149 * Valid errors:
3150 * SUCCESS
3151 * RADIO_NOT_AVAILABLE
Amit Mahajan54563d32014-11-22 00:54:49 +00003152 * SS_MODIFIED_TO_DIAL
3153 * SS_MODIFIED_TO_USSD
3154 * SS_MODIFIED_TO_SS
Ajay Nambi10345892016-03-19 09:02:28 -07003155 * INVALID_ARGUMENTS
3156 * INTERNAL_ERR
3157 * NO_MEMORY
3158 * MODEM_ERR
3159 * INVALID_STATE
3160 * FDN_CHECK_FAILURE
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003161 * GENERIC_FAILURE
3162 *
3163 */
3164#define RIL_REQUEST_SET_FACILITY_LOCK 43
3165
3166/**
3167 * RIL_REQUEST_CHANGE_BARRING_PASSWORD
3168 *
3169 * Change call barring facility password
3170 *
3171 * "data" is const char **
3172 *
3173 * ((const char **)data)[0] = facility string code from TS 27.007 7.4
3174 * (eg "AO" for BAOC)
3175 * ((const char **)data)[1] = old password
3176 * ((const char **)data)[2] = new password
3177 *
Wink Saville7f856802009-06-09 10:23:37 -07003178 * "response" is NULL
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003179 *
3180 * Valid errors:
3181 * SUCCESS
3182 * RADIO_NOT_AVAILABLE
Amit Mahajan54563d32014-11-22 00:54:49 +00003183 * SS_MODIFIED_TO_DIAL
3184 * SS_MODIFIED_TO_USSD
3185 * SS_MODIFIED_TO_SS
Ajay Nambi10345892016-03-19 09:02:28 -07003186 * INVALID_ARGUMENTS
3187 * NO_MEMORY
3188 * MODEM_ERR
3189 * INTERNAL_ERR
3190 * SYSTEM_ERR
3191 * FDN_CHECK_FAILURE
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003192 * GENERIC_FAILURE
3193 *
3194 */
3195#define RIL_REQUEST_CHANGE_BARRING_PASSWORD 44
3196
3197/**
3198 * RIL_REQUEST_QUERY_NETWORK_SELECTION_MODE
3199 *
3200 * Query current network selectin mode
3201 *
3202 * "data" is NULL
3203 *
3204 * "response" is int *
3205 * ((const int *)response)[0] is
3206 * 0 for automatic selection
3207 * 1 for manual selection
3208 *
3209 * Valid errors:
3210 * SUCCESS
3211 * RADIO_NOT_AVAILABLE
3212 * GENERIC_FAILURE
3213 *
3214 */
3215#define RIL_REQUEST_QUERY_NETWORK_SELECTION_MODE 45
3216
3217/**
3218 * RIL_REQUEST_SET_NETWORK_SELECTION_AUTOMATIC
3219 *
3220 * Specify that the network should be selected automatically
3221 *
3222 * "data" is NULL
3223 * "response" is NULL
3224 *
Wink Saville7f856802009-06-09 10:23:37 -07003225 * This request must not respond until the new operator is selected
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003226 * and registered
3227 *
3228 * Valid errors:
3229 * SUCCESS
3230 * RADIO_NOT_AVAILABLE
John Wang75534472010-04-20 15:11:42 -07003231 * ILLEGAL_SIM_OR_ME
twen.changdf7add02016-03-04 18:27:48 +08003232 * OPERATION_NOT_ALLOWED
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003233 * GENERIC_FAILURE
3234 *
John Wang75534472010-04-20 15:11:42 -07003235 * Note: Returns ILLEGAL_SIM_OR_ME when the failure is permanent and
3236 * no retries needed, such as illegal SIM or ME.
3237 * Returns GENERIC_FAILURE for all other causes that might be
3238 * fixed by retries.
3239 *
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003240 */
3241#define RIL_REQUEST_SET_NETWORK_SELECTION_AUTOMATIC 46
3242
3243/**
3244 * RIL_REQUEST_SET_NETWORK_SELECTION_MANUAL
3245 *
3246 * Manually select a specified network.
3247 *
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003248 * "data" is const char * specifying MCCMNC of network to select (eg "310170")
3249 * "response" is NULL
3250 *
Wink Saville7f856802009-06-09 10:23:37 -07003251 * This request must not respond until the new operator is selected
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003252 * and registered
3253 *
3254 * Valid errors:
3255 * SUCCESS
3256 * RADIO_NOT_AVAILABLE
John Wang75534472010-04-20 15:11:42 -07003257 * ILLEGAL_SIM_OR_ME
twen.changdf7add02016-03-04 18:27:48 +08003258 * OPERATION_NOT_ALLOWED
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003259 * GENERIC_FAILURE
3260 *
John Wang75534472010-04-20 15:11:42 -07003261 * Note: Returns ILLEGAL_SIM_OR_ME when the failure is permanent and
3262 * no retries needed, such as illegal SIM or ME.
3263 * Returns GENERIC_FAILURE for all other causes that might be
3264 * fixed by retries.
3265 *
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003266 */
3267#define RIL_REQUEST_SET_NETWORK_SELECTION_MANUAL 47
3268
3269/**
3270 * RIL_REQUEST_QUERY_AVAILABLE_NETWORKS
3271 *
3272 * Scans for available networks
3273 *
3274 * "data" is NULL
3275 * "response" is const char ** that should be an array of n*4 strings, where
3276 * n is the number of available networks
3277 * For each available network:
3278 *
Wink Saville7f856802009-06-09 10:23:37 -07003279 * ((const char **)response)[n+0] is long alpha ONS or EONS
3280 * ((const char **)response)[n+1] is short alpha ONS or EONS
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003281 * ((const char **)response)[n+2] is 5 or 6 digit numeric code (MCC + MNC)
3282 * ((const char **)response)[n+3] is a string value of the status:
3283 * "unknown"
3284 * "available"
3285 * "current"
3286 * "forbidden"
3287 *
Wink Saville7f856802009-06-09 10:23:37 -07003288 * This request must not respond until the new operator is selected
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003289 * and registered
3290 *
3291 * Valid errors:
3292 * SUCCESS
3293 * RADIO_NOT_AVAILABLE
twen.changdf7add02016-03-04 18:27:48 +08003294 * OPERATION_NOT_ALLOWED
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003295 * GENERIC_FAILURE
3296 *
3297 */
3298#define RIL_REQUEST_QUERY_AVAILABLE_NETWORKS 48
3299
3300/**
3301 * RIL_REQUEST_DTMF_START
3302 *
Wink Saville7f856802009-06-09 10:23:37 -07003303 * Start playing a DTMF tone. Continue playing DTMF tone until
3304 * RIL_REQUEST_DTMF_STOP is received
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003305 *
3306 * If a RIL_REQUEST_DTMF_START is received while a tone is currently playing,
3307 * it should cancel the previous tone and play the new one.
Wink Saville7f856802009-06-09 10:23:37 -07003308 *
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003309 * "data" is a char *
3310 * ((char *)data)[0] is a single character with one of 12 values: 0-9,*,#
3311 * "response" is NULL
Wink Saville7f856802009-06-09 10:23:37 -07003312 *
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003313 * Valid errors:
3314 * SUCCESS
3315 * RADIO_NOT_AVAILABLE
Ajay Nambi10345892016-03-19 09:02:28 -07003316 * INVALID_ARGUMENTS
3317 * NO_RESOURCES
3318 * NO_MEMORY
3319 * SYSTEM_ERR
3320 * MODEM_ERR
3321 * INTERNAL_ERR
3322 * INVALID_CALL_ID
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003323 * GENERIC_FAILURE
3324 *
3325 * See also: RIL_REQUEST_DTMF, RIL_REQUEST_DTMF_STOP
3326 */
3327#define RIL_REQUEST_DTMF_START 49
3328
3329/**
3330 * RIL_REQUEST_DTMF_STOP
3331 *
3332 * Stop playing a currently playing DTMF tone.
Wink Saville7f856802009-06-09 10:23:37 -07003333 *
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003334 * "data" is NULL
3335 * "response" is NULL
Wink Saville7f856802009-06-09 10:23:37 -07003336 *
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003337 * Valid errors:
3338 * SUCCESS
3339 * RADIO_NOT_AVAILABLE
twen.changdf7add02016-03-04 18:27:48 +08003340 * OPERATION_NOT_ALLOWED
Ajay Nambi10345892016-03-19 09:02:28 -07003341 * NO_RESOURCES
3342 * NO_MEMORY
3343 * INVALID_ARGUMENTS
3344 * SYSTEM_ERR
3345 * MODEM_ERR
3346 * INTERNAL_ERR
3347 * INVALID_CALL_ID
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003348 * GENERIC_FAILURE
3349 *
3350 * See also: RIL_REQUEST_DTMF, RIL_REQUEST_DTMF_START
3351 */
3352#define RIL_REQUEST_DTMF_STOP 50
3353
3354/**
3355 * RIL_REQUEST_BASEBAND_VERSION
3356 *
3357 * Return string value indicating baseband version, eg
3358 * response from AT+CGMR
Wink Saville7f856802009-06-09 10:23:37 -07003359 *
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003360 * "data" is NULL
3361 * "response" is const char * containing version string for log reporting
Wink Saville7f856802009-06-09 10:23:37 -07003362 *
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003363 * Valid errors:
3364 * SUCCESS
3365 * RADIO_NOT_AVAILABLE
twen.changdf7add02016-03-04 18:27:48 +08003366 * EMPTY_RECORD
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003367 * GENERIC_FAILURE
3368 *
3369 */
3370#define RIL_REQUEST_BASEBAND_VERSION 51
3371
3372/**
3373 * RIL_REQUEST_SEPARATE_CONNECTION
3374 *
3375 * Separate a party from a multiparty call placing the multiparty call
Wink Saville7f856802009-06-09 10:23:37 -07003376 * (less the specified party) on hold and leaving the specified party
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003377 * as the only other member of the current (active) call
3378 *
3379 * Like AT+CHLD=2x
3380 *
3381 * See TS 22.084 1.3.8.2 (iii)
3382 * TS 22.030 6.5.5 "Entering "2X followed by send"
3383 * TS 27.007 "AT+CHLD=2x"
Wink Saville7f856802009-06-09 10:23:37 -07003384 *
3385 * "data" is an int *
Wink Savillef4c4d362009-04-02 01:37:03 -07003386 * (int *)data)[0] contains Connection index (value of 'x' in CHLD above) "response" is NULL
3387 *
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003388 * "response" is NULL
3389 *
3390 * Valid errors:
Wink Saville7f856802009-06-09 10:23:37 -07003391 * SUCCESS
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003392 * RADIO_NOT_AVAILABLE (radio resetting)
Ajay Nambi10345892016-03-19 09:02:28 -07003393 * INVALID_ARGUMENTS
3394 * INVALID_STATE
3395 * NO_RESOURCES
3396 * NO_MEMORY
3397 * SYSTEM_ERR
3398 * MODEM_ERR
3399 * INTERNAL_ERR
3400 * INVALID_CALL_ID
3401 * INVALID_STATE
3402 * OPERATION_NOT_ALLOWED
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003403 * GENERIC_FAILURE
3404 */
3405#define RIL_REQUEST_SEPARATE_CONNECTION 52
3406
3407
3408/**
3409 * RIL_REQUEST_SET_MUTE
3410 *
3411 * Turn on or off uplink (microphone) mute.
3412 *
3413 * Will only be sent while voice call is active.
3414 * Will always be reset to "disable mute" when a new voice call is initiated
3415 *
3416 * "data" is an int *
3417 * (int *)data)[0] is 1 for "enable mute" and 0 for "disable mute"
3418 *
3419 * "response" is NULL
3420 *
3421 * Valid errors:
Wink Saville7f856802009-06-09 10:23:37 -07003422 * SUCCESS
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003423 * RADIO_NOT_AVAILABLE (radio resetting)
Ajay Nambi68900f52016-03-11 12:02:55 -08003424 * INVALID_ARGUMENTS
3425 * NO_MEMORY
3426 * REQUEST_RATE_LIMITED
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003427 * GENERIC_FAILURE
3428 */
3429
3430#define RIL_REQUEST_SET_MUTE 53
3431
3432/**
3433 * RIL_REQUEST_GET_MUTE
3434 *
3435 * Queries the current state of the uplink mute setting
3436 *
3437 * "data" is NULL
3438 * "response" is an int *
3439 * (int *)response)[0] is 1 for "mute enabled" and 0 for "mute disabled"
3440 *
3441 * Valid errors:
Wink Saville7f856802009-06-09 10:23:37 -07003442 * SUCCESS
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003443 * RADIO_NOT_AVAILABLE (radio resetting)
Amit Mahajan54563d32014-11-22 00:54:49 +00003444 * SS_MODIFIED_TO_DIAL
3445 * SS_MODIFIED_TO_USSD
3446 * SS_MODIFIED_TO_SS
Ajay Nambi68900f52016-03-11 12:02:55 -08003447 * NO_MEMORY
3448 * REQUEST_RATE_LIMITED
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003449 * GENERIC_FAILURE
3450 */
3451
3452#define RIL_REQUEST_GET_MUTE 54
3453
3454/**
3455 * RIL_REQUEST_QUERY_CLIP
3456 *
3457 * Queries the status of the CLIP supplementary service
3458 *
3459 * (for MMI code "*#30#")
3460 *
3461 * "data" is NULL
3462 * "response" is an int *
Wink Saville7f856802009-06-09 10:23:37 -07003463 * (int *)response)[0] is 1 for "CLIP provisioned"
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003464 * and 0 for "CLIP not provisioned"
Wink Saville7f856802009-06-09 10:23:37 -07003465 * and 2 for "unknown, e.g. no network etc"
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003466 *
3467 * Valid errors:
Wink Saville7f856802009-06-09 10:23:37 -07003468 * SUCCESS
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003469 * RADIO_NOT_AVAILABLE (radio resetting)
Ajay Nambi10345892016-03-19 09:02:28 -07003470 * NO_MEMORY
3471 * SYSTEM_ERR
3472 * MODEM_ERR
3473 * INTERNAL_ERR
3474 * FDN_CHECK_FAILURE
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003475 * GENERIC_FAILURE
3476 */
3477
3478#define RIL_REQUEST_QUERY_CLIP 55
3479
3480/**
Wink Savillec0114b32011-02-18 10:14:07 -08003481 * RIL_REQUEST_LAST_DATA_CALL_FAIL_CAUSE - Deprecated use the status
3482 * field in RIL_Data_Call_Response_v6.
Wink Saville7f856802009-06-09 10:23:37 -07003483 *
3484 * Requests the failure cause code for the most recently failed PDP
Wink Savillef4c4d362009-04-02 01:37:03 -07003485 * context or CDMA data connection active
3486 * replaces RIL_REQUEST_LAST_PDP_FAIL_CAUSE
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003487 *
3488 * "data" is NULL
3489 *
3490 * "response" is a "int *"
3491 * ((int *)response)[0] is an integer cause code defined in TS 24.008
3492 * section 6.1.3.1.3 or close approximation
3493 *
3494 * If the implementation does not have access to the exact cause codes,
Wink Saville7f856802009-06-09 10:23:37 -07003495 * then it should return one of the values listed in
Wink Saville43808972011-01-13 17:39:51 -08003496 * RIL_DataCallFailCause, as the UI layer needs to distinguish these
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003497 * cases for error notification
3498 * and potential retries.
3499 *
3500 * Valid errors:
3501 * SUCCESS
3502 * RADIO_NOT_AVAILABLE
3503 * GENERIC_FAILURE
3504 *
3505 * See also: RIL_REQUEST_LAST_CALL_FAIL_CAUSE
Wink Savillec0114b32011-02-18 10:14:07 -08003506 *
3507 * Deprecated use the status field in RIL_Data_Call_Response_v6.
Wink Saville7f856802009-06-09 10:23:37 -07003508 */
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003509
Wink Savillef4c4d362009-04-02 01:37:03 -07003510#define RIL_REQUEST_LAST_DATA_CALL_FAIL_CAUSE 56
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003511
3512/**
Wink Savillef4c4d362009-04-02 01:37:03 -07003513 * RIL_REQUEST_DATA_CALL_LIST
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003514 *
Wink Saville29487ef2011-04-15 09:15:31 -07003515 * Returns the data call list. An entry is added when a
3516 * RIL_REQUEST_SETUP_DATA_CALL is issued and removed on a
3517 * RIL_REQUEST_DEACTIVATE_DATA_CALL. The list is emptied
3518 * when RIL_REQUEST_RADIO_POWER off/on is issued.
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003519 *
3520 * "data" is NULL
Wink Savillec0114b32011-02-18 10:14:07 -08003521 * "response" is an array of RIL_Data_Call_Response_v6
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003522 *
3523 * Valid errors:
Wink Saville7f856802009-06-09 10:23:37 -07003524 * SUCCESS
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003525 * RADIO_NOT_AVAILABLE (radio resetting)
3526 * GENERIC_FAILURE
Wink Saville29487ef2011-04-15 09:15:31 -07003527 *
3528 * See also: RIL_UNSOL_DATA_CALL_LIST_CHANGED
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003529 */
3530
Wink Savillef4c4d362009-04-02 01:37:03 -07003531#define RIL_REQUEST_DATA_CALL_LIST 57
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003532
3533/**
johnwangf8bc1672009-05-14 19:19:47 -07003534 * RIL_REQUEST_RESET_RADIO - DEPRECATED
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003535 *
3536 * Request a radio reset. The RIL implementation may postpone
3537 * the reset until after this request is responded to if the baseband
3538 * is presently busy.
3539 *
johnwangf8bc1672009-05-14 19:19:47 -07003540 * The request is DEPRECATED, use RIL_REQUEST_RADIO_POWER
3541 *
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003542 * "data" is NULL
3543 * "response" is NULL
3544 *
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003545 * Valid errors:
Wink Saville7f856802009-06-09 10:23:37 -07003546 * SUCCESS
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003547 * RADIO_NOT_AVAILABLE (radio resetting)
3548 * GENERIC_FAILURE
johnwangf8bc1672009-05-14 19:19:47 -07003549 * REQUEST_NOT_SUPPORTED
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003550 */
3551
3552#define RIL_REQUEST_RESET_RADIO 58
3553
3554/**
3555 * RIL_REQUEST_OEM_HOOK_RAW
3556 *
3557 * This request reserved for OEM-specific uses. It passes raw byte arrays
3558 * back and forth.
3559 *
Wink Saville7f856802009-06-09 10:23:37 -07003560 * It can be invoked on the Java side from
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003561 * com.android.internal.telephony.Phone.invokeOemRilRequestRaw()
3562 *
3563 * "data" is a char * of bytes copied from the byte[] data argument in java
3564 * "response" is a char * of bytes that will returned via the
Wink Saville7f856802009-06-09 10:23:37 -07003565 * caller's "response" Message here:
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003566 * (byte[])(((AsyncResult)response.obj).result)
3567 *
Wink Saville7f856802009-06-09 10:23:37 -07003568 * An error response here will result in
3569 * (((AsyncResult)response.obj).result) == null and
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003570 * (((AsyncResult)response.obj).exception) being an instance of
3571 * com.android.internal.telephony.gsm.CommandException
3572 *
3573 * Valid errors:
3574 * All
3575 */
3576
3577#define RIL_REQUEST_OEM_HOOK_RAW 59
3578
3579/**
3580 * RIL_REQUEST_OEM_HOOK_STRINGS
3581 *
3582 * This request reserved for OEM-specific uses. It passes strings
3583 * back and forth.
3584 *
Wink Saville7f856802009-06-09 10:23:37 -07003585 * It can be invoked on the Java side from
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003586 * com.android.internal.telephony.Phone.invokeOemRilRequestStrings()
3587 *
3588 * "data" is a const char **, representing an array of null-terminated UTF-8
3589 * strings copied from the "String[] strings" argument to
3590 * invokeOemRilRequestStrings()
3591 *
3592 * "response" is a const char **, representing an array of null-terminated UTF-8
3593 * stings that will be returned via the caller's response message here:
3594 *
3595 * (String[])(((AsyncResult)response.obj).result)
3596 *
Wink Saville7f856802009-06-09 10:23:37 -07003597 * An error response here will result in
3598 * (((AsyncResult)response.obj).result) == null and
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003599 * (((AsyncResult)response.obj).exception) being an instance of
3600 * com.android.internal.telephony.gsm.CommandException
3601 *
3602 * Valid errors:
3603 * All
3604 */
3605
3606#define RIL_REQUEST_OEM_HOOK_STRINGS 60
3607
3608/**
Jack Yu06181bb2017-01-10 12:10:41 -08003609 * RIL_REQUEST_SCREEN_STATE - DEPRECATED
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003610 *
3611 * Indicates the current state of the screen. When the screen is off, the
3612 * RIL should notify the baseband to suppress certain notifications (eg,
jsh43265612009-09-29 17:46:11 -07003613 * signal strength and changes in LAC/CID or BID/SID/NID/latitude/longitude)
3614 * in an effort to conserve power. These notifications should resume when the
3615 * screen is on.
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003616 *
Jack Yu06181bb2017-01-10 12:10:41 -08003617 * Note this request is deprecated. Use RIL_REQUEST_SEND_DEVICE_STATE to report the device state
3618 * to the modem and use RIL_REQUEST_SET_UNSOLICITED_RESPONSE_FILTER to turn on/off unsolicited
3619 * response from the modem in different scenarios.
3620 *
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003621 * "data" is int *
3622 * ((int *)data)[0] is == 1 for "Screen On"
3623 * ((int *)data)[0] is == 0 for "Screen Off"
3624 *
3625 * "response" is NULL
3626 *
3627 * Valid errors:
3628 * SUCCESS
3629 * GENERIC_FAILURE
3630 */
3631#define RIL_REQUEST_SCREEN_STATE 61
3632
3633
3634/**
3635 * RIL_REQUEST_SET_SUPP_SVC_NOTIFICATION
3636 *
3637 * Enables/disables supplementary service related notifications
3638 * from the network.
3639 *
3640 * Notifications are reported via RIL_UNSOL_SUPP_SVC_NOTIFICATION.
3641 *
3642 * "data" is int *
3643 * ((int *)data)[0] is == 1 for notifications enabled
3644 * ((int *)data)[0] is == 0 for notifications disabled
3645 *
3646 * "response" is NULL
3647 *
3648 * Valid errors:
3649 * SUCCESS
3650 * RADIO_NOT_AVAILABLE
twen.changdf7add02016-03-04 18:27:48 +08003651 * SIM_BUSY
Ajay Nambi10345892016-03-19 09:02:28 -07003652 * INVALID_ARGUMENTS
3653 * NO_MEMORY
3654 * SYSTEM_ERR
3655 * MODEM_ERR
3656 * INTERNAL_ERR
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003657 * GENERIC_FAILURE
3658 *
3659 * See also: RIL_UNSOL_SUPP_SVC_NOTIFICATION.
3660 */
3661#define RIL_REQUEST_SET_SUPP_SVC_NOTIFICATION 62
3662
3663/**
3664 * RIL_REQUEST_WRITE_SMS_TO_SIM
3665 *
3666 * Stores a SMS message to SIM memory.
3667 *
3668 * "data" is RIL_SMS_WriteArgs *
3669 *
3670 * "response" is int *
3671 * ((const int *)response)[0] is the record index where the message is stored.
3672 *
3673 * Valid errors:
3674 * SUCCESS
twen.changdf7add02016-03-04 18:27:48 +08003675 * SIM_FULL
Ajay Nambi68900f52016-03-11 12:02:55 -08003676 * INVALID_ARGUMENTS
3677 * INVALID_SMS_FORMAT
3678 * INTERNAL_ERR
3679 * MODEM_ERR
3680 * ENCODING_ERR
3681 * NO_MEMORY
3682 * NO_RESOURCES
3683 * INVALID_MODEM_STATE
3684 * MODE_NOT_SUPPORTED
3685 * INVALID_SMSC_ADDRESS
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003686 * GENERIC_FAILURE
3687 *
3688 */
3689#define RIL_REQUEST_WRITE_SMS_TO_SIM 63
3690
3691/**
3692 * RIL_REQUEST_DELETE_SMS_ON_SIM
3693 *
3694 * Deletes a SMS message from SIM memory.
3695 *
3696 * "data" is int *
3697 * ((int *)data)[0] is the record index of the message to delete.
3698 *
3699 * "response" is NULL
3700 *
3701 * Valid errors:
3702 * SUCCESS
twen.changdf7add02016-03-04 18:27:48 +08003703 * SIM_FULL
Ajay Nambi68900f52016-03-11 12:02:55 -08003704 * INVALID_ARGUMENTS
3705 * NO_MEMORY
3706 * REQUEST_RATE_LIMITED
3707 * SYSTEM_ERR
3708 * MODEM_ERR
3709 * NO_SUCH_ENTRY
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003710 * GENERIC_FAILURE
3711 *
3712 */
3713#define RIL_REQUEST_DELETE_SMS_ON_SIM 64
3714
3715/**
3716 * RIL_REQUEST_SET_BAND_MODE
3717 *
3718 * Assign a specified band for RF configuration.
3719 *
3720 * "data" is int *
Nathan Harold92839f12016-02-12 10:02:28 -08003721 * ((int *)data)[0] is a RIL_RadioBandMode
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003722 *
3723 * "response" is NULL
3724 *
3725 * Valid errors:
3726 * SUCCESS
3727 * RADIO_NOT_AVAILABLE
twen.changdf7add02016-03-04 18:27:48 +08003728 * OPERATION_NOT_ALLOWED
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003729 * GENERIC_FAILURE
Nathan Harold92839f12016-02-12 10:02:28 -08003730 *
3731 * See also: RIL_REQUEST_QUERY_AVAILABLE_BAND_MODE
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003732 */
3733#define RIL_REQUEST_SET_BAND_MODE 65
3734
3735/**
3736 * RIL_REQUEST_QUERY_AVAILABLE_BAND_MODE
3737 *
3738 * Query the list of band mode supported by RF.
3739 *
3740 * "data" is NULL
3741 *
3742 * "response" is int *
Nathan Harold92839f12016-02-12 10:02:28 -08003743 * "response" points to an array of int's, the int[0] is the size of array;
3744 * subsequent values are a list of RIL_RadioBandMode listing supported modes.
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003745 *
3746 * Valid errors:
3747 * SUCCESS
3748 * RADIO_NOT_AVAILABLE
3749 * GENERIC_FAILURE
3750 *
3751 * See also: RIL_REQUEST_SET_BAND_MODE
3752 */
3753#define RIL_REQUEST_QUERY_AVAILABLE_BAND_MODE 66
3754
3755/**
3756 * RIL_REQUEST_STK_GET_PROFILE
3757 *
3758 * Requests the profile of SIM tool kit.
3759 * The profile indicates the SAT/USAT features supported by ME.
3760 * The SAT/USAT features refer to 3GPP TS 11.14 and 3GPP TS 31.111
3761 *
3762 * "data" is NULL
3763 *
3764 * "response" is a const char * containing SAT/USAT profile
3765 * in hexadecimal format string starting with first byte of terminal profile
3766 *
3767 * Valid errors:
3768 * RIL_E_SUCCESS
3769 * RIL_E_RADIO_NOT_AVAILABLE (radio resetting)
3770 * RIL_E_GENERIC_FAILURE
3771 */
3772#define RIL_REQUEST_STK_GET_PROFILE 67
3773
3774/**
3775 * RIL_REQUEST_STK_SET_PROFILE
3776 *
3777 * Download the STK terminal profile as part of SIM initialization
3778 * procedure
3779 *
3780 * "data" is a const char * containing SAT/USAT profile
3781 * in hexadecimal format string starting with first byte of terminal profile
3782 *
3783 * "response" is NULL
3784 *
3785 * Valid errors:
3786 * RIL_E_SUCCESS
3787 * RIL_E_RADIO_NOT_AVAILABLE (radio resetting)
3788 * RIL_E_GENERIC_FAILURE
3789 */
3790#define RIL_REQUEST_STK_SET_PROFILE 68
3791
3792/**
3793 * RIL_REQUEST_STK_SEND_ENVELOPE_COMMAND
3794 *
3795 * Requests to send a SAT/USAT envelope command to SIM.
3796 * The SAT/USAT envelope command refers to 3GPP TS 11.14 and 3GPP TS 31.111
3797 *
3798 * "data" is a const char * containing SAT/USAT command
3799 * in hexadecimal format string starting with command tag
3800 *
3801 * "response" is a const char * containing SAT/USAT response
3802 * in hexadecimal format string starting with first byte of response
3803 * (May be NULL)
3804 *
3805 * Valid errors:
3806 * RIL_E_SUCCESS
3807 * RIL_E_RADIO_NOT_AVAILABLE (radio resetting)
twen.changdf7add02016-03-04 18:27:48 +08003808 * SIM_BUSY
3809 * OPERATION_NOT_ALLOWED
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003810 * RIL_E_GENERIC_FAILURE
3811 */
3812#define RIL_REQUEST_STK_SEND_ENVELOPE_COMMAND 69
3813
3814/**
3815 * RIL_REQUEST_STK_SEND_TERMINAL_RESPONSE
3816 *
3817 * Requests to send a terminal response to SIM for a received
3818 * proactive command
3819 *
3820 * "data" is a const char * containing SAT/USAT response
3821 * in hexadecimal format string starting with first byte of response data
3822 *
3823 * "response" is NULL
3824 *
3825 * Valid errors:
3826 * RIL_E_SUCCESS
3827 * RIL_E_RADIO_NOT_AVAILABLE (radio resetting)
twen.changdf7add02016-03-04 18:27:48 +08003828 * RIL_E_OPERATION_NOT_ALLOWED
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003829 * RIL_E_GENERIC_FAILURE
3830 */
3831#define RIL_REQUEST_STK_SEND_TERMINAL_RESPONSE 70
3832
3833/**
3834 * RIL_REQUEST_STK_HANDLE_CALL_SETUP_REQUESTED_FROM_SIM
3835 *
3836 * When STK application gets RIL_UNSOL_STK_CALL_SETUP, the call actually has
3837 * been initialized by ME already. (We could see the call has been in the 'call
3838 * list') So, STK application needs to accept/reject the call according as user
3839 * operations.
3840 *
3841 * "data" is int *
3842 * ((int *)data)[0] is > 0 for "accept" the call setup
3843 * ((int *)data)[0] is == 0 for "reject" the call setup
3844 *
3845 * "response" is NULL
3846 *
3847 * Valid errors:
3848 * RIL_E_SUCCESS
3849 * RIL_E_RADIO_NOT_AVAILABLE (radio resetting)
twen.changdf7add02016-03-04 18:27:48 +08003850 * RIL_E_OPERATION_NOT_ALLOWED
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003851 * RIL_E_GENERIC_FAILURE
3852 */
3853#define RIL_REQUEST_STK_HANDLE_CALL_SETUP_REQUESTED_FROM_SIM 71
3854
3855/**
3856 * RIL_REQUEST_EXPLICIT_CALL_TRANSFER
3857 *
3858 * Connects the two calls and disconnects the subscriber from both calls.
Wink Saville7f856802009-06-09 10:23:37 -07003859 *
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003860 * "data" is NULL
3861 * "response" is NULL
3862 *
3863 * Valid errors:
Wink Saville7f856802009-06-09 10:23:37 -07003864 * SUCCESS
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003865 * RADIO_NOT_AVAILABLE (radio resetting)
Ajay Nambi10345892016-03-19 09:02:28 -07003866 * INVALID_STATE
3867 * NO_RESOURCES
3868 * NO_MEMORY
3869 * INVALID_ARGUMENTS
3870 * SYSTEM_ERR
3871 * MODEM_ERR
3872 * INTERNAL_ERR
3873 * INVALID_CALL_ID
3874 * INVALID_STATE
3875 * OPERATION_NOT_ALLOWED
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003876 * GENERIC_FAILURE
3877 */
3878#define RIL_REQUEST_EXPLICIT_CALL_TRANSFER 72
3879
3880/**
3881 * RIL_REQUEST_SET_PREFERRED_NETWORK_TYPE
3882 *
3883 * Requests to set the preferred network type for searching and registering
3884 * (CS/PS domain, RAT, and operation mode)
3885 *
Wink Savillec0114b32011-02-18 10:14:07 -08003886 * "data" is int * which is RIL_PreferredNetworkType
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003887 *
3888 * "response" is NULL
3889 *
3890 * Valid errors:
Wink Savillef4c4d362009-04-02 01:37:03 -07003891 * SUCCESS
3892 * RADIO_NOT_AVAILABLE (radio resetting)
3893 * GENERIC_FAILURE
twen.changdf7add02016-03-04 18:27:48 +08003894 * OPERATION_NOT_ALLOWED
Wink Savillef4c4d362009-04-02 01:37:03 -07003895 * MODE_NOT_SUPPORTED
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003896 */
3897#define RIL_REQUEST_SET_PREFERRED_NETWORK_TYPE 73
3898
3899/**
3900 * RIL_REQUEST_GET_PREFERRED_NETWORK_TYPE
3901 *
3902 * Query the preferred network type (CS/PS domain, RAT, and operation mode)
3903 * for searching and registering
3904 *
3905 * "data" is NULL
3906 *
3907 * "response" is int *
Wink Savillec0114b32011-02-18 10:14:07 -08003908 * ((int *)reponse)[0] is == RIL_PreferredNetworkType
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003909 *
3910 * Valid errors:
3911 * SUCCESS
3912 * RADIO_NOT_AVAILABLE
3913 * GENERIC_FAILURE
3914 *
3915 * See also: RIL_REQUEST_SET_PREFERRED_NETWORK_TYPE
3916 */
3917#define RIL_REQUEST_GET_PREFERRED_NETWORK_TYPE 74
3918
3919/**
3920 * RIL_REQUEST_NEIGHBORING_CELL_IDS
3921 *
3922 * Request neighboring cell id in GSM network
3923 *
3924 * "data" is NULL
3925 * "response" must be a " const RIL_NeighboringCell** "
3926 *
3927 * Valid errors:
3928 * SUCCESS
3929 * RADIO_NOT_AVAILABLE
3930 * GENERIC_FAILURE
3931 */
3932#define RIL_REQUEST_GET_NEIGHBORING_CELL_IDS 75
3933
3934/**
3935 * RIL_REQUEST_SET_LOCATION_UPDATES
Wink Saville3d54e742009-05-18 18:00:44 -07003936 *
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003937 * Enables/disables network state change notifications due to changes in
jsh43265612009-09-29 17:46:11 -07003938 * LAC and/or CID (for GSM) or BID/SID/NID/latitude/longitude (for CDMA).
3939 * Basically +CREG=2 vs. +CREG=1 (TS 27.007).
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003940 *
3941 * Note: The RIL implementation should default to "updates enabled"
3942 * when the screen is on and "updates disabled" when the screen is off.
3943 *
3944 * "data" is int *
3945 * ((int *)data)[0] is == 1 for updates enabled (+CREG=2)
3946 * ((int *)data)[0] is == 0 for updates disabled (+CREG=1)
3947 *
3948 * "response" is NULL
Wink Saville3d54e742009-05-18 18:00:44 -07003949 *
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08003950 * Valid errors:
3951 * SUCCESS
3952 * RADIO_NOT_AVAILABLE
3953 * GENERIC_FAILURE
3954 *
3955 * See also: RIL_REQUEST_SCREEN_STATE, RIL_UNSOL_RESPONSE_NETWORK_STATE_CHANGED
3956 */
3957#define RIL_REQUEST_SET_LOCATION_UPDATES 76
3958
Wink Savillef4c4d362009-04-02 01:37:03 -07003959/**
Wink Savillec0114b32011-02-18 10:14:07 -08003960 * RIL_REQUEST_CDMA_SET_SUBSCRIPTION_SOURCE
Wink Saville7f856802009-06-09 10:23:37 -07003961 *
Wink Savillef4c4d362009-04-02 01:37:03 -07003962 * Request to set the location where the CDMA subscription shall
3963 * be retrieved
3964 *
3965 * "data" is int *
Wink Savillec0114b32011-02-18 10:14:07 -08003966 * ((int *)data)[0] is == RIL_CdmaSubscriptionSource
Wink Savillef4c4d362009-04-02 01:37:03 -07003967 *
3968 * "response" is NULL
3969 *
3970 * Valid errors:
3971 * SUCCESS
3972 * RADIO_NOT_AVAILABLE
3973 * GENERIC_FAILURE
3974 * SIM_ABSENT
3975 * SUBSCRIPTION_NOT_AVAILABLE
Wink Savillec0114b32011-02-18 10:14:07 -08003976 *
3977 * See also: RIL_REQUEST_CDMA_GET_SUBSCRIPTION_SOURCE
Wink Savillef4c4d362009-04-02 01:37:03 -07003978 */
Wink Savillec0114b32011-02-18 10:14:07 -08003979#define RIL_REQUEST_CDMA_SET_SUBSCRIPTION_SOURCE 77
Wink Savillef4c4d362009-04-02 01:37:03 -07003980
3981/**
3982 * RIL_REQUEST_CDMA_SET_ROAMING_PREFERENCE
Wink Saville7f856802009-06-09 10:23:37 -07003983 *
Wink Savillef4c4d362009-04-02 01:37:03 -07003984 * Request to set the roaming preferences in CDMA
3985 *
3986 * "data" is int *
3987 * ((int *)data)[0] is == 0 for Home Networks only, as defined in PRL
3988 * ((int *)data)[0] is == 1 for Roaming on Affiliated networks, as defined in PRL
3989 * ((int *)data)[0] is == 2 for Roaming on Any Network, as defined in the PRL
Wink Saville7f856802009-06-09 10:23:37 -07003990 *
Wink Savillef4c4d362009-04-02 01:37:03 -07003991 * "response" is NULL
Wink Saville7f856802009-06-09 10:23:37 -07003992 *
Wink Savillef4c4d362009-04-02 01:37:03 -07003993 * Valid errors:
3994 * SUCCESS
3995 * RADIO_NOT_AVAILABLE
3996 * GENERIC_FAILURE
3997 */
3998#define RIL_REQUEST_CDMA_SET_ROAMING_PREFERENCE 78
3999
4000/**
4001 * RIL_REQUEST_CDMA_QUERY_ROAMING_PREFERENCE
Wink Saville7f856802009-06-09 10:23:37 -07004002 *
Wink Savillef4c4d362009-04-02 01:37:03 -07004003 * Request the actual setting of the roaming preferences in CDMA in the modem
4004 *
4005 * "data" is NULL
Wink Saville7f856802009-06-09 10:23:37 -07004006 *
Wink Savillef4c4d362009-04-02 01:37:03 -07004007 * "response" is int *
4008 * ((int *)response)[0] is == 0 for Home Networks only, as defined in PRL
4009 * ((int *)response)[0] is == 1 for Roaming on Affiliated networks, as defined in PRL
4010 * ((int *)response)[0] is == 2 for Roaming on Any Network, as defined in the PRL
Wink Saville7f856802009-06-09 10:23:37 -07004011 *
Wink Savillef4c4d362009-04-02 01:37:03 -07004012 * "response" is NULL
Wink Saville7f856802009-06-09 10:23:37 -07004013 *
Wink Savillef4c4d362009-04-02 01:37:03 -07004014 * Valid errors:
4015 * SUCCESS
4016 * RADIO_NOT_AVAILABLE
4017 * GENERIC_FAILURE
4018 */
4019#define RIL_REQUEST_CDMA_QUERY_ROAMING_PREFERENCE 79
4020
4021/**
4022 * RIL_REQUEST_SET_TTY_MODE
Wink Saville7f856802009-06-09 10:23:37 -07004023 *
Wink Savillef4c4d362009-04-02 01:37:03 -07004024 * Request to set the TTY mode
4025 *
4026 * "data" is int *
4027 * ((int *)data)[0] is == 0 for TTY off
Wink Saville1b5fd232009-04-22 14:50:00 -07004028 * ((int *)data)[0] is == 1 for TTY Full
4029 * ((int *)data)[0] is == 2 for TTY HCO (hearing carryover)
4030 * ((int *)data)[0] is == 3 for TTY VCO (voice carryover)
Wink Saville7f856802009-06-09 10:23:37 -07004031 *
Wink Savillef4c4d362009-04-02 01:37:03 -07004032 * "response" is NULL
Wink Saville7f856802009-06-09 10:23:37 -07004033 *
Wink Savillef4c4d362009-04-02 01:37:03 -07004034 * Valid errors:
4035 * SUCCESS
4036 * RADIO_NOT_AVAILABLE
Ajay Nambi10345892016-03-19 09:02:28 -07004037 * INVALID_ARGUMENTS
4038 * MODEM_ERR
4039 * INTERNAL_ERR
4040 * NO_MEMOR
4041 * INVALID_ARGUMENTS
4042 * MODEM_ERR
4043 * INTERNAL_ERR
4044 * NO_MEMORYY
Wink Savillef4c4d362009-04-02 01:37:03 -07004045 * GENERIC_FAILURE
4046 */
4047#define RIL_REQUEST_SET_TTY_MODE 80
4048
4049/**
4050 * RIL_REQUEST_QUERY_TTY_MODE
Wink Saville7f856802009-06-09 10:23:37 -07004051 *
Wink Savillef4c4d362009-04-02 01:37:03 -07004052 * Request the setting of TTY mode
4053 *
4054 * "data" is NULL
Wink Saville7f856802009-06-09 10:23:37 -07004055 *
Wink Savillef4c4d362009-04-02 01:37:03 -07004056 * "response" is int *
4057 * ((int *)response)[0] is == 0 for TTY off
Wink Saville1b5fd232009-04-22 14:50:00 -07004058 * ((int *)response)[0] is == 1 for TTY Full
4059 * ((int *)response)[0] is == 2 for TTY HCO (hearing carryover)
4060 * ((int *)response)[0] is == 3 for TTY VCO (voice carryover)
Wink Savillef4c4d362009-04-02 01:37:03 -07004061 *
4062 * "response" is NULL
Wink Saville7f856802009-06-09 10:23:37 -07004063 *
Wink Savillef4c4d362009-04-02 01:37:03 -07004064 * Valid errors:
4065 * SUCCESS
4066 * RADIO_NOT_AVAILABLE
Ajay Nambi10345892016-03-19 09:02:28 -07004067 * MODEM_ERR
4068 * INTERNAL_ERR
4069 * NO_MEMORY
4070 * INVALID_ARGUMENTS
Wink Savillef4c4d362009-04-02 01:37:03 -07004071 * GENERIC_FAILURE
4072 */
4073#define RIL_REQUEST_QUERY_TTY_MODE 81
4074
4075/**
4076 * RIL_REQUEST_CDMA_SET_PREFERRED_VOICE_PRIVACY_MODE
4077 *
4078 * Request to set the preferred voice privacy mode used in voice
4079 * scrambling
4080 *
4081 * "data" is int *
4082 * ((int *)data)[0] is == 0 for Standard Privacy Mode (Public Long Code Mask)
4083 * ((int *)data)[0] is == 1 for Enhanced Privacy Mode (Private Long Code Mask)
Wink Saville7f856802009-06-09 10:23:37 -07004084 *
Wink Savillef4c4d362009-04-02 01:37:03 -07004085 * "response" is NULL
Wink Saville7f856802009-06-09 10:23:37 -07004086 *
Wink Savillef4c4d362009-04-02 01:37:03 -07004087 * Valid errors:
4088 * SUCCESS
4089 * RADIO_NOT_AVAILABLE
Ajay Nambi10345892016-03-19 09:02:28 -07004090 * INVALID_ARGUMENTS
4091 * SYSTEM_ERR
4092 * MODEM_ERR
4093 * INTERNAL_ERR
4094 * NO_MEMORY
4095 * INVALID_CALL_ID
Wink Savillef4c4d362009-04-02 01:37:03 -07004096 * GENERIC_FAILURE
4097 */
4098#define RIL_REQUEST_CDMA_SET_PREFERRED_VOICE_PRIVACY_MODE 82
4099
4100/**
4101 * RIL_REQUEST_CDMA_QUERY_PREFERRED_VOICE_PRIVACY_MODE
Wink Saville7f856802009-06-09 10:23:37 -07004102 *
Wink Savillef4c4d362009-04-02 01:37:03 -07004103 * Request the setting of preferred voice privacy mode
4104 *
4105 * "data" is NULL
Wink Saville7f856802009-06-09 10:23:37 -07004106 *
Wink Savillef4c4d362009-04-02 01:37:03 -07004107 * "response" is int *
4108 * ((int *)response)[0] is == 0 for Standard Privacy Mode (Public Long Code Mask)
4109 * ((int *)response)[0] is == 1 for Enhanced Privacy Mode (Private Long Code Mask)
Wink Saville7f856802009-06-09 10:23:37 -07004110 *
Wink Savillef4c4d362009-04-02 01:37:03 -07004111 * "response" is NULL
Wink Saville7f856802009-06-09 10:23:37 -07004112 *
Wink Savillef4c4d362009-04-02 01:37:03 -07004113 * Valid errors:
4114 * SUCCESS
4115 * RADIO_NOT_AVAILABLE
Ajay Nambi10345892016-03-19 09:02:28 -07004116 * MODEM_ERR
4117 * INTERNAL_ERR
4118 * NO_MEMORY
4119 * INVALID_ARGUMENTS
Wink Savillef4c4d362009-04-02 01:37:03 -07004120 * GENERIC_FAILURE
4121 */
4122#define RIL_REQUEST_CDMA_QUERY_PREFERRED_VOICE_PRIVACY_MODE 83
4123
4124/**
4125 * RIL_REQUEST_CDMA_FLASH
4126 *
4127 * Send FLASH
4128 *
4129 * "data" is const char *
4130 * ((const char *)data)[0] is a FLASH string
Wink Saville7f856802009-06-09 10:23:37 -07004131 *
Wink Savillef4c4d362009-04-02 01:37:03 -07004132 * "response" is NULL
Wink Saville7f856802009-06-09 10:23:37 -07004133 *
Wink Savillef4c4d362009-04-02 01:37:03 -07004134 * Valid errors:
4135 * SUCCESS
4136 * RADIO_NOT_AVAILABLE
Ajay Nambi10345892016-03-19 09:02:28 -07004137 * INVALID_ARGUMENTS
4138 * NO_MEMORY
4139 * SYSTEM_ERR
4140 * MODEM_ERR
4141 * INTERNAL_ERR
4142 * INVALID_CALL_ID
4143 * INVALID_STATE
Wink Savillef4c4d362009-04-02 01:37:03 -07004144 * GENERIC_FAILURE
4145 *
4146 */
4147#define RIL_REQUEST_CDMA_FLASH 84
4148
4149/**
4150 * RIL_REQUEST_CDMA_BURST_DTMF
4151 *
4152 * Send DTMF string
4153 *
jsh602f80f2009-07-10 15:44:37 -07004154 * "data" is const char **
4155 * ((const char **)data)[0] is a DTMF string
4156 * ((const char **)data)[1] is the DTMF ON length in milliseconds, or 0 to use
4157 * default
4158 * ((const char **)data)[2] is the DTMF OFF length in milliseconds, or 0 to use
4159 * default
Wink Saville7f856802009-06-09 10:23:37 -07004160 *
Wink Savillef4c4d362009-04-02 01:37:03 -07004161 * "response" is NULL
Wink Saville7f856802009-06-09 10:23:37 -07004162 *
Wink Savillef4c4d362009-04-02 01:37:03 -07004163 * Valid errors:
4164 * SUCCESS
4165 * RADIO_NOT_AVAILABLE
Ajay Nambi10345892016-03-19 09:02:28 -07004166 * INVALID_ARGUMENTS
4167 * NO_MEMORY
4168 * SYSTEM_ERR
4169 * MODEM_ERR
4170 * INTERNAL_ERR
4171 * INVALID_CALL_ID
Wink Savillef4c4d362009-04-02 01:37:03 -07004172 * GENERIC_FAILURE
4173 *
4174 */
4175#define RIL_REQUEST_CDMA_BURST_DTMF 85
4176
4177/**
Naveen Kalla03c1edf2009-09-23 11:18:35 -07004178 * RIL_REQUEST_CDMA_VALIDATE_AND_WRITE_AKEY
Wink Savillef4c4d362009-04-02 01:37:03 -07004179 *
Naveen Kalla03c1edf2009-09-23 11:18:35 -07004180 * Takes a 26 digit string (20 digit AKEY + 6 digit checksum).
4181 * If the checksum is valid the 20 digit AKEY is written to NV,
4182 * replacing the existing AKEY no matter what it was before.
Wink Savillef4c4d362009-04-02 01:37:03 -07004183 *
4184 * "data" is const char *
Naveen Kalla03c1edf2009-09-23 11:18:35 -07004185 * ((const char *)data)[0] is a 26 digit string (ASCII digits '0'-'9')
4186 * where the last 6 digits are a checksum of the
4187 * first 20, as specified in TR45.AHAG
4188 * "Common Cryptographic Algorithms, Revision D.1
4189 * Section 2.2"
Wink Saville7f856802009-06-09 10:23:37 -07004190 *
Wink Savillef4c4d362009-04-02 01:37:03 -07004191 * "response" is NULL
Wink Saville7f856802009-06-09 10:23:37 -07004192 *
Wink Savillef4c4d362009-04-02 01:37:03 -07004193 * Valid errors:
4194 * SUCCESS
4195 * RADIO_NOT_AVAILABLE
4196 * GENERIC_FAILURE
4197 *
4198 */
Naveen Kalla03c1edf2009-09-23 11:18:35 -07004199#define RIL_REQUEST_CDMA_VALIDATE_AND_WRITE_AKEY 86
Wink Savillef4c4d362009-04-02 01:37:03 -07004200
4201/**
4202 * RIL_REQUEST_CDMA_SEND_SMS
4203 *
4204 * Send a CDMA SMS message
4205 *
4206 * "data" is const RIL_CDMA_SMS_Message *
Wink Saville7f856802009-06-09 10:23:37 -07004207 *
Wink Savillef4c4d362009-04-02 01:37:03 -07004208 * "response" is a const RIL_SMS_Response *
Wink Saville7f856802009-06-09 10:23:37 -07004209 *
johnwangbfb151b2009-09-11 15:20:38 -07004210 * Based on the return error, caller decides to resend if sending sms
4211 * fails. The CDMA error class is derived as follows,
4212 * SUCCESS is error class 0 (no error)
4213 * SMS_SEND_FAIL_RETRY is error class 2 (temporary failure)
4214 * and GENERIC_FAILURE is error class 3 (permanent and no retry)
4215 *
Wink Savillef4c4d362009-04-02 01:37:03 -07004216 * Valid errors:
4217 * SUCCESS
4218 * RADIO_NOT_AVAILABLE
Wink Saville1b5fd232009-04-22 14:50:00 -07004219 * SMS_SEND_FAIL_RETRY
twen.changdf7add02016-03-04 18:27:48 +08004220 * NETWORK_REJECT
Ajay Nambi68900f52016-03-11 12:02:55 -08004221 * INVALID_STATE
4222 * INVALID_ARGUMENTS
4223 * NO_MEMORY
4224 * REQUEST_RATE_LIMITED
4225 * INVALID_SMS_FORMAT
4226 * SYSTEM_ERR
4227 * FDN_CHECK_FAILURE
4228 * MODEM_ERR
4229 * NETWORK_ERR
4230 * ENCODING_ERR
4231 * INVALID_SMSC_ADDRESS
4232 * MODE_NOT_SUPPORTED
Wink Savillef4c4d362009-04-02 01:37:03 -07004233 * GENERIC_FAILURE
4234 *
4235 */
4236#define RIL_REQUEST_CDMA_SEND_SMS 87
4237
4238/**
4239 * RIL_REQUEST_CDMA_SMS_ACKNOWLEDGE
4240 *
4241 * Acknowledge the success or failure in the receipt of SMS
4242 * previously indicated via RIL_UNSOL_RESPONSE_CDMA_NEW_SMS
4243 *
4244 * "data" is const RIL_CDMA_SMS_Ack *
Wink Saville7f856802009-06-09 10:23:37 -07004245 *
Wink Savillef4c4d362009-04-02 01:37:03 -07004246 * "response" is NULL
Wink Saville7f856802009-06-09 10:23:37 -07004247 *
Wink Savillef4c4d362009-04-02 01:37:03 -07004248 * Valid errors:
4249 * SUCCESS
4250 * RADIO_NOT_AVAILABLE
Ajay Nambi68900f52016-03-11 12:02:55 -08004251 * INVALID_ARGUMENTS
4252 * NO_SMS_TO_ACK
4253 * INVALID_STATE
4254 * NO_MEMORY
4255 * REQUEST_RATE_LIMITED
4256 * SYSTEM_ERR
4257 * MODEM_ERR
4258 * INVALID_STATE
4259 * MODE_NOT_SUPPORTED
4260 * NETWORK_NOT_READY
4261 * INVALID_MODEM_STATE
Wink Savillef4c4d362009-04-02 01:37:03 -07004262 * GENERIC_FAILURE
4263 *
4264 */
4265#define RIL_REQUEST_CDMA_SMS_ACKNOWLEDGE 88
4266
4267/**
Wink Savillea592eeb2009-05-22 13:26:36 -07004268 * RIL_REQUEST_GSM_GET_BROADCAST_SMS_CONFIG
Wink Savillef4c4d362009-04-02 01:37:03 -07004269 *
Wink Savillea592eeb2009-05-22 13:26:36 -07004270 * Request the setting of GSM/WCDMA Cell Broadcast SMS config.
4271 *
Wink Savillef4c4d362009-04-02 01:37:03 -07004272 * "data" is NULL
Wink Savillea592eeb2009-05-22 13:26:36 -07004273 *
4274 * "response" is a const RIL_GSM_BroadcastSmsConfigInfo **
4275 * "responselen" is count * sizeof (RIL_GSM_BroadcastSmsConfigInfo *)
4276 *
Wink Savillef4c4d362009-04-02 01:37:03 -07004277 * Valid errors:
4278 * SUCCESS
4279 * RADIO_NOT_AVAILABLE
Ajay Nambi68900f52016-03-11 12:02:55 -08004280 * INVALID_STATE
4281 * NO_MEMORY
4282 * REQUEST_RATE_LIMITED
4283 * SYSTEM_ERR
4284 * NO_RESOURCES
4285 * MODEM_ERR
4286 * SYSTEM_ERR
Wink Savillef4c4d362009-04-02 01:37:03 -07004287 * GENERIC_FAILURE
4288 *
4289 */
Wink Savillea592eeb2009-05-22 13:26:36 -07004290#define RIL_REQUEST_GSM_GET_BROADCAST_SMS_CONFIG 89
Wink Savillef4c4d362009-04-02 01:37:03 -07004291
4292/**
Wink Savillea592eeb2009-05-22 13:26:36 -07004293 * RIL_REQUEST_GSM_SET_BROADCAST_SMS_CONFIG
Wink Savillef4c4d362009-04-02 01:37:03 -07004294 *
4295 * Set GSM/WCDMA Cell Broadcast SMS config
4296 *
Wink Savillea592eeb2009-05-22 13:26:36 -07004297 * "data" is a const RIL_GSM_BroadcastSmsConfigInfo **
4298 * "datalen" is count * sizeof(RIL_GSM_BroadcastSmsConfigInfo *)
4299 *
Wink Savillef4c4d362009-04-02 01:37:03 -07004300 * "response" is NULL
Wink Savillea592eeb2009-05-22 13:26:36 -07004301 *
Wink Savillef4c4d362009-04-02 01:37:03 -07004302 * Valid errors:
4303 * SUCCESS
4304 * RADIO_NOT_AVAILABLE
Ajay Nambi68900f52016-03-11 12:02:55 -08004305 * INVALID_STATE
4306 * INVALID_ARGUMENTS
4307 * NO_MEMORY
4308 * SYSTEM_ERR
4309 * REQUEST_RATE_LIMITED
4310 * MODEM_ERR
4311 * SYSTEM_ERR
Wink Savillef4c4d362009-04-02 01:37:03 -07004312 * GENERIC_FAILURE
4313 *
4314 */
Wink Savillea592eeb2009-05-22 13:26:36 -07004315#define RIL_REQUEST_GSM_SET_BROADCAST_SMS_CONFIG 90
Wink Savillef4c4d362009-04-02 01:37:03 -07004316
4317/**
Wink Savillea592eeb2009-05-22 13:26:36 -07004318 * RIL_REQUEST_GSM_SMS_BROADCAST_ACTIVATION
Wink Savillef4c4d362009-04-02 01:37:03 -07004319 *
Wink Savillea592eeb2009-05-22 13:26:36 -07004320* Enable or disable the reception of GSM/WCDMA Cell Broadcast SMS
Wink Savillef4c4d362009-04-02 01:37:03 -07004321 *
4322 * "data" is const int *
4323 * (const int *)data[0] indicates to activate or turn off the
4324 * reception of GSM/WCDMA Cell Broadcast SMS, 0-1,
4325 * 0 - Activate, 1 - Turn off
Wink Savillea592eeb2009-05-22 13:26:36 -07004326 *
Wink Savillef4c4d362009-04-02 01:37:03 -07004327 * "response" is NULL
Wink Savillea592eeb2009-05-22 13:26:36 -07004328 *
Wink Savillef4c4d362009-04-02 01:37:03 -07004329 * Valid errors:
4330 * SUCCESS
4331 * RADIO_NOT_AVAILABLE
Ajay Nambi68900f52016-03-11 12:02:55 -08004332 * INVALID_STATE
4333 * INVALID_ARGUMENTS
4334 * NO_MEMORY
4335 * SYSTEM_ERR
4336 * REQUEST_RATE_LIMITED
4337 * MODEM_ERR
Wink Savillef4c4d362009-04-02 01:37:03 -07004338 * GENERIC_FAILURE
4339 *
4340 */
Wink Savillea592eeb2009-05-22 13:26:36 -07004341#define RIL_REQUEST_GSM_SMS_BROADCAST_ACTIVATION 91
Wink Savillef4c4d362009-04-02 01:37:03 -07004342
4343/**
Wink Savillea592eeb2009-05-22 13:26:36 -07004344 * RIL_REQUEST_CDMA_GET_BROADCAST_SMS_CONFIG
Wink Savillef4c4d362009-04-02 01:37:03 -07004345 *
4346 * Request the setting of CDMA Broadcast SMS config
4347 *
4348 * "data" is NULL
Wink Savillea592eeb2009-05-22 13:26:36 -07004349 *
4350 * "response" is a const RIL_CDMA_BroadcastSmsConfigInfo **
4351 * "responselen" is count * sizeof (RIL_CDMA_BroadcastSmsConfigInfo *)
4352 *
Wink Savillef4c4d362009-04-02 01:37:03 -07004353 * Valid errors:
4354 * SUCCESS
4355 * RADIO_NOT_AVAILABLE
Ajay Nambi68900f52016-03-11 12:02:55 -08004356 * INVALID_STATE
4357 * NO_MEMORY
4358 * REQUEST_RATE_LIMITED
4359 * SYSTEM_ERR
4360 * NO_RESOURCES
4361 * MODEM_ERR
4362 * SYSTEM_ERR
Wink Savillef4c4d362009-04-02 01:37:03 -07004363 * GENERIC_FAILURE
4364 *
4365 */
Wink Savillea592eeb2009-05-22 13:26:36 -07004366#define RIL_REQUEST_CDMA_GET_BROADCAST_SMS_CONFIG 92
Wink Savillef4c4d362009-04-02 01:37:03 -07004367
4368/**
Wink Savillea592eeb2009-05-22 13:26:36 -07004369 * RIL_REQUEST_CDMA_SET_BROADCAST_SMS_CONFIG
Wink Savillef4c4d362009-04-02 01:37:03 -07004370 *
4371 * Set CDMA Broadcast SMS config
4372 *
Jack Yu06181bb2017-01-10 12:10:41 -08004373 * "data" is a const RIL_CDMA_BroadcastSmsConfigInfo **
Wink Savillea592eeb2009-05-22 13:26:36 -07004374 * "datalen" is count * sizeof(const RIL_CDMA_BroadcastSmsConfigInfo *)
4375 *
Wink Savillef4c4d362009-04-02 01:37:03 -07004376 * "response" is NULL
Wink Savillea592eeb2009-05-22 13:26:36 -07004377 *
Wink Savillef4c4d362009-04-02 01:37:03 -07004378 * Valid errors:
4379 * SUCCESS
4380 * RADIO_NOT_AVAILABLE
Ajay Nambi68900f52016-03-11 12:02:55 -08004381 * INVALID_STATE
4382 * INVALID_ARGUMENTS
4383 * NO_MEMORY
4384 * SYSTEM_ERR
4385 * REQUEST_RATE_LIMITED
4386 * MODEM_ERR
4387 * SYSTEM_ERR
Wink Savillef4c4d362009-04-02 01:37:03 -07004388 * GENERIC_FAILURE
4389 *
4390 */
Wink Savillea592eeb2009-05-22 13:26:36 -07004391#define RIL_REQUEST_CDMA_SET_BROADCAST_SMS_CONFIG 93
Wink Savillef4c4d362009-04-02 01:37:03 -07004392
4393/**
Wink Savillea592eeb2009-05-22 13:26:36 -07004394 * RIL_REQUEST_CDMA_SMS_BROADCAST_ACTIVATION
Wink Savillef4c4d362009-04-02 01:37:03 -07004395 *
4396 * Enable or disable the reception of CDMA Broadcast SMS
4397 *
4398 * "data" is const int *
4399 * (const int *)data[0] indicates to activate or turn off the
4400 * reception of CDMA Broadcast SMS, 0-1,
4401 * 0 - Activate, 1 - Turn off
Wink Savillea592eeb2009-05-22 13:26:36 -07004402 *
Wink Savillef4c4d362009-04-02 01:37:03 -07004403 * "response" is NULL
Wink Savillea592eeb2009-05-22 13:26:36 -07004404 *
Wink Savillef4c4d362009-04-02 01:37:03 -07004405 * Valid errors:
4406 * SUCCESS
4407 * RADIO_NOT_AVAILABLE
Ajay Nambi68900f52016-03-11 12:02:55 -08004408 * INVALID_STATE
4409 * INVALID_ARGUMENTS
4410 * NO_MEMORY
4411 * SYSTEM_ERR
4412 * REQUEST_RATE_LIMITED
4413 * MODEM_ERR
Wink Savillef4c4d362009-04-02 01:37:03 -07004414 * GENERIC_FAILURE
4415 *
4416 */
Wink Savillea592eeb2009-05-22 13:26:36 -07004417#define RIL_REQUEST_CDMA_SMS_BROADCAST_ACTIVATION 94
Wink Savillef4c4d362009-04-02 01:37:03 -07004418
4419/**
4420 * RIL_REQUEST_CDMA_SUBSCRIPTION
4421 *
4422 * Request the device MDN / H_SID / H_NID.
4423 *
4424 * The request is only allowed when CDMA subscription is available. When CDMA
4425 * subscription is changed, application layer should re-issue the request to
4426 * update the subscription information.
4427 *
4428 * If a NULL value is returned for any of the device id, it means that error
4429 * accessing the device.
4430 *
4431 * "response" is const char **
4432 * ((const char **)response)[0] is MDN if CDMA subscription is available
jsh29be25c2009-07-14 20:18:59 -07004433 * ((const char **)response)[1] is a comma separated list of H_SID (Home SID) if
4434 * CDMA subscription is available, in decimal format
4435 * ((const char **)response)[2] is a comma separated list of H_NID (Home NID) if
4436 * CDMA subscription is available, in decimal format
Wink Saville1b5fd232009-04-22 14:50:00 -07004437 * ((const char **)response)[3] is MIN (10 digits, MIN2+MIN1) if CDMA subscription is available
Wink Savilled4ee7dc2009-06-05 15:11:30 -07004438 * ((const char **)response)[4] is PRL version if CDMA subscription is available
Wink Savillef4c4d362009-04-02 01:37:03 -07004439 *
4440 * Valid errors:
4441 * SUCCESS
4442 * RIL_E_SUBSCRIPTION_NOT_AVAILABLE
4443 */
4444
Wink Savilleeafe79d2009-04-03 18:02:34 -07004445#define RIL_REQUEST_CDMA_SUBSCRIPTION 95
Wink Savillef4c4d362009-04-02 01:37:03 -07004446
4447/**
4448 * RIL_REQUEST_CDMA_WRITE_SMS_TO_RUIM
4449 *
4450 * Stores a CDMA SMS message to RUIM memory.
4451 *
4452 * "data" is RIL_CDMA_SMS_WriteArgs *
4453 *
4454 * "response" is int *
4455 * ((const int *)response)[0] is the record index where the message is stored.
4456 *
4457 * Valid errors:
4458 * SUCCESS
4459 * RADIO_NOT_AVAILABLE
twen.changdf7add02016-03-04 18:27:48 +08004460 * SIM_FULL
Ajay Nambi68900f52016-03-11 12:02:55 -08004461 * INVALID_ARGUMENTS
4462 * INVALID_SMS_FORMAT
4463 * INTERNAL_ERR
4464 * MODEM_ERR
4465 * ENCODING_ERR
4466 * NO_MEMORY
4467 * NO_RESOURCES
4468 * INVALID_MODEM_STATE
4469 * MODE_NOT_SUPPORTED
4470 * INVALID_SMSC_ADDRESS
Wink Savillef4c4d362009-04-02 01:37:03 -07004471 * GENERIC_FAILURE
4472 *
4473 */
Wink Savilleeafe79d2009-04-03 18:02:34 -07004474#define RIL_REQUEST_CDMA_WRITE_SMS_TO_RUIM 96
Wink Savillef4c4d362009-04-02 01:37:03 -07004475
4476/**
4477 * RIL_REQUEST_CDMA_DELETE_SMS_ON_RUIM
4478 *
4479 * Deletes a CDMA SMS message from RUIM memory.
4480 *
4481 * "data" is int *
4482 * ((int *)data)[0] is the record index of the message to delete.
4483 *
4484 * "response" is NULL
4485 *
4486 * Valid errors:
4487 * SUCCESS
4488 * RADIO_NOT_AVAILABLE
Ajay Nambi68900f52016-03-11 12:02:55 -08004489 * INVALID_ARGUMENTS
4490 * NO_MEMORY
4491 * REQUEST_RATE_LIMITED
4492 * SYSTEM_ERR
4493 * MODEM_ERR
4494 * NO_SUCH_ENTRY
Wink Savillef4c4d362009-04-02 01:37:03 -07004495 * GENERIC_FAILURE
4496 *
4497 */
Wink Savilleeafe79d2009-04-03 18:02:34 -07004498#define RIL_REQUEST_CDMA_DELETE_SMS_ON_RUIM 97
Wink Savillef4c4d362009-04-02 01:37:03 -07004499
4500/**
4501 * RIL_REQUEST_DEVICE_IDENTITY
Wink Savilleeafe79d2009-04-03 18:02:34 -07004502 *
4503 * Request the device ESN / MEID / IMEI / IMEISV.
4504 *
Wink Savillef4c4d362009-04-02 01:37:03 -07004505 * The request is always allowed and contains GSM and CDMA device identity;
Wink Savilleeafe79d2009-04-03 18:02:34 -07004506 * it substitutes the deprecated requests RIL_REQUEST_GET_IMEI and
Wink Savillef4c4d362009-04-02 01:37:03 -07004507 * RIL_REQUEST_GET_IMEISV.
Wink Savilleeafe79d2009-04-03 18:02:34 -07004508 *
4509 * If a NULL value is returned for any of the device id, it means that error
Wink Savillef4c4d362009-04-02 01:37:03 -07004510 * accessing the device.
Wink Savilleeafe79d2009-04-03 18:02:34 -07004511 *
4512 * When CDMA subscription is changed the ESN/MEID may change. The application
Wink Savillef4c4d362009-04-02 01:37:03 -07004513 * layer should re-issue the request to update the device identity in this case.
Wink Savilleeafe79d2009-04-03 18:02:34 -07004514 *
Wink Savillef4c4d362009-04-02 01:37:03 -07004515 * "response" is const char **
Wink Savilleeafe79d2009-04-03 18:02:34 -07004516 * ((const char **)response)[0] is IMEI if GSM subscription is available
4517 * ((const char **)response)[1] is IMEISV if GSM subscription is available
4518 * ((const char **)response)[2] is ESN if CDMA subscription is available
4519 * ((const char **)response)[3] is MEID if CDMA subscription is available
4520 *
Wink Savillef4c4d362009-04-02 01:37:03 -07004521 * Valid errors:
4522 * SUCCESS
4523 * RADIO_NOT_AVAILABLE
4524 * GENERIC_FAILURE
4525 */
Wink Savilleeafe79d2009-04-03 18:02:34 -07004526#define RIL_REQUEST_DEVICE_IDENTITY 98
Wink Savillef4c4d362009-04-02 01:37:03 -07004527
Wink Saville1b5fd232009-04-22 14:50:00 -07004528/**
4529 * RIL_REQUEST_EXIT_EMERGENCY_CALLBACK_MODE
4530 *
4531 * Request the radio's system selection module to exit emergency
4532 * callback mode. RIL will not respond with SUCCESS until the modem has
4533 * completely exited from Emergency Callback Mode.
4534 *
4535 * "data" is NULL
Wink Saville7f856802009-06-09 10:23:37 -07004536 *
Wink Saville1b5fd232009-04-22 14:50:00 -07004537 * "response" is NULL
Wink Saville7f856802009-06-09 10:23:37 -07004538 *
Wink Saville1b5fd232009-04-22 14:50:00 -07004539 * Valid errors:
4540 * SUCCESS
4541 * RADIO_NOT_AVAILABLE
twen.changdf7add02016-03-04 18:27:48 +08004542 * OPERATION_NOT_ALLOWED
Wink Saville1b5fd232009-04-22 14:50:00 -07004543 * GENERIC_FAILURE
4544 *
4545 */
4546#define RIL_REQUEST_EXIT_EMERGENCY_CALLBACK_MODE 99
Wink Savillef4c4d362009-04-02 01:37:03 -07004547
jsh000a9fe2009-05-11 14:52:35 -07004548/**
4549 * RIL_REQUEST_GET_SMSC_ADDRESS
4550 *
4551 * Queries the default Short Message Service Center address on the device.
4552 *
4553 * "data" is NULL
4554 *
4555 * "response" is const char * containing the SMSC address.
4556 *
4557 * Valid errors:
4558 * SUCCESS
4559 * RADIO_NOT_AVAILABLE
Ajay Nambi68900f52016-03-11 12:02:55 -08004560 * NO_MEMORY
4561 * REQUEST_RATE_LIMITED
4562 * SYSTEM_ERR
4563 * INTERNAL_ERR
4564 * MODEM_ERR
4565 * INVALID_ARGUMENTS
4566 * INVALID_MODEM_STATE
4567 * NOT_PROVISIONED
jsh000a9fe2009-05-11 14:52:35 -07004568 * GENERIC_FAILURE
4569 *
4570 */
4571#define RIL_REQUEST_GET_SMSC_ADDRESS 100
4572
4573/**
4574 * RIL_REQUEST_SET_SMSC_ADDRESS
4575 *
4576 * Sets the default Short Message Service Center address on the device.
4577 *
4578 * "data" is const char * containing the SMSC address.
4579 *
4580 * "response" is NULL
4581 *
4582 * Valid errors:
4583 * SUCCESS
4584 * RADIO_NOT_AVAILABLE
Ajay Nambi68900f52016-03-11 12:02:55 -08004585 * INVALID_ARGUMENTS
4586 * INVALID_SMS_FORMAT
4587 * NO_MEMORY
4588 * SYSTEM_ERR
4589 * REQUEST_RATE_LIMITED
4590 * MODEM_ERR
4591 * NO_RESOURCES
jsh000a9fe2009-05-11 14:52:35 -07004592 * GENERIC_FAILURE
4593 *
4594 */
4595#define RIL_REQUEST_SET_SMSC_ADDRESS 101
4596
jshb60444e2009-05-29 11:09:17 -07004597/**
4598 * RIL_REQUEST_REPORT_SMS_MEMORY_STATUS
4599 *
4600 * Indicates whether there is storage available for new SMS messages.
4601 *
4602 * "data" is int *
4603 * ((int *)data)[0] is 1 if memory is available for storing new messages
4604 * is 0 if memory capacity is exceeded
4605 *
4606 * "response" is NULL
4607 *
4608 * Valid errors:
4609 * SUCCESS
4610 * RADIO_NOT_AVAILABLE
Ajay Nambi68900f52016-03-11 12:02:55 -08004611 * INVALID_ARGUMENTS
4612 * NO_MEMORY
4613 * INVALID_STATE
4614 * SYSTEM_ERR
4615 * REQUEST_RATE_LIMITED
4616 * MODEM_ERR
jshb60444e2009-05-29 11:09:17 -07004617 * GENERIC_FAILURE
4618 *
4619 */
4620#define RIL_REQUEST_REPORT_SMS_MEMORY_STATUS 102
4621
Wink Saville2641d5b2009-06-08 17:40:42 -07004622/**
4623 * RIL_REQUEST_REPORT_STK_SERVICE_IS_RUNNING
4624 *
4625 * Indicates that the StkSerivce is running and is
4626 * ready to receive RIL_UNSOL_STK_XXXXX commands.
4627 *
4628 * "data" is NULL
4629 * "response" is NULL
4630 *
4631 * Valid errors:
4632 * SUCCESS
4633 * RADIO_NOT_AVAILABLE
4634 * GENERIC_FAILURE
4635 *
4636 */
4637#define RIL_REQUEST_REPORT_STK_SERVICE_IS_RUNNING 103
4638
Wink Savillec0114b32011-02-18 10:14:07 -08004639/**
4640 * RIL_REQUEST_CDMA_GET_SUBSCRIPTION_SOURCE
4641 *
4642 * Request to query the location where the CDMA subscription shall
4643 * be retrieved
4644 *
4645 * "data" is NULL
4646 *
4647 * "response" is int *
4648 * ((int *)data)[0] is == RIL_CdmaSubscriptionSource
4649 *
4650 * Valid errors:
4651 * SUCCESS
4652 * RADIO_NOT_AVAILABLE
4653 * GENERIC_FAILURE
4654 * SUBSCRIPTION_NOT_AVAILABLE
4655 *
4656 * See also: RIL_REQUEST_CDMA_SET_SUBSCRIPTION_SOURCE
4657 */
4658#define RIL_REQUEST_CDMA_GET_SUBSCRIPTION_SOURCE 104
4659
Jake Hambyfa8d5842011-08-19 16:22:18 -07004660/**
4661 * RIL_REQUEST_ISIM_AUTHENTICATION
4662 *
4663 * Request the ISIM application on the UICC to perform AKA
4664 * challenge/response algorithm for IMS authentication
4665 *
4666 * "data" is a const char * containing the challenge string in Base64 format
4667 * "response" is a const char * containing the response in Base64 format
4668 *
4669 * Valid errors:
4670 * SUCCESS
4671 * RADIO_NOT_AVAILABLE
4672 * GENERIC_FAILURE
4673 */
4674#define RIL_REQUEST_ISIM_AUTHENTICATION 105
4675
Jake Hamby300105d2011-09-26 01:01:44 -07004676/**
4677 * RIL_REQUEST_ACKNOWLEDGE_INCOMING_GSM_SMS_WITH_PDU
4678 *
4679 * Acknowledge successful or failed receipt of SMS previously indicated
4680 * via RIL_UNSOL_RESPONSE_NEW_SMS, including acknowledgement TPDU to send
4681 * as the RP-User-Data element of the RP-ACK or RP-ERROR PDU.
4682 *
4683 * "data" is const char **
4684 * ((const char **)data)[0] is "1" on successful receipt (send RP-ACK)
4685 * is "0" on failed receipt (send RP-ERROR)
4686 * ((const char **)data)[1] is the acknowledgement TPDU in hexadecimal format
4687 *
4688 * "response" is NULL
4689 *
4690 * Valid errors:
4691 * SUCCESS
4692 * RADIO_NOT_AVAILABLE
4693 * GENERIC_FAILURE
4694 */
4695#define RIL_REQUEST_ACKNOWLEDGE_INCOMING_GSM_SMS_WITH_PDU 106
4696
4697/**
4698 * RIL_REQUEST_STK_SEND_ENVELOPE_WITH_STATUS
4699 *
4700 * Requests to send a SAT/USAT envelope command to SIM.
4701 * The SAT/USAT envelope command refers to 3GPP TS 11.14 and 3GPP TS 31.111.
4702 *
4703 * This request has one difference from RIL_REQUEST_STK_SEND_ENVELOPE_COMMAND:
4704 * the SW1 and SW2 status bytes from the UICC response are returned along with
4705 * the response data, using the same structure as RIL_REQUEST_SIM_IO.
4706 *
4707 * The RIL implementation shall perform the normal processing of a '91XX'
4708 * response in SW1/SW2 to retrieve the pending proactive command and send it
4709 * as an unsolicited response, as RIL_REQUEST_STK_SEND_ENVELOPE_COMMAND does.
4710 *
4711 * "data" is a const char * containing the SAT/USAT command
4712 * in hexadecimal format starting with command tag
4713 *
4714 * "response" is a const RIL_SIM_IO_Response *
4715 *
4716 * Valid errors:
4717 * RIL_E_SUCCESS
4718 * RIL_E_RADIO_NOT_AVAILABLE (radio resetting)
twen.changdf7add02016-03-04 18:27:48 +08004719 * SIM_BUSY
4720 * OPERATION_NOT_ALLOWED
Jake Hamby300105d2011-09-26 01:01:44 -07004721 * RIL_E_GENERIC_FAILURE
4722 */
4723#define RIL_REQUEST_STK_SEND_ENVELOPE_WITH_STATUS 107
4724
Naveen Kalla2bc78d62011-12-07 16:22:53 -08004725/**
4726 * RIL_REQUEST_VOICE_RADIO_TECH
4727 *
4728 * Query the radio technology type (3GPP/3GPP2) used for voice. Query is valid only
4729 * when radio state is RADIO_STATE_ON
4730 *
4731 * "data" is NULL
4732 * "response" is int *
4733 * ((int *) response)[0] is of type const RIL_RadioTechnology
4734 *
4735 * Valid errors:
4736 * SUCCESS
4737 * RADIO_NOT_AVAILABLE
4738 * GENERIC_FAILURE
4739 */
4740#define RIL_REQUEST_VOICE_RADIO_TECH 108
4741
Wink Saville8a9e0212013-04-09 12:11:38 -07004742/**
4743 * RIL_REQUEST_GET_CELL_INFO_LIST
4744 *
4745 * Request all of the current cell information known to the radio. The radio
4746 * must a list of all current cells, including the neighboring cells. If for a particular
4747 * cell information isn't known then the appropriate unknown value will be returned.
4748 * This does not cause or change the rate of RIL_UNSOL_CELL_INFO_LIST.
4749 *
4750 * "data" is NULL
4751 *
Sanket Padawef53c5fa2016-01-27 10:00:38 -08004752 * "response" is an array of RIL_CellInfo_v12.
Wink Saville8a9e0212013-04-09 12:11:38 -07004753 */
4754#define RIL_REQUEST_GET_CELL_INFO_LIST 109
4755
4756/**
4757 * RIL_REQUEST_SET_UNSOL_CELL_INFO_LIST_RATE
4758 *
4759 * Sets the minimum time between when RIL_UNSOL_CELL_INFO_LIST should be invoked.
Wink Savillec57b3eb2013-04-17 12:51:41 -07004760 * A value of 0, means invoke RIL_UNSOL_CELL_INFO_LIST when any of the reported
Wink Saville8a9e0212013-04-09 12:11:38 -07004761 * information changes. Setting the value to INT_MAX(0x7fffffff) means never issue
4762 * a RIL_UNSOL_CELL_INFO_LIST.
4763 *
4764 * "data" is int *
4765 * ((int *)data)[0] is minimum time in milliseconds
4766 *
4767 * "response" is NULL
4768 *
4769 * Valid errors:
4770 * SUCCESS
4771 * RADIO_NOT_AVAILABLE
4772 * GENERIC_FAILURE
4773 */
4774#define RIL_REQUEST_SET_UNSOL_CELL_INFO_LIST_RATE 110
Jake Hamby300105d2011-09-26 01:01:44 -07004775
Sungmin Choi75697532013-04-26 15:04:45 -07004776/**
4777 * RIL_REQUEST_SET_INITIAL_ATTACH_APN
4778 *
4779 * Set an apn to initial attach network
Ankit Nbc37e512016-12-07 21:05:43 +05304780 *
4781 * "data" is a const char **
4782 * ((const char **)data)[0] is the APN to connect if radio technology is LTE
4783 * ((const char **)data)[1] is the connection type to request must be one of the
4784 * PDP_type values in TS 27.007 section 10.1.1.
4785 * For example, "IP", "IPV6", "IPV4V6", or "PPP".
4786 * ((const char **)data)[2] is the PAP / CHAP auth type. Values:
4787 * 0 => PAP and CHAP is never performed.
4788 * 1 => PAP may be performed; CHAP is never performed.
4789 * 2 => CHAP may be performed; PAP is never performed.
4790 * 3 => PAP / CHAP may be performed - baseband dependent.
4791 * ((const char **)data)[3] is the username for APN, or NULL
4792 * ((const char **)data)[4] is the password for APN, or NULL
4793 *
Sungmin Choi75697532013-04-26 15:04:45 -07004794 * "response" is NULL
4795 *
4796 * Valid errors:
4797 * SUCCESS
4798 * RADIO_NOT_AVAILABLE (radio resetting)
4799 * GENERIC_FAILURE
4800 * SUBSCRIPTION_NOT_AVAILABLE
4801 */
4802#define RIL_REQUEST_SET_INITIAL_ATTACH_APN 111
4803
Sukanya Rajkhowaa18b9d12013-09-10 12:30:13 -07004804/**
4805 * RIL_REQUEST_IMS_REGISTRATION_STATE
4806 *
Nathan Harold0eb43c22016-12-19 12:04:32 -08004807 * This message is DEPRECATED and shall be removed in a future release (target: 2018);
4808 * instead, provide IMS registration status via an IMS Service.
4809 *
Sukanya Rajkhowaa18b9d12013-09-10 12:30:13 -07004810 * Request current IMS registration state
4811 *
4812 * "data" is NULL
4813 *
4814 * "response" is int *
4815 * ((int *)response)[0] is registration state:
4816 * 0 - Not registered
4817 * 1 - Registered
Sukanya Rajkhowaa18b9d12013-09-10 12:30:13 -07004818 *
Wink Saville865ce3b2013-11-08 16:37:01 -08004819 * If ((int*)response)[0] is = 1, then ((int *) response)[1]
Sukanya Rajkhowaa18b9d12013-09-10 12:30:13 -07004820 * must follow with IMS SMS format:
4821 *
Wink Saville865ce3b2013-11-08 16:37:01 -08004822 * ((int *) response)[1] is of type RIL_RadioTechnologyFamily
4823 *
4824 * Valid errors:
4825 * SUCCESS
4826 * RADIO_NOT_AVAILABLE
4827 * GENERIC_FAILURE
Sukanya Rajkhowaa18b9d12013-09-10 12:30:13 -07004828 */
4829#define RIL_REQUEST_IMS_REGISTRATION_STATE 112
4830
4831/**
4832 * RIL_REQUEST_IMS_SEND_SMS
4833 *
4834 * Send a SMS message over IMS
4835 *
4836 * "data" is const RIL_IMS_SMS_Message *
4837 *
4838 * "response" is a const RIL_SMS_Response *
4839 *
4840 * Based on the return error, caller decides to resend if sending sms
4841 * fails. SMS_SEND_FAIL_RETRY means retry, and other errors means no retry.
4842 * In case of retry, data is encoded based on Voice Technology available.
4843 *
4844 * Valid errors:
4845 * SUCCESS
4846 * RADIO_NOT_AVAILABLE
4847 * SMS_SEND_FAIL_RETRY
4848 * FDN_CHECK_FAILURE
twen.changdf7add02016-03-04 18:27:48 +08004849 * NETWORK_REJECT
Ajay Nambi68900f52016-03-11 12:02:55 -08004850 * INVALID_ARGUMENTS
4851 * INVALID_STATE
4852 * NO_MEMORY
4853 * INVALID_SMS_FORMAT
4854 * SYSTEM_ERR
4855 * REQUEST_RATE_LIMITED
4856 * MODEM_ERR
4857 * NETWORK_ERR
4858 * ENCODING_ERR
4859 * INVALID_SMSC_ADDRESS
4860 * MODE_NOT_SUPPORTED
Sukanya Rajkhowaa18b9d12013-09-10 12:30:13 -07004861 * GENERIC_FAILURE
4862 *
4863 */
4864#define RIL_REQUEST_IMS_SEND_SMS 113
4865
Shishir Agrawal2458d8d2013-11-27 14:53:05 -08004866/**
4867 * RIL_REQUEST_SIM_TRANSMIT_APDU_BASIC
4868 *
4869 * Request APDU exchange on the basic channel. This command reflects TS 27.007
4870 * "generic SIM access" operation (+CSIM). The modem must ensure proper function
4871 * of GSM/CDMA, and filter commands appropriately. It should filter
4872 * channel management and SELECT by DF name commands.
4873 *
4874 * "data" is a const RIL_SIM_APDU *
4875 * "sessionid" field should be ignored.
4876 *
4877 * "response" is a const RIL_SIM_IO_Response *
4878 *
4879 * Valid errors:
4880 * SUCCESS
4881 * RADIO_NOT_AVAILABLE
4882 * GENERIC_FAILURE
4883 */
4884#define RIL_REQUEST_SIM_TRANSMIT_APDU_BASIC 114
4885
4886/**
4887 * RIL_REQUEST_SIM_OPEN_CHANNEL
4888 *
4889 * Open a new logical channel and select the given application. This command
4890 * reflects TS 27.007 "open logical channel" operation (+CCHO).
4891 *
4892 * "data" is const char * and set to AID value, See ETSI 102.221 and 101.220.
4893 *
4894 * "response" is int *
4895 * ((int *)data)[0] contains the session id of the logical channel.
Shishir Agrawal760123f2014-10-14 09:14:57 -07004896 * ((int *)data)[1] onwards may optionally contain the select response for the
4897 * open channel command with one byte per integer.
Shishir Agrawal2458d8d2013-11-27 14:53:05 -08004898 *
4899 * Valid errors:
4900 * SUCCESS
4901 * RADIO_NOT_AVAILABLE
4902 * GENERIC_FAILURE
4903 * MISSING_RESOURCE
4904 * NO_SUCH_ELEMENT
4905 */
4906#define RIL_REQUEST_SIM_OPEN_CHANNEL 115
4907
4908/**
4909 * RIL_REQUEST_SIM_CLOSE_CHANNEL
4910 *
4911 * Close a previously opened logical channel. This command reflects TS 27.007
4912 * "close logical channel" operation (+CCHC).
4913 *
4914 * "data" is int *
4915 * ((int *)data)[0] is the session id of logical the channel to close.
4916 *
4917 * "response" is NULL
4918 *
4919 * Valid errors:
4920 * SUCCESS
4921 * RADIO_NOT_AVAILABLE
4922 * GENERIC_FAILURE
4923 */
4924#define RIL_REQUEST_SIM_CLOSE_CHANNEL 116
4925
4926/**
4927 * RIL_REQUEST_SIM_TRANSMIT_APDU_CHANNEL
4928 *
4929 * Exchange APDUs with a UICC over a previously opened logical channel. This
4930 * command reflects TS 27.007 "generic logical channel access" operation
4931 * (+CGLA). The modem should filter channel management and SELECT by DF name
4932 * commands.
4933 *
4934 * "data" is a const RIL_SIM_APDU*
4935 *
4936 * "response" is a const RIL_SIM_IO_Response *
4937 *
4938 * Valid errors:
4939 * SUCCESS
4940 * RADIO_NOT_AVAILABLE
4941 * GENERIC_FAILURE
4942 */
4943#define RIL_REQUEST_SIM_TRANSMIT_APDU_CHANNEL 117
4944
Jake Hamby8a4a2332014-01-15 13:12:05 -08004945/**
4946 * RIL_REQUEST_NV_READ_ITEM
4947 *
4948 * Read one of the radio NV items defined in RadioNVItems.java / ril_nv_items.h.
4949 * This is used for device configuration by some CDMA operators.
4950 *
4951 * "data" is a const RIL_NV_ReadItem *
4952 *
4953 * "response" is const char * containing the contents of the NV item
4954 *
4955 * Valid errors:
4956 * SUCCESS
4957 * RADIO_NOT_AVAILABLE
4958 * GENERIC_FAILURE
4959 */
4960#define RIL_REQUEST_NV_READ_ITEM 118
4961
4962/**
4963 * RIL_REQUEST_NV_WRITE_ITEM
4964 *
4965 * Write one of the radio NV items defined in RadioNVItems.java / ril_nv_items.h.
4966 * This is used for device configuration by some CDMA operators.
4967 *
4968 * "data" is a const RIL_NV_WriteItem *
4969 *
4970 * "response" is NULL
4971 *
4972 * Valid errors:
4973 * SUCCESS
4974 * RADIO_NOT_AVAILABLE
4975 * GENERIC_FAILURE
4976 */
4977#define RIL_REQUEST_NV_WRITE_ITEM 119
4978
4979/**
4980 * RIL_REQUEST_NV_WRITE_CDMA_PRL
4981 *
4982 * Update the CDMA Preferred Roaming List (PRL) in the radio NV storage.
4983 * This is used for device configuration by some CDMA operators.
4984 *
4985 * "data" is a const char * containing the PRL as a byte array
4986 *
4987 * "response" is NULL
4988 *
4989 * Valid errors:
4990 * SUCCESS
4991 * RADIO_NOT_AVAILABLE
4992 * GENERIC_FAILURE
4993 */
4994#define RIL_REQUEST_NV_WRITE_CDMA_PRL 120
4995
4996/**
4997 * RIL_REQUEST_NV_RESET_CONFIG
4998 *
4999 * Reset the radio NV configuration to the factory state.
5000 * This is used for device configuration by some CDMA operators.
5001 *
5002 * "data" is int *
Jake Hambyd27c9d52014-02-06 14:52:05 -08005003 * ((int *)data)[0] is 1 to reload all NV items
5004 * ((int *)data)[0] is 2 for erase NV reset (SCRTN)
5005 * ((int *)data)[0] is 3 for factory reset (RTN)
Jake Hamby8a4a2332014-01-15 13:12:05 -08005006 *
5007 * "response" is NULL
5008 *
5009 * Valid errors:
5010 * SUCCESS
5011 * RADIO_NOT_AVAILABLE
5012 * GENERIC_FAILURE
5013 */
5014#define RIL_REQUEST_NV_RESET_CONFIG 121
5015
Etan Cohend3652192014-06-20 08:28:44 -07005016 /** RIL_REQUEST_SET_UICC_SUBSCRIPTION
5017 * FIXME This API needs to have more documentation.
5018 *
5019 * Selection/de-selection of a subscription from a SIM card
5020 * "data" is const RIL_SelectUiccSub*
5021
5022 *
5023 * "response" is NULL
5024 *
5025 * Valid errors:
5026 * SUCCESS
5027 * RADIO_NOT_AVAILABLE (radio resetting)
5028 * GENERIC_FAILURE
5029 * SUBSCRIPTION_NOT_SUPPORTED
5030 *
5031 */
5032#define RIL_REQUEST_SET_UICC_SUBSCRIPTION 122
5033
5034/**
5035 * RIL_REQUEST_ALLOW_DATA
5036 *
5037 * Tells the modem whether data calls are allowed or not
5038 *
5039 * "data" is int *
5040 * FIXME slotId and aid will be added.
5041 * ((int *)data)[0] is == 0 to allow data calls
5042 * ((int *)data)[0] is == 1 to disallow data calls
5043 *
5044 * "response" is NULL
5045 *
5046 * Valid errors:
5047 *
5048 * SUCCESS
5049 * RADIO_NOT_AVAILABLE (radio resetting)
5050 * GENERIC_FAILURE
5051 *
5052 */
5053#define RIL_REQUEST_ALLOW_DATA 123
5054
5055/**
5056 * RIL_REQUEST_GET_HARDWARE_CONFIG
5057 *
5058 * Request all of the current hardware (modem and sim) associated
5059 * with the RIL.
5060 *
5061 * "data" is NULL
5062 *
5063 * "response" is an array of RIL_HardwareConfig.
5064 */
5065#define RIL_REQUEST_GET_HARDWARE_CONFIG 124
5066
5067/**
Amit Mahajan2b772032014-06-26 14:20:11 -07005068 * RIL_REQUEST_SIM_AUTHENTICATION
Etan Cohend3652192014-06-20 08:28:44 -07005069 *
5070 * Returns the response of SIM Authentication through RIL to a
5071 * challenge request.
5072 *
5073 * "data" Base64 encoded string containing challenge:
5074 * int authContext; P2 value of authentication command, see P2 parameter in
5075 * 3GPP TS 31.102 7.1.2
5076 * char *authData; the challenge string in Base64 format, see 3GPP
5077 * TS 31.102 7.1.2
5078 * char *aid; AID value, See ETSI 102.221 8.1 and 101.220 4,
5079 * NULL if no value
5080 *
5081 * "response" Base64 encoded strings containing response:
5082 * int sw1; Status bytes per 3GPP TS 31.102 section 7.3
5083 * int sw2;
5084 * char *simResponse; Response in Base64 format, see 3GPP TS 31.102 7.1.2
5085 */
Amit Mahajan2b772032014-06-26 14:20:11 -07005086#define RIL_REQUEST_SIM_AUTHENTICATION 125
Shishir Agrawal2458d8d2013-11-27 14:53:05 -08005087
Wink Savillec29360a2014-07-13 05:17:28 -07005088/**
5089 * RIL_REQUEST_GET_DC_RT_INFO
5090 *
Sooraj Sasindran73f2ccb2015-04-08 17:23:07 -07005091 * The request is DEPRECATED, use RIL_REQUEST_GET_ACTIVITY_INFO
Wink Savillec29360a2014-07-13 05:17:28 -07005092 * Requests the Data Connection Real Time Info
5093 *
5094 * "data" is NULL
5095 *
5096 * "response" is the most recent RIL_DcRtInfo
5097 *
5098 * Valid errors:
5099 * SUCCESS
5100 * RADIO_NOT_AVAILABLE
5101 * GENERIC_FAILURE
5102 *
5103 * See also: RIL_UNSOL_DC_RT_INFO_CHANGED
5104 */
5105#define RIL_REQUEST_GET_DC_RT_INFO 126
5106
5107/**
5108 * RIL_REQUEST_SET_DC_RT_INFO_RATE
5109 *
Sooraj Sasindran73f2ccb2015-04-08 17:23:07 -07005110 * The request is DEPRECATED
Wink Savillec29360a2014-07-13 05:17:28 -07005111 * This is the minimum number of milliseconds between successive
5112 * RIL_UNSOL_DC_RT_INFO_CHANGED messages and defines the highest rate
5113 * at which RIL_UNSOL_DC_RT_INFO_CHANGED's will be sent. A value of
5114 * 0 means send as fast as possible.
5115 *
5116 * "data" The number of milliseconds as an int
5117 *
5118 * "response" is null
5119 *
5120 * Valid errors:
5121 * SUCCESS must not fail
5122 */
5123#define RIL_REQUEST_SET_DC_RT_INFO_RATE 127
5124
Amit Mahajanc796e222014-08-13 16:54:01 +00005125/**
5126 * RIL_REQUEST_SET_DATA_PROFILE
5127 *
5128 * Set data profile in modem
Hui Wang8d679622014-10-16 14:59:27 -05005129 * Modem should erase existed profiles from framework, and apply new profiles
Jack Yu06181bb2017-01-10 12:10:41 -08005130 * "data" is a const RIL_DataProfileInfo **
Amit Mahajanc796e222014-08-13 16:54:01 +00005131 * "datalen" is count * sizeof(const RIL_DataProfileInfo *)
5132 * "response" is NULL
5133 *
5134 * Valid errors:
5135 * SUCCESS
5136 * RADIO_NOT_AVAILABLE (radio resetting)
5137 * GENERIC_FAILURE
5138 * SUBSCRIPTION_NOT_AVAILABLE
5139 */
5140#define RIL_REQUEST_SET_DATA_PROFILE 128
Naveen Kallaa65a16a2014-07-31 16:48:31 -07005141
5142/**
5143 * RIL_REQUEST_SHUTDOWN
5144 *
5145 * Device is shutting down. All further commands are ignored
5146 * and RADIO_NOT_AVAILABLE must be returned.
5147 *
5148 * "data" is null
5149 * "response" is NULL
5150 *
5151 * Valid errors:
5152 * SUCCESS
5153 * RADIO_NOT_AVAILABLE
twen.changdf7add02016-03-04 18:27:48 +08005154 * OPERATION_NOT_ALLOWED
Naveen Kallaa65a16a2014-07-31 16:48:31 -07005155 * GENERIC_FAILURE
5156 */
5157#define RIL_REQUEST_SHUTDOWN 129
5158
Wink Saville8b4e4f72014-10-17 15:01:45 -07005159/**
5160 * RIL_REQUEST_GET_RADIO_CAPABILITY
5161 *
5162 * Used to get phone radio capablility.
5163 *
Abhishek Adappa772c0d22015-02-09 11:11:12 -08005164 * "data" is the RIL_RadioCapability structure
Wink Saville8b4e4f72014-10-17 15:01:45 -07005165 *
5166 * Valid errors:
5167 * SUCCESS
5168 * RADIO_NOT_AVAILABLE
twen.changdf7add02016-03-04 18:27:48 +08005169 * OPERATION_NOT_ALLOWED
Wink Saville8b4e4f72014-10-17 15:01:45 -07005170 * GENERIC_FAILURE
5171 */
5172#define RIL_REQUEST_GET_RADIO_CAPABILITY 130
5173
5174/**
5175 * RIL_REQUEST_SET_RADIO_CAPABILITY
5176 *
5177 * Used to set the phones radio capability. Be VERY careful
5178 * using this request as it may cause some vendor modems to reset. Because
5179 * of the possible modem reset any RIL commands after this one may not be
5180 * processed.
5181 *
5182 * "data" is the RIL_RadioCapability structure
5183 *
5184 * "response" is the RIL_RadioCapability structure, used to feedback return status
5185 *
5186 * Valid errors:
5187 * SUCCESS means a RIL_UNSOL_RADIO_CAPABILITY will be sent within 30 seconds.
5188 * RADIO_NOT_AVAILABLE
twen.changdf7add02016-03-04 18:27:48 +08005189 * OPERATION_NOT_ALLOWED
Wink Saville8b4e4f72014-10-17 15:01:45 -07005190 * GENERIC_FAILURE
5191 */
5192#define RIL_REQUEST_SET_RADIO_CAPABILITY 131
5193
fengluf7408292015-04-14 14:53:55 -07005194/**
5195 * RIL_REQUEST_START_LCE
5196 *
5197 * Start Link Capacity Estimate (LCE) service if supported by the radio.
5198 *
5199 * "data" is const int *
5200 * ((const int*)data)[0] specifies the desired reporting interval (ms).
fenglu290add32015-05-01 17:05:15 -07005201 * ((const int*)data)[1] specifies the LCE service mode. 1: PULL; 0: PUSH.
fengluf7408292015-04-14 14:53:55 -07005202 *
fenglu290add32015-05-01 17:05:15 -07005203 * "response" is the RIL_LceStatusInfo.
fengluf7408292015-04-14 14:53:55 -07005204 *
5205 * Valid errors:
5206 * SUCCESS
5207 * RADIO_NOT_AVAILABLE
5208 * LCE_NOT_SUPPORTED
5209 */
5210#define RIL_REQUEST_START_LCE 132
5211
5212/**
5213 * RIL_REQUEST_STOP_LCE
5214 *
5215 * Stop Link Capacity Estimate (LCE) service, the STOP operation should be
5216 * idempotent for the radio modem.
5217 *
fenglu290add32015-05-01 17:05:15 -07005218 * "response" is the RIL_LceStatusInfo.
fengluf7408292015-04-14 14:53:55 -07005219 *
5220 * Valid errors:
5221 * SUCCESS
5222 * RADIO_NOT_AVAILABLE
5223 * LCE_NOT_SUPPORTED
5224 */
5225#define RIL_REQUEST_STOP_LCE 133
5226
5227/**
5228 * RIL_REQUEST_PULL_LCEDATA
5229 *
5230 * Pull LCE service for capacity information.
5231 *
fenglu290add32015-05-01 17:05:15 -07005232 * "response" is the RIL_LceDataInfo.
fengluf7408292015-04-14 14:53:55 -07005233 *
5234 * Valid errors:
5235 * SUCCESS
5236 * RADIO_NOT_AVAILABLE
5237 * LCE_NOT_SUPPORTED
5238 */
5239#define RIL_REQUEST_PULL_LCEDATA 134
5240
Sooraj Sasindran73f2ccb2015-04-08 17:23:07 -07005241/**
5242 * RIL_REQUEST_GET_ACTIVITY_INFO
5243 *
Nathan Haroldc8635212016-10-10 11:15:21 -07005244 * Get modem activity information for power consumption estimation.
Sooraj Sasindran73f2ccb2015-04-08 17:23:07 -07005245 *
Nathan Haroldc8635212016-10-10 11:15:21 -07005246 * Request clear-on-read statistics information that is used for
5247 * estimating the per-millisecond power consumption of the cellular
5248 * modem.
Sooraj Sasindran73f2ccb2015-04-08 17:23:07 -07005249 *
5250 * "data" is null
5251 * "response" is const RIL_ActivityStatsInfo *
5252 *
5253 * Valid errors:
5254 *
5255 * SUCCESS
5256 * RADIO_NOT_AVAILABLE (radio resetting)
5257 * GENERIC_FAILURE
5258 */
5259#define RIL_REQUEST_GET_ACTIVITY_INFO 135
Naveen Kallaa65a16a2014-07-31 16:48:31 -07005260
Meng Wangb4e34312016-05-12 14:54:36 -07005261/**
5262 * RIL_REQUEST_SET_CARRIER_RESTRICTIONS
5263 *
Meng Wangd5c540f2016-07-15 15:41:19 -07005264 * Set carrier restrictions for this sim slot. Expected modem behavior:
5265 * If never receives this command
5266 * - Must allow all carriers
5267 * Receives this command with data being NULL
5268 * - Must allow all carriers. If a previously allowed SIM is present, modem must not reload
5269 * the SIM. If a previously disallowed SIM is present, reload the SIM and notify Android.
5270 * Receives this command with a list of carriers
5271 * - Only allow specified carriers, persist across power cycles and FDR. If a present SIM
5272 * is in the allowed list, modem must not reload the SIM. If a present SIM is *not* in
5273 * the allowed list, modem must detach from the registered network and only keep emergency
5274 * service, and notify Android SIM refresh reset with new SIM state being
5275 * RIL_CARDSTATE_RESTRICTED. Emergency service must be enabled.
Meng Wangb4e34312016-05-12 14:54:36 -07005276 *
5277 * "data" is const RIL_CarrierRestrictions *
5278 * A list of allowed carriers and possibly a list of excluded carriers.
5279 * If data is NULL, means to clear previous carrier restrictions and allow all carriers
5280 *
5281 * "response" is int *
5282 * ((int *)data)[0] contains the number of allowed carriers which have been set correctly.
5283 * On success, it should match the length of list data->allowed_carriers.
5284 * If data is NULL, the value must be 0.
5285 *
5286 * Valid errors:
5287 * RIL_E_SUCCESS
5288 * RIL_E_INVALID_ARGUMENTS
5289 * RIL_E_RADIO_NOT_AVAILABLE
5290 * RIL_E_REQUEST_NOT_SUPPORTED
5291 */
5292#define RIL_REQUEST_SET_CARRIER_RESTRICTIONS 136
5293
5294/**
5295 * RIL_REQUEST_GET_CARRIER_RESTRICTIONS
5296 *
Meng Wangd5c540f2016-07-15 15:41:19 -07005297 * Get carrier restrictions for this sim slot. Expected modem behavior:
5298 * Return list of allowed carriers, or null if all carriers are allowed.
Meng Wangb4e34312016-05-12 14:54:36 -07005299 *
5300 * "data" is NULL
5301 *
5302 * "response" is const RIL_CarrierRestrictions *.
5303 * If response is NULL, it means all carriers are allowed.
5304 *
5305 * Valid errors:
5306 * RIL_E_SUCCESS
5307 * RIL_E_RADIO_NOT_AVAILABLE
5308 * RIL_E_REQUEST_NOT_SUPPORTED
5309 */
5310#define RIL_REQUEST_GET_CARRIER_RESTRICTIONS 137
5311
Jack Yu06181bb2017-01-10 12:10:41 -08005312/**
5313 * RIL_REQUEST_SEND_DEVICE_STATE
5314 *
5315 * Send the updated device state.
5316 * Modem can perform power saving based on the provided device state.
5317 * "data" is const int *
5318 * ((const int*)data)[0] A RIL_DeviceStateType that specifies the device state type.
5319 * ((const int*)data)[1] Specifies the state. See RIL_DeviceStateType for the definition of each
5320 * type.
5321 *
5322 * "datalen" is count * sizeof(const RIL_DeviceState *)
5323 * "response" is NULL
5324 *
5325 * Valid errors:
5326 * SUCCESS
5327 * RADIO_NOT_AVAILABLE (radio resetting)
5328 */
5329#define RIL_REQUEST_SEND_DEVICE_STATE 138
5330
5331/**
5332 * RIL_REQUEST_SET_UNSOLICITED_RESPONSE_FILTER
5333 *
5334 * Set the unsolicited response filter
5335 * This is used to prevent unnecessary application processor
5336 * wake up for power saving purposes by suppressing the
5337 * unsolicited responses in certain scenarios.
5338 *
5339 * "data" is an int *
5340 *
5341 * ((int *)data)[0] is a 32-bit bitmask of RIL_UnsolicitedResponseFilter
5342 *
5343 * "response" is NULL
5344 *
5345 * Valid errors:
5346 * SUCCESS
5347 * INVALID_ARGUMENTS (e.g. the requested filter doesn't exist)
5348 * RADIO_NOT_AVAILABLE (radio resetting)
5349 */
5350#define RIL_REQUEST_SET_UNSOLICITED_RESPONSE_FILTER 139
5351
Wileen Chiu718c0bf2017-01-04 11:37:19 -08005352 /**
5353 * RIL_REQUEST_SET_SIM_CARD_POWER
5354 *
5355 * Set SIM card power up or down
5356 *
5357 * Request is equivalent to inserting and removing the card, with
5358 * an additional effect where the ability to detect card removal/insertion
5359 * is disabled when the SIM card is powered down.
5360 *
5361 * This will generate RIL_UNSOL_RESPONSE_SIM_STATUS_CHANGED
5362 * as if the SIM had been inserted or removed.
5363 *
5364 * "data" is int *
5365 * ((int *)data)[0] is 1 for "SIM POWER UP"
5366 * ((int *)data)[0] is 0 for "SIM POWER DOWN"
5367 *
5368 * "response" is NULL
5369 *
5370 * Valid errors:
5371 * SUCCESS
5372 * RADIO_NOT_AVAILABLE
5373 * REQUEST_NOT_SUPPORTED
5374 * SIM_ABSENT
5375 * INVALID_ARGUMENTS
5376 */
5377#define RIL_REQUEST_SET_SIM_CARD_POWER 140
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08005378/***********************************************************************/
5379
Sanket Padawe6ff9a872016-01-27 15:09:12 -08005380/**
5381 * RIL_RESPONSE_ACKNOWLEDGEMENT
5382 *
5383 * This is used by Asynchronous solicited messages and Unsolicited messages
5384 * to acknowledge the receipt of those messages in RIL.java so that the ack
5385 * can be used to let ril.cpp to release wakelock.
5386 *
5387 * Valid errors
5388 * SUCCESS
5389 * RADIO_NOT_AVAILABLE
5390 */
5391
5392#define RIL_RESPONSE_ACKNOWLEDGEMENT 800
5393
5394/***********************************************************************/
5395
Wink Savillef4c4d362009-04-02 01:37:03 -07005396
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08005397#define RIL_UNSOL_RESPONSE_BASE 1000
5398
5399/**
5400 * RIL_UNSOL_RESPONSE_RADIO_STATE_CHANGED
5401 *
5402 * Indicate when value of RIL_RadioState has changed.
5403 *
5404 * Callee will invoke RIL_RadioStateRequest method on main thread
5405 *
5406 * "data" is NULL
5407 */
5408
5409#define RIL_UNSOL_RESPONSE_RADIO_STATE_CHANGED 1000
5410
5411
5412/**
5413 * RIL_UNSOL_RESPONSE_CALL_STATE_CHANGED
5414 *
5415 * Indicate when call state has changed
5416 *
5417 * Callee will invoke RIL_REQUEST_GET_CURRENT_CALLS on main thread
5418 *
5419 * "data" is NULL
5420 *
Wink Saville7f856802009-06-09 10:23:37 -07005421 * Response should be invoked on, for example,
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08005422 * "RING", "BUSY", "NO CARRIER", and also call state
5423 * transitions (DIALING->ALERTING ALERTING->ACTIVE)
5424 *
5425 * Redundent or extraneous invocations are tolerated
5426 */
5427#define RIL_UNSOL_RESPONSE_CALL_STATE_CHANGED 1001
5428
5429
5430/**
Wink Savillec0114b32011-02-18 10:14:07 -08005431 * RIL_UNSOL_RESPONSE_VOICE_NETWORK_STATE_CHANGED
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08005432 *
Wink Savillec0114b32011-02-18 10:14:07 -08005433 * Called when the voice network state changed
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08005434 *
5435 * Callee will invoke the following requests on main thread:
5436 *
Wink Savillec0114b32011-02-18 10:14:07 -08005437 * RIL_REQUEST_VOICE_REGISTRATION_STATE
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08005438 * RIL_REQUEST_OPERATOR
5439 *
5440 * "data" is NULL
5441 *
5442 * FIXME should this happen when SIM records are loaded? (eg, for
5443 * EONS)
5444 */
Wink Savillec0114b32011-02-18 10:14:07 -08005445#define RIL_UNSOL_RESPONSE_VOICE_NETWORK_STATE_CHANGED 1002
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08005446
5447/**
5448 * RIL_UNSOL_RESPONSE_NEW_SMS
5449 *
5450 * Called when new SMS is received.
Wink Saville7f856802009-06-09 10:23:37 -07005451 *
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08005452 * "data" is const char *
5453 * This is a pointer to a string containing the PDU of an SMS-DELIVER
5454 * as an ascii string of hex digits. The PDU starts with the SMSC address
5455 * per TS 27.005 (+CMT:)
5456 *
5457 * Callee will subsequently confirm the receipt of thei SMS with a
5458 * RIL_REQUEST_SMS_ACKNOWLEDGE
5459 *
Wink Saville7f856802009-06-09 10:23:37 -07005460 * No new RIL_UNSOL_RESPONSE_NEW_SMS
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08005461 * or RIL_UNSOL_RESPONSE_NEW_SMS_STATUS_REPORT messages should be sent until a
5462 * RIL_REQUEST_SMS_ACKNOWLEDGE has been received
5463 */
5464
5465#define RIL_UNSOL_RESPONSE_NEW_SMS 1003
5466
5467/**
5468 * RIL_UNSOL_RESPONSE_NEW_SMS_STATUS_REPORT
5469 *
5470 * Called when new SMS Status Report is received.
Wink Saville7f856802009-06-09 10:23:37 -07005471 *
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08005472 * "data" is const char *
5473 * This is a pointer to a string containing the PDU of an SMS-STATUS-REPORT
5474 * as an ascii string of hex digits. The PDU starts with the SMSC address
5475 * per TS 27.005 (+CDS:).
5476 *
5477 * Callee will subsequently confirm the receipt of the SMS with a
5478 * RIL_REQUEST_SMS_ACKNOWLEDGE
5479 *
Wink Saville7f856802009-06-09 10:23:37 -07005480 * No new RIL_UNSOL_RESPONSE_NEW_SMS
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08005481 * or RIL_UNSOL_RESPONSE_NEW_SMS_STATUS_REPORT messages should be sent until a
5482 * RIL_REQUEST_SMS_ACKNOWLEDGE has been received
5483 */
5484
5485#define RIL_UNSOL_RESPONSE_NEW_SMS_STATUS_REPORT 1004
5486
5487/**
5488 * RIL_UNSOL_RESPONSE_NEW_SMS_ON_SIM
5489 *
5490 * Called when new SMS has been stored on SIM card
Wink Saville7f856802009-06-09 10:23:37 -07005491 *
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08005492 * "data" is const int *
5493 * ((const int *)data)[0] contains the slot index on the SIM that contains
5494 * the new message
5495 */
5496
5497#define RIL_UNSOL_RESPONSE_NEW_SMS_ON_SIM 1005
5498
5499/**
5500 * RIL_UNSOL_ON_USSD
5501 *
5502 * Called when a new USSD message is received.
5503 *
5504 * "data" is const char **
Wink Saville7f856802009-06-09 10:23:37 -07005505 * ((const char **)data)[0] points to a type code, which is
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08005506 * one of these string values:
5507 * "0" USSD-Notify -- text in ((const char **)data)[1]
5508 * "1" USSD-Request -- text in ((const char **)data)[1]
5509 * "2" Session terminated by network
5510 * "3" other local client (eg, SIM Toolkit) has responded
5511 * "4" Operation not supported
5512 * "5" Network timeout
5513 *
5514 * The USSD session is assumed to persist if the type code is "1", otherwise
5515 * the current session (if any) is assumed to have terminated.
5516 *
5517 * ((const char **)data)[1] points to a message string if applicable, which
5518 * should always be in UTF-8.
5519 */
5520#define RIL_UNSOL_ON_USSD 1006
5521/* Previously #define RIL_UNSOL_ON_USSD_NOTIFY 1006 */
5522
5523/**
5524 * RIL_UNSOL_ON_USSD_REQUEST
5525 *
5526 * Obsolete. Send via RIL_UNSOL_ON_USSD
5527 */
Wink Saville7f856802009-06-09 10:23:37 -07005528#define RIL_UNSOL_ON_USSD_REQUEST 1007
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08005529
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08005530/**
5531 * RIL_UNSOL_NITZ_TIME_RECEIVED
5532 *
5533 * Called when radio has received a NITZ time message
5534 *
5535 * "data" is const char * pointing to NITZ time string
5536 * in the form "yy/mm/dd,hh:mm:ss(+/-)tz,dt"
5537 */
5538#define RIL_UNSOL_NITZ_TIME_RECEIVED 1008
5539
5540/**
5541 * RIL_UNSOL_SIGNAL_STRENGTH
5542 *
5543 * Radio may report signal strength rather han have it polled.
5544 *
Wink Saville1b5fd232009-04-22 14:50:00 -07005545 * "data" is a const RIL_SignalStrength *
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08005546 */
5547#define RIL_UNSOL_SIGNAL_STRENGTH 1009
5548
5549
5550/**
Wink Savillef4c4d362009-04-02 01:37:03 -07005551 * RIL_UNSOL_DATA_CALL_LIST_CHANGED
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08005552 *
Wink Savillec0114b32011-02-18 10:14:07 -08005553 * "data" is an array of RIL_Data_Call_Response_v6 identical to that
Wink Saville29487ef2011-04-15 09:15:31 -07005554 * returned by RIL_REQUEST_DATA_CALL_LIST. It is the complete list
5555 * of current data contexts including new contexts that have been
5556 * activated. A data call is only removed from this list when the
5557 * framework sends a RIL_REQUEST_DEACTIVATE_DATA_CALL or the radio
5558 * is powered off/on.
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08005559 *
Wink Savillef4c4d362009-04-02 01:37:03 -07005560 * See also: RIL_REQUEST_DATA_CALL_LIST
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08005561 */
5562
Wink Savillef4c4d362009-04-02 01:37:03 -07005563#define RIL_UNSOL_DATA_CALL_LIST_CHANGED 1010
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08005564
5565/**
5566 * RIL_UNSOL_SUPP_SVC_NOTIFICATION
5567 *
5568 * Reports supplementary service related notification from the network.
5569 *
5570 * "data" is a const RIL_SuppSvcNotification *
5571 *
5572 */
5573
5574#define RIL_UNSOL_SUPP_SVC_NOTIFICATION 1011
5575
5576/**
5577 * RIL_UNSOL_STK_SESSION_END
5578 *
5579 * Indicate when STK session is terminated by SIM.
5580 *
5581 * "data" is NULL
5582 */
5583#define RIL_UNSOL_STK_SESSION_END 1012
5584
5585/**
5586 * RIL_UNSOL_STK_PROACTIVE_COMMAND
5587 *
5588 * Indicate when SIM issue a STK proactive command to applications
5589 *
5590 * "data" is a const char * containing SAT/USAT proactive command
5591 * in hexadecimal format string starting with command tag
5592 *
5593 */
5594#define RIL_UNSOL_STK_PROACTIVE_COMMAND 1013
5595
5596/**
5597 * RIL_UNSOL_STK_EVENT_NOTIFY
5598 *
5599 * Indicate when SIM notifies applcations some event happens.
5600 * Generally, application does not need to have any feedback to
5601 * SIM but shall be able to indicate appropriate messages to users.
5602 *
5603 * "data" is a const char * containing SAT/USAT commands or responses
5604 * sent by ME to SIM or commands handled by ME, in hexadecimal format string
5605 * starting with first byte of response data or command tag
5606 *
5607 */
5608#define RIL_UNSOL_STK_EVENT_NOTIFY 1014
5609
5610/**
5611 * RIL_UNSOL_STK_CALL_SETUP
5612 *
5613 * Indicate when SIM wants application to setup a voice call.
5614 *
5615 * "data" is const int *
5616 * ((const int *)data)[0] contains timeout value (in milliseconds)
5617 */
5618#define RIL_UNSOL_STK_CALL_SETUP 1015
5619
5620/**
5621 * RIL_UNSOL_SIM_SMS_STORAGE_FULL
5622 *
5623 * Indicates that SMS storage on the SIM is full. Sent when the network
5624 * attempts to deliver a new SMS message. Messages cannot be saved on the
5625 * SIM until space is freed. In particular, incoming Class 2 messages
5626 * cannot be stored.
5627 *
5628 * "data" is null
5629 *
5630 */
5631#define RIL_UNSOL_SIM_SMS_STORAGE_FULL 1016
5632
5633/**
5634 * RIL_UNSOL_SIM_REFRESH
5635 *
5636 * Indicates that file(s) on the SIM have been updated, or the SIM
5637 * has been reinitialized.
5638 *
Alex Yakavenka45e740e2012-01-31 11:48:27 -08005639 * In the case where RIL is version 6 or older:
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08005640 * "data" is an int *
5641 * ((int *)data)[0] is a RIL_SimRefreshResult.
5642 * ((int *)data)[1] is the EFID of the updated file if the result is
Alex Yakavenka45e740e2012-01-31 11:48:27 -08005643 * SIM_FILE_UPDATE or NULL for any other result.
5644 *
5645 * In the case where RIL is version 7:
5646 * "data" is a RIL_SimRefreshResponse_v7 *
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08005647 *
Naveen Kalla2bc78d62011-12-07 16:22:53 -08005648 * Note: If the SIM state changes as a result of the SIM refresh (eg,
5649 * SIM_READY -> SIM_LOCKED_OR_ABSENT), RIL_UNSOL_RESPONSE_SIM_STATUS_CHANGED
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08005650 * should be sent.
5651 */
5652#define RIL_UNSOL_SIM_REFRESH 1017
5653
5654/**
5655 * RIL_UNSOL_CALL_RING
5656 *
5657 * Ring indication for an incoming call (eg, RING or CRING event).
Wink Saville64533062009-08-28 11:16:03 -07005658 * There must be at least one RIL_UNSOL_CALL_RING at the beginning
5659 * of a call and sending multiple is optional. If the system property
5660 * ro.telephony.call_ring.multiple is false then the upper layers
5661 * will generate the multiple events internally. Otherwise the vendor
5662 * ril must generate multiple RIL_UNSOL_CALL_RING if
5663 * ro.telephony.call_ring.multiple is true or if it is absent.
5664 *
5665 * The rate of these events is controlled by ro.telephony.call_ring.delay
5666 * and has a default value of 3000 (3 seconds) if absent.
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08005667 *
Wink Saville3d54e742009-05-18 18:00:44 -07005668 * "data" is null for GSM
5669 * "data" is const RIL_CDMA_SignalInfoRecord * if CDMA
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08005670 */
5671#define RIL_UNSOL_CALL_RING 1018
5672
The Android Open Source Project34a51082009-03-05 14:34:37 -08005673/**
5674 * RIL_UNSOL_RESPONSE_SIM_STATUS_CHANGED
5675 *
5676 * Indicates that SIM state changes.
Wink Saville3d54e742009-05-18 18:00:44 -07005677 *
The Android Open Source Project34a51082009-03-05 14:34:37 -08005678 * Callee will invoke RIL_REQUEST_GET_SIM_STATUS on main thread
Wink Savillef4c4d362009-04-02 01:37:03 -07005679
The Android Open Source Project34a51082009-03-05 14:34:37 -08005680 * "data" is null
5681 */
5682#define RIL_UNSOL_RESPONSE_SIM_STATUS_CHANGED 1019
5683
5684/**
5685 * RIL_UNSOL_RESPONSE_CDMA_NEW_SMS
5686 *
5687 * Called when new CDMA SMS is received
Wink Saville3d54e742009-05-18 18:00:44 -07005688 *
The Android Open Source Project34a51082009-03-05 14:34:37 -08005689 * "data" is const RIL_CDMA_SMS_Message *
Wink Saville3d54e742009-05-18 18:00:44 -07005690 *
The Android Open Source Project34a51082009-03-05 14:34:37 -08005691 * Callee will subsequently confirm the receipt of the SMS with
5692 * a RIL_REQUEST_CDMA_SMS_ACKNOWLEDGE
Wink Saville3d54e742009-05-18 18:00:44 -07005693 *
The Android Open Source Project34a51082009-03-05 14:34:37 -08005694 * No new RIL_UNSOL_RESPONSE_CDMA_NEW_SMS should be sent until
5695 * RIL_REQUEST_CDMA_SMS_ACKNOWLEDGE has been received
Wink Saville3d54e742009-05-18 18:00:44 -07005696 *
The Android Open Source Project34a51082009-03-05 14:34:37 -08005697 */
5698#define RIL_UNSOL_RESPONSE_CDMA_NEW_SMS 1020
5699
5700/**
5701 * RIL_UNSOL_RESPONSE_NEW_BROADCAST_SMS
5702 *
5703 * Called when new Broadcast SMS is received
Wink Saville7f856802009-06-09 10:23:37 -07005704 *
Henrik Hall0eba2022010-11-25 10:20:56 +01005705 * "data" can be one of the following:
5706 * If received from GSM network, "data" is const char of 88 bytes
5707 * which indicates each page of a CBS Message sent to the MS by the
5708 * BTS as coded in 3GPP 23.041 Section 9.4.1.2.
5709 * If received from UMTS network, "data" is const char of 90 up to 1252
5710 * bytes which contain between 1 and 15 CBS Message pages sent as one
5711 * packet to the MS by the BTS as coded in 3GPP 23.041 Section 9.4.2.2.
Wink Savillef4c4d362009-04-02 01:37:03 -07005712 *
The Android Open Source Project34a51082009-03-05 14:34:37 -08005713 */
5714#define RIL_UNSOL_RESPONSE_NEW_BROADCAST_SMS 1021
Wink Savillef4c4d362009-04-02 01:37:03 -07005715
The Android Open Source Project34a51082009-03-05 14:34:37 -08005716/**
5717 * RIL_UNSOL_CDMA_RUIM_SMS_STORAGE_FULL
5718 *
5719 * Indicates that SMS storage on the RUIM is full. Messages
5720 * cannot be saved on the RUIM until space is freed.
5721 *
5722 * "data" is null
Wink Savillef4c4d362009-04-02 01:37:03 -07005723 *
The Android Open Source Project34a51082009-03-05 14:34:37 -08005724 */
Wink Savillef4c4d362009-04-02 01:37:03 -07005725#define RIL_UNSOL_CDMA_RUIM_SMS_STORAGE_FULL 1022
5726
The Android Open Source Project34a51082009-03-05 14:34:37 -08005727/**
5728 * RIL_UNSOL_RESTRICTED_STATE_CHANGED
5729 *
5730 * Indicates a restricted state change (eg, for Domain Specific Access Control).
5731 *
5732 * Radio need send this msg after radio off/on cycle no matter it is changed or not.
5733 *
5734 * "data" is an int *
5735 * ((int *)data)[0] contains a bitmask of RIL_RESTRICTED_STATE_* values.
5736 */
5737#define RIL_UNSOL_RESTRICTED_STATE_CHANGED 1023
5738
Wink Saville1b5fd232009-04-22 14:50:00 -07005739/**
5740 * RIL_UNSOL_ENTER_EMERGENCY_CALLBACK_MODE
5741 *
5742 * Indicates that the radio system selection module has
5743 * autonomously entered emergency callback mode.
5744 *
5745 * "data" is null
5746 *
5747 */
5748#define RIL_UNSOL_ENTER_EMERGENCY_CALLBACK_MODE 1024
The Android Open Source Project34a51082009-03-05 14:34:37 -08005749
Wink Saville1b5fd232009-04-22 14:50:00 -07005750/**
5751 * RIL_UNSOL_CDMA_CALL_WAITING
5752 *
5753 * Called when CDMA radio receives a call waiting indication.
5754 *
5755 * "data" is const RIL_CDMA_CallWaiting *
Wink Saville7f856802009-06-09 10:23:37 -07005756 *
Wink Saville1b5fd232009-04-22 14:50:00 -07005757 */
5758#define RIL_UNSOL_CDMA_CALL_WAITING 1025
5759
5760/**
5761 * RIL_UNSOL_CDMA_OTA_PROVISION_STATUS
5762 *
5763 * Called when CDMA radio receives an update of the progress of an
5764 * OTASP/OTAPA call.
5765 *
5766 * "data" is const int *
5767 * For CDMA this is an integer OTASP/OTAPA status listed in
5768 * RIL_CDMA_OTA_ProvisionStatus.
5769 *
5770 */
5771#define RIL_UNSOL_CDMA_OTA_PROVISION_STATUS 1026
5772
5773/**
5774 * RIL_UNSOL_CDMA_INFO_REC
5775 *
5776 * Called when CDMA radio receives one or more info recs.
5777 *
5778 * "data" is const RIL_CDMA_InformationRecords *
5779 *
5780 */
5781#define RIL_UNSOL_CDMA_INFO_REC 1027
The Android Open Source Project34a51082009-03-05 14:34:37 -08005782
Jaikumar Ganeshaf6ecbf2009-04-29 13:27:51 -07005783/**
5784 * RIL_UNSOL_OEM_HOOK_RAW
5785 *
5786 * This is for OEM specific use.
5787 *
5788 * "data" is a byte[]
5789 */
5790#define RIL_UNSOL_OEM_HOOK_RAW 1028
5791
John Wang5d621da2009-09-18 17:17:48 -07005792/**
5793 * RIL_UNSOL_RINGBACK_TONE
5794 *
5795 * Indicates that nework doesn't have in-band information, need to
5796 * play out-band tone.
5797 *
5798 * "data" is an int *
5799 * ((int *)data)[0] == 0 for stop play ringback tone.
5800 * ((int *)data)[0] == 1 for start play ringback tone.
5801 */
5802#define RIL_UNSOL_RINGBACK_TONE 1029
5803
John Wang5909cf82010-01-29 00:18:54 -08005804/**
5805 * RIL_UNSOL_RESEND_INCALL_MUTE
5806 *
5807 * Indicates that framework/application need reset the uplink mute state.
5808 *
5809 * There may be situations where the mute state becomes out of sync
5810 * between the application and device in some GSM infrastructures.
5811 *
5812 * "data" is null
5813 */
5814#define RIL_UNSOL_RESEND_INCALL_MUTE 1030
Wink Savillec0114b32011-02-18 10:14:07 -08005815
5816/**
5817 * RIL_UNSOL_CDMA_SUBSCRIPTION_SOURCE_CHANGED
5818 *
5819 * Called when CDMA subscription source changed.
5820 *
5821 * "data" is int *
5822 * ((int *)data)[0] is == RIL_CdmaSubscriptionSource
5823 */
Wink Saville29487ef2011-04-15 09:15:31 -07005824#define RIL_UNSOL_CDMA_SUBSCRIPTION_SOURCE_CHANGED 1031
Wink Savillec0114b32011-02-18 10:14:07 -08005825
5826/**
5827 * RIL_UNSOL_CDMA_PRL_CHANGED
5828 *
5829 * Called when PRL (preferred roaming list) changes.
5830 *
5831 * "data" is int *
5832 * ((int *)data)[0] is PRL_VERSION as would be returned by RIL_REQUEST_CDMA_SUBSCRIPTION
5833 */
5834#define RIL_UNSOL_CDMA_PRL_CHANGED 1032
5835
5836/**
5837 * RIL_UNSOL_EXIT_EMERGENCY_CALLBACK_MODE
5838 *
5839 * Called when Emergency Callback Mode Ends
5840 *
5841 * Indicates that the radio system selection module has
5842 * proactively exited emergency callback mode.
5843 *
5844 * "data" is NULL
5845 *
5846 */
5847#define RIL_UNSOL_EXIT_EMERGENCY_CALLBACK_MODE 1033
5848
Wink Saville5b9df332011-04-06 16:24:21 -07005849/**
5850 * RIL_UNSOL_RIL_CONNECTED
5851 *
5852 * Called the ril connects and returns the version
5853 *
5854 * "data" is int *
5855 * ((int *)data)[0] is RIL_VERSION
5856 */
5857#define RIL_UNSOL_RIL_CONNECTED 1034
5858
Naveen Kalla2bc78d62011-12-07 16:22:53 -08005859/**
5860 * RIL_UNSOL_VOICE_RADIO_TECH_CHANGED
5861 *
5862 * Indicates that voice technology has changed. Contains new radio technology
5863 * as a data in the message.
5864 *
5865 * "data" is int *
5866 * ((int *)data)[0] is of type const RIL_RadioTechnology
5867 *
5868 */
5869#define RIL_UNSOL_VOICE_RADIO_TECH_CHANGED 1035
5870
Wink Saville8a9e0212013-04-09 12:11:38 -07005871/**
5872 * RIL_UNSOL_CELL_INFO_LIST
5873 *
5874 * Same information as returned by RIL_REQUEST_GET_CELL_INFO_LIST, but returned
5875 * at the rate no greater than specified by RIL_REQUEST_SET_UNSOL_CELL_INFO_RATE.
5876 *
5877 * "data" is NULL
5878 *
Sanket Padawef53c5fa2016-01-27 10:00:38 -08005879 * "response" is an array of RIL_CellInfo_v12.
Wink Saville8a9e0212013-04-09 12:11:38 -07005880 */
5881#define RIL_UNSOL_CELL_INFO_LIST 1036
Naveen Kalla2bc78d62011-12-07 16:22:53 -08005882
Wink Saville865ce3b2013-11-08 16:37:01 -08005883/**
Sukanya Rajkhowaa18b9d12013-09-10 12:30:13 -07005884 * RIL_UNSOL_RESPONSE_IMS_NETWORK_STATE_CHANGED
5885 *
Nathan Harold0eb43c22016-12-19 12:04:32 -08005886 * This message is DEPRECATED and shall be removed in a future release (target: 2018);
5887 * instead, provide IMS registration status via an IMS Service.
5888 *
Sukanya Rajkhowaa18b9d12013-09-10 12:30:13 -07005889 * Called when IMS registration state has changed
5890 *
Wink Saville865ce3b2013-11-08 16:37:01 -08005891 * To get IMS registration state and IMS SMS format, callee needs to invoke the
5892 * following request on main thread:
Sukanya Rajkhowaa18b9d12013-09-10 12:30:13 -07005893 *
Wink Saville865ce3b2013-11-08 16:37:01 -08005894 * RIL_REQUEST_IMS_REGISTRATION_STATE
Sukanya Rajkhowaa18b9d12013-09-10 12:30:13 -07005895 *
Wink Saville865ce3b2013-11-08 16:37:01 -08005896 * "data" is NULL
5897 *
Sukanya Rajkhowaa18b9d12013-09-10 12:30:13 -07005898 */
5899#define RIL_UNSOL_RESPONSE_IMS_NETWORK_STATE_CHANGED 1037
5900
Etan Cohend3652192014-06-20 08:28:44 -07005901/**
5902 * RIL_UNSOL_UICC_SUBSCRIPTION_STATUS_CHANGED
5903 *
5904 * Indicated when there is a change in subscription status.
5905 * This event will be sent in the following scenarios
5906 * - subscription readiness at modem, which was selected by telephony layer
5907 * - when subscription is deactivated by modem due to UICC card removal
5908 * - When network invalidates the subscription i.e. attach reject due to authentication reject
5909 *
5910 * "data" is const int *
5911 * ((const int *)data)[0] == 0 for Subscription Deactivated
5912 * ((const int *)data)[0] == 1 for Subscription Activated
5913 *
5914 */
5915#define RIL_UNSOL_UICC_SUBSCRIPTION_STATUS_CHANGED 1038
5916
5917/**
5918 * RIL_UNSOL_SRVCC_STATE_NOTIFY
5919 *
5920 * Called when Single Radio Voice Call Continuity(SRVCC)
5921 * progress state has changed
5922 *
5923 * "data" is int *
5924 * ((int *)data)[0] is of type const RIL_SrvccState
5925 *
5926 */
5927
5928#define RIL_UNSOL_SRVCC_STATE_NOTIFY 1039
5929
5930/**
5931 * RIL_UNSOL_HARDWARE_CONFIG_CHANGED
5932 *
5933 * Called when the hardware configuration associated with the RILd changes
5934 *
5935 * "data" is an array of RIL_HardwareConfig
5936 *
5937 */
5938#define RIL_UNSOL_HARDWARE_CONFIG_CHANGED 1040
5939
Wink Savillec29360a2014-07-13 05:17:28 -07005940/**
5941 * RIL_UNSOL_DC_RT_INFO_CHANGED
5942 *
Sooraj Sasindran73f2ccb2015-04-08 17:23:07 -07005943 * The message is DEPRECATED, use RIL_REQUEST_GET_ACTIVITY_INFO
Wink Savillec29360a2014-07-13 05:17:28 -07005944 * Sent when the DC_RT_STATE changes but the time
5945 * between these messages must not be less than the
5946 * value set by RIL_REQUEST_SET_DC_RT_RATE.
5947 *
5948 * "data" is the most recent RIL_DcRtInfo
5949 *
5950 */
5951#define RIL_UNSOL_DC_RT_INFO_CHANGED 1041
5952
Wink Saville8b4e4f72014-10-17 15:01:45 -07005953/**
5954 * RIL_UNSOL_RADIO_CAPABILITY
5955 *
5956 * Sent when RIL_REQUEST_SET_RADIO_CAPABILITY completes.
5957 * Returns the phone radio capability exactly as
5958 * RIL_REQUEST_GET_RADIO_CAPABILITY and should be the
5959 * same set as sent by RIL_REQUEST_SET_RADIO_CAPABILITY.
5960 *
5961 * "data" is the RIL_RadioCapability structure
5962 */
5963#define RIL_UNSOL_RADIO_CAPABILITY 1042
5964
Amit Mahajan54563d32014-11-22 00:54:49 +00005965/*
5966 * RIL_UNSOL_ON_SS
5967 *
5968 * Called when SS response is received when DIAL/USSD/SS is changed to SS by
5969 * call control.
5970 *
5971 * "data" is const RIL_StkCcUnsolSsResponse *
5972 *
5973 */
5974#define RIL_UNSOL_ON_SS 1043
5975
5976/**
5977 * RIL_UNSOL_STK_CC_ALPHA_NOTIFY
5978 *
5979 * Called when there is an ALPHA from UICC during Call Control.
5980 *
5981 * "data" is const char * containing ALPHA string from UICC in UTF-8 format.
5982 *
5983 */
5984#define RIL_UNSOL_STK_CC_ALPHA_NOTIFY 1044
5985
fengluf7408292015-04-14 14:53:55 -07005986/**
5987 * RIL_UNSOL_LCEDATA_RECV
5988 *
5989 * Called when there is an incoming Link Capacity Estimate (LCE) info report.
5990 *
fenglu290add32015-05-01 17:05:15 -07005991 * "data" is the RIL_LceDataInfo structure.
fengluf7408292015-04-14 14:53:55 -07005992 *
5993 */
5994#define RIL_UNSOL_LCEDATA_RECV 1045
5995
Robert Greenwalt27e99c52016-06-01 16:31:38 -07005996 /**
5997 * RIL_UNSOL_PCO_DATA
5998 *
5999 * Called when there is new Carrier PCO data received for a data call. Ideally
6000 * only new data will be forwarded, though this is not required. Multiple
6001 * boxes of carrier PCO data for a given call should result in a series of
6002 * RIL_UNSOL_PCO_DATA calls.
6003 *
6004 * "data" is the RIL_PCO_Data structure.
6005 *
6006 */
6007#define RIL_UNSOL_PCO_DATA 1046
6008
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08006009/***********************************************************************/
6010
Amit Mahajan54563d32014-11-22 00:54:49 +00006011
Etan Cohend3652192014-06-20 08:28:44 -07006012#if defined(ANDROID_MULTI_SIM)
6013/**
6014 * RIL_Request Function pointer
6015 *
6016 * @param request is one of RIL_REQUEST_*
6017 * @param data is pointer to data defined for that RIL_REQUEST_*
6018 * data is owned by caller, and should not be modified or freed by callee
Sanket Padawe05c23072016-08-08 15:42:17 -07006019 * structures passed as data may contain pointers to non-contiguous memory
Etan Cohend3652192014-06-20 08:28:44 -07006020 * @param t should be used in subsequent call to RIL_onResponse
Sanket Padawe05c23072016-08-08 15:42:17 -07006021 * @param datalen is the length of "data" which is defined as other argument. It may or may
6022 * not be equal to sizeof(data). Refer to the documentation of individual structures
6023 * to find if pointers listed in the structure are contiguous and counted in the datalen
6024 * length or not.
6025 * (Eg: RIL_IMS_SMS_Message where we don't have datalen equal to sizeof(data))
Etan Cohend3652192014-06-20 08:28:44 -07006026 *
6027 */
6028typedef void (*RIL_RequestFunc) (int request, void *data,
6029 size_t datalen, RIL_Token t, RIL_SOCKET_ID socket_id);
6030
6031/**
6032 * This function should return the current radio state synchronously
6033 */
6034typedef RIL_RadioState (*RIL_RadioStateRequest)(RIL_SOCKET_ID socket_id);
6035
6036#else
6037/* Backward compatible */
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08006038
6039/**
6040 * RIL_Request Function pointer
6041 *
6042 * @param request is one of RIL_REQUEST_*
6043 * @param data is pointer to data defined for that RIL_REQUEST_*
6044 * data is owned by caller, and should not be modified or freed by callee
Sanket Padawe05c23072016-08-08 15:42:17 -07006045 * structures passed as data may contain pointers to non-contiguous memory
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08006046 * @param t should be used in subsequent call to RIL_onResponse
Sanket Padawe05c23072016-08-08 15:42:17 -07006047 * @param datalen is the length of "data" which is defined as other argument. It may or may
6048 * not be equal to sizeof(data). Refer to the documentation of individual structures
6049 * to find if pointers listed in the structure are contiguous and counted in the datalen
6050 * length or not.
6051 * (Eg: RIL_IMS_SMS_Message where we don't have datalen equal to sizeof(data))
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08006052 *
6053 */
Wink Saville7f856802009-06-09 10:23:37 -07006054typedef void (*RIL_RequestFunc) (int request, void *data,
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08006055 size_t datalen, RIL_Token t);
6056
6057/**
6058 * This function should return the current radio state synchronously
6059 */
6060typedef RIL_RadioState (*RIL_RadioStateRequest)();
6061
Etan Cohend3652192014-06-20 08:28:44 -07006062#endif
6063
6064
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08006065/**
6066 * This function returns "1" if the specified RIL_REQUEST code is
6067 * supported and 0 if it is not
6068 *
6069 * @param requestCode is one of RIL_REQUEST codes
6070 */
6071
6072typedef int (*RIL_Supports)(int requestCode);
6073
6074/**
Wink Saville7f856802009-06-09 10:23:37 -07006075 * This function is called from a separate thread--not the
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08006076 * thread that calls RIL_RequestFunc--and indicates that a pending
6077 * request should be cancelled.
Wink Saville7f856802009-06-09 10:23:37 -07006078 *
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08006079 * On cancel, the callee should do its best to abandon the request and
6080 * call RIL_onRequestComplete with RIL_Errno CANCELLED at some later point.
6081 *
6082 * Subsequent calls to RIL_onRequestComplete for this request with
6083 * other results will be tolerated but ignored. (That is, it is valid
6084 * to ignore the cancellation request)
6085 *
6086 * RIL_Cancel calls should return immediately, and not wait for cancellation
6087 *
Wink Saville7f856802009-06-09 10:23:37 -07006088 * Please see ITU v.250 5.6.1 for how one might implement this on a TS 27.007
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08006089 * interface
6090 *
6091 * @param t token wants to be canceled
6092 */
6093
6094typedef void (*RIL_Cancel)(RIL_Token t);
6095
6096typedef void (*RIL_TimedCallback) (void *param);
6097
6098/**
6099 * Return a version string for your RIL implementation
6100 */
6101typedef const char * (*RIL_GetVersion) (void);
6102
6103typedef struct {
6104 int version; /* set to RIL_VERSION */
6105 RIL_RequestFunc onRequest;
6106 RIL_RadioStateRequest onStateRequest;
6107 RIL_Supports supports;
6108 RIL_Cancel onCancel;
6109 RIL_GetVersion getVersion;
6110} RIL_RadioFunctions;
6111
Sungmin Choi75697532013-04-26 15:04:45 -07006112typedef struct {
Jack Yu06181bb2017-01-10 12:10:41 -08006113 char *apn; /* the APN to connect to */
6114 char *protocol; /* one of the PDP_type values in TS 27.007 section 10.1.1 used on
6115 roaming network. For example, "IP", "IPV6", "IPV4V6", or "PPP".*/
6116 int authtype; /* authentication protocol used for this PDP context
6117 (None: 0, PAP: 1, CHAP: 2, PAP&CHAP: 3) */
6118 char *username; /* the username for APN, or NULL */
6119 char *password; /* the password for APN, or NULL */
Sungmin Choi75697532013-04-26 15:04:45 -07006120} RIL_InitialAttachApn;
6121
Amit Mahajan2b772032014-06-26 14:20:11 -07006122typedef struct {
Jack Yu06181bb2017-01-10 12:10:41 -08006123 char *apn; /* the APN to connect to */
6124 char *protocol; /* one of the PDP_type values in TS 27.007 section 10.1.1 used on
6125 home network. For example, "IP", "IPV6", "IPV4V6", or "PPP". */
6126 char *roamingProtocol; /* one of the PDP_type values in TS 27.007 section 10.1.1 used on
6127 roaming network. For example, "IP", "IPV6", "IPV4V6", or "PPP".*/
6128 int authtype; /* authentication protocol used for this PDP context
6129 (None: 0, PAP: 1, CHAP: 2, PAP&CHAP: 3) */
6130 char *username; /* the username for APN, or NULL */
6131 char *password; /* the password for APN, or NULL */
6132 int supportedTypesBitmask; /* supported APN types bitmask. See RIL_ApnTypes for the value of
6133 each bit. */
6134 int bearerBitmask; /* the bearer bitmask. See RIL_RadioAccessFamily for the value of
6135 each bit. */
6136 int modemCognitive; /* indicating the APN setting was sent to the modem through
6137 setDataProfile earlier. */
6138 int mtu; /* maximum transmission unit (MTU) size in bytes */
6139 char *mvnoType; /* the MVNO type: possible values are "imsi", "gid", "spn" */
6140 char *mvnoMatchData; /* MVNO match data. Can be anything defined by the carrier.
6141 For example,
6142 SPN like: "A MOBILE", "BEN NL", etc...
6143 IMSI like: "302720x94", "2060188", etc...
6144 GID like: "4E", "33", etc... */
6145} RIL_InitialAttachApn_v15;
6146
6147typedef struct {
Amit Mahajan2b772032014-06-26 14:20:11 -07006148 int authContext; /* P2 value of authentication command, see P2 parameter in
6149 3GPP TS 31.102 7.1.2 */
6150 char *authData; /* the challenge string in Base64 format, see 3GPP
6151 TS 31.102 7.1.2 */
6152 char *aid; /* AID value, See ETSI 102.221 8.1 and 101.220 4,
6153 NULL if no value. */
6154} RIL_SimAuthentication;
6155
Robert Greenwalt17ea3fa2016-06-15 14:59:38 -07006156typedef struct {
Jack Yu06181bb2017-01-10 12:10:41 -08006157 int cid; /* Context ID, uniquely identifies this call */
6158 char *bearer_proto; /* One of the PDP_type values in TS 27.007 section 10.1.1.
6159 For example, "IP", "IPV6", "IPV4V6". */
6160 int pco_id; /* The protocol ID for this box. Note that only IDs from
6161 FF00H - FFFFH are accepted. If more than one is included
6162 from the network, multiple calls should be made to send all
6163 of them. */
6164 int contents_length; /* The number of octets in the contents. */
6165 char *contents; /* Carrier-defined content. It is binary, opaque and
6166 loosely defined in LTE Layer 3 spec 24.008 */
Robert Greenwalt17ea3fa2016-06-15 14:59:38 -07006167} RIL_PCO_Data;
6168
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08006169#ifdef RIL_SHLIB
6170struct RIL_Env {
6171 /**
6172 * "t" is parameter passed in on previous call to RIL_Notification
6173 * routine.
6174 *
6175 * If "e" != SUCCESS, then response can be null/is ignored
6176 *
Wink Saville7f856802009-06-09 10:23:37 -07006177 * "response" is owned by caller, and should not be modified or
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08006178 * freed by callee
6179 *
6180 * RIL_onRequestComplete will return as soon as possible
6181 */
Wink Saville7f856802009-06-09 10:23:37 -07006182 void (*OnRequestComplete)(RIL_Token t, RIL_Errno e,
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08006183 void *response, size_t responselen);
6184
Etan Cohend3652192014-06-20 08:28:44 -07006185#if defined(ANDROID_MULTI_SIM)
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08006186 /**
6187 * "unsolResponse" is one of RIL_UNSOL_RESPONSE_*
6188 * "data" is pointer to data defined for that RIL_UNSOL_RESPONSE_*
6189 *
6190 * "data" is owned by caller, and should not be modified or freed by callee
6191 */
Etan Cohend3652192014-06-20 08:28:44 -07006192 void (*OnUnsolicitedResponse)(int unsolResponse, const void *data, size_t datalen, RIL_SOCKET_ID socket_id);
6193#else
6194 /**
6195 * "unsolResponse" is one of RIL_UNSOL_RESPONSE_*
6196 * "data" is pointer to data defined for that RIL_UNSOL_RESPONSE_*
6197 *
6198 * "data" is owned by caller, and should not be modified or freed by callee
6199 */
6200 void (*OnUnsolicitedResponse)(int unsolResponse, const void *data, size_t datalen);
6201#endif
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08006202 /**
Wink Saville7f856802009-06-09 10:23:37 -07006203 * Call user-specifed "callback" function on on the same thread that
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08006204 * RIL_RequestFunc is called. If "relativeTime" is specified, then it specifies
6205 * a relative time value at which the callback is invoked. If relativeTime is
6206 * NULL or points to a 0-filled structure, the callback will be invoked as
6207 * soon as possible
6208 */
6209
Dianne Hackborn0d9f0c02010-06-25 16:50:46 -07006210 void (*RequestTimedCallback) (RIL_TimedCallback callback,
Wink Saville7f856802009-06-09 10:23:37 -07006211 void *param, const struct timeval *relativeTime);
Sanket Padawe6ff9a872016-01-27 15:09:12 -08006212 /**
6213 * "t" is parameter passed in on previous call RIL_Notification routine
6214 *
6215 * RIL_onRequestAck will be called by vendor when an Async RIL request was received
6216 * by them and an ack needs to be sent back to java ril.
6217 */
6218 void (*OnRequestAck) (RIL_Token t);
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08006219};
6220
6221
Wink Saville7f856802009-06-09 10:23:37 -07006222/**
6223 * RIL implementations must defined RIL_Init
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08006224 * argc and argv will be command line arguments intended for the RIL implementation
6225 * Return NULL on error
6226 *
6227 * @param env is environment point defined as RIL_Env
6228 * @param argc number of arguments
6229 * @param argv list fo arguments
6230 *
6231 */
6232const RIL_RadioFunctions *RIL_Init(const struct RIL_Env *env, int argc, char **argv);
6233
Sanket Padawe1be49ba2016-03-31 17:37:23 -07006234/**
6235 * If BT SAP(SIM Access Profile) is supported, then RIL implementations must define RIL_SAP_Init
6236 * for initializing RIL_RadioFunctions used for BT SAP communcations. It is called whenever RILD
6237 * starts or modem restarts. Returns handlers for SAP related request that are made on SAP
6238 * sepecific socket, analogous to the RIL_RadioFunctions returned by the call to RIL_Init
6239 * and used on the general RIL socket.
6240 * argc and argv will be command line arguments intended for the RIL implementation
6241 * Return NULL on error.
6242 *
6243 * @param env is environment point defined as RIL_Env
6244 * @param argc number of arguments
6245 * @param argv list fo arguments
6246 *
6247 */
6248const RIL_RadioFunctions *RIL_SAP_Init(const struct RIL_Env *env, int argc, char **argv);
6249
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08006250#else /* RIL_SHLIB */
6251
6252/**
6253 * Call this once at startup to register notification routine
6254 *
6255 * @param callbacks user-specifed callback function
6256 */
6257void RIL_register (const RIL_RadioFunctions *callbacks);
6258
Amit Mahajancd77a5b2016-08-25 11:19:21 -07006259void rilc_thread_pool();
6260
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08006261
6262/**
6263 *
6264 * RIL_onRequestComplete will return as soon as possible
6265 *
6266 * @param t is parameter passed in on previous call to RIL_Notification
Wink Saville3d54e742009-05-18 18:00:44 -07006267 * routine.
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08006268 * @param e error code
6269 * if "e" != SUCCESS, then response can be null/is ignored
6270 * @param response is owned by caller, and should not be modified or
6271 * freed by callee
6272 * @param responselen the length of response in byte
6273 */
Wink Saville7f856802009-06-09 10:23:37 -07006274void RIL_onRequestComplete(RIL_Token t, RIL_Errno e,
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08006275 void *response, size_t responselen);
6276
Sanket Padawe6ff9a872016-01-27 15:09:12 -08006277/**
6278 * RIL_onRequestAck will be called by vendor when an Async RIL request was received by them and
6279 * an ack needs to be sent back to java ril. This doesn't mark the end of the command or it's
6280 * results, just that the command was received and will take a while. After sending this Ack
6281 * its vendor's responsibility to make sure that AP is up whenever needed while command is
6282 * being processed.
6283 *
6284 * @param t is parameter passed in on previous call to RIL_Notification
6285 * routine.
6286 */
6287void RIL_onRequestAck(RIL_Token t);
6288
Etan Cohend3652192014-06-20 08:28:44 -07006289#if defined(ANDROID_MULTI_SIM)
6290/**
6291 * @param unsolResponse is one of RIL_UNSOL_RESPONSE_*
6292 * @param data is pointer to data defined for that RIL_UNSOL_RESPONSE_*
6293 * "data" is owned by caller, and should not be modified or freed by callee
6294 * @param datalen the length of data in byte
6295 */
6296
6297void RIL_onUnsolicitedResponse(int unsolResponse, const void *data,
6298 size_t datalen, RIL_SOCKET_ID socket_id);
6299#else
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08006300/**
6301 * @param unsolResponse is one of RIL_UNSOL_RESPONSE_*
6302 * @param data is pointer to data defined for that RIL_UNSOL_RESPONSE_*
6303 * "data" is owned by caller, and should not be modified or freed by callee
6304 * @param datalen the length of data in byte
6305 */
6306
Wink Saville7f856802009-06-09 10:23:37 -07006307void RIL_onUnsolicitedResponse(int unsolResponse, const void *data,
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08006308 size_t datalen);
Etan Cohend3652192014-06-20 08:28:44 -07006309#endif
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08006310
6311/**
Wink Saville7f856802009-06-09 10:23:37 -07006312 * Call user-specifed "callback" function on on the same thread that
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08006313 * RIL_RequestFunc is called. If "relativeTime" is specified, then it specifies
6314 * a relative time value at which the callback is invoked. If relativeTime is
6315 * NULL or points to a 0-filled structure, the callback will be invoked as
6316 * soon as possible
6317 *
6318 * @param callback user-specifed callback function
6319 * @param param parameter list
6320 * @param relativeTime a relative time value at which the callback is invoked
6321 */
6322
Dianne Hackborn0d9f0c02010-06-25 16:50:46 -07006323void RIL_requestTimedCallback (RIL_TimedCallback callback,
6324 void *param, const struct timeval *relativeTime);
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08006325
The Android Open Source Project00f06fc2009-03-03 19:32:15 -08006326#endif /* RIL_SHLIB */
6327
6328#ifdef __cplusplus
6329}
6330#endif
6331
6332#endif /*ANDROID_RIL_H*/