2 * Copyright (C) 2006 The Android Open Source Project
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
18 #define ANDROID_RIL_H 1
22 #include <telephony/ril_cdma_sms.h>
23 #include <telephony/ril_nv_items.h>
24 #include <telephony/ril_msim.h>
26 #ifndef FEATURE_UNIT_TEST
28 #endif /* !FEATURE_UNIT_TEST */
35 #if defined(ANDROID_SIM_COUNT_2)
37 #elif defined(ANDROID_SIM_COUNT_3)
39 #elif defined(ANDROID_SIM_COUNT_4)
45 #ifndef ANDROID_MULTI_SIM
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.
59 * Documentation of RIL version and associated changes
60 * RIL_VERSION = 12 : This version corresponds to updated data structures namely
61 * RIL_Data_Call_Response_v11, RIL_SIM_IO_v6, RIL_CardStatus_v6,
62 * RIL_SimRefreshResponse_v7, RIL_CDMA_CallWaiting_v6,
63 * 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.
67 * RIL_VERSION = 13 : This version includes new wakelock semantics and as the first
68 * strongly versioned version it enforces structure use.
69 * RIL_VERSION = 14 : New data structures are added, namely RIL_CarrierMatchType,
70 * RIL_Carrier, RIL_CarrierRestrictions and RIL_PCO_Data.
71 * New commands added: RIL_REQUEST_SET_CARRIER_RESTRICTIONS,
72 * RIL_REQUEST_SET_CARRIER_RESTRICTIONS and
75 #define RIL_VERSION 12
76 #define LAST_IMPRECISE_RIL_VERSION 12 // Better self-documented name
77 #define RIL_VERSION_MIN 6 /* Minimum RIL_VERSION supported */
79 #define CDMA_ALPHA_INFO_BUFFER_LENGTH 64
80 #define CDMA_NUMBER_INFO_BUFFER_LENGTH 81
83 #define MAX_SOCKET_NAME_LENGTH 6
84 #define MAX_CLIENT_ID_LENGTH 2
85 #define MAX_DEBUG_SOCKET_NAME_LENGTH 12
86 #define MAX_QEMU_PIPE_NAME_LENGTH 11
87 #define MAX_UUID_LENGTH 64
90 typedef void * RIL_Token;
109 RIL_E_RADIO_NOT_AVAILABLE = 1, /* If radio did not start or is resetting */
110 RIL_E_GENERIC_FAILURE = 2,
111 RIL_E_PASSWORD_INCORRECT = 3, /* for PIN/PIN2 methods only! */
112 RIL_E_SIM_PIN2 = 4, /* Operation requires SIM PIN2 to be entered */
113 RIL_E_SIM_PUK2 = 5, /* Operation requires SIM PIN2 to be entered */
114 RIL_E_REQUEST_NOT_SUPPORTED = 6,
116 RIL_E_OP_NOT_ALLOWED_DURING_VOICE_CALL = 8, /* data ops are not allowed during voice
117 call on a Class C GPRS device */
118 RIL_E_OP_NOT_ALLOWED_BEFORE_REG_TO_NW = 9, /* data ops are not allowed before device
119 registers in network */
120 RIL_E_SMS_SEND_FAIL_RETRY = 10, /* fail to send sms and need retry */
121 RIL_E_SIM_ABSENT = 11, /* fail to set the location where CDMA subscription
122 shall be retrieved because of SIM or RUIM
124 RIL_E_SUBSCRIPTION_NOT_AVAILABLE = 12, /* fail to find CDMA subscription from specified
126 RIL_E_MODE_NOT_SUPPORTED = 13, /* HW does not support preferred network type */
127 RIL_E_FDN_CHECK_FAILURE = 14, /* command failed because recipient is not on FDN list */
128 RIL_E_ILLEGAL_SIM_OR_ME = 15, /* network selection failed due to
130 RIL_E_MISSING_RESOURCE = 16, /* no logical channel available */
131 RIL_E_NO_SUCH_ELEMENT = 17, /* application not found on SIM */
132 RIL_E_DIAL_MODIFIED_TO_USSD = 18, /* DIAL request modified to USSD */
133 RIL_E_DIAL_MODIFIED_TO_SS = 19, /* DIAL request modified to SS */
134 RIL_E_DIAL_MODIFIED_TO_DIAL = 20, /* DIAL request modified to DIAL with different
136 RIL_E_USSD_MODIFIED_TO_DIAL = 21, /* USSD request modified to DIAL */
137 RIL_E_USSD_MODIFIED_TO_SS = 22, /* USSD request modified to SS */
138 RIL_E_USSD_MODIFIED_TO_USSD = 23, /* USSD request modified to different USSD
140 RIL_E_SS_MODIFIED_TO_DIAL = 24, /* SS request modified to DIAL */
141 RIL_E_SS_MODIFIED_TO_USSD = 25, /* SS request modified to USSD */
142 RIL_E_SUBSCRIPTION_NOT_SUPPORTED = 26, /* Subscription not supported by RIL */
143 RIL_E_SS_MODIFIED_TO_SS = 27, /* SS request modified to different SS request */
144 RIL_E_LCE_NOT_SUPPORTED = 36, /* LCE service not supported(36 in RILConstants.java) */
145 RIL_E_NO_MEMORY = 37, /* Not sufficient memory to process the request */
146 RIL_E_INTERNAL_ERR = 38, /* Hit unexpected vendor internal error scenario */
147 RIL_E_SYSTEM_ERR = 39, /* Hit platform or system error */
148 RIL_E_MODEM_ERR = 40, /* Hit unexpected modem error */
149 RIL_E_INVALID_STATE = 41, /* Unexpected request for the current state */
150 RIL_E_NO_RESOURCES = 42, /* Not sufficient resource to process the request */
151 RIL_E_SIM_ERR = 43, /* Received error from SIM card */
152 RIL_E_INVALID_ARGUMENTS = 44, /* Received invalid arguments in request */
153 RIL_E_INVALID_SIM_STATE = 45, /* Can not process the request in current SIM state */
154 RIL_E_INVALID_MODEM_STATE = 46, /* Can not process the request in current Modem state */
155 RIL_E_INVALID_CALL_ID = 47, /* Received invalid call id in request */
156 RIL_E_NO_SMS_TO_ACK = 48, /* ACK received when there is no SMS to ack */
157 RIL_E_NETWORK_ERR = 49, /* Received error from network */
158 RIL_E_REQUEST_RATE_LIMITED = 50, /* Operation denied due to overly-frequent requests */
159 RIL_E_SIM_BUSY = 51, /* SIM is busy */
160 RIL_E_SIM_FULL = 52, /* The target EF is full */
161 RIL_E_NETWORK_REJECT = 53, /* Request is rejected by network */
162 RIL_E_OPERATION_NOT_ALLOWED = 54, /* Not allowed the request now */
163 RIL_E_EMPTY_RECORD = 55, /* The request record is empty */
164 RIL_E_INVALID_SMS_FORMAT = 56, /* Invalid sms format */
165 RIL_E_ENCODING_ERR = 57, /* Message not encoded properly */
166 RIL_E_INVALID_SMSC_ADDRESS = 58, /* SMSC address specified is invalid */
167 RIL_E_NO_SUCH_ENTRY = 59, /* No such entry present to perform the request */
168 RIL_E_NETWORK_NOT_READY = 60, /* Network is not ready to perform the request */
169 RIL_E_NOT_PROVISIONED = 61, /* Device doesnot have this value provisioned */
170 RIL_E_NO_SUBSCRIPTION = 62, /* Device doesnot have subscription */
171 RIL_E_NO_NETWORK_FOUND = 63, /* Network cannot be found */
172 RIL_E_DEVICE_IN_USE = 64, /* Operation cannot be performed because the device
173 is currently in use */
174 RIL_E_ABORTED = 65, /* Operation aborted */
175 // OEM specific error codes. To be used by OEM when they don't want to reveal
176 // specific error codes which would be replaced by Generic failure.
177 RIL_E_OEM_ERROR_1 = 501,
178 RIL_E_OEM_ERROR_2 = 502,
179 RIL_E_OEM_ERROR_3 = 503,
180 RIL_E_OEM_ERROR_4 = 504,
181 RIL_E_OEM_ERROR_5 = 505,
182 RIL_E_OEM_ERROR_6 = 506,
183 RIL_E_OEM_ERROR_7 = 507,
184 RIL_E_OEM_ERROR_8 = 508,
185 RIL_E_OEM_ERROR_9 = 509,
186 RIL_E_OEM_ERROR_10 = 510,
187 RIL_E_OEM_ERROR_11 = 511,
188 RIL_E_OEM_ERROR_12 = 512,
189 RIL_E_OEM_ERROR_13 = 513,
190 RIL_E_OEM_ERROR_14 = 514,
191 RIL_E_OEM_ERROR_15 = 515,
192 RIL_E_OEM_ERROR_16 = 516,
193 RIL_E_OEM_ERROR_17 = 517,
194 RIL_E_OEM_ERROR_18 = 518,
195 RIL_E_OEM_ERROR_19 = 519,
196 RIL_E_OEM_ERROR_20 = 520,
197 RIL_E_OEM_ERROR_21 = 521,
198 RIL_E_OEM_ERROR_22 = 522,
199 RIL_E_OEM_ERROR_23 = 523,
200 RIL_E_OEM_ERROR_24 = 524,
201 RIL_E_OEM_ERROR_25 = 525
206 RIL_CALL_HOLDING = 1,
207 RIL_CALL_DIALING = 2, /* MO call only */
208 RIL_CALL_ALERTING = 3, /* MO call only */
209 RIL_CALL_INCOMING = 4, /* MT call only */
210 RIL_CALL_WAITING = 5 /* MT call only */
214 RADIO_STATE_OFF = 0, /* Radio explictly powered off (eg CFUN=0) */
215 RADIO_STATE_UNAVAILABLE = 1, /* Radio unavailable (eg, resetting or not booted) */
216 /* States 2-9 below are deprecated. Just leaving them here for backward compatibility. */
217 RADIO_STATE_SIM_NOT_READY = 2, /* Radio is on, but the SIM interface is not ready */
218 RADIO_STATE_SIM_LOCKED_OR_ABSENT = 3, /* SIM PIN locked, PUK required, network
219 personalization locked, or SIM absent */
220 RADIO_STATE_SIM_READY = 4, /* Radio is on and SIM interface is available */
221 RADIO_STATE_RUIM_NOT_READY = 5, /* Radio is on, but the RUIM interface is not ready */
222 RADIO_STATE_RUIM_READY = 6, /* Radio is on and the RUIM interface is available */
223 RADIO_STATE_RUIM_LOCKED_OR_ABSENT = 7, /* RUIM PIN locked, PUK required, network
224 personalization locked, or RUIM absent */
225 RADIO_STATE_NV_NOT_READY = 8, /* Radio is on, but the NV interface is not available */
226 RADIO_STATE_NV_READY = 9, /* Radio is on and the NV interface is available */
227 RADIO_STATE_ON = 10 /* Radio is on */
231 RADIO_TECH_UNKNOWN = 0,
235 RADIO_TECH_IS95A = 4,
236 RADIO_TECH_IS95B = 5,
237 RADIO_TECH_1xRTT = 6,
238 RADIO_TECH_EVDO_0 = 7,
239 RADIO_TECH_EVDO_A = 8,
240 RADIO_TECH_HSDPA = 9,
241 RADIO_TECH_HSUPA = 10,
242 RADIO_TECH_HSPA = 11,
243 RADIO_TECH_EVDO_B = 12,
244 RADIO_TECH_EHRPD = 13,
246 RADIO_TECH_HSPAP = 15, // HSPA+
247 RADIO_TECH_GSM = 16, // Only supports voice
248 RADIO_TECH_TD_SCDMA = 17,
249 RADIO_TECH_IWLAN = 18,
250 RADIO_TECH_LTE_CA = 19
251 } RIL_RadioTechnology;
254 RAF_UNKNOWN = (1 << RADIO_TECH_UNKNOWN),
255 RAF_GPRS = (1 << RADIO_TECH_GPRS),
256 RAF_EDGE = (1 << RADIO_TECH_EDGE),
257 RAF_UMTS = (1 << RADIO_TECH_UMTS),
258 RAF_IS95A = (1 << RADIO_TECH_IS95A),
259 RAF_IS95B = (1 << RADIO_TECH_IS95B),
260 RAF_1xRTT = (1 << RADIO_TECH_1xRTT),
261 RAF_EVDO_0 = (1 << RADIO_TECH_EVDO_0),
262 RAF_EVDO_A = (1 << RADIO_TECH_EVDO_A),
263 RAF_HSDPA = (1 << RADIO_TECH_HSDPA),
264 RAF_HSUPA = (1 << RADIO_TECH_HSUPA),
265 RAF_HSPA = (1 << RADIO_TECH_HSPA),
266 RAF_EVDO_B = (1 << RADIO_TECH_EVDO_B),
267 RAF_EHRPD = (1 << RADIO_TECH_EHRPD),
268 RAF_LTE = (1 << RADIO_TECH_LTE),
269 RAF_HSPAP = (1 << RADIO_TECH_HSPAP),
270 RAF_GSM = (1 << RADIO_TECH_GSM),
271 RAF_TD_SCDMA = (1 << RADIO_TECH_TD_SCDMA),
272 RAF_LTE_CA = (1 << RADIO_TECH_LTE_CA)
273 } RIL_RadioAccessFamily;
276 BAND_MODE_UNSPECIFIED = 0, //"unspecified" (selected by baseband automatically)
277 BAND_MODE_EURO = 1, //"EURO band" (GSM-900 / DCS-1800 / WCDMA-IMT-2000)
278 BAND_MODE_USA = 2, //"US band" (GSM-850 / PCS-1900 / WCDMA-850 / WCDMA-PCS-1900)
279 BAND_MODE_JPN = 3, //"JPN band" (WCDMA-800 / WCDMA-IMT-2000)
280 BAND_MODE_AUS = 4, //"AUS band" (GSM-900 / DCS-1800 / WCDMA-850 / WCDMA-IMT-2000)
281 BAND_MODE_AUS_2 = 5, //"AUS band 2" (GSM-900 / DCS-1800 / WCDMA-850)
282 BAND_MODE_CELL_800 = 6, //"Cellular" (800-MHz Band)
283 BAND_MODE_PCS = 7, //"PCS" (1900-MHz Band)
284 BAND_MODE_JTACS = 8, //"Band Class 3" (JTACS Band)
285 BAND_MODE_KOREA_PCS = 9, //"Band Class 4" (Korean PCS Band)
286 BAND_MODE_5_450M = 10, //"Band Class 5" (450-MHz Band)
287 BAND_MODE_IMT2000 = 11, //"Band Class 6" (2-GMHz IMT2000 Band)
288 BAND_MODE_7_700M_2 = 12, //"Band Class 7" (Upper 700-MHz Band)
289 BAND_MODE_8_1800M = 13, //"Band Class 8" (1800-MHz Band)
290 BAND_MODE_9_900M = 14, //"Band Class 9" (900-MHz Band)
291 BAND_MODE_10_800M_2 = 15, //"Band Class 10" (Secondary 800-MHz Band)
292 BAND_MODE_EURO_PAMR_400M = 16, //"Band Class 11" (400-MHz European PAMR Band)
293 BAND_MODE_AWS = 17, //"Band Class 15" (AWS Band)
294 BAND_MODE_USA_2500M = 18 //"Band Class 16" (US 2.5-GHz Band)
298 RC_PHASE_CONFIGURED = 0, // LM is configured is initial value and value after FINISH completes
299 RC_PHASE_START = 1, // START is sent before Apply and indicates that an APPLY will be
300 // forthcoming with these same parameters
301 RC_PHASE_APPLY = 2, // APPLY is sent after all LM's receive START and returned
302 // RIL_RadioCapability.status = 0, if any START's fail no
303 // APPLY will be sent
304 RC_PHASE_UNSOL_RSP = 3, // UNSOL_RSP is sent with RIL_UNSOL_RADIO_CAPABILITY
305 RC_PHASE_FINISH = 4 // FINISH is sent after all commands have completed. If an error
306 // occurs in any previous command the RIL_RadioAccessesFamily and
307 // logicalModemUuid fields will be the prior configuration thus
308 // restoring the configuration to the previous value. An error
309 // returned by this command will generally be ignored or may
310 // cause that logical modem to be removed from service.
311 } RadioCapabilityPhase;
314 RC_STATUS_NONE = 0, // This parameter has no meaning with RC_PHASE_START,
316 RC_STATUS_SUCCESS = 1, // Tell modem the action transaction of set radio
317 // capability was success with RC_PHASE_FINISH
318 RC_STATUS_FAIL = 2, // Tell modem the action transaction of set radio
319 // capability is fail with RC_PHASE_FINISH.
320 } RadioCapabilityStatus;
322 #define RIL_RADIO_CAPABILITY_VERSION 1
324 int version; // Version of structure, RIL_RADIO_CAPABILITY_VERSION
325 int session; // Unique session value defined by framework returned in all "responses/unsol"
326 int phase; // CONFIGURED, START, APPLY, FINISH
327 int rat; // RIL_RadioAccessFamily for the radio
328 char logicalModemUuid[MAX_UUID_LENGTH]; // A UUID typically "com.xxxx.lmX where X is the logical modem.
329 int status; // Return status and an input parameter for RC_PHASE_FINISH
330 } RIL_RadioCapability;
332 // Do we want to split Data from Voice and the use
333 // RIL_RadioTechnology for get/setPreferredVoice/Data ?
335 PREF_NET_TYPE_GSM_WCDMA = 0, /* GSM/WCDMA (WCDMA preferred) */
336 PREF_NET_TYPE_GSM_ONLY = 1, /* GSM only */
337 PREF_NET_TYPE_WCDMA = 2, /* WCDMA */
338 PREF_NET_TYPE_GSM_WCDMA_AUTO = 3, /* GSM/WCDMA (auto mode, according to PRL) */
339 PREF_NET_TYPE_CDMA_EVDO_AUTO = 4, /* CDMA and EvDo (auto mode, according to PRL) */
340 PREF_NET_TYPE_CDMA_ONLY = 5, /* CDMA only */
341 PREF_NET_TYPE_EVDO_ONLY = 6, /* EvDo only */
342 PREF_NET_TYPE_GSM_WCDMA_CDMA_EVDO_AUTO = 7, /* GSM/WCDMA, CDMA, and EvDo (auto mode, according to PRL) */
343 PREF_NET_TYPE_LTE_CDMA_EVDO = 8, /* LTE, CDMA and EvDo */
344 PREF_NET_TYPE_LTE_GSM_WCDMA = 9, /* LTE, GSM/WCDMA */
345 PREF_NET_TYPE_LTE_CMDA_EVDO_GSM_WCDMA = 10, /* LTE, CDMA, EvDo, GSM/WCDMA */
346 PREF_NET_TYPE_LTE_ONLY = 11, /* LTE only */
347 PREF_NET_TYPE_LTE_WCDMA = 12 /* LTE/WCDMA */
348 } RIL_PreferredNetworkType;
350 /* Source for cdma subscription */
352 CDMA_SUBSCRIPTION_SOURCE_RUIM_SIM = 0,
353 CDMA_SUBSCRIPTION_SOURCE_NV = 1
354 } RIL_CdmaSubscriptionSource;
356 /* User-to-User signaling Info activation types derived from 3GPP 23.087 v8.0 */
358 RIL_UUS_TYPE1_IMPLICIT = 0,
359 RIL_UUS_TYPE1_REQUIRED = 1,
360 RIL_UUS_TYPE1_NOT_REQUIRED = 2,
361 RIL_UUS_TYPE2_REQUIRED = 3,
362 RIL_UUS_TYPE2_NOT_REQUIRED = 4,
363 RIL_UUS_TYPE3_REQUIRED = 5,
364 RIL_UUS_TYPE3_NOT_REQUIRED = 6
367 /* User-to-User Signaling Information data coding schemes. Possible values for
368 * Octet 3 (Protocol Discriminator field) in the UUIE. The values have been
369 * specified in section 10.5.4.25 of 3GPP TS 24.008 */
371 RIL_UUS_DCS_USP = 0, /* User specified protocol */
372 RIL_UUS_DCS_OSIHLP = 1, /* OSI higher layer protocol */
373 RIL_UUS_DCS_X244 = 2, /* X.244 */
374 RIL_UUS_DCS_RMCF = 3, /* Reserved for system mangement
375 convergence function */
376 RIL_UUS_DCS_IA5c = 4 /* IA5 characters */
379 /* User-to-User Signaling Information defined in 3GPP 23.087 v8.0
380 * This data is passed in RIL_ExtensionRecord and rec contains this
381 * structure when type is RIL_UUS_INFO_EXT_REC */
383 RIL_UUS_Type uusType; /* UUS Type */
384 RIL_UUS_DCS uusDcs; /* UUS Data Coding Scheme */
385 int uusLength; /* Length of UUS Data */
386 char * uusData; /* UUS Data */
389 /* CDMA Signal Information Record as defined in C.S0005 section 3.7.5.5 */
391 char isPresent; /* non-zero if signal information record is present */
392 char signalType; /* as defined 3.7.5.5-1 */
393 char alertPitch; /* as defined 3.7.5.5-2 */
394 char signal; /* as defined 3.7.5.5-3, 3.7.5.5-4 or 3.7.5.5-5 */
395 } RIL_CDMA_SignalInfoRecord;
399 int index; /* Connection Index for use with, eg, AT+CHLD */
400 int toa; /* type of address, eg 145 = intl */
401 char isMpty; /* nonzero if is mpty call */
402 char isMT; /* nonzero if call is mobile terminated */
403 char als; /* ALS line indicator if available
405 char isVoice; /* nonzero if this is is a voice call */
406 char isVoicePrivacy; /* nonzero if CDMA voice privacy mode is active */
407 char * number; /* Remote party number */
408 int numberPresentation; /* 0=Allowed, 1=Restricted, 2=Not Specified/Unknown 3=Payphone */
409 char * name; /* Remote party name */
410 int namePresentation; /* 0=Allowed, 1=Restricted, 2=Not Specified/Unknown 3=Payphone */
411 RIL_UUS_Info * uusInfo; /* NULL or Pointer to User-User Signaling Information */
414 /* Deprecated, use RIL_Data_Call_Response_v6 */
416 int cid; /* Context ID, uniquely identifies this call */
417 int active; /* 0=inactive, 1=active/physical link down, 2=active/physical link up */
418 char * type; /* One of the PDP_type values in TS 27.007 section 10.1.1.
419 For example, "IP", "IPV6", "IPV4V6", or "PPP". */
420 char * apn; /* ignored */
421 char * address; /* An address, e.g., "192.0.1.3" or "2001:db8::1". */
422 } RIL_Data_Call_Response_v4;
425 * Returned by RIL_REQUEST_SETUP_DATA_CALL, RIL_REQUEST_DATA_CALL_LIST
426 * and RIL_UNSOL_DATA_CALL_LIST_CHANGED, on error status != 0.
429 int status; /* A RIL_DataCallFailCause, 0 which is PDP_FAIL_NONE if no error */
430 int suggestedRetryTime; /* If status != 0, this fields indicates the suggested retry
431 back-off timer value RIL wants to override the one
432 pre-configured in FW.
433 The unit is miliseconds.
434 The value < 0 means no value is suggested.
435 The value 0 means retry should be done ASAP.
436 The value of INT_MAX(0x7fffffff) means no retry. */
437 int cid; /* Context ID, uniquely identifies this call */
438 int active; /* 0=inactive, 1=active/physical link down, 2=active/physical link up */
439 char * type; /* One of the PDP_type values in TS 27.007 section 10.1.1.
440 For example, "IP", "IPV6", "IPV4V6", or "PPP". If status is
441 PDP_FAIL_ONLY_SINGLE_BEARER_ALLOWED this is the type supported
442 such as "IP" or "IPV6" */
443 char * ifname; /* The network interface name */
444 char * addresses; /* A space-delimited list of addresses with optional "/" prefix length,
445 e.g., "192.0.1.3" or "192.0.1.11/16 2001:db8::1/64".
446 May not be empty, typically 1 IPv4 or 1 IPv6 or
447 one of each. If the prefix length is absent the addresses
448 are assumed to be point to point with IPv4 having a prefix
449 length of 32 and IPv6 128. */
450 char * dnses; /* A space-delimited list of DNS server addresses,
451 e.g., "192.0.1.3" or "192.0.1.11 2001:db8::1".
453 char * gateways; /* A space-delimited list of default gateway addresses,
454 e.g., "192.0.1.3" or "192.0.1.11 2001:db8::1".
455 May be empty in which case the addresses represent point
456 to point connections. */
457 } RIL_Data_Call_Response_v6;
460 int status; /* A RIL_DataCallFailCause, 0 which is PDP_FAIL_NONE if no error */
461 int suggestedRetryTime; /* If status != 0, this fields indicates the suggested retry
462 back-off timer value RIL wants to override the one
463 pre-configured in FW.
464 The unit is miliseconds.
465 The value < 0 means no value is suggested.
466 The value 0 means retry should be done ASAP.
467 The value of INT_MAX(0x7fffffff) means no retry. */
468 int cid; /* Context ID, uniquely identifies this call */
469 int active; /* 0=inactive, 1=active/physical link down, 2=active/physical link up */
470 char * type; /* One of the PDP_type values in TS 27.007 section 10.1.1.
471 For example, "IP", "IPV6", "IPV4V6", or "PPP". If status is
472 PDP_FAIL_ONLY_SINGLE_BEARER_ALLOWED this is the type supported
473 such as "IP" or "IPV6" */
474 char * ifname; /* The network interface name */
475 char * addresses; /* A space-delimited list of addresses with optional "/" prefix length,
476 e.g., "192.0.1.3" or "192.0.1.11/16 2001:db8::1/64".
477 May not be empty, typically 1 IPv4 or 1 IPv6 or
478 one of each. If the prefix length is absent the addresses
479 are assumed to be point to point with IPv4 having a prefix
480 length of 32 and IPv6 128. */
481 char * dnses; /* A space-delimited list of DNS server addresses,
482 e.g., "192.0.1.3" or "192.0.1.11 2001:db8::1".
484 char * gateways; /* A space-delimited list of default gateway addresses,
485 e.g., "192.0.1.3" or "192.0.1.11 2001:db8::1".
486 May be empty in which case the addresses represent point
487 to point connections. */
488 char * pcscf; /* the Proxy Call State Control Function address
489 via PCO(Protocol Configuration Option) for IMS client. */
490 } RIL_Data_Call_Response_v9;
493 int status; /* A RIL_DataCallFailCause, 0 which is PDP_FAIL_NONE if no error */
494 int suggestedRetryTime; /* If status != 0, this fields indicates the suggested retry
495 back-off timer value RIL wants to override the one
496 pre-configured in FW.
497 The unit is miliseconds.
498 The value < 0 means no value is suggested.
499 The value 0 means retry should be done ASAP.
500 The value of INT_MAX(0x7fffffff) means no retry. */
501 int cid; /* Context ID, uniquely identifies this call */
502 int active; /* 0=inactive, 1=active/physical link down, 2=active/physical link up */
503 char * type; /* One of the PDP_type values in TS 27.007 section 10.1.1.
504 For example, "IP", "IPV6", "IPV4V6", or "PPP". If status is
505 PDP_FAIL_ONLY_SINGLE_BEARER_ALLOWED this is the type supported
506 such as "IP" or "IPV6" */
507 char * ifname; /* The network interface name */
508 char * addresses; /* A space-delimited list of addresses with optional "/" prefix length,
509 e.g., "192.0.1.3" or "192.0.1.11/16 2001:db8::1/64".
510 May not be empty, typically 1 IPv4 or 1 IPv6 or
511 one of each. If the prefix length is absent the addresses
512 are assumed to be point to point with IPv4 having a prefix
513 length of 32 and IPv6 128. */
514 char * dnses; /* A space-delimited list of DNS server addresses,
515 e.g., "192.0.1.3" or "192.0.1.11 2001:db8::1".
517 char * gateways; /* A space-delimited list of default gateway addresses,
518 e.g., "192.0.1.3" or "192.0.1.11 2001:db8::1".
519 May be empty in which case the addresses represent point
520 to point connections. */
521 char * pcscf; /* the Proxy Call State Control Function address
522 via PCO(Protocol Configuration Option) for IMS client. */
523 int mtu; /* MTU received from network
524 Value <= 0 means network has either not sent a value or
525 sent an invalid value */
526 } RIL_Data_Call_Response_v11;
529 RADIO_TECH_3GPP = 1, /* 3GPP Technologies - GSM, WCDMA */
530 RADIO_TECH_3GPP2 = 2 /* 3GPP2 Technologies - CDMA */
531 } RIL_RadioTechnologyFamily;
534 RIL_RadioTechnologyFamily tech;
535 unsigned char retry; /* 0 == not retry, nonzero == retry */
536 int messageRef; /* Valid field if retry is set to nonzero.
537 Contains messageRef from RIL_SMS_Response
538 corresponding to failed MO SMS.
542 /* Valid field if tech is RADIO_TECH_3GPP2. See RIL_REQUEST_CDMA_SEND_SMS */
543 RIL_CDMA_SMS_Message* cdmaMessage;
545 /* Valid field if tech is RADIO_TECH_3GPP. See RIL_REQUEST_SEND_SMS */
546 char** gsmMessage; /* This is an array of pointers where pointers
547 are contiguous but elements pointed by those pointers
551 } RIL_IMS_SMS_Message;
554 int messageRef; /* TP-Message-Reference for GSM,
555 and BearerData MessageId for CDMA
556 (See 3GPP2 C.S0015-B, v2.0, table 4.5-1). */
557 char *ackPDU; /* or NULL if n/a */
558 int errorCode; /* See 3GPP 27.005, 3.2.5 for GSM/UMTS,
559 3GPP2 N.S0005 (IS-41C) Table 171 for CDMA,
560 -1 if unknown or not applicable*/
563 /** Used by RIL_REQUEST_WRITE_SMS_TO_SIM */
565 int status; /* Status of message. See TS 27.005 3.1, "<stat>": */
566 /* 0 = "REC UNREAD" */
568 /* 2 = "STO UNSENT" */
570 char * pdu; /* PDU of message to write, as an ASCII hex string less the SMSC address,
571 the TP-layer length is "strlen(pdu)/2". */
572 char * smsc; /* SMSC address in GSM BCD format prefixed by a length byte
573 (as expected by TS 27.005) or NULL for default SMSC */
576 /** Used by RIL_REQUEST_DIAL */
580 /* (same as 'n' paremeter in TS 27.007 7.7 "+CLIR"
581 * clir == 0 on "use subscription default value"
582 * clir == 1 on "CLIR invocation" (restrict CLI presentation)
583 * clir == 2 on "CLIR suppression" (allow CLI presentation)
585 RIL_UUS_Info * uusInfo; /* NULL or Pointer to User-User Signaling Information */
589 int command; /* one of the commands listed for TS 27.007 +CRSM*/
590 int fileid; /* EF id */
591 char *path; /* "pathid" from TS 27.007 +CRSM command.
592 Path is in hex asciii format eg "7f205f70"
593 Path must always be provided.
598 char *data; /* May be NULL*/
599 char *pin2; /* May be NULL*/
603 int command; /* one of the commands listed for TS 27.007 +CRSM*/
604 int fileid; /* EF id */
605 char *path; /* "pathid" from TS 27.007 +CRSM command.
606 Path is in hex asciii format eg "7f205f70"
607 Path must always be provided.
612 char *data; /* May be NULL*/
613 char *pin2; /* May be NULL*/
614 char *aidPtr; /* AID value, See ETSI 102.221 8.1 and 101.220 4, NULL if no value. */
617 /* Used by RIL_REQUEST_SIM_TRANSMIT_APDU_CHANNEL and
618 * RIL_REQUEST_SIM_TRANSMIT_APDU_BASIC. */
620 int sessionid; /* "sessionid" from TS 27.007 +CGLA command. Should be
621 ignored for +CSIM command. */
623 /* Following fields are used to derive the APDU ("command" and "length"
624 values in TS 27.007 +CSIM and +CGLA commands). */
629 int p3; /* A negative P3 implies a 4 byte APDU. */
630 char *data; /* May be NULL. In hex string format. */
636 char *simResponse; /* In hex string format ([a-fA-F0-9]*), except for SIM_AUTHENTICATION
637 response for which it is in Base64 format, see 3GPP TS 31.102 7.1.2 */
638 } RIL_SIM_IO_Response;
640 /* See also com.android.internal.telephony.gsm.CallForwardInfo */
644 * For RIL_REQUEST_QUERY_CALL_FORWARD_STATUS
645 * status 1 = active, 0 = not active
647 * For RIL_REQUEST_SET_CALL_FORWARD:
656 int reason; /* from TS 27.007 7.11 "reason" */
657 int serviceClass;/* From 27.007 +CCFC/+CLCK "class"
658 See table for Android mapping from
660 0 means user doesn't input class */
661 int toa; /* "type" from TS 27.007 7.11 */
662 char * number; /* "number" from TS 27.007 7.11. May be NULL */
663 int timeSeconds; /* for CF no reply only */
664 }RIL_CallForwardInfo;
667 char * cid; /* Combination of LAC and Cell Id in 32 bits in GSM.
668 * Upper 16 bits is LAC and lower 16 bits
669 * is CID (as described in TS 27.005)
670 * Primary Scrambling Code (as described in TS 25.331)
672 * Valid values are hexadecimal 0x0000 - 0xffffffff.
674 int rssi; /* Received RSSI in GSM,
675 * Level index of CPICH Received Signal Code Power in UMTS
677 } RIL_NeighboringCell;
680 char lce_status; /* LCE service status:
681 * -1 = not supported;
685 unsigned int actual_interval_ms; /* actual LCE reporting interval,
686 * meaningful only if LCEStatus = 1.
691 unsigned int last_hop_capacity_kbps; /* last-hop cellular capacity: kilobits/second. */
692 unsigned char confidence_level; /* capacity estimate confidence: 0-100 */
693 unsigned char lce_suspended; /* LCE report going to be suspended? (e.g., radio
694 * moves to inactive state or network type change)
701 RIL_MATCH_ALL = 0, /* Apply to all carriers with the same mcc/mnc */
702 RIL_MATCH_SPN = 1, /* Use SPN and mcc/mnc to identify the carrier */
703 RIL_MATCH_IMSI_PREFIX = 2, /* Use IMSI prefix and mcc/mnc to identify the carrier */
704 RIL_MATCH_GID1 = 3, /* Use GID1 and mcc/mnc to identify the carrier */
705 RIL_MATCH_GID2 = 4, /* Use GID2 and mcc/mnc to identify the carrier */
706 } RIL_CarrierMatchType;
711 RIL_CarrierMatchType match_type; /* Specify match type for the carrier.
712 * If it’s RIL_MATCH_ALL, match_data is null;
713 * otherwise, match_data is the value for the match type.
715 const char * match_data;
719 int32_t len_allowed_carriers; /* length of array allowed_carriers */
720 int32_t len_excluded_carriers; /* length of array excluded_carriers */
721 RIL_Carrier * allowed_carriers; /* whitelist for allowed carriers */
722 RIL_Carrier * excluded_carriers; /* blacklist for explicitly excluded carriers
723 * which match allowed_carriers. Eg. allowed_carriers match
724 * mcc/mnc, excluded_carriers has same mcc/mnc and gid1
725 * is ABCD. It means except the carrier whose gid1 is ABCD,
726 * all carriers with the same mcc/mnc are allowed.
728 } RIL_CarrierRestrictions;
730 /* See RIL_REQUEST_LAST_CALL_FAIL_CAUSE */
732 CALL_FAIL_UNOBTAINABLE_NUMBER = 1,
733 CALL_FAIL_NO_ROUTE_TO_DESTINATION = 3,
734 CALL_FAIL_CHANNEL_UNACCEPTABLE = 6,
735 CALL_FAIL_OPERATOR_DETERMINED_BARRING = 8,
736 CALL_FAIL_NORMAL = 16,
738 CALL_FAIL_NO_USER_RESPONDING = 18,
739 CALL_FAIL_NO_ANSWER_FROM_USER = 19,
740 CALL_FAIL_CALL_REJECTED = 21,
741 CALL_FAIL_NUMBER_CHANGED = 22,
742 CALL_FAIL_PREEMPTION = 25,
743 CALL_FAIL_DESTINATION_OUT_OF_ORDER = 27,
744 CALL_FAIL_INVALID_NUMBER_FORMAT = 28,
745 CALL_FAIL_FACILITY_REJECTED = 29,
746 CALL_FAIL_RESP_TO_STATUS_ENQUIRY = 30,
747 CALL_FAIL_NORMAL_UNSPECIFIED = 31,
748 CALL_FAIL_CONGESTION = 34,
749 CALL_FAIL_NETWORK_OUT_OF_ORDER = 38,
750 CALL_FAIL_TEMPORARY_FAILURE = 41,
751 CALL_FAIL_SWITCHING_EQUIPMENT_CONGESTION = 42,
752 CALL_FAIL_ACCESS_INFORMATION_DISCARDED = 43,
753 CALL_FAIL_REQUESTED_CIRCUIT_OR_CHANNEL_NOT_AVAILABLE = 44,
754 CALL_FAIL_RESOURCES_UNAVAILABLE_OR_UNSPECIFIED = 47,
755 CALL_FAIL_QOS_UNAVAILABLE = 49,
756 CALL_FAIL_REQUESTED_FACILITY_NOT_SUBSCRIBED = 50,
757 CALL_FAIL_INCOMING_CALLS_BARRED_WITHIN_CUG = 55,
758 CALL_FAIL_BEARER_CAPABILITY_NOT_AUTHORIZED = 57,
759 CALL_FAIL_BEARER_CAPABILITY_UNAVAILABLE = 58,
760 CALL_FAIL_SERVICE_OPTION_NOT_AVAILABLE = 63,
761 CALL_FAIL_BEARER_SERVICE_NOT_IMPLEMENTED = 65,
762 CALL_FAIL_ACM_LIMIT_EXCEEDED = 68,
763 CALL_FAIL_REQUESTED_FACILITY_NOT_IMPLEMENTED = 69,
764 CALL_FAIL_ONLY_DIGITAL_INFORMATION_BEARER_AVAILABLE = 70,
765 CALL_FAIL_SERVICE_OR_OPTION_NOT_IMPLEMENTED = 79,
766 CALL_FAIL_INVALID_TRANSACTION_IDENTIFIER = 81,
767 CALL_FAIL_USER_NOT_MEMBER_OF_CUG = 87,
768 CALL_FAIL_INCOMPATIBLE_DESTINATION = 88,
769 CALL_FAIL_INVALID_TRANSIT_NW_SELECTION = 91,
770 CALL_FAIL_SEMANTICALLY_INCORRECT_MESSAGE = 95,
771 CALL_FAIL_INVALID_MANDATORY_INFORMATION = 96,
772 CALL_FAIL_MESSAGE_TYPE_NON_IMPLEMENTED = 97,
773 CALL_FAIL_MESSAGE_TYPE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 98,
774 CALL_FAIL_INFORMATION_ELEMENT_NON_EXISTENT = 99,
775 CALL_FAIL_CONDITIONAL_IE_ERROR = 100,
776 CALL_FAIL_MESSAGE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 101,
777 CALL_FAIL_RECOVERY_ON_TIMER_EXPIRED = 102,
778 CALL_FAIL_PROTOCOL_ERROR_UNSPECIFIED = 111,
779 CALL_FAIL_INTERWORKING_UNSPECIFIED = 127,
780 CALL_FAIL_CALL_BARRED = 240,
781 CALL_FAIL_FDN_BLOCKED = 241,
782 CALL_FAIL_IMSI_UNKNOWN_IN_VLR = 242,
783 CALL_FAIL_IMEI_NOT_ACCEPTED = 243,
784 CALL_FAIL_DIAL_MODIFIED_TO_USSD = 244, /* STK Call Control */
785 CALL_FAIL_DIAL_MODIFIED_TO_SS = 245,
786 CALL_FAIL_DIAL_MODIFIED_TO_DIAL = 246,
787 CALL_FAIL_CDMA_LOCKED_UNTIL_POWER_CYCLE = 1000,
788 CALL_FAIL_CDMA_DROP = 1001,
789 CALL_FAIL_CDMA_INTERCEPT = 1002,
790 CALL_FAIL_CDMA_REORDER = 1003,
791 CALL_FAIL_CDMA_SO_REJECT = 1004,
792 CALL_FAIL_CDMA_RETRY_ORDER = 1005,
793 CALL_FAIL_CDMA_ACCESS_FAILURE = 1006,
794 CALL_FAIL_CDMA_PREEMPTED = 1007,
795 CALL_FAIL_CDMA_NOT_EMERGENCY = 1008, /* For non-emergency number dialed
796 during emergency callback mode */
797 CALL_FAIL_CDMA_ACCESS_BLOCKED = 1009, /* CDMA network access probes blocked */
798 CALL_FAIL_ERROR_UNSPECIFIED = 0xffff /* This error will be deprecated soon,
799 vendor code should make sure to map error
800 code to specific error */
801 } RIL_LastCallFailCause;
804 RIL_LastCallFailCause cause_code;
806 } RIL_LastCallFailCauseInfo;
808 /* See RIL_REQUEST_LAST_DATA_CALL_FAIL_CAUSE */
810 PDP_FAIL_NONE = 0, /* No error, connection ok */
812 /* an integer cause code defined in TS 24.008
813 section 6.1.3.1.3 or TS 24.301 Release 8+ Annex B.
814 If the implementation does not have access to the exact cause codes,
815 then it should return one of the following values,
816 as the UI layer needs to distinguish these
817 cases for error notification and potential retries. */
818 PDP_FAIL_OPERATOR_BARRED = 0x08, /* no retry */
819 PDP_FAIL_NAS_SIGNALLING = 0x0E,
820 PDP_FAIL_LLC_SNDCP = 0x19,
821 PDP_FAIL_INSUFFICIENT_RESOURCES = 0x1A,
822 PDP_FAIL_MISSING_UKNOWN_APN = 0x1B, /* no retry */
823 PDP_FAIL_UNKNOWN_PDP_ADDRESS_TYPE = 0x1C, /* no retry */
824 PDP_FAIL_USER_AUTHENTICATION = 0x1D, /* no retry */
825 PDP_FAIL_ACTIVATION_REJECT_GGSN = 0x1E, /* no retry */
826 PDP_FAIL_ACTIVATION_REJECT_UNSPECIFIED = 0x1F,
827 PDP_FAIL_SERVICE_OPTION_NOT_SUPPORTED = 0x20, /* no retry */
828 PDP_FAIL_SERVICE_OPTION_NOT_SUBSCRIBED = 0x21, /* no retry */
829 PDP_FAIL_SERVICE_OPTION_OUT_OF_ORDER = 0x22,
830 PDP_FAIL_NSAPI_IN_USE = 0x23, /* no retry */
831 PDP_FAIL_REGULAR_DEACTIVATION = 0x24, /* possibly restart radio,
832 based on framework config */
833 PDP_FAIL_QOS_NOT_ACCEPTED = 0x25,
834 PDP_FAIL_NETWORK_FAILURE = 0x26,
835 PDP_FAIL_UMTS_REACTIVATION_REQ = 0x27,
836 PDP_FAIL_FEATURE_NOT_SUPP = 0x28,
837 PDP_FAIL_TFT_SEMANTIC_ERROR = 0x29,
838 PDP_FAIL_TFT_SYTAX_ERROR = 0x2A,
839 PDP_FAIL_UNKNOWN_PDP_CONTEXT = 0x2B,
840 PDP_FAIL_FILTER_SEMANTIC_ERROR = 0x2C,
841 PDP_FAIL_FILTER_SYTAX_ERROR = 0x2D,
842 PDP_FAIL_PDP_WITHOUT_ACTIVE_TFT = 0x2E,
843 PDP_FAIL_ONLY_IPV4_ALLOWED = 0x32, /* no retry */
844 PDP_FAIL_ONLY_IPV6_ALLOWED = 0x33, /* no retry */
845 PDP_FAIL_ONLY_SINGLE_BEARER_ALLOWED = 0x34,
846 PDP_FAIL_ESM_INFO_NOT_RECEIVED = 0x35,
847 PDP_FAIL_PDN_CONN_DOES_NOT_EXIST = 0x36,
848 PDP_FAIL_MULTI_CONN_TO_SAME_PDN_NOT_ALLOWED = 0x37,
849 PDP_FAIL_MAX_ACTIVE_PDP_CONTEXT_REACHED = 0x41,
850 PDP_FAIL_UNSUPPORTED_APN_IN_CURRENT_PLMN = 0x42,
851 PDP_FAIL_INVALID_TRANSACTION_ID = 0x51,
852 PDP_FAIL_MESSAGE_INCORRECT_SEMANTIC = 0x5F,
853 PDP_FAIL_INVALID_MANDATORY_INFO = 0x60,
854 PDP_FAIL_MESSAGE_TYPE_UNSUPPORTED = 0x61,
855 PDP_FAIL_MSG_TYPE_NONCOMPATIBLE_STATE = 0x62,
856 PDP_FAIL_UNKNOWN_INFO_ELEMENT = 0x63,
857 PDP_FAIL_CONDITIONAL_IE_ERROR = 0x64,
858 PDP_FAIL_MSG_AND_PROTOCOL_STATE_UNCOMPATIBLE = 0x65,
859 PDP_FAIL_PROTOCOL_ERRORS = 0x6F, /* no retry */
860 PDP_FAIL_APN_TYPE_CONFLICT = 0x70,
861 PDP_FAIL_INVALID_PCSCF_ADDR = 0x71,
862 PDP_FAIL_INTERNAL_CALL_PREEMPT_BY_HIGH_PRIO_APN = 0x72,
863 PDP_FAIL_EMM_ACCESS_BARRED = 0x73,
864 PDP_FAIL_EMERGENCY_IFACE_ONLY = 0x74,
865 PDP_FAIL_IFACE_MISMATCH = 0x75,
866 PDP_FAIL_COMPANION_IFACE_IN_USE = 0x76,
867 PDP_FAIL_IP_ADDRESS_MISMATCH = 0x77,
868 PDP_FAIL_IFACE_AND_POL_FAMILY_MISMATCH = 0x78,
869 PDP_FAIL_EMM_ACCESS_BARRED_INFINITE_RETRY = 0x79,
870 PDP_FAIL_AUTH_FAILURE_ON_EMERGENCY_CALL = 0x7A,
872 // OEM specific error codes. To be used by OEMs when they don't want to
873 // reveal error code which would be replaced by PDP_FAIL_ERROR_UNSPECIFIED
874 PDP_FAIL_OEM_DCFAILCAUSE_1 = 0x1001,
875 PDP_FAIL_OEM_DCFAILCAUSE_2 = 0x1002,
876 PDP_FAIL_OEM_DCFAILCAUSE_3 = 0x1003,
877 PDP_FAIL_OEM_DCFAILCAUSE_4 = 0x1004,
878 PDP_FAIL_OEM_DCFAILCAUSE_5 = 0x1005,
879 PDP_FAIL_OEM_DCFAILCAUSE_6 = 0x1006,
880 PDP_FAIL_OEM_DCFAILCAUSE_7 = 0x1007,
881 PDP_FAIL_OEM_DCFAILCAUSE_8 = 0x1008,
882 PDP_FAIL_OEM_DCFAILCAUSE_9 = 0x1009,
883 PDP_FAIL_OEM_DCFAILCAUSE_10 = 0x100A,
884 PDP_FAIL_OEM_DCFAILCAUSE_11 = 0x100B,
885 PDP_FAIL_OEM_DCFAILCAUSE_12 = 0x100C,
886 PDP_FAIL_OEM_DCFAILCAUSE_13 = 0x100D,
887 PDP_FAIL_OEM_DCFAILCAUSE_14 = 0x100E,
888 PDP_FAIL_OEM_DCFAILCAUSE_15 = 0x100F,
890 /* Not mentioned in the specification */
891 PDP_FAIL_VOICE_REGISTRATION_FAIL = -1,
892 PDP_FAIL_DATA_REGISTRATION_FAIL = -2,
894 /* reasons for data call drop - network/modem disconnect */
895 PDP_FAIL_SIGNAL_LOST = -3,
896 PDP_FAIL_PREF_RADIO_TECH_CHANGED = -4,/* preferred technology has changed, should retry
897 with parameters appropriate for new technology */
898 PDP_FAIL_RADIO_POWER_OFF = -5, /* data call was disconnected because radio was resetting,
899 powered off - no retry */
900 PDP_FAIL_TETHERED_CALL_ACTIVE = -6, /* data call was disconnected by modem because tethered
901 mode was up on same APN/data profile - no retry until
902 tethered call is off */
904 PDP_FAIL_ERROR_UNSPECIFIED = 0xffff, /* retry silently. Will be deprecated soon as
905 new error codes are added making this unnecessary */
906 } RIL_DataCallFailCause;
908 /* See RIL_REQUEST_SETUP_DATA_CALL */
910 RIL_DATA_PROFILE_DEFAULT = 0,
911 RIL_DATA_PROFILE_TETHERED = 1,
912 RIL_DATA_PROFILE_IMS = 2,
913 RIL_DATA_PROFILE_FOTA = 3,
914 RIL_DATA_PROFILE_CBS = 4,
915 RIL_DATA_PROFILE_OEM_BASE = 1000, /* Start of OEM-specific profiles */
916 RIL_DATA_PROFILE_INVALID = 0xFFFFFFFF
919 /* Used by RIL_UNSOL_SUPP_SVC_NOTIFICATION */
921 int notificationType; /*
922 * 0 = MO intermediate result code
923 * 1 = MT unsolicited result code
925 int code; /* See 27.007 7.17
928 int index; /* CUG index. See 27.007 7.17. */
929 int type; /* "type" from 27.007 7.17 (MT only). */
930 char * number; /* "number" from 27.007 7.17
931 (MT only, may be NULL). */
932 } RIL_SuppSvcNotification;
934 #define RIL_CARD_MAX_APPS 8
937 RIL_CARDSTATE_ABSENT = 0,
938 RIL_CARDSTATE_PRESENT = 1,
939 RIL_CARDSTATE_ERROR = 2,
940 RIL_CARDSTATE_RESTRICTED = 3 /* card is present but not usable due to carrier restrictions.*/
944 RIL_PERSOSUBSTATE_UNKNOWN = 0, /* initial state */
945 RIL_PERSOSUBSTATE_IN_PROGRESS = 1, /* in between each lock transition */
946 RIL_PERSOSUBSTATE_READY = 2, /* when either SIM or RUIM Perso is finished
947 since each app can only have 1 active perso
949 RIL_PERSOSUBSTATE_SIM_NETWORK = 3,
950 RIL_PERSOSUBSTATE_SIM_NETWORK_SUBSET = 4,
951 RIL_PERSOSUBSTATE_SIM_CORPORATE = 5,
952 RIL_PERSOSUBSTATE_SIM_SERVICE_PROVIDER = 6,
953 RIL_PERSOSUBSTATE_SIM_SIM = 7,
954 RIL_PERSOSUBSTATE_SIM_NETWORK_PUK = 8, /* The corresponding perso lock is blocked */
955 RIL_PERSOSUBSTATE_SIM_NETWORK_SUBSET_PUK = 9,
956 RIL_PERSOSUBSTATE_SIM_CORPORATE_PUK = 10,
957 RIL_PERSOSUBSTATE_SIM_SERVICE_PROVIDER_PUK = 11,
958 RIL_PERSOSUBSTATE_SIM_SIM_PUK = 12,
959 RIL_PERSOSUBSTATE_RUIM_NETWORK1 = 13,
960 RIL_PERSOSUBSTATE_RUIM_NETWORK2 = 14,
961 RIL_PERSOSUBSTATE_RUIM_HRPD = 15,
962 RIL_PERSOSUBSTATE_RUIM_CORPORATE = 16,
963 RIL_PERSOSUBSTATE_RUIM_SERVICE_PROVIDER = 17,
964 RIL_PERSOSUBSTATE_RUIM_RUIM = 18,
965 RIL_PERSOSUBSTATE_RUIM_NETWORK1_PUK = 19, /* The corresponding perso lock is blocked */
966 RIL_PERSOSUBSTATE_RUIM_NETWORK2_PUK = 20,
967 RIL_PERSOSUBSTATE_RUIM_HRPD_PUK = 21,
968 RIL_PERSOSUBSTATE_RUIM_CORPORATE_PUK = 22,
969 RIL_PERSOSUBSTATE_RUIM_SERVICE_PROVIDER_PUK = 23,
970 RIL_PERSOSUBSTATE_RUIM_RUIM_PUK = 24
974 RIL_APPSTATE_UNKNOWN = 0,
975 RIL_APPSTATE_DETECTED = 1,
976 RIL_APPSTATE_PIN = 2, /* If PIN1 or UPin is required */
977 RIL_APPSTATE_PUK = 3, /* If PUK1 or Puk for UPin is required */
978 RIL_APPSTATE_SUBSCRIPTION_PERSO = 4, /* perso_substate should be look at
979 when app_state is assigned to this value */
980 RIL_APPSTATE_READY = 5
984 RIL_PINSTATE_UNKNOWN = 0,
985 RIL_PINSTATE_ENABLED_NOT_VERIFIED = 1,
986 RIL_PINSTATE_ENABLED_VERIFIED = 2,
987 RIL_PINSTATE_DISABLED = 3,
988 RIL_PINSTATE_ENABLED_BLOCKED = 4,
989 RIL_PINSTATE_ENABLED_PERM_BLOCKED = 5
993 RIL_APPTYPE_UNKNOWN = 0,
995 RIL_APPTYPE_USIM = 2,
996 RIL_APPTYPE_RUIM = 3,
997 RIL_APPTYPE_CSIM = 4,
1003 RIL_AppType app_type;
1004 RIL_AppState app_state;
1005 RIL_PersoSubstate perso_substate; /* applicable only if app_state ==
1006 RIL_APPSTATE_SUBSCRIPTION_PERSO */
1007 char *aid_ptr; /* null terminated string, e.g., from 0xA0, 0x00 -> 0x41,
1009 char *app_label_ptr; /* null terminated string */
1010 int pin1_replaced; /* applicable to USIM, CSIM & ISIM */
1015 /* Deprecated, use RIL_CardStatus_v6 */
1018 RIL_CardState card_state;
1019 RIL_PinState universal_pin_state; /* applicable to USIM and CSIM: RIL_PINSTATE_xxx */
1020 int gsm_umts_subscription_app_index; /* value < RIL_CARD_MAX_APPS, -1 if none */
1021 int cdma_subscription_app_index; /* value < RIL_CARD_MAX_APPS, -1 if none */
1022 int num_applications; /* value <= RIL_CARD_MAX_APPS */
1023 RIL_AppStatus applications[RIL_CARD_MAX_APPS];
1024 } RIL_CardStatus_v5;
1028 RIL_CardState card_state;
1029 RIL_PinState universal_pin_state; /* applicable to USIM and CSIM: RIL_PINSTATE_xxx */
1030 int gsm_umts_subscription_app_index; /* value < RIL_CARD_MAX_APPS, -1 if none */
1031 int cdma_subscription_app_index; /* value < RIL_CARD_MAX_APPS, -1 if none */
1032 int ims_subscription_app_index; /* value < RIL_CARD_MAX_APPS, -1 if none */
1033 int num_applications; /* value <= RIL_CARD_MAX_APPS */
1034 RIL_AppStatus applications[RIL_CARD_MAX_APPS];
1035 } RIL_CardStatus_v6;
1037 /** The result of a SIM refresh, returned in data[0] of RIL_UNSOL_SIM_REFRESH
1038 * or as part of RIL_SimRefreshResponse_v7
1041 /* A file on SIM has been updated. data[1] contains the EFID. */
1042 SIM_FILE_UPDATE = 0,
1043 /* SIM initialized. All files should be re-read. */
1045 /* SIM reset. SIM power required, SIM may be locked and all files should be re-read. */
1047 } RIL_SimRefreshResult;
1050 RIL_SimRefreshResult result;
1051 int ef_id; /* is the EFID of the updated file if the result is */
1052 /* SIM_FILE_UPDATE or 0 for any other result. */
1053 char * aid; /* is AID(application ID) of the card application */
1054 /* See ETSI 102.221 8.1 and 101.220 4 */
1055 /* For SIM_FILE_UPDATE result it can be set to AID of */
1056 /* application in which updated EF resides or it can be */
1057 /* NULL if EF is outside of an application. */
1058 /* For SIM_INIT result this field is set to AID of */
1059 /* application that caused REFRESH */
1060 /* For SIM_RESET result it is NULL. */
1061 } RIL_SimRefreshResponse_v7;
1063 /* Deprecated, use RIL_CDMA_CallWaiting_v6 */
1065 char * number; /* Remote party number */
1066 int numberPresentation; /* 0=Allowed, 1=Restricted, 2=Not Specified/Unknown */
1067 char * name; /* Remote party name */
1068 RIL_CDMA_SignalInfoRecord signalInfoRecord;
1069 } RIL_CDMA_CallWaiting_v5;
1072 char * number; /* Remote party number */
1073 int numberPresentation; /* 0=Allowed, 1=Restricted, 2=Not Specified/Unknown */
1074 char * name; /* Remote party name */
1075 RIL_CDMA_SignalInfoRecord signalInfoRecord;
1076 /* Number type/Number plan required to support International Call Waiting */
1077 int number_type; /* 0=Unknown, 1=International, 2=National,
1078 3=Network specific, 4=subscriber */
1079 int number_plan; /* 0=Unknown, 1=ISDN, 3=Data, 4=Telex, 8=Nat'l, 9=Private */
1080 } RIL_CDMA_CallWaiting_v6;
1083 * Which types of Cell Broadcast Message (CBM) are to be received by the ME
1085 * uFromServiceID - uToServiceID defines a range of CBM message identifiers
1086 * whose value is 0x0000 - 0xFFFF as defined in TS 23.041 9.4.1.2.2 for GMS
1087 * and 9.4.4.2.2 for UMTS. All other values can be treated as empty
1090 * uFromCodeScheme - uToCodeScheme defines a range of CBM data coding schemes
1091 * whose value is 0x00 - 0xFF as defined in TS 23.041 9.4.1.2.3 for GMS
1092 * and 9.4.4.2.3 for UMTS.
1093 * All other values can be treated as empty CBM data coding scheme.
1095 * selected 0 means message types specified in <fromServiceId, toServiceId>
1096 * and <fromCodeScheme, toCodeScheme>are not accepted, while 1 means accepted.
1098 * Used by RIL_REQUEST_GSM_GET_BROADCAST_CONFIG and
1099 * RIL_REQUEST_GSM_SET_BROADCAST_CONFIG.
1106 unsigned char selected;
1107 } RIL_GSM_BroadcastSmsConfigInfo;
1109 /* No restriction at all including voice/SMS/USSD/SS/AV64 and packet data. */
1110 #define RIL_RESTRICTED_STATE_NONE 0x00
1111 /* Block emergency call due to restriction. But allow all normal voice/SMS/USSD/SS/AV64. */
1112 #define RIL_RESTRICTED_STATE_CS_EMERGENCY 0x01
1113 /* Block all normal voice/SMS/USSD/SS/AV64 due to restriction. Only Emergency call allowed. */
1114 #define RIL_RESTRICTED_STATE_CS_NORMAL 0x02
1115 /* Block all voice/SMS/USSD/SS/AV64 including emergency call due to restriction.*/
1116 #define RIL_RESTRICTED_STATE_CS_ALL 0x04
1117 /* Block packet data access due to restriction. */
1118 #define RIL_RESTRICTED_STATE_PS_ALL 0x10
1120 /* The status for an OTASP/OTAPA session */
1122 CDMA_OTA_PROVISION_STATUS_SPL_UNLOCKED,
1123 CDMA_OTA_PROVISION_STATUS_SPC_RETRIES_EXCEEDED,
1124 CDMA_OTA_PROVISION_STATUS_A_KEY_EXCHANGED,
1125 CDMA_OTA_PROVISION_STATUS_SSD_UPDATED,
1126 CDMA_OTA_PROVISION_STATUS_NAM_DOWNLOADED,
1127 CDMA_OTA_PROVISION_STATUS_MDN_DOWNLOADED,
1128 CDMA_OTA_PROVISION_STATUS_IMSI_DOWNLOADED,
1129 CDMA_OTA_PROVISION_STATUS_PRL_DOWNLOADED,
1130 CDMA_OTA_PROVISION_STATUS_COMMITTED,
1131 CDMA_OTA_PROVISION_STATUS_OTAPA_STARTED,
1132 CDMA_OTA_PROVISION_STATUS_OTAPA_STOPPED,
1133 CDMA_OTA_PROVISION_STATUS_OTAPA_ABORTED
1134 } RIL_CDMA_OTA_ProvisionStatus;
1137 int signalStrength; /* Valid values are (0-31, 99) as defined in TS 27.007 8.5 */
1138 int bitErrorRate; /* bit error rate (0-7, 99) as defined in TS 27.007 8.5 */
1139 } RIL_GW_SignalStrength;
1142 int signalStrength; /* Valid values are (0-31, 99) as defined in TS 27.007 8.5 */
1143 int bitErrorRate; /* bit error rate (0-7, 99) as defined in TS 27.007 8.5 */
1144 int timingAdvance; /* Timing Advance in bit periods. 1 bit period = 48/13 us.
1145 * INT_MAX denotes invalid value */
1146 } RIL_GSM_SignalStrength_v12;
1149 int signalStrength; /* Valid values are (0-31, 99) as defined in TS 27.007 8.5 */
1150 int bitErrorRate; /* bit error rate (0-7, 99) as defined in TS 27.007 8.5 */
1151 } RIL_SignalStrengthWcdma;
1154 int dbm; /* Valid values are positive integers. This value is the actual RSSI value
1155 * multiplied by -1. Example: If the actual RSSI is -75, then this response
1158 int ecio; /* Valid values are positive integers. This value is the actual Ec/Io multiplied
1159 * by -10. Example: If the actual Ec/Io is -12.5 dB, then this response value
1162 } RIL_CDMA_SignalStrength;
1166 int dbm; /* Valid values are positive integers. This value is the actual RSSI value
1167 * multiplied by -1. Example: If the actual RSSI is -75, then this response
1170 int ecio; /* Valid values are positive integers. This value is the actual Ec/Io multiplied
1171 * by -10. Example: If the actual Ec/Io is -12.5 dB, then this response value
1174 int signalNoiseRatio; /* Valid values are 0-8. 8 is the highest signal to noise ratio. */
1175 } RIL_EVDO_SignalStrength;
1178 int signalStrength; /* Valid values are (0-31, 99) as defined in TS 27.007 8.5 */
1179 int rsrp; /* The current Reference Signal Receive Power in dBm multipled by -1.
1180 * Range: 44 to 140 dBm
1181 * INT_MAX: 0x7FFFFFFF denotes invalid value.
1182 * Reference: 3GPP TS 36.133 9.1.4 */
1183 int rsrq; /* The current Reference Signal Receive Quality in dB multiplied by -1.
1184 * Range: 20 to 3 dB.
1185 * INT_MAX: 0x7FFFFFFF denotes invalid value.
1186 * Reference: 3GPP TS 36.133 9.1.7 */
1187 int rssnr; /* The current reference signal signal-to-noise ratio in 0.1 dB units.
1188 * Range: -200 to +300 (-200 = -20.0 dB, +300 = 30dB).
1189 * INT_MAX : 0x7FFFFFFF denotes invalid value.
1190 * Reference: 3GPP TS 36.101 8.1.1 */
1191 int cqi; /* The current Channel Quality Indicator.
1193 * INT_MAX : 0x7FFFFFFF denotes invalid value.
1194 * Reference: 3GPP TS 36.101 9.2, 9.3, A.4 */
1195 } RIL_LTE_SignalStrength;
1198 int signalStrength; /* Valid values are (0-31, 99) as defined in TS 27.007 8.5 */
1199 int rsrp; /* The current Reference Signal Receive Power in dBm multipled by -1.
1200 * Range: 44 to 140 dBm
1201 * INT_MAX: 0x7FFFFFFF denotes invalid value.
1202 * Reference: 3GPP TS 36.133 9.1.4 */
1203 int rsrq; /* The current Reference Signal Receive Quality in dB multiplied by -1.
1204 * Range: 20 to 3 dB.
1205 * INT_MAX: 0x7FFFFFFF denotes invalid value.
1206 * Reference: 3GPP TS 36.133 9.1.7 */
1207 int rssnr; /* The current reference signal signal-to-noise ratio in 0.1 dB units.
1208 * Range: -200 to +300 (-200 = -20.0 dB, +300 = 30dB).
1209 * INT_MAX : 0x7FFFFFFF denotes invalid value.
1210 * Reference: 3GPP TS 36.101 8.1.1 */
1211 int cqi; /* The current Channel Quality Indicator.
1213 * INT_MAX : 0x7FFFFFFF denotes invalid value.
1214 * Reference: 3GPP TS 36.101 9.2, 9.3, A.4 */
1215 int timingAdvance; /* timing advance in micro seconds for a one way trip from cell to device.
1216 * Approximate distance can be calculated using 300m/us * timingAdvance.
1217 * Range: 0 to 0x7FFFFFFE
1218 * INT_MAX : 0x7FFFFFFF denotes invalid value.
1219 * Reference: 3GPP 36.321 section 6.1.3.5
1220 * also: http://www.cellular-planningoptimization.com/2010/02/timing-advance-with-calculation.html */
1221 } RIL_LTE_SignalStrength_v8;
1224 int rscp; /* The Received Signal Code Power in dBm multipled by -1.
1226 * INT_MAX: 0x7FFFFFFF denotes invalid value.
1227 * Reference: 3GPP TS 25.123, section 9.1.1.1 */
1228 } RIL_TD_SCDMA_SignalStrength;
1230 /* Deprecated, use RIL_SignalStrength_v6 */
1232 RIL_GW_SignalStrength GW_SignalStrength;
1233 RIL_CDMA_SignalStrength CDMA_SignalStrength;
1234 RIL_EVDO_SignalStrength EVDO_SignalStrength;
1235 } RIL_SignalStrength_v5;
1238 RIL_GW_SignalStrength GW_SignalStrength;
1239 RIL_CDMA_SignalStrength CDMA_SignalStrength;
1240 RIL_EVDO_SignalStrength EVDO_SignalStrength;
1241 RIL_LTE_SignalStrength LTE_SignalStrength;
1242 } RIL_SignalStrength_v6;
1245 RIL_GW_SignalStrength GW_SignalStrength;
1246 RIL_CDMA_SignalStrength CDMA_SignalStrength;
1247 RIL_EVDO_SignalStrength EVDO_SignalStrength;
1248 RIL_LTE_SignalStrength_v8 LTE_SignalStrength;
1249 } RIL_SignalStrength_v8;
1252 RIL_GW_SignalStrength GW_SignalStrength;
1253 RIL_CDMA_SignalStrength CDMA_SignalStrength;
1254 RIL_EVDO_SignalStrength EVDO_SignalStrength;
1255 RIL_LTE_SignalStrength_v8 LTE_SignalStrength;
1256 RIL_TD_SCDMA_SignalStrength TD_SCDMA_SignalStrength;
1257 } RIL_SignalStrength_v10;
1260 int mcc; /* 3-digit Mobile Country Code, 0..999, INT_MAX if unknown */
1261 int mnc; /* 2 or 3-digit Mobile Network Code, 0..999, INT_MAX if unknown */
1262 int lac; /* 16-bit Location Area Code, 0..65535, INT_MAX if unknown */
1263 int cid; /* 16-bit GSM Cell Identity described in TS 27.007, 0..65535, INT_MAX if unknown */
1264 } RIL_CellIdentityGsm;
1267 int mcc; /* 3-digit Mobile Country Code, 0..999, INT_MAX if unknown */
1268 int mnc; /* 2 or 3-digit Mobile Network Code, 0..999, INT_MAX if unknown */
1269 int lac; /* 16-bit Location Area Code, 0..65535, INT_MAX if unknown */
1270 int cid; /* 16-bit GSM Cell Identity described in TS 27.007, 0..65535, INT_MAX if unknown */
1271 int arfcn; /* 16-bit GSM Absolute RF channel number, INT_MAX if unknown */
1272 uint8_t bsic;/* 6-bit Base Station Identity Code, 0xFF if unknown */
1273 } RIL_CellIdentityGsm_v12;
1276 int mcc; /* 3-digit Mobile Country Code, 0..999, INT_MAX if unknown */
1277 int mnc; /* 2 or 3-digit Mobile Network Code, 0..999, INT_MAX if unknown */
1278 int lac; /* 16-bit Location Area Code, 0..65535, INT_MAX if unknown */
1279 int cid; /* 28-bit UMTS Cell Identity described in TS 25.331, 0..268435455, INT_MAX if unknown */
1280 int psc; /* 9-bit UMTS Primary Scrambling Code described in TS 25.331, 0..511, INT_MAX if unknown */
1281 } RIL_CellIdentityWcdma;
1284 int mcc; /* 3-digit Mobile Country Code, 0..999, INT_MAX if unknown */
1285 int mnc; /* 2 or 3-digit Mobile Network Code, 0..999, INT_MAX if unknown */
1286 int lac; /* 16-bit Location Area Code, 0..65535, INT_MAX if unknown */
1287 int cid; /* 28-bit UMTS Cell Identity described in TS 25.331, 0..268435455, INT_MAX if unknown */
1288 int psc; /* 9-bit UMTS Primary Scrambling Code described in TS 25.331, 0..511, INT_MAX if unknown */
1289 int uarfcn; /* 16-bit UMTS Absolute RF Channel Number, INT_MAX if unknown */
1290 } RIL_CellIdentityWcdma_v12;
1293 int networkId; /* Network Id 0..65535, INT_MAX if unknown */
1294 int systemId; /* CDMA System Id 0..32767, INT_MAX if unknown */
1295 int basestationId; /* Base Station Id 0..65535, INT_MAX if unknown */
1296 int longitude; /* Longitude is a decimal number as specified in 3GPP2 C.S0005-A v6.0.
1297 * It is represented in units of 0.25 seconds and ranges from -2592000
1298 * to 2592000, both values inclusive (corresponding to a range of -180
1299 * to +180 degrees). INT_MAX if unknown */
1301 int latitude; /* Latitude is a decimal number as specified in 3GPP2 C.S0005-A v6.0.
1302 * It is represented in units of 0.25 seconds and ranges from -1296000
1303 * to 1296000, both values inclusive (corresponding to a range of -90
1304 * to +90 degrees). INT_MAX if unknown */
1305 } RIL_CellIdentityCdma;
1308 int mcc; /* 3-digit Mobile Country Code, 0..999, INT_MAX if unknown */
1309 int mnc; /* 2 or 3-digit Mobile Network Code, 0..999, INT_MAX if unknown */
1310 int ci; /* 28-bit Cell Identity described in TS ???, INT_MAX if unknown */
1311 int pci; /* physical cell id 0..503, INT_MAX if unknown */
1312 int tac; /* 16-bit tracking area code, INT_MAX if unknown */
1313 } RIL_CellIdentityLte;
1316 int mcc; /* 3-digit Mobile Country Code, 0..999, INT_MAX if unknown */
1317 int mnc; /* 2 or 3-digit Mobile Network Code, 0..999, INT_MAX if unknown */
1318 int ci; /* 28-bit Cell Identity described in TS ???, INT_MAX if unknown */
1319 int pci; /* physical cell id 0..503, INT_MAX if unknown */
1320 int tac; /* 16-bit tracking area code, INT_MAX if unknown */
1321 int earfcn; /* 18-bit LTE Absolute RC Channel Number, INT_MAX if unknown */
1322 } RIL_CellIdentityLte_v12;
1325 int mcc; /* 3-digit Mobile Country Code, 0..999, INT_MAX if unknown */
1326 int mnc; /* 2 or 3-digit Mobile Network Code, 0..999, INT_MAX if unknown */
1327 int lac; /* 16-bit Location Area Code, 0..65535, INT_MAX if unknown */
1328 int cid; /* 28-bit UMTS Cell Identity described in TS 25.331, 0..268435455, INT_MAX if unknown */
1329 int cpid; /* 8-bit Cell Parameters ID described in TS 25.331, 0..127, INT_MAX if unknown */
1330 } RIL_CellIdentityTdscdma;
1333 RIL_CellIdentityGsm cellIdentityGsm;
1334 RIL_GW_SignalStrength signalStrengthGsm;
1338 RIL_CellIdentityGsm_v12 cellIdentityGsm;
1339 RIL_GSM_SignalStrength_v12 signalStrengthGsm;
1340 } RIL_CellInfoGsm_v12;
1343 RIL_CellIdentityWcdma cellIdentityWcdma;
1344 RIL_SignalStrengthWcdma signalStrengthWcdma;
1345 } RIL_CellInfoWcdma;
1348 RIL_CellIdentityWcdma_v12 cellIdentityWcdma;
1349 RIL_SignalStrengthWcdma signalStrengthWcdma;
1350 } RIL_CellInfoWcdma_v12;
1353 RIL_CellIdentityCdma cellIdentityCdma;
1354 RIL_CDMA_SignalStrength signalStrengthCdma;
1355 RIL_EVDO_SignalStrength signalStrengthEvdo;
1359 RIL_CellIdentityLte cellIdentityLte;
1360 RIL_LTE_SignalStrength_v8 signalStrengthLte;
1364 RIL_CellIdentityLte_v12 cellIdentityLte;
1365 RIL_LTE_SignalStrength_v8 signalStrengthLte;
1366 } RIL_CellInfoLte_v12;
1369 RIL_CellIdentityTdscdma cellIdentityTdscdma;
1370 RIL_TD_SCDMA_SignalStrength signalStrengthTdscdma;
1371 } RIL_CellInfoTdscdma;
1373 // Must be the same as CellInfo.TYPE_XXX
1375 RIL_CELL_INFO_TYPE_GSM = 1,
1376 RIL_CELL_INFO_TYPE_CDMA = 2,
1377 RIL_CELL_INFO_TYPE_LTE = 3,
1378 RIL_CELL_INFO_TYPE_WCDMA = 4,
1379 RIL_CELL_INFO_TYPE_TD_SCDMA = 5
1382 // Must be the same as CellInfo.TIMESTAMP_TYPE_XXX
1384 RIL_TIMESTAMP_TYPE_UNKNOWN = 0,
1385 RIL_TIMESTAMP_TYPE_ANTENNA = 1,
1386 RIL_TIMESTAMP_TYPE_MODEM = 2,
1387 RIL_TIMESTAMP_TYPE_OEM_RIL = 3,
1388 RIL_TIMESTAMP_TYPE_JAVA_RIL = 4,
1389 } RIL_TimeStampType;
1392 RIL_CellInfoType cellInfoType; /* cell type for selecting from union CellInfo */
1393 int registered; /* !0 if this cell is registered 0 if not registered */
1394 RIL_TimeStampType timeStampType; /* type of time stamp represented by timeStamp */
1395 uint64_t timeStamp; /* Time in nanos as returned by ril_nano_time */
1397 RIL_CellInfoGsm gsm;
1398 RIL_CellInfoCdma cdma;
1399 RIL_CellInfoLte lte;
1400 RIL_CellInfoWcdma wcdma;
1401 RIL_CellInfoTdscdma tdscdma;
1406 RIL_CellInfoType cellInfoType; /* cell type for selecting from union CellInfo */
1407 int registered; /* !0 if this cell is registered 0 if not registered */
1408 RIL_TimeStampType timeStampType; /* type of time stamp represented by timeStamp */
1409 uint64_t timeStamp; /* Time in nanos as returned by ril_nano_time */
1411 RIL_CellInfoGsm_v12 gsm;
1412 RIL_CellInfoCdma cdma;
1413 RIL_CellInfoLte_v12 lte;
1414 RIL_CellInfoWcdma_v12 wcdma;
1415 RIL_CellInfoTdscdma tdscdma;
1419 /* Names of the CDMA info records (C.S0005 section 3.7.5) */
1421 RIL_CDMA_DISPLAY_INFO_REC,
1422 RIL_CDMA_CALLED_PARTY_NUMBER_INFO_REC,
1423 RIL_CDMA_CALLING_PARTY_NUMBER_INFO_REC,
1424 RIL_CDMA_CONNECTED_NUMBER_INFO_REC,
1425 RIL_CDMA_SIGNAL_INFO_REC,
1426 RIL_CDMA_REDIRECTING_NUMBER_INFO_REC,
1427 RIL_CDMA_LINE_CONTROL_INFO_REC,
1428 RIL_CDMA_EXTENDED_DISPLAY_INFO_REC,
1429 RIL_CDMA_T53_CLIR_INFO_REC,
1430 RIL_CDMA_T53_RELEASE_INFO_REC,
1431 RIL_CDMA_T53_AUDIO_CONTROL_INFO_REC
1432 } RIL_CDMA_InfoRecName;
1434 /* Display Info Rec as defined in C.S0005 section 3.7.5.1
1435 Extended Display Info Rec as defined in C.S0005 section 3.7.5.16
1436 Note: the Extended Display info rec contains multiple records of the
1437 form: display_tag, display_len, and display_len occurrences of the
1438 chari field if the display_tag is not 10000000 or 10000001.
1439 To save space, the records are stored consecutively in a byte buffer.
1440 The display_tag, display_len and chari fields are all 1 byte.
1445 char alpha_buf[CDMA_ALPHA_INFO_BUFFER_LENGTH];
1446 } RIL_CDMA_DisplayInfoRecord;
1448 /* Called Party Number Info Rec as defined in C.S0005 section 3.7.5.2
1449 Calling Party Number Info Rec as defined in C.S0005 section 3.7.5.3
1450 Connected Number Info Rec as defined in C.S0005 section 3.7.5.4
1455 char buf[CDMA_NUMBER_INFO_BUFFER_LENGTH];
1460 } RIL_CDMA_NumberInfoRecord;
1462 /* Redirecting Number Information Record as defined in C.S0005 section 3.7.5.11 */
1464 RIL_REDIRECTING_REASON_UNKNOWN = 0,
1465 RIL_REDIRECTING_REASON_CALL_FORWARDING_BUSY = 1,
1466 RIL_REDIRECTING_REASON_CALL_FORWARDING_NO_REPLY = 2,
1467 RIL_REDIRECTING_REASON_CALLED_DTE_OUT_OF_ORDER = 9,
1468 RIL_REDIRECTING_REASON_CALL_FORWARDING_BY_THE_CALLED_DTE = 10,
1469 RIL_REDIRECTING_REASON_CALL_FORWARDING_UNCONDITIONAL = 15,
1470 RIL_REDIRECTING_REASON_RESERVED
1471 } RIL_CDMA_RedirectingReason;
1474 RIL_CDMA_NumberInfoRecord redirectingNumber;
1475 /* redirectingReason is set to RIL_REDIRECTING_REASON_UNKNOWN if not included */
1476 RIL_CDMA_RedirectingReason redirectingReason;
1477 } RIL_CDMA_RedirectingNumberInfoRecord;
1479 /* Line Control Information Record as defined in C.S0005 section 3.7.5.15 */
1481 char lineCtrlPolarityIncluded;
1482 char lineCtrlToggle;
1483 char lineCtrlReverse;
1484 char lineCtrlPowerDenial;
1485 } RIL_CDMA_LineControlInfoRecord;
1487 /* T53 CLIR Information Record */
1490 } RIL_CDMA_T53_CLIRInfoRecord;
1492 /* T53 Audio Control Information Record */
1496 } RIL_CDMA_T53_AudioControlInfoRecord;
1500 RIL_CDMA_InfoRecName name;
1503 /* Display and Extended Display Info Rec */
1504 RIL_CDMA_DisplayInfoRecord display;
1506 /* Called Party Number, Calling Party Number, Connected Number Info Rec */
1507 RIL_CDMA_NumberInfoRecord number;
1509 /* Signal Info Rec */
1510 RIL_CDMA_SignalInfoRecord signal;
1512 /* Redirecting Number Info Rec */
1513 RIL_CDMA_RedirectingNumberInfoRecord redir;
1515 /* Line Control Info Rec */
1516 RIL_CDMA_LineControlInfoRecord lineCtrl;
1518 /* T53 CLIR Info Rec */
1519 RIL_CDMA_T53_CLIRInfoRecord clir;
1521 /* T53 Audio Control Info Rec */
1522 RIL_CDMA_T53_AudioControlInfoRecord audioCtrl;
1524 } RIL_CDMA_InformationRecord;
1526 #define RIL_CDMA_MAX_NUMBER_OF_INFO_RECS 10
1529 char numberOfInfoRecs;
1530 RIL_CDMA_InformationRecord infoRec[RIL_CDMA_MAX_NUMBER_OF_INFO_RECS];
1531 } RIL_CDMA_InformationRecords;
1533 /* See RIL_REQUEST_NV_READ_ITEM */
1538 /* See RIL_REQUEST_NV_WRITE_ITEM */
1545 HANDOVER_STARTED = 0,
1546 HANDOVER_COMPLETED = 1,
1547 HANDOVER_FAILED = 2,
1548 HANDOVER_CANCELED = 3
1551 /* hardware configuration reported to RILJ. */
1553 RIL_HARDWARE_CONFIG_MODEM = 0,
1554 RIL_HARDWARE_CONFIG_SIM = 1,
1555 } RIL_HardwareConfig_Type;
1558 RIL_HARDWARE_CONFIG_STATE_ENABLED = 0,
1559 RIL_HARDWARE_CONFIG_STATE_STANDBY = 1,
1560 RIL_HARDWARE_CONFIG_STATE_DISABLED = 2,
1561 } RIL_HardwareConfig_State;
1565 uint32_t rat; /* bitset - ref. RIL_RadioTechnology. */
1569 } RIL_HardwareConfig_Modem;
1572 char modemUuid[MAX_UUID_LENGTH];
1573 } RIL_HardwareConfig_Sim;
1576 RIL_HardwareConfig_Type type;
1577 char uuid[MAX_UUID_LENGTH];
1578 RIL_HardwareConfig_State state;
1580 RIL_HardwareConfig_Modem modem;
1581 RIL_HardwareConfig_Sim sim;
1583 } RIL_HardwareConfig;
1589 SS_CF_NOT_REACHABLE,
1591 SS_CF_ALL_CONDITIONAL,
1603 SS_OUTGOING_BARRING,
1605 } RIL_SsServiceType;
1613 } RIL_SsRequestType;
1616 SS_ALL_TELE_AND_BEARER_SERVICES,
1619 SS_ALL_DATA_TELESERVICES,
1621 SS_ALL_TELESERVICES_EXCEPT_SMS
1622 } RIL_SsTeleserviceType;
1624 #define SS_INFO_MAX 4
1625 #define NUM_SERVICE_CLASSES 7
1628 int numValidIndexes; /* This gives the number of valid values in cfInfo.
1629 For example if voice is forwarded to one number and data
1630 is forwarded to a different one then numValidIndexes will be
1631 2 indicating total number of valid values in cfInfo.
1632 Similarly if all the services are forwarded to the same
1633 number then the value of numValidIndexes will be 1. */
1635 RIL_CallForwardInfo cfInfo[NUM_SERVICE_CLASSES]; /* This is the response data
1636 for SS request to query call
1638 RIL_REQUEST_QUERY_CALL_FORWARD_STATUS */
1642 RIL_SsServiceType serviceType;
1643 RIL_SsRequestType requestType;
1644 RIL_SsTeleserviceType teleserviceType;
1649 int ssInfo[SS_INFO_MAX]; /* This is the response data for most of the SS GET/SET
1650 RIL requests. E.g. RIL_REQUSET_GET_CLIR returns
1651 two ints, so first two values of ssInfo[] will be
1652 used for response if serviceType is SS_CLIR and
1653 requestType is SS_INTERROGATION */
1657 } RIL_StkCcUnsolSsResponse;
1660 * Data connection power state
1663 RIL_DC_POWER_STATE_LOW = 1, // Low power state
1664 RIL_DC_POWER_STATE_MEDIUM = 2, // Medium power state
1665 RIL_DC_POWER_STATE_HIGH = 3, // High power state
1666 RIL_DC_POWER_STATE_UNKNOWN = INT32_MAX // Unknown state
1667 } RIL_DcPowerStates;
1670 * Data connection real time info
1673 uint64_t time; // Time in nanos as returned by ril_nano_time
1674 RIL_DcPowerStates powerState; // Current power state
1678 * Data profile to modem
1681 /* id of the data profile */
1683 /* the APN to connect to */
1685 /** one of the PDP_type values in TS 27.007 section 10.1.1.
1686 * For example, "IP", "IPV6", "IPV4V6", or "PPP".
1689 /** authentication protocol used for this PDP context
1690 * (None: 0, PAP: 1, CHAP: 2, PAP&CHAP: 3)
1693 /* the username for APN, or NULL */
1695 /* the password for APN, or NULL */
1697 /* the profile type, TYPE_COMMON-0, TYPE_3GPP-1, TYPE_3GPP2-2 */
1699 /* the period in seconds to limit the maximum connections */
1701 /* the maximum connections during maxConnsTime */
1703 /** the required wait time in seconds after a successful UE initiated
1704 * disconnect of a given PDN connection before the device can send
1705 * a new PDN connection request for that given PDN
1708 /* true to enable the profile, 0 to disable, 1 to enable */
1710 } RIL_DataProfileInfo;
1712 /* Tx Power Levels */
1713 #define RIL_NUM_TX_POWER_LEVELS 5
1716 * Aggregate modem activity information
1720 /* total time (in ms) when modem is in a low power or
1723 uint32_t sleep_mode_time_ms;
1725 /* total time (in ms) when modem is awake but neither
1726 * the transmitter nor receiver are active/awake */
1727 uint32_t idle_mode_time_ms;
1729 /* total time (in ms) during which the transmitter is active/awake,
1730 * subdivided by manufacturer-defined device-specific
1731 * contiguous increasing ranges of transmit power between
1732 * 0 and the transmitter's maximum transmit power.
1734 uint32_t tx_mode_time_ms[RIL_NUM_TX_POWER_LEVELS];
1736 /* total time (in ms) for which receiver is active/awake and
1737 * the transmitter is inactive */
1738 uint32_t rx_mode_time_ms;
1739 } RIL_ActivityStatsInfo;
1742 * RIL_REQUEST_GET_SIM_STATUS
1744 * Requests status of the SIM interface and the SIM card
1748 * "response" is const RIL_CardStatus_v6 *
1753 #define RIL_REQUEST_GET_SIM_STATUS 1
1756 * RIL_REQUEST_ENTER_SIM_PIN
1758 * Supplies SIM PIN. Only called if RIL_CardStatus has RIL_APPSTATE_PIN state
1760 * "data" is const char **
1761 * ((const char **)data)[0] is PIN value
1762 * ((const char **)data)[1] is AID value, See ETSI 102.221 8.1 and 101.220 4, NULL if no value.
1764 * "response" is int *
1765 * ((int *)response)[0] is the number of retries remaining, or -1 if unknown
1770 * RADIO_NOT_AVAILABLE (radio resetting)
1772 * PASSWORD_INCORRECT
1775 #define RIL_REQUEST_ENTER_SIM_PIN 2
1778 * RIL_REQUEST_ENTER_SIM_PUK
1780 * Supplies SIM PUK and new PIN.
1782 * "data" is const char **
1783 * ((const char **)data)[0] is PUK value
1784 * ((const char **)data)[1] is new PIN value
1785 * ((const char **)data)[2] is AID value, See ETSI 102.221 8.1 and 101.220 4, NULL if no value.
1787 * "response" is int *
1788 * ((int *)response)[0] is the number of retries remaining, or -1 if unknown
1793 * RADIO_NOT_AVAILABLE (radio resetting)
1795 * PASSWORD_INCORRECT
1799 #define RIL_REQUEST_ENTER_SIM_PUK 3
1802 * RIL_REQUEST_ENTER_SIM_PIN2
1804 * Supplies SIM PIN2. Only called following operation where SIM_PIN2 was
1805 * returned as a a failure from a previous operation.
1807 * "data" is const char **
1808 * ((const char **)data)[0] is PIN2 value
1809 * ((const char **)data)[1] is AID value, See ETSI 102.221 8.1 and 101.220 4, NULL if no value.
1811 * "response" is int *
1812 * ((int *)response)[0] is the number of retries remaining, or -1 if unknown
1817 * RADIO_NOT_AVAILABLE (radio resetting)
1819 * PASSWORD_INCORRECT
1822 #define RIL_REQUEST_ENTER_SIM_PIN2 4
1825 * RIL_REQUEST_ENTER_SIM_PUK2
1827 * Supplies SIM PUK2 and new PIN2.
1829 * "data" is const char **
1830 * ((const char **)data)[0] is PUK2 value
1831 * ((const char **)data)[1] is new PIN2 value
1832 * ((const char **)data)[2] is AID value, See ETSI 102.221 8.1 and 101.220 4, NULL if no value.
1834 * "response" is int *
1835 * ((int *)response)[0] is the number of retries remaining, or -1 if unknown
1840 * RADIO_NOT_AVAILABLE (radio resetting)
1842 * PASSWORD_INCORRECT
1846 #define RIL_REQUEST_ENTER_SIM_PUK2 5
1849 * RIL_REQUEST_CHANGE_SIM_PIN
1851 * Supplies old SIM PIN and new PIN.
1853 * "data" is const char **
1854 * ((const char **)data)[0] is old PIN value
1855 * ((const char **)data)[1] is new PIN value
1856 * ((const char **)data)[2] is AID value, See ETSI 102.221 8.1 and 101.220 4, NULL if no value.
1858 * "response" is int *
1859 * ((int *)response)[0] is the number of retries remaining, or -1 if unknown
1864 * RADIO_NOT_AVAILABLE (radio resetting)
1866 * PASSWORD_INCORRECT
1867 * (old PIN is invalid)
1871 #define RIL_REQUEST_CHANGE_SIM_PIN 6
1875 * RIL_REQUEST_CHANGE_SIM_PIN2
1877 * Supplies old SIM PIN2 and new PIN2.
1879 * "data" is const char **
1880 * ((const char **)data)[0] is old PIN2 value
1881 * ((const char **)data)[1] is new PIN2 value
1882 * ((const char **)data)[2] is AID value, See ETSI 102.221 8.1 and 101.220 4, NULL if no value.
1884 * "response" is int *
1885 * ((int *)response)[0] is the number of retries remaining, or -1 if unknown
1890 * RADIO_NOT_AVAILABLE (radio resetting)
1892 * PASSWORD_INCORRECT
1893 * (old PIN2 is invalid)
1897 #define RIL_REQUEST_CHANGE_SIM_PIN2 7
1900 * RIL_REQUEST_ENTER_NETWORK_DEPERSONALIZATION
1902 * Requests that network personlization be deactivated
1904 * "data" is const char **
1905 * ((const char **)(data))[0]] is network depersonlization code
1907 * "response" is int *
1908 * ((int *)response)[0] is the number of retries remaining, or -1 if unknown
1913 * RADIO_NOT_AVAILABLE (radio resetting)
1915 * PASSWORD_INCORRECT
1919 #define RIL_REQUEST_ENTER_NETWORK_DEPERSONALIZATION 8
1922 * RIL_REQUEST_GET_CURRENT_CALLS
1924 * Requests current call list
1928 * "response" must be a "const RIL_Call **"
1933 * RADIO_NOT_AVAILABLE (radio resetting)
1936 * (request will be made again in a few hundred msec)
1939 #define RIL_REQUEST_GET_CURRENT_CALLS 9
1945 * Initiate voice call
1947 * "data" is const RIL_Dial *
1948 * "response" is NULL
1950 * This method is never used for supplementary service codes
1954 * RADIO_NOT_AVAILABLE (radio resetting)
1955 * DIAL_MODIFIED_TO_USSD
1956 * DIAL_MODIFIED_TO_SS
1957 * DIAL_MODIFIED_TO_DIAL
1969 * MODE_NOT_SUPPORTED
1973 #define RIL_REQUEST_DIAL 10
1976 * RIL_REQUEST_GET_IMSI
1980 * Only valid when radio state is "RADIO_STATE_ON"
1982 * "data" is const char **
1983 * ((const char **)data)[0] is AID value, See ETSI 102.221 8.1 and 101.220 4, NULL if no value.
1984 * "response" is a const char * containing the IMSI
1988 * RADIO_NOT_AVAILABLE (radio resetting)
1992 #define RIL_REQUEST_GET_IMSI 11
1995 * RIL_REQUEST_HANGUP
1997 * Hang up a specific line (like AT+CHLD=1x)
1999 * After this HANGUP request returns, RIL should show the connection is NOT
2000 * active anymore in next RIL_REQUEST_GET_CURRENT_CALLS query.
2002 * "data" is an int *
2003 * (int *)data)[0] contains Connection index (value of 'x' in CHLD above)
2005 * "response" is NULL
2009 * RADIO_NOT_AVAILABLE (radio resetting)
2021 #define RIL_REQUEST_HANGUP 12
2024 * RIL_REQUEST_HANGUP_WAITING_OR_BACKGROUND
2026 * Hang up waiting or held (like AT+CHLD=0)
2028 * After this HANGUP request returns, RIL should show the connection is NOT
2029 * active anymore in next RIL_REQUEST_GET_CURRENT_CALLS query.
2032 * "response" is NULL
2036 * RADIO_NOT_AVAILABLE (radio resetting)
2044 * OPERATION_NOT_ALLOWED
2049 #define RIL_REQUEST_HANGUP_WAITING_OR_BACKGROUND 13
2052 * RIL_REQUEST_HANGUP_FOREGROUND_RESUME_BACKGROUND
2054 * Hang up waiting or held (like AT+CHLD=1)
2056 * After this HANGUP request returns, RIL should show the connection is NOT
2057 * active anymore in next RIL_REQUEST_GET_CURRENT_CALLS query.
2060 * "response" is NULL
2064 * RADIO_NOT_AVAILABLE (radio resetting)
2070 * OPERATION_NOT_ALLOWED
2076 #define RIL_REQUEST_HANGUP_FOREGROUND_RESUME_BACKGROUND 14
2079 * RIL_REQUEST_SWITCH_WAITING_OR_HOLDING_AND_ACTIVE
2081 * Switch waiting or holding call and active call (like AT+CHLD=2)
2083 * State transitions should be is follows:
2085 * If call 1 is waiting and call 2 is active, then if this re
2088 * Call 1 Call 2 Call 1 Call 2
2089 * ACTIVE HOLDING HOLDING ACTIVE
2090 * ACTIVE WAITING HOLDING ACTIVE
2091 * HOLDING WAITING HOLDING ACTIVE
2092 * ACTIVE IDLE HOLDING IDLE
2093 * IDLE IDLE IDLE IDLE
2096 * "response" is NULL
2100 * RADIO_NOT_AVAILABLE (radio resetting)
2108 * OPERATION_NOT_ALLOWED
2112 #define RIL_REQUEST_SWITCH_WAITING_OR_HOLDING_AND_ACTIVE 15
2113 #define RIL_REQUEST_SWITCH_HOLDING_AND_ACTIVE 15
2116 * RIL_REQUEST_CONFERENCE
2118 * Conference holding and active (like AT+CHLD=3)
2121 * "response" is NULL
2125 * RADIO_NOT_AVAILABLE (radio resetting)
2132 * OPERATION_NOT_ALLOWED
2135 #define RIL_REQUEST_CONFERENCE 16
2140 * Send UDUB (user determined used busy) to ringing or
2141 * waiting call answer)(RIL_BasicRequest r);
2144 * "response" is NULL
2148 * RADIO_NOT_AVAILABLE (radio resetting)
2155 * OPERATION_NOT_ALLOWED
2159 #define RIL_REQUEST_UDUB 17
2162 * RIL_REQUEST_LAST_CALL_FAIL_CAUSE
2164 * Requests the failure cause code for the most recently terminated call
2167 * "response" is a "int *"
2168 * ((int *)response)[0] is RIL_LastCallFailCause. GSM failure reasons are
2169 * mapped to cause codes defined in TS 24.008 Annex H where possible. CDMA
2170 * failure reasons are derived from the possible call failure scenarios
2171 * described in the "CDMA IS-2000 Release A (C.S0005-A v6.0)" standard.
2173 * The implementation should return CALL_FAIL_ERROR_UNSPECIFIED for blocked
2174 * MO calls by restricted state (See RIL_UNSOL_RESTRICTED_STATE_CHANGED)
2176 * If the implementation does not have access to the exact cause codes,
2177 * then it should return one of the values listed in RIL_LastCallFailCause,
2178 * as the UI layer needs to distinguish these cases for tone generation or
2179 * error notification.
2183 * RADIO_NOT_AVAILABLE
2187 * See also: RIL_REQUEST_LAST_DATA_CALL_FAIL_CAUSE
2189 #define RIL_REQUEST_LAST_CALL_FAIL_CAUSE 18
2192 * RIL_REQUEST_SIGNAL_STRENGTH
2194 * Requests current signal strength and associated information
2196 * Must succeed if radio is on.
2200 * "response" is a const RIL_SignalStrength *
2204 * RADIO_NOT_AVAILABLE
2206 #define RIL_REQUEST_SIGNAL_STRENGTH 19
2209 * RIL_REQUEST_VOICE_REGISTRATION_STATE
2211 * Request current registration state
2214 * "response" is a "char **"
2215 * ((const char **)response)[0] is registration state 0-6,
2216 * 0 - Not registered, MT is not currently searching
2217 * a new operator to register
2218 * 1 - Registered, home network
2219 * 2 - Not registered, but MT is currently searching
2220 * a new operator to register
2221 * 3 - Registration denied
2223 * 5 - Registered, roaming
2224 * 10 - Same as 0, but indicates that emergency calls
2226 * 12 - Same as 2, but indicates that emergency calls
2228 * 13 - Same as 3, but indicates that emergency calls
2230 * 14 - Same as 4, but indicates that emergency calls
2233 * ((const char **)response)[1] is LAC if registered on a GSM/WCDMA system or
2234 * NULL if not.Valid LAC are 0x0000 - 0xffff
2235 * ((const char **)response)[2] is CID if registered on a * GSM/WCDMA or
2237 * Valid CID are 0x00000000 - 0xffffffff
2238 * In GSM, CID is Cell ID (see TS 27.007)
2240 * In UMTS, CID is UMTS Cell Identity
2241 * (see TS 25.331) in 28 bits
2242 * ((const char **)response)[3] indicates the available voice radio technology,
2243 * valid values as defined by RIL_RadioTechnology.
2244 * ((const char **)response)[4] is Base Station ID if registered on a CDMA
2245 * system or NULL if not. Base Station ID in
2247 * ((const char **)response)[5] is Base Station latitude if registered on a
2248 * CDMA system or NULL if not. Base Station
2249 * latitude is a decimal number as specified in
2250 * 3GPP2 C.S0005-A v6.0. It is represented in
2251 * units of 0.25 seconds and ranges from -1296000
2252 * to 1296000, both values inclusive (corresponding
2253 * to a range of -90 to +90 degrees).
2254 * ((const char **)response)[6] is Base Station longitude if registered on a
2255 * CDMA system or NULL if not. Base Station
2256 * longitude is a decimal number as specified in
2257 * 3GPP2 C.S0005-A v6.0. It is represented in
2258 * units of 0.25 seconds and ranges from -2592000
2259 * to 2592000, both values inclusive (corresponding
2260 * to a range of -180 to +180 degrees).
2261 * ((const char **)response)[7] is concurrent services support indicator if
2262 * registered on a CDMA system 0-1.
2263 * 0 - Concurrent services not supported,
2264 * 1 - Concurrent services supported
2265 * ((const char **)response)[8] is System ID if registered on a CDMA system or
2266 * NULL if not. Valid System ID are 0 - 32767
2267 * ((const char **)response)[9] is Network ID if registered on a CDMA system or
2268 * NULL if not. Valid System ID are 0 - 65535
2269 * ((const char **)response)[10] is the TSB-58 Roaming Indicator if registered
2270 * on a CDMA or EVDO system or NULL if not. Valid values
2272 * ((const char **)response)[11] indicates whether the current system is in the
2273 * PRL if registered on a CDMA or EVDO system or NULL if
2274 * not. 0=not in the PRL, 1=in the PRL
2275 * ((const char **)response)[12] is the default Roaming Indicator from the PRL,
2276 * if registered on a CDMA or EVDO system or NULL if not.
2277 * Valid values are 0-255.
2278 * ((const char **)response)[13] if registration state is 3 (Registration
2279 * denied) this is an enumerated reason why
2280 * registration was denied. See 3GPP TS 24.008,
2281 * 10.5.3.6 and Annex G.
2283 * 1 - Authentication Failure
2284 * 2 - IMSI unknown in HLR
2287 * 5 - PLMN not allowed
2288 * 6 - Location area not allowed
2289 * 7 - Roaming not allowed
2290 * 8 - No Suitable Cells in this Location Area
2291 * 9 - Network failure
2292 * 10 - Persistent location update reject
2293 * 11 - PLMN not allowed
2294 * 12 - Location area not allowed
2295 * 13 - Roaming not allowed in this Location Area
2296 * 15 - No Suitable Cells in this Location Area
2297 * 17 - Network Failure
2301 * 23 - GSM Authentication unacceptable
2302 * 25 - Not Authorized for this CSG
2303 * 32 - Service option not supported
2304 * 33 - Requested service option not subscribed
2305 * 34 - Service option temporarily out of order
2306 * 38 - Call cannot be identified
2307 * 48-63 - Retry upon entry into a new cell
2308 * 95 - Semantically incorrect message
2309 * 96 - Invalid mandatory information
2310 * 97 - Message type non-existent or not implemented
2311 * 98 - Message not compatible with protocol state
2312 * 99 - Information element non-existent or not implemented
2313 * 100 - Conditional IE error
2314 * 101 - Message not compatible with protocol state
2315 * 111 - Protocol error, unspecified
2316 * ((const char **)response)[14] is the Primary Scrambling Code of the current
2317 * cell as described in TS 25.331, in hexadecimal
2318 * format, or NULL if unknown or not registered
2319 * to a UMTS network.
2321 * Please note that registration state 4 ("unknown") is treated
2322 * as "out of service" in the Android telephony system
2324 * Registration state 3 can be returned if Location Update Reject
2325 * (with cause 17 - Network Failure) is received repeatedly from the network,
2326 * to facilitate "managed roaming"
2330 * RADIO_NOT_AVAILABLE
2333 #define RIL_REQUEST_VOICE_REGISTRATION_STATE 20
2336 * RIL_REQUEST_DATA_REGISTRATION_STATE
2338 * Request current DATA registration state
2341 * "response" is a "char **"
2342 * ((const char **)response)[0] is registration state 0-5 from TS 27.007 10.1.20 AT+CGREG
2343 * ((const char **)response)[1] is LAC if registered or NULL if not
2344 * ((const char **)response)[2] is CID if registered or NULL if not
2345 * ((const char **)response)[3] indicates the available data radio technology,
2346 * valid values as defined by RIL_RadioTechnology.
2347 * ((const char **)response)[4] if registration state is 3 (Registration
2348 * denied) this is an enumerated reason why
2349 * registration was denied. See 3GPP TS 24.008,
2350 * Annex G.6 "Additonal cause codes for GMM".
2351 * 7 == GPRS services not allowed
2352 * 8 == GPRS services and non-GPRS services not allowed
2353 * 9 == MS identity cannot be derived by the network
2354 * 10 == Implicitly detached
2355 * 14 == GPRS services not allowed in this PLMN
2356 * 16 == MSC temporarily not reachable
2357 * 40 == No PDP context activated
2358 * ((const char **)response)[5] The maximum number of simultaneous Data Calls that can be
2359 * established using RIL_REQUEST_SETUP_DATA_CALL.
2361 * The values at offsets 6..10 are optional LTE location information in decimal.
2362 * If a value is unknown that value may be NULL. If all values are NULL,
2363 * none need to be present.
2364 * ((const char **)response)[6] is TAC, a 16-bit Tracking Area Code.
2365 * ((const char **)response)[7] is CID, a 0-503 Physical Cell Identifier.
2366 * ((const char **)response)[8] is ECI, a 28-bit E-UTRAN Cell Identifier.
2367 * ((const char **)response)[9] is CSGID, a 27-bit Closed Subscriber Group Identity.
2368 * ((const char **)response)[10] is TADV, a 6-bit timing advance value.
2370 * LAC and CID are in hexadecimal format.
2371 * valid LAC are 0x0000 - 0xffff
2372 * valid CID are 0x00000000 - 0x0fffffff
2374 * Please note that registration state 4 ("unknown") is treated
2375 * as "out of service" in the Android telephony system
2379 * RADIO_NOT_AVAILABLE
2382 #define RIL_REQUEST_DATA_REGISTRATION_STATE 21
2385 * RIL_REQUEST_OPERATOR
2387 * Request current operator ONS or EONS
2390 * "response" is a "const char **"
2391 * ((const char **)response)[0] is long alpha ONS or EONS
2392 * or NULL if unregistered
2394 * ((const char **)response)[1] is short alpha ONS or EONS
2395 * or NULL if unregistered
2396 * ((const char **)response)[2] is 5 or 6 digit numeric code (MCC + MNC)
2397 * or NULL if unregistered
2401 * RADIO_NOT_AVAILABLE
2404 #define RIL_REQUEST_OPERATOR 22
2407 * RIL_REQUEST_RADIO_POWER
2409 * Toggle radio on and off (for "airplane" mode)
2410 * If the radio is is turned off/on the radio modem subsystem
2411 * is expected return to an initialized state. For instance,
2412 * any voice and data calls will be terminated and all associated
2416 * ((int *)data)[0] is > 0 for "Radio On"
2417 * ((int *)data)[0] is == 0 for "Radio Off"
2419 * "response" is NULL
2421 * Turn radio on if "on" > 0
2422 * Turn radio off if "on" == 0
2426 * RADIO_NOT_AVAILABLE
2427 * OPERATION_NOT_ALLOWED
2430 #define RIL_REQUEST_RADIO_POWER 23
2437 * If the implementation is currently playing a tone requested via
2438 * RIL_REQUEST_DTMF_START, that tone should be cancelled and the new tone
2439 * should be played instead
2441 * "data" is a char * containing a single character with one of 12 values: 0-9,*,#
2442 * "response" is NULL
2444 * FIXME should this block/mute microphone?
2445 * How does this interact with local DTMF feedback?
2449 * RADIO_NOT_AVAILABLE
2458 * See also: RIL_REQUEST_DTMF_STOP, RIL_REQUEST_DTMF_START
2461 #define RIL_REQUEST_DTMF 24
2464 * RIL_REQUEST_SEND_SMS
2466 * Send an SMS message
2468 * "data" is const char **
2469 * ((const char **)data)[0] is SMSC address in GSM BCD format prefixed
2470 * by a length byte (as expected by TS 27.005) or NULL for default SMSC
2471 * ((const char **)data)[1] is SMS in PDU format as an ASCII hex string
2472 * less the SMSC address
2473 * TP-Layer-Length is be "strlen(((const char **)data)[1])/2"
2475 * "response" is a const RIL_SMS_Response *
2477 * Based on the return error, caller decides to resend if sending sms
2478 * fails. SMS_SEND_FAIL_RETRY means retry (i.e. error cause is 332)
2479 * and GENERIC_FAILURE means no retry (i.e. error cause is 500)
2483 * RADIO_NOT_AVAILABLE
2484 * SMS_SEND_FAIL_RETRY
2490 * REQUEST_RATE_LIMITED
2491 * INVALID_SMS_FORMAT
2494 * INVALID_SMSC_ADDRESS
2497 * MODE_NOT_SUPPORTED
2500 * FIXME how do we specify TP-Message-Reference if we need to resend?
2502 #define RIL_REQUEST_SEND_SMS 25
2506 * RIL_REQUEST_SEND_SMS_EXPECT_MORE
2508 * Send an SMS message. Identical to RIL_REQUEST_SEND_SMS,
2509 * except that more messages are expected to be sent soon. If possible,
2510 * keep SMS relay protocol link open (eg TS 27.005 AT+CMMS command)
2512 * "data" is const char **
2513 * ((const char **)data)[0] is SMSC address in GSM BCD format prefixed
2514 * by a length byte (as expected by TS 27.005) or NULL for default SMSC
2515 * ((const char **)data)[1] is SMS in PDU format as an ASCII hex string
2516 * less the SMSC address
2517 * TP-Layer-Length is be "strlen(((const char **)data)[1])/2"
2519 * "response" is a const RIL_SMS_Response *
2521 * Based on the return error, caller decides to resend if sending sms
2522 * fails. SMS_SEND_FAIL_RETRY means retry (i.e. error cause is 332)
2523 * and GENERIC_FAILURE means no retry (i.e. error cause is 500)
2527 * RADIO_NOT_AVAILABLE
2528 * SMS_SEND_FAIL_RETRY
2533 * INVALID_SMS_FORMAT
2535 * REQUEST_RATE_LIMITED
2540 * INVALID_SMSC_ADDRESS
2541 * MODE_NOT_SUPPORTED
2545 #define RIL_REQUEST_SEND_SMS_EXPECT_MORE 26
2549 * RIL_REQUEST_SETUP_DATA_CALL
2551 * Setup a packet data connection. If RIL_Data_Call_Response_v6.status
2552 * return success it is added to the list of data calls and a
2553 * RIL_UNSOL_DATA_CALL_LIST_CHANGED is sent. The call remains in the
2554 * list until RIL_REQUEST_DEACTIVATE_DATA_CALL is issued or the
2555 * radio is powered off/on. This list is returned by RIL_REQUEST_DATA_CALL_LIST
2556 * and RIL_UNSOL_DATA_CALL_LIST_CHANGED.
2558 * The RIL is expected to:
2559 * - Create one data call context.
2560 * - Create and configure a dedicated interface for the context
2561 * - The interface must be point to point.
2562 * - The interface is configured with one or more addresses and
2563 * is capable of sending and receiving packets. The prefix length
2564 * of the addresses must be /32 for IPv4 and /128 for IPv6.
2565 * - Must NOT change the linux routing table.
2566 * - Support up to RIL_REQUEST_DATA_REGISTRATION_STATE response[5]
2567 * number of simultaneous data call contexts.
2569 * "data" is a const char **
2570 * ((const char **)data)[0] Radio technology to use: 0-CDMA, 1-GSM/UMTS, 2...
2571 * for values above 2 this is RIL_RadioTechnology + 2.
2572 * ((const char **)data)[1] is a RIL_DataProfile (support is optional)
2573 * ((const char **)data)[2] is the APN to connect to if radio technology is GSM/UMTS. This APN will
2574 * override the one in the profile. NULL indicates no APN overrride.
2575 * ((const char **)data)[3] is the username for APN, or NULL
2576 * ((const char **)data)[4] is the password for APN, or NULL
2577 * ((const char **)data)[5] is the PAP / CHAP auth type. Values:
2578 * 0 => PAP and CHAP is never performed.
2579 * 1 => PAP may be performed; CHAP is never performed.
2580 * 2 => CHAP may be performed; PAP is never performed.
2581 * 3 => PAP / CHAP may be performed - baseband dependent.
2582 * ((const char **)data)[6] is the connection type to request must be one of the
2583 * PDP_type values in TS 27.007 section 10.1.1.
2584 * For example, "IP", "IPV6", "IPV4V6", or "PPP".
2585 * ((const char **)data)[7] Optional connection property parameters, format to be defined.
2587 * "response" is a RIL_Data_Call_Response_v11
2589 * FIXME may need way to configure QoS settings
2592 * SUCCESS should be returned on both success and failure of setup with
2593 * the RIL_Data_Call_Response_v6.status containing the actual status.
2594 * For all other errors the RIL_Data_Call_Resonse_v6 is ignored.
2596 * Other errors could include:
2597 * RADIO_NOT_AVAILABLE, GENERIC_FAILURE, OP_NOT_ALLOWED_BEFORE_REG_TO_NW,
2598 * OP_NOT_ALLOWED_DURING_VOICE_CALL and REQUEST_NOT_SUPPORTED.
2600 * See also: RIL_REQUEST_DEACTIVATE_DATA_CALL
2602 #define RIL_REQUEST_SETUP_DATA_CALL 27
2606 * RIL_REQUEST_SIM_IO
2608 * Request SIM I/O operation.
2609 * This is similar to the TS 27.007 "restricted SIM" operation
2610 * where it assumes all of the EF selection will be done by the
2613 * "data" is a const RIL_SIM_IO_v6 *
2614 * Please note that RIL_SIM_IO has a "PIN2" field which may be NULL,
2615 * or may specify a PIN2 for operations that require a PIN2 (eg
2616 * updating FDN records)
2618 * "response" is a const RIL_SIM_IO_Response *
2620 * Arguments and responses that are unused for certain
2621 * values of "command" should be ignored or set to NULL
2625 * RADIO_NOT_AVAILABLE
2630 #define RIL_REQUEST_SIM_IO 28
2633 * RIL_REQUEST_SEND_USSD
2635 * Send a USSD message
2637 * If a USSD session already exists, the message should be sent in the
2638 * context of that session. Otherwise, a new session should be created.
2640 * The network reply should be reported via RIL_UNSOL_ON_USSD
2642 * Only one USSD session may exist at a time, and the session is assumed
2644 * a) The android system invokes RIL_REQUEST_CANCEL_USSD
2645 * b) The implementation sends a RIL_UNSOL_ON_USSD with a type code
2646 * of "0" (USSD-Notify/no further action) or "2" (session terminated)
2648 * "data" is a const char * containing the USSD request in UTF-8 format
2649 * "response" is NULL
2653 * RADIO_NOT_AVAILABLE
2655 * USSD_MODIFIED_TO_DIAL
2656 * USSD_MODIFIED_TO_SS
2657 * USSD_MODIFIED_TO_USSD
2659 * OPERATION_NOT_ALLOWED
2669 * See also: RIL_REQUEST_CANCEL_USSD, RIL_UNSOL_ON_USSD
2672 #define RIL_REQUEST_SEND_USSD 29
2675 * RIL_REQUEST_CANCEL_USSD
2677 * Cancel the current USSD session if one exists
2680 * "response" is NULL
2684 * RADIO_NOT_AVAILABLE
2686 * OPERATION_NOT_ALLOWED
2694 #define RIL_REQUEST_CANCEL_USSD 30
2697 * RIL_REQUEST_GET_CLIR
2699 * Gets current CLIR status
2701 * "response" is int *
2702 * ((int *)data)[0] is "n" parameter from TS 27.007 7.7
2703 * ((int *)data)[1] is "m" parameter from TS 27.007 7.7
2707 * RADIO_NOT_AVAILABLE
2708 * SS_MODIFIED_TO_DIAL
2709 * SS_MODIFIED_TO_USSD
2718 #define RIL_REQUEST_GET_CLIR 31
2721 * RIL_REQUEST_SET_CLIR
2724 * ((int *)data)[0] is "n" parameter from TS 27.007 7.7
2726 * "response" is NULL
2730 * RADIO_NOT_AVAILABLE
2731 * SS_MODIFIED_TO_DIAL
2732 * SS_MODIFIED_TO_USSD
2738 #define RIL_REQUEST_SET_CLIR 32
2741 * RIL_REQUEST_QUERY_CALL_FORWARD_STATUS
2743 * "data" is const RIL_CallForwardInfo *
2745 * "response" is const RIL_CallForwardInfo **
2746 * "response" points to an array of RIL_CallForwardInfo *'s, one for
2747 * each distinct registered phone number.
2749 * For example, if data is forwarded to +18005551212 and voice is forwarded
2750 * to +18005559999, then two separate RIL_CallForwardInfo's should be returned
2752 * If, however, both data and voice are forwarded to +18005551212, then
2753 * a single RIL_CallForwardInfo can be returned with the service class
2754 * set to "data + voice = 3")
2758 * RADIO_NOT_AVAILABLE
2759 * SS_MODIFIED_TO_DIAL
2760 * SS_MODIFIED_TO_USSD
2771 #define RIL_REQUEST_QUERY_CALL_FORWARD_STATUS 33
2775 * RIL_REQUEST_SET_CALL_FORWARD
2777 * Configure call forward rule
2779 * "data" is const RIL_CallForwardInfo *
2780 * "response" is NULL
2784 * RADIO_NOT_AVAILABLE
2785 * SS_MODIFIED_TO_DIAL
2786 * SS_MODIFIED_TO_USSD
2797 #define RIL_REQUEST_SET_CALL_FORWARD 34
2801 * RIL_REQUEST_QUERY_CALL_WAITING
2803 * Query current call waiting state
2805 * "data" is const int *
2806 * ((const int *)data)[0] is the TS 27.007 service class to query.
2807 * "response" is a const int *
2808 * ((const int *)response)[0] is 0 for "disabled" and 1 for "enabled"
2810 * If ((const int *)response)[0] is = 1, then ((const int *)response)[1]
2811 * must follow, with the TS 27.007 service class bit vector of services
2812 * for which call waiting is enabled.
2814 * For example, if ((const int *)response)[0] is 1 and
2815 * ((const int *)response)[1] is 3, then call waiting is enabled for data
2816 * and voice and disabled for everything else
2820 * RADIO_NOT_AVAILABLE
2821 * SS_MODIFIED_TO_DIAL
2822 * SS_MODIFIED_TO_USSD
2832 #define RIL_REQUEST_QUERY_CALL_WAITING 35
2836 * RIL_REQUEST_SET_CALL_WAITING
2838 * Configure current call waiting state
2840 * "data" is const int *
2841 * ((const int *)data)[0] is 0 for "disabled" and 1 for "enabled"
2842 * ((const int *)data)[1] is the TS 27.007 service class bit vector of
2843 * services to modify
2844 * "response" is NULL
2848 * RADIO_NOT_AVAILABLE
2849 * SS_MODIFIED_TO_DIAL
2850 * SS_MODIFIED_TO_USSD
2860 #define RIL_REQUEST_SET_CALL_WAITING 36
2863 * RIL_REQUEST_SMS_ACKNOWLEDGE
2865 * Acknowledge successful or failed receipt of SMS previously indicated
2866 * via RIL_UNSOL_RESPONSE_NEW_SMS
2869 * ((int *)data)[0] is 1 on successful receipt
2870 * (basically, AT+CNMA=1 from TS 27.005
2871 * is 0 on failed receipt
2872 * (basically, AT+CNMA=2 from TS 27.005)
2873 * ((int *)data)[1] if data[0] is 0, this contains the failure cause as defined
2874 * in TS 23.040, 9.2.3.22. Currently only 0xD3 (memory
2875 * capacity exceeded) and 0xFF (unspecified error) are
2878 * "response" is NULL
2880 * FIXME would like request that specified RP-ACK/RP-ERROR PDU
2884 * RADIO_NOT_AVAILABLE
2887 #define RIL_REQUEST_SMS_ACKNOWLEDGE 37
2890 * RIL_REQUEST_GET_IMEI - DEPRECATED
2892 * Get the device IMEI, including check digit
2894 * The request is DEPRECATED, use RIL_REQUEST_DEVICE_IDENTITY
2895 * Valid when RadioState is not RADIO_STATE_UNAVAILABLE
2898 * "response" is a const char * containing the IMEI
2902 * RADIO_NOT_AVAILABLE (radio resetting)
2906 #define RIL_REQUEST_GET_IMEI 38
2909 * RIL_REQUEST_GET_IMEISV - DEPRECATED
2911 * Get the device IMEISV, which should be two decimal digits
2913 * The request is DEPRECATED, use RIL_REQUEST_DEVICE_IDENTITY
2914 * Valid when RadioState is not RADIO_STATE_UNAVAILABLE
2917 * "response" is a const char * containing the IMEISV
2921 * RADIO_NOT_AVAILABLE (radio resetting)
2925 #define RIL_REQUEST_GET_IMEISV 39
2929 * RIL_REQUEST_ANSWER
2931 * Answer incoming call
2933 * Will not be called for WAITING calls.
2934 * RIL_REQUEST_SWITCH_WAITING_OR_HOLDING_AND_ACTIVE will be used in this case
2938 * "response" is NULL
2942 * RADIO_NOT_AVAILABLE (radio resetting)
2952 #define RIL_REQUEST_ANSWER 40
2955 * RIL_REQUEST_DEACTIVATE_DATA_CALL
2957 * Deactivate packet data connection and remove from the
2958 * data call list if SUCCESS is returned. Any other return
2959 * values should also try to remove the call from the list,
2960 * but that may not be possible. In any event a
2961 * RIL_REQUEST_RADIO_POWER off/on must clear the list. An
2962 * RIL_UNSOL_DATA_CALL_LIST_CHANGED is not expected to be
2963 * issued because of an RIL_REQUEST_DEACTIVATE_DATA_CALL.
2965 * "data" is const char **
2966 * ((char**)data)[0] indicating CID
2967 * ((char**)data)[1] indicating Disconnect Reason
2968 * 0 => No specific reason specified
2969 * 1 => Radio shutdown requested
2971 * "response" is NULL
2975 * RADIO_NOT_AVAILABLE
2978 * See also: RIL_REQUEST_SETUP_DATA_CALL
2980 #define RIL_REQUEST_DEACTIVATE_DATA_CALL 41
2983 * RIL_REQUEST_QUERY_FACILITY_LOCK
2985 * Query the status of a facility lock state
2987 * "data" is const char **
2988 * ((const char **)data)[0] is the facility string code from TS 27.007 7.4
2989 * (eg "AO" for BAOC, "SC" for SIM lock)
2990 * ((const char **)data)[1] is the password, or "" if not required
2991 * ((const char **)data)[2] is the TS 27.007 service class bit vector of
2993 * ((const char **)data)[3] is AID value, See ETSI 102.221 8.1 and 101.220 4, NULL if no value.
2994 * This is only applicable in the case of Fixed Dialing Numbers
2997 * "response" is an int *
2998 * ((const int *)response) 0 is the TS 27.007 service class bit vector of
2999 * services for which the specified barring facility
3000 * is active. "0" means "disabled for all"
3005 * RADIO_NOT_AVAILABLE
3006 * SS_MODIFIED_TO_DIAL
3007 * SS_MODIFIED_TO_USSD
3018 #define RIL_REQUEST_QUERY_FACILITY_LOCK 42
3021 * RIL_REQUEST_SET_FACILITY_LOCK
3023 * Enable/disable one facility lock
3025 * "data" is const char **
3027 * ((const char **)data)[0] = facility string code from TS 27.007 7.4
3028 * (eg "AO" for BAOC)
3029 * ((const char **)data)[1] = "0" for "unlock" and "1" for "lock"
3030 * ((const char **)data)[2] = password
3031 * ((const char **)data)[3] = string representation of decimal TS 27.007
3032 * service class bit vector. Eg, the string
3033 * "1" means "set this facility for voice services"
3034 * ((const char **)data)[4] = AID value, See ETSI 102.221 8.1 and 101.220 4, NULL if no value.
3035 * This is only applicable in the case of Fixed Dialing Numbers
3038 * "response" is int *
3039 * ((int *)response)[0] is the number of retries remaining, or -1 if unknown
3043 * RADIO_NOT_AVAILABLE
3044 * SS_MODIFIED_TO_DIAL
3045 * SS_MODIFIED_TO_USSD
3056 #define RIL_REQUEST_SET_FACILITY_LOCK 43
3059 * RIL_REQUEST_CHANGE_BARRING_PASSWORD
3061 * Change call barring facility password
3063 * "data" is const char **
3065 * ((const char **)data)[0] = facility string code from TS 27.007 7.4
3066 * (eg "AO" for BAOC)
3067 * ((const char **)data)[1] = old password
3068 * ((const char **)data)[2] = new password
3070 * "response" is NULL
3074 * RADIO_NOT_AVAILABLE
3075 * SS_MODIFIED_TO_DIAL
3076 * SS_MODIFIED_TO_USSD
3087 #define RIL_REQUEST_CHANGE_BARRING_PASSWORD 44
3090 * RIL_REQUEST_QUERY_NETWORK_SELECTION_MODE
3092 * Query current network selectin mode
3096 * "response" is int *
3097 * ((const int *)response)[0] is
3098 * 0 for automatic selection
3099 * 1 for manual selection
3103 * RADIO_NOT_AVAILABLE
3107 #define RIL_REQUEST_QUERY_NETWORK_SELECTION_MODE 45
3110 * RIL_REQUEST_SET_NETWORK_SELECTION_AUTOMATIC
3112 * Specify that the network should be selected automatically
3115 * "response" is NULL
3117 * This request must not respond until the new operator is selected
3122 * RADIO_NOT_AVAILABLE
3124 * OPERATION_NOT_ALLOWED
3127 * Note: Returns ILLEGAL_SIM_OR_ME when the failure is permanent and
3128 * no retries needed, such as illegal SIM or ME.
3129 * Returns GENERIC_FAILURE for all other causes that might be
3133 #define RIL_REQUEST_SET_NETWORK_SELECTION_AUTOMATIC 46
3136 * RIL_REQUEST_SET_NETWORK_SELECTION_MANUAL
3138 * Manually select a specified network.
3140 * "data" is const char * specifying MCCMNC of network to select (eg "310170")
3141 * "response" is NULL
3143 * This request must not respond until the new operator is selected
3148 * RADIO_NOT_AVAILABLE
3150 * OPERATION_NOT_ALLOWED
3153 * Note: Returns ILLEGAL_SIM_OR_ME when the failure is permanent and
3154 * no retries needed, such as illegal SIM or ME.
3155 * Returns GENERIC_FAILURE for all other causes that might be
3159 #define RIL_REQUEST_SET_NETWORK_SELECTION_MANUAL 47
3162 * RIL_REQUEST_QUERY_AVAILABLE_NETWORKS
3164 * Scans for available networks
3167 * "response" is const char ** that should be an array of n*4 strings, where
3168 * n is the number of available networks
3169 * For each available network:
3171 * ((const char **)response)[n+0] is long alpha ONS or EONS
3172 * ((const char **)response)[n+1] is short alpha ONS or EONS
3173 * ((const char **)response)[n+2] is 5 or 6 digit numeric code (MCC + MNC)
3174 * ((const char **)response)[n+3] is a string value of the status:
3180 * This request must not respond until the new operator is selected
3185 * RADIO_NOT_AVAILABLE
3186 * OPERATION_NOT_ALLOWED
3190 #define RIL_REQUEST_QUERY_AVAILABLE_NETWORKS 48
3193 * RIL_REQUEST_DTMF_START
3195 * Start playing a DTMF tone. Continue playing DTMF tone until
3196 * RIL_REQUEST_DTMF_STOP is received
3198 * If a RIL_REQUEST_DTMF_START is received while a tone is currently playing,
3199 * it should cancel the previous tone and play the new one.
3201 * "data" is a char *
3202 * ((char *)data)[0] is a single character with one of 12 values: 0-9,*,#
3203 * "response" is NULL
3207 * RADIO_NOT_AVAILABLE
3217 * See also: RIL_REQUEST_DTMF, RIL_REQUEST_DTMF_STOP
3219 #define RIL_REQUEST_DTMF_START 49
3222 * RIL_REQUEST_DTMF_STOP
3224 * Stop playing a currently playing DTMF tone.
3227 * "response" is NULL
3231 * RADIO_NOT_AVAILABLE
3232 * OPERATION_NOT_ALLOWED
3242 * See also: RIL_REQUEST_DTMF, RIL_REQUEST_DTMF_START
3244 #define RIL_REQUEST_DTMF_STOP 50
3247 * RIL_REQUEST_BASEBAND_VERSION
3249 * Return string value indicating baseband version, eg
3250 * response from AT+CGMR
3253 * "response" is const char * containing version string for log reporting
3257 * RADIO_NOT_AVAILABLE
3262 #define RIL_REQUEST_BASEBAND_VERSION 51
3265 * RIL_REQUEST_SEPARATE_CONNECTION
3267 * Separate a party from a multiparty call placing the multiparty call
3268 * (less the specified party) on hold and leaving the specified party
3269 * as the only other member of the current (active) call
3273 * See TS 22.084 1.3.8.2 (iii)
3274 * TS 22.030 6.5.5 "Entering "2X followed by send"
3275 * TS 27.007 "AT+CHLD=2x"
3277 * "data" is an int *
3278 * (int *)data)[0] contains Connection index (value of 'x' in CHLD above) "response" is NULL
3280 * "response" is NULL
3284 * RADIO_NOT_AVAILABLE (radio resetting)
3294 * OPERATION_NOT_ALLOWED
3297 #define RIL_REQUEST_SEPARATE_CONNECTION 52
3301 * RIL_REQUEST_SET_MUTE
3303 * Turn on or off uplink (microphone) mute.
3305 * Will only be sent while voice call is active.
3306 * Will always be reset to "disable mute" when a new voice call is initiated
3308 * "data" is an int *
3309 * (int *)data)[0] is 1 for "enable mute" and 0 for "disable mute"
3311 * "response" is NULL
3315 * RADIO_NOT_AVAILABLE (radio resetting)
3318 * REQUEST_RATE_LIMITED
3322 #define RIL_REQUEST_SET_MUTE 53
3325 * RIL_REQUEST_GET_MUTE
3327 * Queries the current state of the uplink mute setting
3330 * "response" is an int *
3331 * (int *)response)[0] is 1 for "mute enabled" and 0 for "mute disabled"
3335 * RADIO_NOT_AVAILABLE (radio resetting)
3336 * SS_MODIFIED_TO_DIAL
3337 * SS_MODIFIED_TO_USSD
3340 * REQUEST_RATE_LIMITED
3344 #define RIL_REQUEST_GET_MUTE 54
3347 * RIL_REQUEST_QUERY_CLIP
3349 * Queries the status of the CLIP supplementary service
3351 * (for MMI code "*#30#")
3354 * "response" is an int *
3355 * (int *)response)[0] is 1 for "CLIP provisioned"
3356 * and 0 for "CLIP not provisioned"
3357 * and 2 for "unknown, e.g. no network etc"
3361 * RADIO_NOT_AVAILABLE (radio resetting)
3370 #define RIL_REQUEST_QUERY_CLIP 55
3373 * RIL_REQUEST_LAST_DATA_CALL_FAIL_CAUSE - Deprecated use the status
3374 * field in RIL_Data_Call_Response_v6.
3376 * Requests the failure cause code for the most recently failed PDP
3377 * context or CDMA data connection active
3378 * replaces RIL_REQUEST_LAST_PDP_FAIL_CAUSE
3382 * "response" is a "int *"
3383 * ((int *)response)[0] is an integer cause code defined in TS 24.008
3384 * section 6.1.3.1.3 or close approximation
3386 * If the implementation does not have access to the exact cause codes,
3387 * then it should return one of the values listed in
3388 * RIL_DataCallFailCause, as the UI layer needs to distinguish these
3389 * cases for error notification
3390 * and potential retries.
3394 * RADIO_NOT_AVAILABLE
3397 * See also: RIL_REQUEST_LAST_CALL_FAIL_CAUSE
3399 * Deprecated use the status field in RIL_Data_Call_Response_v6.
3402 #define RIL_REQUEST_LAST_DATA_CALL_FAIL_CAUSE 56
3405 * RIL_REQUEST_DATA_CALL_LIST
3407 * Returns the data call list. An entry is added when a
3408 * RIL_REQUEST_SETUP_DATA_CALL is issued and removed on a
3409 * RIL_REQUEST_DEACTIVATE_DATA_CALL. The list is emptied
3410 * when RIL_REQUEST_RADIO_POWER off/on is issued.
3413 * "response" is an array of RIL_Data_Call_Response_v6
3417 * RADIO_NOT_AVAILABLE (radio resetting)
3420 * See also: RIL_UNSOL_DATA_CALL_LIST_CHANGED
3423 #define RIL_REQUEST_DATA_CALL_LIST 57
3426 * RIL_REQUEST_RESET_RADIO - DEPRECATED
3428 * Request a radio reset. The RIL implementation may postpone
3429 * the reset until after this request is responded to if the baseband
3430 * is presently busy.
3432 * The request is DEPRECATED, use RIL_REQUEST_RADIO_POWER
3435 * "response" is NULL
3439 * RADIO_NOT_AVAILABLE (radio resetting)
3441 * REQUEST_NOT_SUPPORTED
3444 #define RIL_REQUEST_RESET_RADIO 58
3447 * RIL_REQUEST_OEM_HOOK_RAW
3449 * This request reserved for OEM-specific uses. It passes raw byte arrays
3452 * It can be invoked on the Java side from
3453 * com.android.internal.telephony.Phone.invokeOemRilRequestRaw()
3455 * "data" is a char * of bytes copied from the byte[] data argument in java
3456 * "response" is a char * of bytes that will returned via the
3457 * caller's "response" Message here:
3458 * (byte[])(((AsyncResult)response.obj).result)
3460 * An error response here will result in
3461 * (((AsyncResult)response.obj).result) == null and
3462 * (((AsyncResult)response.obj).exception) being an instance of
3463 * com.android.internal.telephony.gsm.CommandException
3469 #define RIL_REQUEST_OEM_HOOK_RAW 59
3472 * RIL_REQUEST_OEM_HOOK_STRINGS
3474 * This request reserved for OEM-specific uses. It passes strings
3477 * It can be invoked on the Java side from
3478 * com.android.internal.telephony.Phone.invokeOemRilRequestStrings()
3480 * "data" is a const char **, representing an array of null-terminated UTF-8
3481 * strings copied from the "String[] strings" argument to
3482 * invokeOemRilRequestStrings()
3484 * "response" is a const char **, representing an array of null-terminated UTF-8
3485 * stings that will be returned via the caller's response message here:
3487 * (String[])(((AsyncResult)response.obj).result)
3489 * An error response here will result in
3490 * (((AsyncResult)response.obj).result) == null and
3491 * (((AsyncResult)response.obj).exception) being an instance of
3492 * com.android.internal.telephony.gsm.CommandException
3498 #define RIL_REQUEST_OEM_HOOK_STRINGS 60
3501 * RIL_REQUEST_SCREEN_STATE
3503 * Indicates the current state of the screen. When the screen is off, the
3504 * RIL should notify the baseband to suppress certain notifications (eg,
3505 * signal strength and changes in LAC/CID or BID/SID/NID/latitude/longitude)
3506 * in an effort to conserve power. These notifications should resume when the
3510 * ((int *)data)[0] is == 1 for "Screen On"
3511 * ((int *)data)[0] is == 0 for "Screen Off"
3513 * "response" is NULL
3519 #define RIL_REQUEST_SCREEN_STATE 61
3523 * RIL_REQUEST_SET_SUPP_SVC_NOTIFICATION
3525 * Enables/disables supplementary service related notifications
3528 * Notifications are reported via RIL_UNSOL_SUPP_SVC_NOTIFICATION.
3531 * ((int *)data)[0] is == 1 for notifications enabled
3532 * ((int *)data)[0] is == 0 for notifications disabled
3534 * "response" is NULL
3538 * RADIO_NOT_AVAILABLE
3547 * See also: RIL_UNSOL_SUPP_SVC_NOTIFICATION.
3549 #define RIL_REQUEST_SET_SUPP_SVC_NOTIFICATION 62
3552 * RIL_REQUEST_WRITE_SMS_TO_SIM
3554 * Stores a SMS message to SIM memory.
3556 * "data" is RIL_SMS_WriteArgs *
3558 * "response" is int *
3559 * ((const int *)response)[0] is the record index where the message is stored.
3565 * INVALID_SMS_FORMAT
3571 * INVALID_MODEM_STATE
3572 * MODE_NOT_SUPPORTED
3573 * INVALID_SMSC_ADDRESS
3577 #define RIL_REQUEST_WRITE_SMS_TO_SIM 63
3580 * RIL_REQUEST_DELETE_SMS_ON_SIM
3582 * Deletes a SMS message from SIM memory.
3585 * ((int *)data)[0] is the record index of the message to delete.
3587 * "response" is NULL
3594 * REQUEST_RATE_LIMITED
3601 #define RIL_REQUEST_DELETE_SMS_ON_SIM 64
3604 * RIL_REQUEST_SET_BAND_MODE
3606 * Assign a specified band for RF configuration.
3609 * ((int *)data)[0] is a RIL_RadioBandMode
3611 * "response" is NULL
3615 * RADIO_NOT_AVAILABLE
3616 * OPERATION_NOT_ALLOWED
3619 * See also: RIL_REQUEST_QUERY_AVAILABLE_BAND_MODE
3621 #define RIL_REQUEST_SET_BAND_MODE 65
3624 * RIL_REQUEST_QUERY_AVAILABLE_BAND_MODE
3626 * Query the list of band mode supported by RF.
3630 * "response" is int *
3631 * "response" points to an array of int's, the int[0] is the size of array;
3632 * subsequent values are a list of RIL_RadioBandMode listing supported modes.
3636 * RADIO_NOT_AVAILABLE
3639 * See also: RIL_REQUEST_SET_BAND_MODE
3641 #define RIL_REQUEST_QUERY_AVAILABLE_BAND_MODE 66
3644 * RIL_REQUEST_STK_GET_PROFILE
3646 * Requests the profile of SIM tool kit.
3647 * The profile indicates the SAT/USAT features supported by ME.
3648 * The SAT/USAT features refer to 3GPP TS 11.14 and 3GPP TS 31.111
3652 * "response" is a const char * containing SAT/USAT profile
3653 * in hexadecimal format string starting with first byte of terminal profile
3657 * RIL_E_RADIO_NOT_AVAILABLE (radio resetting)
3658 * RIL_E_GENERIC_FAILURE
3660 #define RIL_REQUEST_STK_GET_PROFILE 67
3663 * RIL_REQUEST_STK_SET_PROFILE
3665 * Download the STK terminal profile as part of SIM initialization
3668 * "data" is a const char * containing SAT/USAT profile
3669 * in hexadecimal format string starting with first byte of terminal profile
3671 * "response" is NULL
3675 * RIL_E_RADIO_NOT_AVAILABLE (radio resetting)
3676 * RIL_E_GENERIC_FAILURE
3678 #define RIL_REQUEST_STK_SET_PROFILE 68
3681 * RIL_REQUEST_STK_SEND_ENVELOPE_COMMAND
3683 * Requests to send a SAT/USAT envelope command to SIM.
3684 * The SAT/USAT envelope command refers to 3GPP TS 11.14 and 3GPP TS 31.111
3686 * "data" is a const char * containing SAT/USAT command
3687 * in hexadecimal format string starting with command tag
3689 * "response" is a const char * containing SAT/USAT response
3690 * in hexadecimal format string starting with first byte of response
3695 * RIL_E_RADIO_NOT_AVAILABLE (radio resetting)
3697 * OPERATION_NOT_ALLOWED
3698 * RIL_E_GENERIC_FAILURE
3700 #define RIL_REQUEST_STK_SEND_ENVELOPE_COMMAND 69
3703 * RIL_REQUEST_STK_SEND_TERMINAL_RESPONSE
3705 * Requests to send a terminal response to SIM for a received
3708 * "data" is a const char * containing SAT/USAT response
3709 * in hexadecimal format string starting with first byte of response data
3711 * "response" is NULL
3715 * RIL_E_RADIO_NOT_AVAILABLE (radio resetting)
3716 * RIL_E_OPERATION_NOT_ALLOWED
3717 * RIL_E_GENERIC_FAILURE
3719 #define RIL_REQUEST_STK_SEND_TERMINAL_RESPONSE 70
3722 * RIL_REQUEST_STK_HANDLE_CALL_SETUP_REQUESTED_FROM_SIM
3724 * When STK application gets RIL_UNSOL_STK_CALL_SETUP, the call actually has
3725 * been initialized by ME already. (We could see the call has been in the 'call
3726 * list') So, STK application needs to accept/reject the call according as user
3730 * ((int *)data)[0] is > 0 for "accept" the call setup
3731 * ((int *)data)[0] is == 0 for "reject" the call setup
3733 * "response" is NULL
3737 * RIL_E_RADIO_NOT_AVAILABLE (radio resetting)
3738 * RIL_E_OPERATION_NOT_ALLOWED
3739 * RIL_E_GENERIC_FAILURE
3741 #define RIL_REQUEST_STK_HANDLE_CALL_SETUP_REQUESTED_FROM_SIM 71
3744 * RIL_REQUEST_EXPLICIT_CALL_TRANSFER
3746 * Connects the two calls and disconnects the subscriber from both calls.
3749 * "response" is NULL
3753 * RADIO_NOT_AVAILABLE (radio resetting)
3763 * OPERATION_NOT_ALLOWED
3766 #define RIL_REQUEST_EXPLICIT_CALL_TRANSFER 72
3769 * RIL_REQUEST_SET_PREFERRED_NETWORK_TYPE
3771 * Requests to set the preferred network type for searching and registering
3772 * (CS/PS domain, RAT, and operation mode)
3774 * "data" is int * which is RIL_PreferredNetworkType
3776 * "response" is NULL
3780 * RADIO_NOT_AVAILABLE (radio resetting)
3782 * OPERATION_NOT_ALLOWED
3783 * MODE_NOT_SUPPORTED
3785 #define RIL_REQUEST_SET_PREFERRED_NETWORK_TYPE 73
3788 * RIL_REQUEST_GET_PREFERRED_NETWORK_TYPE
3790 * Query the preferred network type (CS/PS domain, RAT, and operation mode)
3791 * for searching and registering
3795 * "response" is int *
3796 * ((int *)reponse)[0] is == RIL_PreferredNetworkType
3800 * RADIO_NOT_AVAILABLE
3803 * See also: RIL_REQUEST_SET_PREFERRED_NETWORK_TYPE
3805 #define RIL_REQUEST_GET_PREFERRED_NETWORK_TYPE 74
3808 * RIL_REQUEST_NEIGHBORING_CELL_IDS
3810 * Request neighboring cell id in GSM network
3813 * "response" must be a " const RIL_NeighboringCell** "
3817 * RADIO_NOT_AVAILABLE
3820 #define RIL_REQUEST_GET_NEIGHBORING_CELL_IDS 75
3823 * RIL_REQUEST_SET_LOCATION_UPDATES
3825 * Enables/disables network state change notifications due to changes in
3826 * LAC and/or CID (for GSM) or BID/SID/NID/latitude/longitude (for CDMA).
3827 * Basically +CREG=2 vs. +CREG=1 (TS 27.007).
3829 * Note: The RIL implementation should default to "updates enabled"
3830 * when the screen is on and "updates disabled" when the screen is off.
3833 * ((int *)data)[0] is == 1 for updates enabled (+CREG=2)
3834 * ((int *)data)[0] is == 0 for updates disabled (+CREG=1)
3836 * "response" is NULL
3840 * RADIO_NOT_AVAILABLE
3843 * See also: RIL_REQUEST_SCREEN_STATE, RIL_UNSOL_RESPONSE_NETWORK_STATE_CHANGED
3845 #define RIL_REQUEST_SET_LOCATION_UPDATES 76
3848 * RIL_REQUEST_CDMA_SET_SUBSCRIPTION_SOURCE
3850 * Request to set the location where the CDMA subscription shall
3854 * ((int *)data)[0] is == RIL_CdmaSubscriptionSource
3856 * "response" is NULL
3860 * RADIO_NOT_AVAILABLE
3863 * SUBSCRIPTION_NOT_AVAILABLE
3865 * See also: RIL_REQUEST_CDMA_GET_SUBSCRIPTION_SOURCE
3867 #define RIL_REQUEST_CDMA_SET_SUBSCRIPTION_SOURCE 77
3870 * RIL_REQUEST_CDMA_SET_ROAMING_PREFERENCE
3872 * Request to set the roaming preferences in CDMA
3875 * ((int *)data)[0] is == 0 for Home Networks only, as defined in PRL
3876 * ((int *)data)[0] is == 1 for Roaming on Affiliated networks, as defined in PRL
3877 * ((int *)data)[0] is == 2 for Roaming on Any Network, as defined in the PRL
3879 * "response" is NULL
3883 * RADIO_NOT_AVAILABLE
3886 #define RIL_REQUEST_CDMA_SET_ROAMING_PREFERENCE 78
3889 * RIL_REQUEST_CDMA_QUERY_ROAMING_PREFERENCE
3891 * Request the actual setting of the roaming preferences in CDMA in the modem
3895 * "response" is int *
3896 * ((int *)response)[0] is == 0 for Home Networks only, as defined in PRL
3897 * ((int *)response)[0] is == 1 for Roaming on Affiliated networks, as defined in PRL
3898 * ((int *)response)[0] is == 2 for Roaming on Any Network, as defined in the PRL
3900 * "response" is NULL
3904 * RADIO_NOT_AVAILABLE
3907 #define RIL_REQUEST_CDMA_QUERY_ROAMING_PREFERENCE 79
3910 * RIL_REQUEST_SET_TTY_MODE
3912 * Request to set the TTY mode
3915 * ((int *)data)[0] is == 0 for TTY off
3916 * ((int *)data)[0] is == 1 for TTY Full
3917 * ((int *)data)[0] is == 2 for TTY HCO (hearing carryover)
3918 * ((int *)data)[0] is == 3 for TTY VCO (voice carryover)
3920 * "response" is NULL
3924 * RADIO_NOT_AVAILABLE
3935 #define RIL_REQUEST_SET_TTY_MODE 80
3938 * RIL_REQUEST_QUERY_TTY_MODE
3940 * Request the setting of TTY mode
3944 * "response" is int *
3945 * ((int *)response)[0] is == 0 for TTY off
3946 * ((int *)response)[0] is == 1 for TTY Full
3947 * ((int *)response)[0] is == 2 for TTY HCO (hearing carryover)
3948 * ((int *)response)[0] is == 3 for TTY VCO (voice carryover)
3950 * "response" is NULL
3954 * RADIO_NOT_AVAILABLE
3961 #define RIL_REQUEST_QUERY_TTY_MODE 81
3964 * RIL_REQUEST_CDMA_SET_PREFERRED_VOICE_PRIVACY_MODE
3966 * Request to set the preferred voice privacy mode used in voice
3970 * ((int *)data)[0] is == 0 for Standard Privacy Mode (Public Long Code Mask)
3971 * ((int *)data)[0] is == 1 for Enhanced Privacy Mode (Private Long Code Mask)
3973 * "response" is NULL
3977 * RADIO_NOT_AVAILABLE
3986 #define RIL_REQUEST_CDMA_SET_PREFERRED_VOICE_PRIVACY_MODE 82
3989 * RIL_REQUEST_CDMA_QUERY_PREFERRED_VOICE_PRIVACY_MODE
3991 * Request the setting of preferred voice privacy mode
3995 * "response" is int *
3996 * ((int *)response)[0] is == 0 for Standard Privacy Mode (Public Long Code Mask)
3997 * ((int *)response)[0] is == 1 for Enhanced Privacy Mode (Private Long Code Mask)
3999 * "response" is NULL
4003 * RADIO_NOT_AVAILABLE
4010 #define RIL_REQUEST_CDMA_QUERY_PREFERRED_VOICE_PRIVACY_MODE 83
4013 * RIL_REQUEST_CDMA_FLASH
4017 * "data" is const char *
4018 * ((const char *)data)[0] is a FLASH string
4020 * "response" is NULL
4024 * RADIO_NOT_AVAILABLE
4035 #define RIL_REQUEST_CDMA_FLASH 84
4038 * RIL_REQUEST_CDMA_BURST_DTMF
4042 * "data" is const char **
4043 * ((const char **)data)[0] is a DTMF string
4044 * ((const char **)data)[1] is the DTMF ON length in milliseconds, or 0 to use
4046 * ((const char **)data)[2] is the DTMF OFF length in milliseconds, or 0 to use
4049 * "response" is NULL
4053 * RADIO_NOT_AVAILABLE
4063 #define RIL_REQUEST_CDMA_BURST_DTMF 85
4066 * RIL_REQUEST_CDMA_VALIDATE_AND_WRITE_AKEY
4068 * Takes a 26 digit string (20 digit AKEY + 6 digit checksum).
4069 * If the checksum is valid the 20 digit AKEY is written to NV,
4070 * replacing the existing AKEY no matter what it was before.
4072 * "data" is const char *
4073 * ((const char *)data)[0] is a 26 digit string (ASCII digits '0'-'9')
4074 * where the last 6 digits are a checksum of the
4075 * first 20, as specified in TR45.AHAG
4076 * "Common Cryptographic Algorithms, Revision D.1
4079 * "response" is NULL
4083 * RADIO_NOT_AVAILABLE
4087 #define RIL_REQUEST_CDMA_VALIDATE_AND_WRITE_AKEY 86
4090 * RIL_REQUEST_CDMA_SEND_SMS
4092 * Send a CDMA SMS message
4094 * "data" is const RIL_CDMA_SMS_Message *
4096 * "response" is a const RIL_SMS_Response *
4098 * Based on the return error, caller decides to resend if sending sms
4099 * fails. The CDMA error class is derived as follows,
4100 * SUCCESS is error class 0 (no error)
4101 * SMS_SEND_FAIL_RETRY is error class 2 (temporary failure)
4102 * and GENERIC_FAILURE is error class 3 (permanent and no retry)
4106 * RADIO_NOT_AVAILABLE
4107 * SMS_SEND_FAIL_RETRY
4112 * REQUEST_RATE_LIMITED
4113 * INVALID_SMS_FORMAT
4119 * INVALID_SMSC_ADDRESS
4120 * MODE_NOT_SUPPORTED
4124 #define RIL_REQUEST_CDMA_SEND_SMS 87
4127 * RIL_REQUEST_CDMA_SMS_ACKNOWLEDGE
4129 * Acknowledge the success or failure in the receipt of SMS
4130 * previously indicated via RIL_UNSOL_RESPONSE_CDMA_NEW_SMS
4132 * "data" is const RIL_CDMA_SMS_Ack *
4134 * "response" is NULL
4138 * RADIO_NOT_AVAILABLE
4143 * REQUEST_RATE_LIMITED
4147 * MODE_NOT_SUPPORTED
4149 * INVALID_MODEM_STATE
4153 #define RIL_REQUEST_CDMA_SMS_ACKNOWLEDGE 88
4156 * RIL_REQUEST_GSM_GET_BROADCAST_SMS_CONFIG
4158 * Request the setting of GSM/WCDMA Cell Broadcast SMS config.
4162 * "response" is a const RIL_GSM_BroadcastSmsConfigInfo **
4163 * "responselen" is count * sizeof (RIL_GSM_BroadcastSmsConfigInfo *)
4167 * RADIO_NOT_AVAILABLE
4170 * REQUEST_RATE_LIMITED
4178 #define RIL_REQUEST_GSM_GET_BROADCAST_SMS_CONFIG 89
4181 * RIL_REQUEST_GSM_SET_BROADCAST_SMS_CONFIG
4183 * Set GSM/WCDMA Cell Broadcast SMS config
4185 * "data" is a const RIL_GSM_BroadcastSmsConfigInfo **
4186 * "datalen" is count * sizeof(RIL_GSM_BroadcastSmsConfigInfo *)
4188 * "response" is NULL
4192 * RADIO_NOT_AVAILABLE
4197 * REQUEST_RATE_LIMITED
4203 #define RIL_REQUEST_GSM_SET_BROADCAST_SMS_CONFIG 90
4206 * RIL_REQUEST_GSM_SMS_BROADCAST_ACTIVATION
4208 * Enable or disable the reception of GSM/WCDMA Cell Broadcast SMS
4210 * "data" is const int *
4211 * (const int *)data[0] indicates to activate or turn off the
4212 * reception of GSM/WCDMA Cell Broadcast SMS, 0-1,
4213 * 0 - Activate, 1 - Turn off
4215 * "response" is NULL
4219 * RADIO_NOT_AVAILABLE
4224 * REQUEST_RATE_LIMITED
4229 #define RIL_REQUEST_GSM_SMS_BROADCAST_ACTIVATION 91
4232 * RIL_REQUEST_CDMA_GET_BROADCAST_SMS_CONFIG
4234 * Request the setting of CDMA Broadcast SMS config
4238 * "response" is a const RIL_CDMA_BroadcastSmsConfigInfo **
4239 * "responselen" is count * sizeof (RIL_CDMA_BroadcastSmsConfigInfo *)
4243 * RADIO_NOT_AVAILABLE
4246 * REQUEST_RATE_LIMITED
4254 #define RIL_REQUEST_CDMA_GET_BROADCAST_SMS_CONFIG 92
4257 * RIL_REQUEST_CDMA_SET_BROADCAST_SMS_CONFIG
4259 * Set CDMA Broadcast SMS config
4261 * "data" is an const RIL_CDMA_BroadcastSmsConfigInfo **
4262 * "datalen" is count * sizeof(const RIL_CDMA_BroadcastSmsConfigInfo *)
4264 * "response" is NULL
4268 * RADIO_NOT_AVAILABLE
4273 * REQUEST_RATE_LIMITED
4279 #define RIL_REQUEST_CDMA_SET_BROADCAST_SMS_CONFIG 93
4282 * RIL_REQUEST_CDMA_SMS_BROADCAST_ACTIVATION
4284 * Enable or disable the reception of CDMA Broadcast SMS
4286 * "data" is const int *
4287 * (const int *)data[0] indicates to activate or turn off the
4288 * reception of CDMA Broadcast SMS, 0-1,
4289 * 0 - Activate, 1 - Turn off
4291 * "response" is NULL
4295 * RADIO_NOT_AVAILABLE
4300 * REQUEST_RATE_LIMITED
4305 #define RIL_REQUEST_CDMA_SMS_BROADCAST_ACTIVATION 94
4308 * RIL_REQUEST_CDMA_SUBSCRIPTION
4310 * Request the device MDN / H_SID / H_NID.
4312 * The request is only allowed when CDMA subscription is available. When CDMA
4313 * subscription is changed, application layer should re-issue the request to
4314 * update the subscription information.
4316 * If a NULL value is returned for any of the device id, it means that error
4317 * accessing the device.
4319 * "response" is const char **
4320 * ((const char **)response)[0] is MDN if CDMA subscription is available
4321 * ((const char **)response)[1] is a comma separated list of H_SID (Home SID) if
4322 * CDMA subscription is available, in decimal format
4323 * ((const char **)response)[2] is a comma separated list of H_NID (Home NID) if
4324 * CDMA subscription is available, in decimal format
4325 * ((const char **)response)[3] is MIN (10 digits, MIN2+MIN1) if CDMA subscription is available
4326 * ((const char **)response)[4] is PRL version if CDMA subscription is available
4330 * RIL_E_SUBSCRIPTION_NOT_AVAILABLE
4333 #define RIL_REQUEST_CDMA_SUBSCRIPTION 95
4336 * RIL_REQUEST_CDMA_WRITE_SMS_TO_RUIM
4338 * Stores a CDMA SMS message to RUIM memory.
4340 * "data" is RIL_CDMA_SMS_WriteArgs *
4342 * "response" is int *
4343 * ((const int *)response)[0] is the record index where the message is stored.
4347 * RADIO_NOT_AVAILABLE
4350 * INVALID_SMS_FORMAT
4356 * INVALID_MODEM_STATE
4357 * MODE_NOT_SUPPORTED
4358 * INVALID_SMSC_ADDRESS
4362 #define RIL_REQUEST_CDMA_WRITE_SMS_TO_RUIM 96
4365 * RIL_REQUEST_CDMA_DELETE_SMS_ON_RUIM
4367 * Deletes a CDMA SMS message from RUIM memory.
4370 * ((int *)data)[0] is the record index of the message to delete.
4372 * "response" is NULL
4376 * RADIO_NOT_AVAILABLE
4379 * REQUEST_RATE_LIMITED
4386 #define RIL_REQUEST_CDMA_DELETE_SMS_ON_RUIM 97
4389 * RIL_REQUEST_DEVICE_IDENTITY
4391 * Request the device ESN / MEID / IMEI / IMEISV.
4393 * The request is always allowed and contains GSM and CDMA device identity;
4394 * it substitutes the deprecated requests RIL_REQUEST_GET_IMEI and
4395 * RIL_REQUEST_GET_IMEISV.
4397 * If a NULL value is returned for any of the device id, it means that error
4398 * accessing the device.
4400 * When CDMA subscription is changed the ESN/MEID may change. The application
4401 * layer should re-issue the request to update the device identity in this case.
4403 * "response" is const char **
4404 * ((const char **)response)[0] is IMEI if GSM subscription is available
4405 * ((const char **)response)[1] is IMEISV if GSM subscription is available
4406 * ((const char **)response)[2] is ESN if CDMA subscription is available
4407 * ((const char **)response)[3] is MEID if CDMA subscription is available
4411 * RADIO_NOT_AVAILABLE
4414 #define RIL_REQUEST_DEVICE_IDENTITY 98
4417 * RIL_REQUEST_EXIT_EMERGENCY_CALLBACK_MODE
4419 * Request the radio's system selection module to exit emergency
4420 * callback mode. RIL will not respond with SUCCESS until the modem has
4421 * completely exited from Emergency Callback Mode.
4425 * "response" is NULL
4429 * RADIO_NOT_AVAILABLE
4430 * OPERATION_NOT_ALLOWED
4434 #define RIL_REQUEST_EXIT_EMERGENCY_CALLBACK_MODE 99
4437 * RIL_REQUEST_GET_SMSC_ADDRESS
4439 * Queries the default Short Message Service Center address on the device.
4443 * "response" is const char * containing the SMSC address.
4447 * RADIO_NOT_AVAILABLE
4449 * REQUEST_RATE_LIMITED
4454 * INVALID_MODEM_STATE
4459 #define RIL_REQUEST_GET_SMSC_ADDRESS 100
4462 * RIL_REQUEST_SET_SMSC_ADDRESS
4464 * Sets the default Short Message Service Center address on the device.
4466 * "data" is const char * containing the SMSC address.
4468 * "response" is NULL
4472 * RADIO_NOT_AVAILABLE
4474 * INVALID_SMS_FORMAT
4477 * REQUEST_RATE_LIMITED
4483 #define RIL_REQUEST_SET_SMSC_ADDRESS 101
4486 * RIL_REQUEST_REPORT_SMS_MEMORY_STATUS
4488 * Indicates whether there is storage available for new SMS messages.
4491 * ((int *)data)[0] is 1 if memory is available for storing new messages
4492 * is 0 if memory capacity is exceeded
4494 * "response" is NULL
4498 * RADIO_NOT_AVAILABLE
4503 * REQUEST_RATE_LIMITED
4508 #define RIL_REQUEST_REPORT_SMS_MEMORY_STATUS 102
4511 * RIL_REQUEST_REPORT_STK_SERVICE_IS_RUNNING
4513 * Indicates that the StkSerivce is running and is
4514 * ready to receive RIL_UNSOL_STK_XXXXX commands.
4517 * "response" is NULL
4521 * RADIO_NOT_AVAILABLE
4525 #define RIL_REQUEST_REPORT_STK_SERVICE_IS_RUNNING 103
4528 * RIL_REQUEST_CDMA_GET_SUBSCRIPTION_SOURCE
4530 * Request to query the location where the CDMA subscription shall
4535 * "response" is int *
4536 * ((int *)data)[0] is == RIL_CdmaSubscriptionSource
4540 * RADIO_NOT_AVAILABLE
4542 * SUBSCRIPTION_NOT_AVAILABLE
4544 * See also: RIL_REQUEST_CDMA_SET_SUBSCRIPTION_SOURCE
4546 #define RIL_REQUEST_CDMA_GET_SUBSCRIPTION_SOURCE 104
4549 * RIL_REQUEST_ISIM_AUTHENTICATION
4551 * Request the ISIM application on the UICC to perform AKA
4552 * challenge/response algorithm for IMS authentication
4554 * "data" is a const char * containing the challenge string in Base64 format
4555 * "response" is a const char * containing the response in Base64 format
4559 * RADIO_NOT_AVAILABLE
4562 #define RIL_REQUEST_ISIM_AUTHENTICATION 105
4565 * RIL_REQUEST_ACKNOWLEDGE_INCOMING_GSM_SMS_WITH_PDU
4567 * Acknowledge successful or failed receipt of SMS previously indicated
4568 * via RIL_UNSOL_RESPONSE_NEW_SMS, including acknowledgement TPDU to send
4569 * as the RP-User-Data element of the RP-ACK or RP-ERROR PDU.
4571 * "data" is const char **
4572 * ((const char **)data)[0] is "1" on successful receipt (send RP-ACK)
4573 * is "0" on failed receipt (send RP-ERROR)
4574 * ((const char **)data)[1] is the acknowledgement TPDU in hexadecimal format
4576 * "response" is NULL
4580 * RADIO_NOT_AVAILABLE
4583 #define RIL_REQUEST_ACKNOWLEDGE_INCOMING_GSM_SMS_WITH_PDU 106
4586 * RIL_REQUEST_STK_SEND_ENVELOPE_WITH_STATUS
4588 * Requests to send a SAT/USAT envelope command to SIM.
4589 * The SAT/USAT envelope command refers to 3GPP TS 11.14 and 3GPP TS 31.111.
4591 * This request has one difference from RIL_REQUEST_STK_SEND_ENVELOPE_COMMAND:
4592 * the SW1 and SW2 status bytes from the UICC response are returned along with
4593 * the response data, using the same structure as RIL_REQUEST_SIM_IO.
4595 * The RIL implementation shall perform the normal processing of a '91XX'
4596 * response in SW1/SW2 to retrieve the pending proactive command and send it
4597 * as an unsolicited response, as RIL_REQUEST_STK_SEND_ENVELOPE_COMMAND does.
4599 * "data" is a const char * containing the SAT/USAT command
4600 * in hexadecimal format starting with command tag
4602 * "response" is a const RIL_SIM_IO_Response *
4606 * RIL_E_RADIO_NOT_AVAILABLE (radio resetting)
4608 * OPERATION_NOT_ALLOWED
4609 * RIL_E_GENERIC_FAILURE
4611 #define RIL_REQUEST_STK_SEND_ENVELOPE_WITH_STATUS 107
4614 * RIL_REQUEST_VOICE_RADIO_TECH
4616 * Query the radio technology type (3GPP/3GPP2) used for voice. Query is valid only
4617 * when radio state is RADIO_STATE_ON
4620 * "response" is int *
4621 * ((int *) response)[0] is of type const RIL_RadioTechnology
4625 * RADIO_NOT_AVAILABLE
4628 #define RIL_REQUEST_VOICE_RADIO_TECH 108
4631 * RIL_REQUEST_GET_CELL_INFO_LIST
4633 * Request all of the current cell information known to the radio. The radio
4634 * must a list of all current cells, including the neighboring cells. If for a particular
4635 * cell information isn't known then the appropriate unknown value will be returned.
4636 * This does not cause or change the rate of RIL_UNSOL_CELL_INFO_LIST.
4640 * "response" is an array of RIL_CellInfo_v12.
4642 #define RIL_REQUEST_GET_CELL_INFO_LIST 109
4645 * RIL_REQUEST_SET_UNSOL_CELL_INFO_LIST_RATE
4647 * Sets the minimum time between when RIL_UNSOL_CELL_INFO_LIST should be invoked.
4648 * A value of 0, means invoke RIL_UNSOL_CELL_INFO_LIST when any of the reported
4649 * information changes. Setting the value to INT_MAX(0x7fffffff) means never issue
4650 * a RIL_UNSOL_CELL_INFO_LIST.
4653 * ((int *)data)[0] is minimum time in milliseconds
4655 * "response" is NULL
4659 * RADIO_NOT_AVAILABLE
4662 #define RIL_REQUEST_SET_UNSOL_CELL_INFO_LIST_RATE 110
4665 * RIL_REQUEST_SET_INITIAL_ATTACH_APN
4667 * Set an apn to initial attach network
4668 * "response" is NULL
4672 * RADIO_NOT_AVAILABLE (radio resetting)
4674 * SUBSCRIPTION_NOT_AVAILABLE
4676 #define RIL_REQUEST_SET_INITIAL_ATTACH_APN 111
4679 * RIL_REQUEST_IMS_REGISTRATION_STATE
4681 * Request current IMS registration state
4685 * "response" is int *
4686 * ((int *)response)[0] is registration state:
4687 * 0 - Not registered
4690 * If ((int*)response)[0] is = 1, then ((int *) response)[1]
4691 * must follow with IMS SMS format:
4693 * ((int *) response)[1] is of type RIL_RadioTechnologyFamily
4697 * RADIO_NOT_AVAILABLE
4700 #define RIL_REQUEST_IMS_REGISTRATION_STATE 112
4703 * RIL_REQUEST_IMS_SEND_SMS
4705 * Send a SMS message over IMS
4707 * "data" is const RIL_IMS_SMS_Message *
4709 * "response" is a const RIL_SMS_Response *
4711 * Based on the return error, caller decides to resend if sending sms
4712 * fails. SMS_SEND_FAIL_RETRY means retry, and other errors means no retry.
4713 * In case of retry, data is encoded based on Voice Technology available.
4717 * RADIO_NOT_AVAILABLE
4718 * SMS_SEND_FAIL_RETRY
4724 * INVALID_SMS_FORMAT
4726 * REQUEST_RATE_LIMITED
4730 * INVALID_SMSC_ADDRESS
4731 * MODE_NOT_SUPPORTED
4735 #define RIL_REQUEST_IMS_SEND_SMS 113
4738 * RIL_REQUEST_SIM_TRANSMIT_APDU_BASIC
4740 * Request APDU exchange on the basic channel. This command reflects TS 27.007
4741 * "generic SIM access" operation (+CSIM). The modem must ensure proper function
4742 * of GSM/CDMA, and filter commands appropriately. It should filter
4743 * channel management and SELECT by DF name commands.
4745 * "data" is a const RIL_SIM_APDU *
4746 * "sessionid" field should be ignored.
4748 * "response" is a const RIL_SIM_IO_Response *
4752 * RADIO_NOT_AVAILABLE
4755 #define RIL_REQUEST_SIM_TRANSMIT_APDU_BASIC 114
4758 * RIL_REQUEST_SIM_OPEN_CHANNEL
4760 * Open a new logical channel and select the given application. This command
4761 * reflects TS 27.007 "open logical channel" operation (+CCHO).
4763 * "data" is const char * and set to AID value, See ETSI 102.221 and 101.220.
4765 * "response" is int *
4766 * ((int *)data)[0] contains the session id of the logical channel.
4767 * ((int *)data)[1] onwards may optionally contain the select response for the
4768 * open channel command with one byte per integer.
4772 * RADIO_NOT_AVAILABLE
4777 #define RIL_REQUEST_SIM_OPEN_CHANNEL 115
4780 * RIL_REQUEST_SIM_CLOSE_CHANNEL
4782 * Close a previously opened logical channel. This command reflects TS 27.007
4783 * "close logical channel" operation (+CCHC).
4786 * ((int *)data)[0] is the session id of logical the channel to close.
4788 * "response" is NULL
4792 * RADIO_NOT_AVAILABLE
4795 #define RIL_REQUEST_SIM_CLOSE_CHANNEL 116
4798 * RIL_REQUEST_SIM_TRANSMIT_APDU_CHANNEL
4800 * Exchange APDUs with a UICC over a previously opened logical channel. This
4801 * command reflects TS 27.007 "generic logical channel access" operation
4802 * (+CGLA). The modem should filter channel management and SELECT by DF name
4805 * "data" is a const RIL_SIM_APDU*
4807 * "response" is a const RIL_SIM_IO_Response *
4811 * RADIO_NOT_AVAILABLE
4814 #define RIL_REQUEST_SIM_TRANSMIT_APDU_CHANNEL 117
4817 * RIL_REQUEST_NV_READ_ITEM
4819 * Read one of the radio NV items defined in RadioNVItems.java / ril_nv_items.h.
4820 * This is used for device configuration by some CDMA operators.
4822 * "data" is a const RIL_NV_ReadItem *
4824 * "response" is const char * containing the contents of the NV item
4828 * RADIO_NOT_AVAILABLE
4831 #define RIL_REQUEST_NV_READ_ITEM 118
4834 * RIL_REQUEST_NV_WRITE_ITEM
4836 * Write one of the radio NV items defined in RadioNVItems.java / ril_nv_items.h.
4837 * This is used for device configuration by some CDMA operators.
4839 * "data" is a const RIL_NV_WriteItem *
4841 * "response" is NULL
4845 * RADIO_NOT_AVAILABLE
4848 #define RIL_REQUEST_NV_WRITE_ITEM 119
4851 * RIL_REQUEST_NV_WRITE_CDMA_PRL
4853 * Update the CDMA Preferred Roaming List (PRL) in the radio NV storage.
4854 * This is used for device configuration by some CDMA operators.
4856 * "data" is a const char * containing the PRL as a byte array
4858 * "response" is NULL
4862 * RADIO_NOT_AVAILABLE
4865 #define RIL_REQUEST_NV_WRITE_CDMA_PRL 120
4868 * RIL_REQUEST_NV_RESET_CONFIG
4870 * Reset the radio NV configuration to the factory state.
4871 * This is used for device configuration by some CDMA operators.
4874 * ((int *)data)[0] is 1 to reload all NV items
4875 * ((int *)data)[0] is 2 for erase NV reset (SCRTN)
4876 * ((int *)data)[0] is 3 for factory reset (RTN)
4878 * "response" is NULL
4882 * RADIO_NOT_AVAILABLE
4885 #define RIL_REQUEST_NV_RESET_CONFIG 121
4887 /** RIL_REQUEST_SET_UICC_SUBSCRIPTION
4888 * FIXME This API needs to have more documentation.
4890 * Selection/de-selection of a subscription from a SIM card
4891 * "data" is const RIL_SelectUiccSub*
4894 * "response" is NULL
4898 * RADIO_NOT_AVAILABLE (radio resetting)
4900 * SUBSCRIPTION_NOT_SUPPORTED
4903 #define RIL_REQUEST_SET_UICC_SUBSCRIPTION 122
4906 * RIL_REQUEST_ALLOW_DATA
4908 * Tells the modem whether data calls are allowed or not
4911 * FIXME slotId and aid will be added.
4912 * ((int *)data)[0] is == 0 to allow data calls
4913 * ((int *)data)[0] is == 1 to disallow data calls
4915 * "response" is NULL
4920 * RADIO_NOT_AVAILABLE (radio resetting)
4924 #define RIL_REQUEST_ALLOW_DATA 123
4927 * RIL_REQUEST_GET_HARDWARE_CONFIG
4929 * Request all of the current hardware (modem and sim) associated
4934 * "response" is an array of RIL_HardwareConfig.
4936 #define RIL_REQUEST_GET_HARDWARE_CONFIG 124
4939 * RIL_REQUEST_SIM_AUTHENTICATION
4941 * Returns the response of SIM Authentication through RIL to a
4942 * challenge request.
4944 * "data" Base64 encoded string containing challenge:
4945 * int authContext; P2 value of authentication command, see P2 parameter in
4946 * 3GPP TS 31.102 7.1.2
4947 * char *authData; the challenge string in Base64 format, see 3GPP
4949 * char *aid; AID value, See ETSI 102.221 8.1 and 101.220 4,
4952 * "response" Base64 encoded strings containing response:
4953 * int sw1; Status bytes per 3GPP TS 31.102 section 7.3
4955 * char *simResponse; Response in Base64 format, see 3GPP TS 31.102 7.1.2
4957 #define RIL_REQUEST_SIM_AUTHENTICATION 125
4960 * RIL_REQUEST_GET_DC_RT_INFO
4962 * The request is DEPRECATED, use RIL_REQUEST_GET_ACTIVITY_INFO
4963 * Requests the Data Connection Real Time Info
4967 * "response" is the most recent RIL_DcRtInfo
4971 * RADIO_NOT_AVAILABLE
4974 * See also: RIL_UNSOL_DC_RT_INFO_CHANGED
4976 #define RIL_REQUEST_GET_DC_RT_INFO 126
4979 * RIL_REQUEST_SET_DC_RT_INFO_RATE
4981 * The request is DEPRECATED
4982 * This is the minimum number of milliseconds between successive
4983 * RIL_UNSOL_DC_RT_INFO_CHANGED messages and defines the highest rate
4984 * at which RIL_UNSOL_DC_RT_INFO_CHANGED's will be sent. A value of
4985 * 0 means send as fast as possible.
4987 * "data" The number of milliseconds as an int
4989 * "response" is null
4992 * SUCCESS must not fail
4994 #define RIL_REQUEST_SET_DC_RT_INFO_RATE 127
4997 * RIL_REQUEST_SET_DATA_PROFILE
4999 * Set data profile in modem
5000 * Modem should erase existed profiles from framework, and apply new profiles
5001 * "data" is an const RIL_DataProfileInfo **
5002 * "datalen" is count * sizeof(const RIL_DataProfileInfo *)
5003 * "response" is NULL
5007 * RADIO_NOT_AVAILABLE (radio resetting)
5009 * SUBSCRIPTION_NOT_AVAILABLE
5011 #define RIL_REQUEST_SET_DATA_PROFILE 128
5014 * RIL_REQUEST_SHUTDOWN
5016 * Device is shutting down. All further commands are ignored
5017 * and RADIO_NOT_AVAILABLE must be returned.
5020 * "response" is NULL
5024 * RADIO_NOT_AVAILABLE
5025 * OPERATION_NOT_ALLOWED
5028 #define RIL_REQUEST_SHUTDOWN 129
5031 * RIL_REQUEST_GET_RADIO_CAPABILITY
5033 * Used to get phone radio capablility.
5035 * "data" is the RIL_RadioCapability structure
5039 * RADIO_NOT_AVAILABLE
5040 * OPERATION_NOT_ALLOWED
5043 #define RIL_REQUEST_GET_RADIO_CAPABILITY 130
5046 * RIL_REQUEST_SET_RADIO_CAPABILITY
5048 * Used to set the phones radio capability. Be VERY careful
5049 * using this request as it may cause some vendor modems to reset. Because
5050 * of the possible modem reset any RIL commands after this one may not be
5053 * "data" is the RIL_RadioCapability structure
5055 * "response" is the RIL_RadioCapability structure, used to feedback return status
5058 * SUCCESS means a RIL_UNSOL_RADIO_CAPABILITY will be sent within 30 seconds.
5059 * RADIO_NOT_AVAILABLE
5060 * OPERATION_NOT_ALLOWED
5063 #define RIL_REQUEST_SET_RADIO_CAPABILITY 131
5066 * RIL_REQUEST_START_LCE
5068 * Start Link Capacity Estimate (LCE) service if supported by the radio.
5070 * "data" is const int *
5071 * ((const int*)data)[0] specifies the desired reporting interval (ms).
5072 * ((const int*)data)[1] specifies the LCE service mode. 1: PULL; 0: PUSH.
5074 * "response" is the RIL_LceStatusInfo.
5078 * RADIO_NOT_AVAILABLE
5081 #define RIL_REQUEST_START_LCE 132
5084 * RIL_REQUEST_STOP_LCE
5086 * Stop Link Capacity Estimate (LCE) service, the STOP operation should be
5087 * idempotent for the radio modem.
5089 * "response" is the RIL_LceStatusInfo.
5093 * RADIO_NOT_AVAILABLE
5096 #define RIL_REQUEST_STOP_LCE 133
5099 * RIL_REQUEST_PULL_LCEDATA
5101 * Pull LCE service for capacity information.
5103 * "response" is the RIL_LceDataInfo.
5107 * RADIO_NOT_AVAILABLE
5110 #define RIL_REQUEST_PULL_LCEDATA 134
5113 * RIL_REQUEST_GET_ACTIVITY_INFO
5115 * Get modem activity information for power consumption estimation.
5117 * Request clear-on-read statistics information that is used for
5118 * estimating the per-millisecond power consumption of the cellular
5122 * "response" is const RIL_ActivityStatsInfo *
5127 * RADIO_NOT_AVAILABLE (radio resetting)
5130 #define RIL_REQUEST_GET_ACTIVITY_INFO 135
5133 * RIL_REQUEST_SET_CARRIER_RESTRICTIONS
5135 * Set carrier restrictions for this sim slot. Expected modem behavior:
5136 * If never receives this command
5137 * - Must allow all carriers
5138 * Receives this command with data being NULL
5139 * - Must allow all carriers. If a previously allowed SIM is present, modem must not reload
5140 * the SIM. If a previously disallowed SIM is present, reload the SIM and notify Android.
5141 * Receives this command with a list of carriers
5142 * - Only allow specified carriers, persist across power cycles and FDR. If a present SIM
5143 * is in the allowed list, modem must not reload the SIM. If a present SIM is *not* in
5144 * the allowed list, modem must detach from the registered network and only keep emergency
5145 * service, and notify Android SIM refresh reset with new SIM state being
5146 * RIL_CARDSTATE_RESTRICTED. Emergency service must be enabled.
5148 * "data" is const RIL_CarrierRestrictions *
5149 * A list of allowed carriers and possibly a list of excluded carriers.
5150 * If data is NULL, means to clear previous carrier restrictions and allow all carriers
5152 * "response" is int *
5153 * ((int *)data)[0] contains the number of allowed carriers which have been set correctly.
5154 * On success, it should match the length of list data->allowed_carriers.
5155 * If data is NULL, the value must be 0.
5159 * RIL_E_INVALID_ARGUMENTS
5160 * RIL_E_RADIO_NOT_AVAILABLE
5161 * RIL_E_REQUEST_NOT_SUPPORTED
5163 #define RIL_REQUEST_SET_CARRIER_RESTRICTIONS 136
5166 * RIL_REQUEST_GET_CARRIER_RESTRICTIONS
5168 * Get carrier restrictions for this sim slot. Expected modem behavior:
5169 * Return list of allowed carriers, or null if all carriers are allowed.
5173 * "response" is const RIL_CarrierRestrictions *.
5174 * If response is NULL, it means all carriers are allowed.
5178 * RIL_E_RADIO_NOT_AVAILABLE
5179 * RIL_E_REQUEST_NOT_SUPPORTED
5181 #define RIL_REQUEST_GET_CARRIER_RESTRICTIONS 137
5183 /***********************************************************************/
5186 * RIL_RESPONSE_ACKNOWLEDGEMENT
5188 * This is used by Asynchronous solicited messages and Unsolicited messages
5189 * to acknowledge the receipt of those messages in RIL.java so that the ack
5190 * can be used to let ril.cpp to release wakelock.
5194 * RADIO_NOT_AVAILABLE
5197 #define RIL_RESPONSE_ACKNOWLEDGEMENT 800
5199 /***********************************************************************/
5202 #define RIL_UNSOL_RESPONSE_BASE 1000
5205 * RIL_UNSOL_RESPONSE_RADIO_STATE_CHANGED
5207 * Indicate when value of RIL_RadioState has changed.
5209 * Callee will invoke RIL_RadioStateRequest method on main thread
5214 #define RIL_UNSOL_RESPONSE_RADIO_STATE_CHANGED 1000
5218 * RIL_UNSOL_RESPONSE_CALL_STATE_CHANGED
5220 * Indicate when call state has changed
5222 * Callee will invoke RIL_REQUEST_GET_CURRENT_CALLS on main thread
5226 * Response should be invoked on, for example,
5227 * "RING", "BUSY", "NO CARRIER", and also call state
5228 * transitions (DIALING->ALERTING ALERTING->ACTIVE)
5230 * Redundent or extraneous invocations are tolerated
5232 #define RIL_UNSOL_RESPONSE_CALL_STATE_CHANGED 1001
5236 * RIL_UNSOL_RESPONSE_VOICE_NETWORK_STATE_CHANGED
5238 * Called when the voice network state changed
5240 * Callee will invoke the following requests on main thread:
5242 * RIL_REQUEST_VOICE_REGISTRATION_STATE
5243 * RIL_REQUEST_OPERATOR
5247 * FIXME should this happen when SIM records are loaded? (eg, for
5250 #define RIL_UNSOL_RESPONSE_VOICE_NETWORK_STATE_CHANGED 1002
5253 * RIL_UNSOL_RESPONSE_NEW_SMS
5255 * Called when new SMS is received.
5257 * "data" is const char *
5258 * This is a pointer to a string containing the PDU of an SMS-DELIVER
5259 * as an ascii string of hex digits. The PDU starts with the SMSC address
5260 * per TS 27.005 (+CMT:)
5262 * Callee will subsequently confirm the receipt of thei SMS with a
5263 * RIL_REQUEST_SMS_ACKNOWLEDGE
5265 * No new RIL_UNSOL_RESPONSE_NEW_SMS
5266 * or RIL_UNSOL_RESPONSE_NEW_SMS_STATUS_REPORT messages should be sent until a
5267 * RIL_REQUEST_SMS_ACKNOWLEDGE has been received
5270 #define RIL_UNSOL_RESPONSE_NEW_SMS 1003
5273 * RIL_UNSOL_RESPONSE_NEW_SMS_STATUS_REPORT
5275 * Called when new SMS Status Report is received.
5277 * "data" is const char *
5278 * This is a pointer to a string containing the PDU of an SMS-STATUS-REPORT
5279 * as an ascii string of hex digits. The PDU starts with the SMSC address
5280 * per TS 27.005 (+CDS:).
5282 * Callee will subsequently confirm the receipt of the SMS with a
5283 * RIL_REQUEST_SMS_ACKNOWLEDGE
5285 * No new RIL_UNSOL_RESPONSE_NEW_SMS
5286 * or RIL_UNSOL_RESPONSE_NEW_SMS_STATUS_REPORT messages should be sent until a
5287 * RIL_REQUEST_SMS_ACKNOWLEDGE has been received
5290 #define RIL_UNSOL_RESPONSE_NEW_SMS_STATUS_REPORT 1004
5293 * RIL_UNSOL_RESPONSE_NEW_SMS_ON_SIM
5295 * Called when new SMS has been stored on SIM card
5297 * "data" is const int *
5298 * ((const int *)data)[0] contains the slot index on the SIM that contains
5302 #define RIL_UNSOL_RESPONSE_NEW_SMS_ON_SIM 1005
5307 * Called when a new USSD message is received.
5309 * "data" is const char **
5310 * ((const char **)data)[0] points to a type code, which is
5311 * one of these string values:
5312 * "0" USSD-Notify -- text in ((const char **)data)[1]
5313 * "1" USSD-Request -- text in ((const char **)data)[1]
5314 * "2" Session terminated by network
5315 * "3" other local client (eg, SIM Toolkit) has responded
5316 * "4" Operation not supported
5317 * "5" Network timeout
5319 * The USSD session is assumed to persist if the type code is "1", otherwise
5320 * the current session (if any) is assumed to have terminated.
5322 * ((const char **)data)[1] points to a message string if applicable, which
5323 * should always be in UTF-8.
5325 #define RIL_UNSOL_ON_USSD 1006
5326 /* Previously #define RIL_UNSOL_ON_USSD_NOTIFY 1006 */
5329 * RIL_UNSOL_ON_USSD_REQUEST
5331 * Obsolete. Send via RIL_UNSOL_ON_USSD
5333 #define RIL_UNSOL_ON_USSD_REQUEST 1007
5336 * RIL_UNSOL_NITZ_TIME_RECEIVED
5338 * Called when radio has received a NITZ time message
5340 * "data" is const char * pointing to NITZ time string
5341 * in the form "yy/mm/dd,hh:mm:ss(+/-)tz,dt"
5343 #define RIL_UNSOL_NITZ_TIME_RECEIVED 1008
5346 * RIL_UNSOL_SIGNAL_STRENGTH
5348 * Radio may report signal strength rather han have it polled.
5350 * "data" is a const RIL_SignalStrength *
5352 #define RIL_UNSOL_SIGNAL_STRENGTH 1009
5356 * RIL_UNSOL_DATA_CALL_LIST_CHANGED
5358 * "data" is an array of RIL_Data_Call_Response_v6 identical to that
5359 * returned by RIL_REQUEST_DATA_CALL_LIST. It is the complete list
5360 * of current data contexts including new contexts that have been
5361 * activated. A data call is only removed from this list when the
5362 * framework sends a RIL_REQUEST_DEACTIVATE_DATA_CALL or the radio
5363 * is powered off/on.
5365 * See also: RIL_REQUEST_DATA_CALL_LIST
5368 #define RIL_UNSOL_DATA_CALL_LIST_CHANGED 1010
5371 * RIL_UNSOL_SUPP_SVC_NOTIFICATION
5373 * Reports supplementary service related notification from the network.
5375 * "data" is a const RIL_SuppSvcNotification *
5379 #define RIL_UNSOL_SUPP_SVC_NOTIFICATION 1011
5382 * RIL_UNSOL_STK_SESSION_END
5384 * Indicate when STK session is terminated by SIM.
5388 #define RIL_UNSOL_STK_SESSION_END 1012
5391 * RIL_UNSOL_STK_PROACTIVE_COMMAND
5393 * Indicate when SIM issue a STK proactive command to applications
5395 * "data" is a const char * containing SAT/USAT proactive command
5396 * in hexadecimal format string starting with command tag
5399 #define RIL_UNSOL_STK_PROACTIVE_COMMAND 1013
5402 * RIL_UNSOL_STK_EVENT_NOTIFY
5404 * Indicate when SIM notifies applcations some event happens.
5405 * Generally, application does not need to have any feedback to
5406 * SIM but shall be able to indicate appropriate messages to users.
5408 * "data" is a const char * containing SAT/USAT commands or responses
5409 * sent by ME to SIM or commands handled by ME, in hexadecimal format string
5410 * starting with first byte of response data or command tag
5413 #define RIL_UNSOL_STK_EVENT_NOTIFY 1014
5416 * RIL_UNSOL_STK_CALL_SETUP
5418 * Indicate when SIM wants application to setup a voice call.
5420 * "data" is const int *
5421 * ((const int *)data)[0] contains timeout value (in milliseconds)
5423 #define RIL_UNSOL_STK_CALL_SETUP 1015
5426 * RIL_UNSOL_SIM_SMS_STORAGE_FULL
5428 * Indicates that SMS storage on the SIM is full. Sent when the network
5429 * attempts to deliver a new SMS message. Messages cannot be saved on the
5430 * SIM until space is freed. In particular, incoming Class 2 messages
5436 #define RIL_UNSOL_SIM_SMS_STORAGE_FULL 1016
5439 * RIL_UNSOL_SIM_REFRESH
5441 * Indicates that file(s) on the SIM have been updated, or the SIM
5442 * has been reinitialized.
5444 * In the case where RIL is version 6 or older:
5445 * "data" is an int *
5446 * ((int *)data)[0] is a RIL_SimRefreshResult.
5447 * ((int *)data)[1] is the EFID of the updated file if the result is
5448 * SIM_FILE_UPDATE or NULL for any other result.
5450 * In the case where RIL is version 7:
5451 * "data" is a RIL_SimRefreshResponse_v7 *
5453 * Note: If the SIM state changes as a result of the SIM refresh (eg,
5454 * SIM_READY -> SIM_LOCKED_OR_ABSENT), RIL_UNSOL_RESPONSE_SIM_STATUS_CHANGED
5457 #define RIL_UNSOL_SIM_REFRESH 1017
5460 * RIL_UNSOL_CALL_RING
5462 * Ring indication for an incoming call (eg, RING or CRING event).
5463 * There must be at least one RIL_UNSOL_CALL_RING at the beginning
5464 * of a call and sending multiple is optional. If the system property
5465 * ro.telephony.call_ring.multiple is false then the upper layers
5466 * will generate the multiple events internally. Otherwise the vendor
5467 * ril must generate multiple RIL_UNSOL_CALL_RING if
5468 * ro.telephony.call_ring.multiple is true or if it is absent.
5470 * The rate of these events is controlled by ro.telephony.call_ring.delay
5471 * and has a default value of 3000 (3 seconds) if absent.
5473 * "data" is null for GSM
5474 * "data" is const RIL_CDMA_SignalInfoRecord * if CDMA
5476 #define RIL_UNSOL_CALL_RING 1018
5479 * RIL_UNSOL_RESPONSE_SIM_STATUS_CHANGED
5481 * Indicates that SIM state changes.
5483 * Callee will invoke RIL_REQUEST_GET_SIM_STATUS on main thread
5487 #define RIL_UNSOL_RESPONSE_SIM_STATUS_CHANGED 1019
5490 * RIL_UNSOL_RESPONSE_CDMA_NEW_SMS
5492 * Called when new CDMA SMS is received
5494 * "data" is const RIL_CDMA_SMS_Message *
5496 * Callee will subsequently confirm the receipt of the SMS with
5497 * a RIL_REQUEST_CDMA_SMS_ACKNOWLEDGE
5499 * No new RIL_UNSOL_RESPONSE_CDMA_NEW_SMS should be sent until
5500 * RIL_REQUEST_CDMA_SMS_ACKNOWLEDGE has been received
5503 #define RIL_UNSOL_RESPONSE_CDMA_NEW_SMS 1020
5506 * RIL_UNSOL_RESPONSE_NEW_BROADCAST_SMS
5508 * Called when new Broadcast SMS is received
5510 * "data" can be one of the following:
5511 * If received from GSM network, "data" is const char of 88 bytes
5512 * which indicates each page of a CBS Message sent to the MS by the
5513 * BTS as coded in 3GPP 23.041 Section 9.4.1.2.
5514 * If received from UMTS network, "data" is const char of 90 up to 1252
5515 * bytes which contain between 1 and 15 CBS Message pages sent as one
5516 * packet to the MS by the BTS as coded in 3GPP 23.041 Section 9.4.2.2.
5519 #define RIL_UNSOL_RESPONSE_NEW_BROADCAST_SMS 1021
5522 * RIL_UNSOL_CDMA_RUIM_SMS_STORAGE_FULL
5524 * Indicates that SMS storage on the RUIM is full. Messages
5525 * cannot be saved on the RUIM until space is freed.
5530 #define RIL_UNSOL_CDMA_RUIM_SMS_STORAGE_FULL 1022
5533 * RIL_UNSOL_RESTRICTED_STATE_CHANGED
5535 * Indicates a restricted state change (eg, for Domain Specific Access Control).
5537 * Radio need send this msg after radio off/on cycle no matter it is changed or not.
5539 * "data" is an int *
5540 * ((int *)data)[0] contains a bitmask of RIL_RESTRICTED_STATE_* values.
5542 #define RIL_UNSOL_RESTRICTED_STATE_CHANGED 1023
5545 * RIL_UNSOL_ENTER_EMERGENCY_CALLBACK_MODE
5547 * Indicates that the radio system selection module has
5548 * autonomously entered emergency callback mode.
5553 #define RIL_UNSOL_ENTER_EMERGENCY_CALLBACK_MODE 1024
5556 * RIL_UNSOL_CDMA_CALL_WAITING
5558 * Called when CDMA radio receives a call waiting indication.
5560 * "data" is const RIL_CDMA_CallWaiting *
5563 #define RIL_UNSOL_CDMA_CALL_WAITING 1025
5566 * RIL_UNSOL_CDMA_OTA_PROVISION_STATUS
5568 * Called when CDMA radio receives an update of the progress of an
5571 * "data" is const int *
5572 * For CDMA this is an integer OTASP/OTAPA status listed in
5573 * RIL_CDMA_OTA_ProvisionStatus.
5576 #define RIL_UNSOL_CDMA_OTA_PROVISION_STATUS 1026
5579 * RIL_UNSOL_CDMA_INFO_REC
5581 * Called when CDMA radio receives one or more info recs.
5583 * "data" is const RIL_CDMA_InformationRecords *
5586 #define RIL_UNSOL_CDMA_INFO_REC 1027
5589 * RIL_UNSOL_OEM_HOOK_RAW
5591 * This is for OEM specific use.
5593 * "data" is a byte[]
5595 #define RIL_UNSOL_OEM_HOOK_RAW 1028
5598 * RIL_UNSOL_RINGBACK_TONE
5600 * Indicates that nework doesn't have in-band information, need to
5601 * play out-band tone.
5603 * "data" is an int *
5604 * ((int *)data)[0] == 0 for stop play ringback tone.
5605 * ((int *)data)[0] == 1 for start play ringback tone.
5607 #define RIL_UNSOL_RINGBACK_TONE 1029
5610 * RIL_UNSOL_RESEND_INCALL_MUTE
5612 * Indicates that framework/application need reset the uplink mute state.
5614 * There may be situations where the mute state becomes out of sync
5615 * between the application and device in some GSM infrastructures.
5619 #define RIL_UNSOL_RESEND_INCALL_MUTE 1030
5622 * RIL_UNSOL_CDMA_SUBSCRIPTION_SOURCE_CHANGED
5624 * Called when CDMA subscription source changed.
5627 * ((int *)data)[0] is == RIL_CdmaSubscriptionSource
5629 #define RIL_UNSOL_CDMA_SUBSCRIPTION_SOURCE_CHANGED 1031
5632 * RIL_UNSOL_CDMA_PRL_CHANGED
5634 * Called when PRL (preferred roaming list) changes.
5637 * ((int *)data)[0] is PRL_VERSION as would be returned by RIL_REQUEST_CDMA_SUBSCRIPTION
5639 #define RIL_UNSOL_CDMA_PRL_CHANGED 1032
5642 * RIL_UNSOL_EXIT_EMERGENCY_CALLBACK_MODE
5644 * Called when Emergency Callback Mode Ends
5646 * Indicates that the radio system selection module has
5647 * proactively exited emergency callback mode.
5652 #define RIL_UNSOL_EXIT_EMERGENCY_CALLBACK_MODE 1033
5655 * RIL_UNSOL_RIL_CONNECTED
5657 * Called the ril connects and returns the version
5660 * ((int *)data)[0] is RIL_VERSION
5662 #define RIL_UNSOL_RIL_CONNECTED 1034
5665 * RIL_UNSOL_VOICE_RADIO_TECH_CHANGED
5667 * Indicates that voice technology has changed. Contains new radio technology
5668 * as a data in the message.
5671 * ((int *)data)[0] is of type const RIL_RadioTechnology
5674 #define RIL_UNSOL_VOICE_RADIO_TECH_CHANGED 1035
5677 * RIL_UNSOL_CELL_INFO_LIST
5679 * Same information as returned by RIL_REQUEST_GET_CELL_INFO_LIST, but returned
5680 * at the rate no greater than specified by RIL_REQUEST_SET_UNSOL_CELL_INFO_RATE.
5684 * "response" is an array of RIL_CellInfo_v12.
5686 #define RIL_UNSOL_CELL_INFO_LIST 1036
5689 * RIL_UNSOL_RESPONSE_IMS_NETWORK_STATE_CHANGED
5691 * Called when IMS registration state has changed
5693 * To get IMS registration state and IMS SMS format, callee needs to invoke the
5694 * following request on main thread:
5696 * RIL_REQUEST_IMS_REGISTRATION_STATE
5701 #define RIL_UNSOL_RESPONSE_IMS_NETWORK_STATE_CHANGED 1037
5704 * RIL_UNSOL_UICC_SUBSCRIPTION_STATUS_CHANGED
5706 * Indicated when there is a change in subscription status.
5707 * This event will be sent in the following scenarios
5708 * - subscription readiness at modem, which was selected by telephony layer
5709 * - when subscription is deactivated by modem due to UICC card removal
5710 * - When network invalidates the subscription i.e. attach reject due to authentication reject
5712 * "data" is const int *
5713 * ((const int *)data)[0] == 0 for Subscription Deactivated
5714 * ((const int *)data)[0] == 1 for Subscription Activated
5717 #define RIL_UNSOL_UICC_SUBSCRIPTION_STATUS_CHANGED 1038
5720 * RIL_UNSOL_SRVCC_STATE_NOTIFY
5722 * Called when Single Radio Voice Call Continuity(SRVCC)
5723 * progress state has changed
5726 * ((int *)data)[0] is of type const RIL_SrvccState
5730 #define RIL_UNSOL_SRVCC_STATE_NOTIFY 1039
5733 * RIL_UNSOL_HARDWARE_CONFIG_CHANGED
5735 * Called when the hardware configuration associated with the RILd changes
5737 * "data" is an array of RIL_HardwareConfig
5740 #define RIL_UNSOL_HARDWARE_CONFIG_CHANGED 1040
5743 * RIL_UNSOL_DC_RT_INFO_CHANGED
5745 * The message is DEPRECATED, use RIL_REQUEST_GET_ACTIVITY_INFO
5746 * Sent when the DC_RT_STATE changes but the time
5747 * between these messages must not be less than the
5748 * value set by RIL_REQUEST_SET_DC_RT_RATE.
5750 * "data" is the most recent RIL_DcRtInfo
5753 #define RIL_UNSOL_DC_RT_INFO_CHANGED 1041
5756 * RIL_UNSOL_RADIO_CAPABILITY
5758 * Sent when RIL_REQUEST_SET_RADIO_CAPABILITY completes.
5759 * Returns the phone radio capability exactly as
5760 * RIL_REQUEST_GET_RADIO_CAPABILITY and should be the
5761 * same set as sent by RIL_REQUEST_SET_RADIO_CAPABILITY.
5763 * "data" is the RIL_RadioCapability structure
5765 #define RIL_UNSOL_RADIO_CAPABILITY 1042
5770 * Called when SS response is received when DIAL/USSD/SS is changed to SS by
5773 * "data" is const RIL_StkCcUnsolSsResponse *
5776 #define RIL_UNSOL_ON_SS 1043
5779 * RIL_UNSOL_STK_CC_ALPHA_NOTIFY
5781 * Called when there is an ALPHA from UICC during Call Control.
5783 * "data" is const char * containing ALPHA string from UICC in UTF-8 format.
5786 #define RIL_UNSOL_STK_CC_ALPHA_NOTIFY 1044
5789 * RIL_UNSOL_LCEDATA_RECV
5791 * Called when there is an incoming Link Capacity Estimate (LCE) info report.
5793 * "data" is the RIL_LceDataInfo structure.
5796 #define RIL_UNSOL_LCEDATA_RECV 1045
5799 * RIL_UNSOL_PCO_DATA
5801 * Called when there is new Carrier PCO data received for a data call. Ideally
5802 * only new data will be forwarded, though this is not required. Multiple
5803 * boxes of carrier PCO data for a given call should result in a series of
5804 * RIL_UNSOL_PCO_DATA calls.
5806 * "data" is the RIL_PCO_Data structure.
5809 #define RIL_UNSOL_PCO_DATA 1046
5811 /***********************************************************************/
5814 #if defined(ANDROID_MULTI_SIM)
5816 * RIL_Request Function pointer
5818 * @param request is one of RIL_REQUEST_*
5819 * @param data is pointer to data defined for that RIL_REQUEST_*
5820 * data is owned by caller, and should not be modified or freed by callee
5821 * structures passed as data may contain pointers to non-contiguous memory
5822 * @param t should be used in subsequent call to RIL_onResponse
5823 * @param datalen is the length of "data" which is defined as other argument. It may or may
5824 * not be equal to sizeof(data). Refer to the documentation of individual structures
5825 * to find if pointers listed in the structure are contiguous and counted in the datalen
5827 * (Eg: RIL_IMS_SMS_Message where we don't have datalen equal to sizeof(data))
5830 typedef void (*RIL_RequestFunc) (int request, void *data,
5831 size_t datalen, RIL_Token t, RIL_SOCKET_ID socket_id);
5834 * This function should return the current radio state synchronously
5836 typedef RIL_RadioState (*RIL_RadioStateRequest)(RIL_SOCKET_ID socket_id);
5839 /* Backward compatible */
5842 * RIL_Request Function pointer
5844 * @param request is one of RIL_REQUEST_*
5845 * @param data is pointer to data defined for that RIL_REQUEST_*
5846 * data is owned by caller, and should not be modified or freed by callee
5847 * structures passed as data may contain pointers to non-contiguous memory
5848 * @param t should be used in subsequent call to RIL_onResponse
5849 * @param datalen is the length of "data" which is defined as other argument. It may or may
5850 * not be equal to sizeof(data). Refer to the documentation of individual structures
5851 * to find if pointers listed in the structure are contiguous and counted in the datalen
5853 * (Eg: RIL_IMS_SMS_Message where we don't have datalen equal to sizeof(data))
5856 typedef void (*RIL_RequestFunc) (int request, void *data,
5857 size_t datalen, RIL_Token t);
5860 * This function should return the current radio state synchronously
5862 typedef RIL_RadioState (*RIL_RadioStateRequest)();
5868 * This function returns "1" if the specified RIL_REQUEST code is
5869 * supported and 0 if it is not
5871 * @param requestCode is one of RIL_REQUEST codes
5874 typedef int (*RIL_Supports)(int requestCode);
5877 * This function is called from a separate thread--not the
5878 * thread that calls RIL_RequestFunc--and indicates that a pending
5879 * request should be cancelled.
5881 * On cancel, the callee should do its best to abandon the request and
5882 * call RIL_onRequestComplete with RIL_Errno CANCELLED at some later point.
5884 * Subsequent calls to RIL_onRequestComplete for this request with
5885 * other results will be tolerated but ignored. (That is, it is valid
5886 * to ignore the cancellation request)
5888 * RIL_Cancel calls should return immediately, and not wait for cancellation
5890 * Please see ITU v.250 5.6.1 for how one might implement this on a TS 27.007
5893 * @param t token wants to be canceled
5896 typedef void (*RIL_Cancel)(RIL_Token t);
5898 typedef void (*RIL_TimedCallback) (void *param);
5901 * Return a version string for your RIL implementation
5903 typedef const char * (*RIL_GetVersion) (void);
5906 int version; /* set to RIL_VERSION */
5907 RIL_RequestFunc onRequest;
5908 RIL_RadioStateRequest onStateRequest;
5909 RIL_Supports supports;
5910 RIL_Cancel onCancel;
5911 RIL_GetVersion getVersion;
5912 } RIL_RadioFunctions;
5920 } RIL_InitialAttachApn;
5923 int authContext; /* P2 value of authentication command, see P2 parameter in
5924 3GPP TS 31.102 7.1.2 */
5925 char *authData; /* the challenge string in Base64 format, see 3GPP
5927 char *aid; /* AID value, See ETSI 102.221 8.1 and 101.220 4,
5928 NULL if no value. */
5929 } RIL_SimAuthentication;
5932 int cid; /* Context ID, uniquely identifies this call */
5933 char *bearer_proto; /* One of the PDP_type values in TS 27.007 section 10.1.1.
5934 For example, "IP", "IPV6", "IPV4V6" */
5935 int pco_id; /* The protocol ID for this box. Note that only IDs from
5936 FF00H - FFFFH are accepted. If more than one is included
5937 from the network, multiple calls should be made to send all
5939 int contents_length; /* The number of octets in the contents. */
5940 char *contents; /* Carrier-defined content. It is binary, opaque and
5941 loosely defined in LTE Layer 3 spec 24.008 */
5947 * "t" is parameter passed in on previous call to RIL_Notification
5950 * If "e" != SUCCESS, then response can be null/is ignored
5952 * "response" is owned by caller, and should not be modified or
5955 * RIL_onRequestComplete will return as soon as possible
5957 void (*OnRequestComplete)(RIL_Token t, RIL_Errno e,
5958 void *response, size_t responselen);
5960 #if defined(ANDROID_MULTI_SIM)
5962 * "unsolResponse" is one of RIL_UNSOL_RESPONSE_*
5963 * "data" is pointer to data defined for that RIL_UNSOL_RESPONSE_*
5965 * "data" is owned by caller, and should not be modified or freed by callee
5967 void (*OnUnsolicitedResponse)(int unsolResponse, const void *data, size_t datalen, RIL_SOCKET_ID socket_id);
5970 * "unsolResponse" is one of RIL_UNSOL_RESPONSE_*
5971 * "data" is pointer to data defined for that RIL_UNSOL_RESPONSE_*
5973 * "data" is owned by caller, and should not be modified or freed by callee
5975 void (*OnUnsolicitedResponse)(int unsolResponse, const void *data, size_t datalen);
5978 * Call user-specifed "callback" function on on the same thread that
5979 * RIL_RequestFunc is called. If "relativeTime" is specified, then it specifies
5980 * a relative time value at which the callback is invoked. If relativeTime is
5981 * NULL or points to a 0-filled structure, the callback will be invoked as
5985 void (*RequestTimedCallback) (RIL_TimedCallback callback,
5986 void *param, const struct timeval *relativeTime);
5988 * "t" is parameter passed in on previous call RIL_Notification routine
5990 * RIL_onRequestAck will be called by vendor when an Async RIL request was received
5991 * by them and an ack needs to be sent back to java ril.
5993 void (*OnRequestAck) (RIL_Token t);
5998 * RIL implementations must defined RIL_Init
5999 * argc and argv will be command line arguments intended for the RIL implementation
6000 * Return NULL on error
6002 * @param env is environment point defined as RIL_Env
6003 * @param argc number of arguments
6004 * @param argv list fo arguments
6007 const RIL_RadioFunctions *RIL_Init(const struct RIL_Env *env, int argc, char **argv);
6010 * If BT SAP(SIM Access Profile) is supported, then RIL implementations must define RIL_SAP_Init
6011 * for initializing RIL_RadioFunctions used for BT SAP communcations. It is called whenever RILD
6012 * starts or modem restarts. Returns handlers for SAP related request that are made on SAP
6013 * sepecific socket, analogous to the RIL_RadioFunctions returned by the call to RIL_Init
6014 * and used on the general RIL socket.
6015 * argc and argv will be command line arguments intended for the RIL implementation
6016 * Return NULL on error.
6018 * @param env is environment point defined as RIL_Env
6019 * @param argc number of arguments
6020 * @param argv list fo arguments
6023 const RIL_RadioFunctions *RIL_SAP_Init(const struct RIL_Env *env, int argc, char **argv);
6025 #else /* RIL_SHLIB */
6028 * Call this once at startup to register notification routine
6030 * @param callbacks user-specifed callback function
6032 void RIL_register (const RIL_RadioFunctions *callbacks);
6037 * RIL_onRequestComplete will return as soon as possible
6039 * @param t is parameter passed in on previous call to RIL_Notification
6041 * @param e error code
6042 * if "e" != SUCCESS, then response can be null/is ignored
6043 * @param response is owned by caller, and should not be modified or
6045 * @param responselen the length of response in byte
6047 void RIL_onRequestComplete(RIL_Token t, RIL_Errno e,
6048 void *response, size_t responselen);
6051 * RIL_onRequestAck will be called by vendor when an Async RIL request was received by them and
6052 * an ack needs to be sent back to java ril. This doesn't mark the end of the command or it's
6053 * results, just that the command was received and will take a while. After sending this Ack
6054 * its vendor's responsibility to make sure that AP is up whenever needed while command is
6057 * @param t is parameter passed in on previous call to RIL_Notification
6060 void RIL_onRequestAck(RIL_Token t);
6062 #if defined(ANDROID_MULTI_SIM)
6064 * @param unsolResponse is one of RIL_UNSOL_RESPONSE_*
6065 * @param data is pointer to data defined for that RIL_UNSOL_RESPONSE_*
6066 * "data" is owned by caller, and should not be modified or freed by callee
6067 * @param datalen the length of data in byte
6070 void RIL_onUnsolicitedResponse(int unsolResponse, const void *data,
6071 size_t datalen, RIL_SOCKET_ID socket_id);
6074 * @param unsolResponse is one of RIL_UNSOL_RESPONSE_*
6075 * @param data is pointer to data defined for that RIL_UNSOL_RESPONSE_*
6076 * "data" is owned by caller, and should not be modified or freed by callee
6077 * @param datalen the length of data in byte
6080 void RIL_onUnsolicitedResponse(int unsolResponse, const void *data,
6085 * Call user-specifed "callback" function on on the same thread that
6086 * RIL_RequestFunc is called. If "relativeTime" is specified, then it specifies
6087 * a relative time value at which the callback is invoked. If relativeTime is
6088 * NULL or points to a 0-filled structure, the callback will be invoked as
6091 * @param callback user-specifed callback function
6092 * @param param parameter list
6093 * @param relativeTime a relative time value at which the callback is invoked
6096 void RIL_requestTimedCallback (RIL_TimedCallback callback,
6097 void *param, const struct timeval *relativeTime);
6099 #endif /* RIL_SHLIB */
6105 #endif /*ANDROID_RIL_H*/