2 * Copyright (C) 2016 The Android Open Source Project
4 * Licensed under the Apache License, Version 2.0 (the "License");
5 * you may not use this file except in compliance with the License.
6 * You may obtain a copy of the License at
8 * http://www.apache.org/licenses/LICENSE-2.0
10 * Unless required by applicable law or agreed to in writing, software
11 * distributed under the License is distributed on an "AS IS" BASIS,
12 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
13 * See the License for the specific language governing permissions and
14 * limitations under the License.
17 package android.hardware.radio@1.0;
19 enum RadioConst : int32_t {
21 RADIO_LAST_IMPRECISE_RIL_VERSION = 12,
22 RADIO_VERSION_MIN = 6,
23 RADIO_CDMA_ALPHA_INFO_BUFFER_LENGTH = 64,
24 RADIO_CDMA_NUMBER_INFO_BUFFER_LENGTH = 81,
26 RADIO_MAX_SOCKET_NAME_LENGTH = 6,
27 RADIO_MAX_CLIENT_ID_LENGTH = 2,
28 RADIO_MAX_DEBUG_SOCKET_NAME_LENGTH = 12,
29 RADIO_MAX_QEMU_PIPE_NAME_LENGTH = 11,
30 RADIO_MAX_UUID_LENGTH = 64,
31 RADIO_RADIO_CAPABILITY_VERSION = 1,
32 RADIO_CARD_MAX_APPS = 8,
33 RADIO_CDMA_MAX_NUMBER_OF_INFO_RECS = 10,
34 RADIO_SS_INFO_MAX = 4,
35 RADIO_NUM_SERVICE_CLASSES = 7,
36 RADIO_NUM_TX_POWER_LEVELS = 5,
39 enum RadioCdmaSmsConst : int32_t {
42 BEARER_DATA_MAX = 255,
43 UDH_MAX_SND_SIZE = 128,
44 UDH_EO_DATA_SEGMENT_MAX = 131,
47 UDH_LARGE_PIC_SIZE = 128,
48 UDH_SMALL_PIC_SIZE = 32,
49 UDH_VAR_PIC_SIZE = 134,
50 UDH_ANIM_NUM_BITMAPS = 4,
51 UDH_LARGE_BITMAP_SIZE = 32,
52 UDH_SMALL_BITMAP_SIZE = 8,
57 enum RadioError : int32_t {
59 RADIO_NOT_AVAILABLE = 1, // If radio did not start or is resetting
61 PASSWORD_INCORRECT = 3, // for PIN/PIN2 methods only
62 SIM_PIN2 = 4, // Operation requires SIM PIN2 to be entered
63 SIM_PUK2 = 5, // Operation requires SIM PIN2 to be entered
64 REQUEST_NOT_SUPPORTED = 6,
66 OP_NOT_ALLOWED_DURING_VOICE_CALL = 8, // data ops are not allowed during voice
67 // call on a Class C GPRS device
68 OP_NOT_ALLOWED_BEFORE_REG_TO_NW = 9, // data ops are not allowed before device
69 // registers in network
70 SMS_SEND_FAIL_RETRY = 10, // fail to send sms and need retry
71 SIM_ABSENT = 11, // fail to set the location where CDMA subscription
72 // shall be retrieved because of SIM or RUIM
74 SUBSCRIPTION_NOT_AVAILABLE = 12, // fail to find CDMA subscription from specified
76 MODE_NOT_SUPPORTED = 13, // HW does not support preferred network type
77 FDN_CHECK_FAILURE = 14, // command failed because recipient is not on FDN list
78 ILLEGAL_SIM_OR_ME = 15, // network selection failed due to illegal SIM or ME
79 MISSING_RESOURCE = 16, // no logical channel available
80 NO_SUCH_ELEMENT = 17, // application not found on SIM
81 DIAL_MODIFIED_TO_USSD = 18, // DIAL request modified to USSD
82 DIAL_MODIFIED_TO_SS = 19, // DIAL request modified to SS
83 DIAL_MODIFIED_TO_DIAL = 20, // DIAL request modified to DIAL with different data
84 USSD_MODIFIED_TO_DIAL = 21, // USSD request modified to DIAL
85 USSD_MODIFIED_TO_SS = 22, // USSD request modified to SS
86 USSD_MODIFIED_TO_USSD = 23, // USSD request modified to different USSD request
87 SS_MODIFIED_TO_DIAL = 24, // SS request modified to DIAL
88 SS_MODIFIED_TO_USSD = 25, // SS request modified to USSD
89 SUBSCRIPTION_NOT_SUPPORTED = 26, // Subscription not supported by RIL
90 SS_MODIFIED_TO_SS = 27, // SS request modified to different SS request
91 LCE_NOT_SUPPORTED = 36, // LCE service not supported(36 in RILConstants.java)
92 NO_MEMORY = 37, // Not sufficient memory to process the request
93 INTERNAL_ERR = 38, // Hit unexpected vendor internal error scenario
94 SYSTEM_ERR = 39, // Hit platform or system error
95 MODEM_ERR = 40, // Hit unexpected modem error
96 INVALID_STATE = 41, // Unexpected request for the current state
97 NO_RESOURCES = 42, // Not sufficient resource to process the request
98 SIM_ERR = 43, // Received error from SIM card
99 INVALID_ARGUMENTS = 44, // Received invalid arguments in request
100 INVALID_SIM_STATE = 45, // Cannot process the request in current SIM state
101 INVALID_MODEM_STATE = 46, // Cannot process the request in current Modem state
102 INVALID_CALL_ID = 47, // Received invalid call id in request
103 NO_SMS_TO_ACK = 48, // ACK received when there is no SMS to ack
104 NETWORK_ERR = 49, // Received error from network
105 REQUEST_RATE_LIMITED = 50, // Operation denied due to overly-frequent requests
106 SIM_BUSY = 51, // SIM is busy
107 SIM_FULL = 52, // The target EF is full
108 NETWORK_REJECT = 53, // Request is rejected by network
109 OPERATION_NOT_ALLOWED = 54, // Not allowed the request now
110 EMPTY_RECORD = 55, // The request record is empty
111 INVALID_SMS_FORMAT = 56, // Invalid sms format
112 ENCODING_ERR = 57, // Message not encoded properly
113 INVALID_SMSC_ADDRESS = 58, // SMSC address specified is invalid
114 NO_SUCH_ENTRY = 59, // No such entry present to perform the request
115 NETWORK_NOT_READY = 60, // Network is not ready to perform the request
116 NOT_PROVISIONED = 61, // Device doesnot have this value provisioned
117 NO_SUBSCRIPTION = 62, // Device doesnot have subscription
118 NO_NETWORK_FOUND = 63, // Network cannot be found
119 DEVICE_IN_USE = 64, // Operation cannot be performed because the device
120 // is currently in use
121 RIL_E_ABORTED = 65, // Operation aborted
123 // TODO(May be moved to vendor HAL extension)
124 // OEM specific error codes. To be used by OEM when they don't want to reveal
125 // specific error codes which would be replaced by Generic failure.
153 enum RadioResponseType : int32_t {
155 RESPONSE_UNSOLICITED,
156 RESPONSE_SOLICITED_ACK,
157 RESPONSE_SOLICITED_ACK_EXP,
158 RESPONSE_UNSOLICITED_ACK_EXP,
161 enum RestrictedState : int32_t {
169 enum CardState : int32_t {
173 RESTRICTED, // card is present but not usable due to carrier
177 enum PinState : int32_t {
179 ENABLED_NOT_VERIFIED,
183 ENABLED_PERM_BLOCKED,
186 enum AppType : int32_t {
195 enum AppState : int32_t {
198 PIN, // If PIN1 or UPin is required
199 PUK, // If PUK1 or Puk for UPin is required
200 SUBSCRIPTION_PERSO, // perso_substate must be look at when app_state is
201 // assigned to this value
205 enum PersoSubstate : int32_t {
206 UNKNOWN, // initial state
207 IN_PROGRESS, // in between each lock transition
208 READY, // when either SIM or RUIM Perso is finished since each
209 // app must only have 1 active perso involved
213 SIM_SERVICE_PROVIDER,
215 SIM_NETWORK_PUK, // The corresponding perso lock is blocked
216 SIM_NETWORK_SUBSET_PUK,
218 SIM_SERVICE_PROVIDER_PUK,
224 RUIM_SERVICE_PROVIDER,
226 RUIM_NETWORK1_PUK, // The corresponding perso lock is blocked
230 RUIM_SERVICE_PROVIDER_PUK,
234 enum RadioState : int32_t {
235 OFF, // Radio explictly powered off (eg CFUN=0)
236 UNAVAILABLE, // Radio unavailable (eg, resetting or not booted)
239 enum CallState : int32_t {
242 DIALING, // MO call only
243 ALERTING, // MO call only
244 INCOMING, // MT call only
245 WAITING, // MT call only
249 * User-to-User signaling Info activation types derived from 3GPP 23.087 v8.0
251 enum UusType : int32_t {
262 * User-to-User Signaling Information data coding schemes. Possible values for
263 * Octet 3 (Protocol Discriminator field) in the UUIE. The values have been
264 * specified in section 10.5.4.25 of 3GPP TS 24.008
266 enum UusDcs : int32_t {
267 USP, // User specified protocol
268 OSIHLP, // OSI higher layer protocol
270 RMCF, // Reserved for system mangement convergence function
271 IA5C, // IA5 characters
274 enum CallPresentation : int32_t {
281 enum Clir : int32_t {
282 DEFAULT, // "use subscription default value"
283 INVOCATION, // restrict CLI presentation
284 SUPPRESSION, // allow CLI presentation
287 enum LastCallFailCause : int32_t {
288 UNOBTAINABLE_NUMBER = 1,
289 NO_ROUTE_TO_DESTINATION = 3,
290 CHANNEL_UNACCEPTABLE = 6,
291 OPERATOR_DETERMINED_BARRING = 8,
294 NO_USER_RESPONDING = 18,
295 NO_ANSWER_FROM_USER = 19,
299 DESTINATION_OUT_OF_ORDER = 27,
300 INVALID_NUMBER_FORMAT = 28,
301 FACILITY_REJECTED = 29,
302 RESP_TO_STATUS_ENQUIRY = 30,
303 NORMAL_UNSPECIFIED = 31,
305 NETWORK_OUT_OF_ORDER = 38,
306 TEMPORARY_FAILURE = 41,
307 SWITCHING_EQUIPMENT_CONGESTION = 42,
308 ACCESS_INFORMATION_DISCARDED = 43,
309 REQUESTED_CIRCUIT_OR_CHANNEL_NOT_AVAILABLE = 44,
310 RESOURCES_UNAVAILABLE_OR_UNSPECIFIED = 47,
311 QOS_UNAVAILABLE = 49,
312 REQUESTED_FACILITY_NOT_SUBSCRIBED = 50,
313 INCOMING_CALLS_BARRED_WITHIN_CUG = 55,
314 BEARER_CAPABILITY_NOT_AUTHORIZED = 57,
315 BEARER_CAPABILITY_UNAVAILABLE = 58,
316 SERVICE_OPTION_NOT_AVAILABLE = 63,
317 BEARER_SERVICE_NOT_IMPLEMENTED = 65,
318 ACM_LIMIT_EXCEEDED = 68,
319 REQUESTED_FACILITY_NOT_IMPLEMENTED = 69,
320 ONLY_DIGITAL_INFORMATION_BEARER_AVAILABLE = 70,
321 SERVICE_OR_OPTION_NOT_IMPLEMENTED = 79,
322 INVALID_TRANSACTION_IDENTIFIER = 81,
323 USER_NOT_MEMBER_OF_CUG = 87,
324 INCOMPATIBLE_DESTINATION = 88,
325 INVALID_TRANSIT_NW_SELECTION = 91,
326 SEMANTICALLY_INCORRECT_MESSAGE = 95,
327 INVALID_MANDATORY_INFORMATION = 96,
328 MESSAGE_TYPE_NON_IMPLEMENTED = 97,
329 MESSAGE_TYPE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 98,
330 INFORMATION_ELEMENT_NON_EXISTENT = 99,
331 CONDITIONAL_IE_ERROR = 100,
332 MESSAGE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 101,
333 RECOVERY_ON_TIMER_EXPIRED = 102,
334 PROTOCOL_ERROR_UNSPECIFIED = 111,
335 INTERWORKING_UNSPECIFIED = 127,
338 IMSI_UNKNOWN_IN_VLR = 242,
339 IMEI_NOT_ACCEPTED = 243,
340 DIAL_MODIFIED_TO_USSD = 244, // STK Call Control
341 DIAL_MODIFIED_TO_SS = 245,
342 DIAL_MODIFIED_TO_DIAL = 246,
343 CDMA_LOCKED_UNTIL_POWER_CYCLE = 1000,
345 CDMA_INTERCEPT = 1002,
347 CDMA_SO_REJECT = 1004,
348 CDMA_RETRY_ORDER = 1005,
349 CDMA_ACCESS_FAILURE = 1006,
350 CDMA_PREEMPTED = 1007,
351 CDMA_NOT_EMERGENCY = 1008, // For non-emergency number dialed during emergency
353 CDMA_ACCESS_BLOCKED = 1009, // This error will be deprecated soon,
354 // vendor code must make sure to map error
355 // code to specific error
356 ERROR_UNSPECIFIED = 0xffff,
359 enum DataCallFailCause : int32_t {
360 NONE = 0, // an integer cause code defined in TS 24.008
361 // section 6.1.3.1.3 or TS 24.301 Release 8+ Annex B.
362 // If the implementation does not have access to the exact
363 // cause codes, then it must return one of the
364 // following values, as the UI layer needs to distinguish
365 // these cases for error notification and potential
367 OPERATOR_BARRED = 0x08, // no retry
368 NAS_SIGNALLING = 0x0E, // PDP_FAIL_LLC_SNDCP = 0x19,
369 INSUFFICIENT_RESOURCES = 0x1A,
370 MISSING_UKNOWN_APN = 0x1B, // no retry
371 UNKNOWN_PDP_ADDRESS_TYPE = 0x1C, // no retry
372 USER_AUTHENTICATION = 0x1D, // no retry
373 ACTIVATION_REJECT_GGSN = 0x1E, // no retry
374 ACTIVATION_REJECT_UNSPECIFIED = 0x1F,
375 SERVICE_OPTION_NOT_SUPPORTED = 0x20, // no retry
376 SERVICE_OPTION_NOT_SUBSCRIBED = 0x21, // no retry
377 SERVICE_OPTION_OUT_OF_ORDER = 0x22,
378 NSAPI_IN_USE = 0x23, // no retry
379 REGULAR_DEACTIVATION = 0x24, // possibly restart radio,
380 // based on framework config
381 QOS_NOT_ACCEPTED = 0x25,
382 NETWORK_FAILURE = 0x26,
383 UMTS_REACTIVATION_REQ = 0x27,
384 FEATURE_NOT_SUPP = 0x28,
385 TFT_SEMANTIC_ERROR = 0x29,
386 TFT_SYTAX_ERROR = 0x2A,
387 UNKNOWN_PDP_CONTEXT = 0x2B,
388 FILTER_SEMANTIC_ERROR = 0x2C,
389 FILTER_SYTAX_ERROR = 0x2D,
390 PDP_WITHOUT_ACTIVE_TFT = 0x2E,
391 ONLY_IPV4_ALLOWED = 0x32, // no retry
392 ONLY_IPV6_ALLOWED = 0x33, // no retry
393 ONLY_SINGLE_BEARER_ALLOWED = 0x34,
394 ESM_INFO_NOT_RECEIVED = 0x35,
395 PDN_CONN_DOES_NOT_EXIST = 0x36,
396 MULTI_CONN_TO_SAME_PDN_NOT_ALLOWED = 0x37,
397 MAX_ACTIVE_PDP_CONTEXT_REACHED = 0x41,
398 UNSUPPORTED_APN_IN_CURRENT_PLMN = 0x42,
399 INVALID_TRANSACTION_ID = 0x51,
400 MESSAGE_INCORRECT_SEMANTIC = 0x5F,
401 INVALID_MANDATORY_INFO = 0x60,
402 MESSAGE_TYPE_UNSUPPORTED = 0x61,
403 MSG_TYPE_NONCOMPATIBLE_STATE = 0x62,
404 UNKNOWN_INFO_ELEMENT = 0x63,
405 CONDITIONAL_IE_ERROR = 0x64,
406 MSG_AND_PROTOCOL_STATE_UNCOMPATIBLE = 0x65,
407 PROTOCOL_ERRORS = 0x6F, // no retry
408 APN_TYPE_CONFLICT = 0x70,
409 INVALID_PCSCF_ADDR = 0x71,
410 INTERNAL_CALL_PREEMPT_BY_HIGH_PRIO_APN = 0x72,
411 EMM_ACCESS_BARRED = 0x73,
412 EMERGENCY_IFACE_ONLY = 0x74,
413 IFACE_MISMATCH = 0x75,
414 COMPANION_IFACE_IN_USE = 0x76,
415 IP_ADDRESS_MISMATCH = 0x77,
416 IFACE_AND_POL_FAMILY_MISMATCH = 0x78,
417 EMM_ACCESS_BARRED_INFINITE_RETRY = 0x79,
418 AUTH_FAILURE_ON_EMERGENCY_CALL = 0x7A,
419 OEM_DCFAILCAUSE_1 = 0x1001,
421 // OEM specific error codes. To be used by OEMs when they don't want to
422 // reveal error code which would be replaced by PDP_FAIL_ERROR_UNSPECIFIED
423 // TODO(May be moved to vendor HAL extension)
424 OEM_DCFAILCAUSE_2 = 0x1002,
425 OEM_DCFAILCAUSE_3 = 0x1003,
426 OEM_DCFAILCAUSE_4 = 0x1004,
427 OEM_DCFAILCAUSE_5 = 0x1005,
428 OEM_DCFAILCAUSE_6 = 0x1006,
429 OEM_DCFAILCAUSE_7 = 0x1007,
430 OEM_DCFAILCAUSE_8 = 0x1008,
431 OEM_DCFAILCAUSE_9 = 0x1009,
432 OEM_DCFAILCAUSE_10 = 0x100A,
433 OEM_DCFAILCAUSE_11 = 0x100B,
434 OEM_DCFAILCAUSE_12 = 0x100C,
435 OEM_DCFAILCAUSE_13 = 0x100D,
436 OEM_DCFAILCAUSE_14 = 0x100E,
437 OEM_DCFAILCAUSE_15 = 0x100F,
439 // Not mentioned in the specification
440 VOICE_REGISTRATION_FAIL = -1,
441 DATA_REGISTRATION_FAIL = -2,
443 // reasons for data call drop - network/modem disconnect
445 PREF_RADIO_TECH_CHANGED = -4, // preferred technology has changed, must retry
446 // with parameters appropriate for new technology
447 RADIO_POWER_OFF = -5, // data call was disconnected because radio was resetting,
448 // powered off - no retry
449 TETHERED_CALL_ACTIVE = -6, // data call was disconnected by modem because tethered
450 // mode was up on same APN/data profile - no retry until
451 // tethered call is off
452 ERROR_UNSPECIFIED = 0xffff,
456 * Please note that registration state UNKNOWN is
457 * treated as "out of service" in the Android telephony.
458 * Registration state REG_DENIED must be returned if Location Update
459 * Reject (with cause 17 - Network Failure) is received
460 * repeatedly from the network, to facilitate
463 enum RegState : int32_t {
464 NOT_REG_MT_NOT_SEARCHING_OP, // Not registered, MT is not currently searching
465 // a new operator to register
466 REG_HOME, // Registered, home network
467 NOT_REG_MT_SEARCHING_OP, // Not registered, but MT is currently searching
468 // a new operator to register
469 REG_DENIED, // Registration denied
471 REG_ROAMING, // Registered, roaming
472 NOT_REG_MT_NOT_SEARCHING_OP_EM, // Same as NOT_REG_MT_NOT_SEARCHING_OP but indicates that
473 // emergency calls are enabled.
474 NOT_REG_MT_SEARCHING_OP_EM, // Same as NOT_REG_MT_SEARCHING_OP but indicates that
475 // emergency calls are enabled.
476 REG_DENIED_EM, // Same as REG_DENIED but indicates that
477 // emergency calls are enabled.
478 UNKNOWN_EM // Same as UNKNOWN but indicates that
479 // emergency calls are enabled.
482 enum RadioTechnology : int32_t {
499 GSM, // Only supports voice
505 enum DataProfile : int32_t {
511 OEM_BASE = 1000, // Start of OEM-specific profiles
512 INVALID = 0xFFFFFFFF,
515 enum SmsAcknowledgeFailCause : int32_t {
516 MEMORY_CAPAPCITY_EXCEEDED = 0xD3,
517 UNSPECIFIED_ERROR = 0XFF,
520 enum CallForwardInfoStatus : int32_t {
530 enum ClipStatus : int32_t {
531 CLIP_PROVISIONED, // CLIP provisioned
532 CLIP_UNPROVISIONED, // CLIP not provisioned
533 UNKOWN, // unknown, e.g. no network etc
536 enum SmsWriteArgsStatus : int32_t {
543 enum RadioBandMode : int32_t {
544 BAND_MODE_UNSPECIFIED, // "unspecified" (selected by baseband automatically)
545 BAND_MODE_EURO, // "EURO band" (GSM-900 / DCS-1800 / WCDMA-IMT-2000)
546 BAND_MODE_USA, // "US band"
547 // (GSM-850 / PCS-1900 / WCDMA-850 / WCDMA-PCS-1900)
548 BAND_MODE_JPN, // "JPN band" (WCDMA-800 / WCDMA-IMT-2000)
549 BAND_MODE_AUS, // "AUS band"
550 // (GSM-900 / DCS-1800 / WCDMA-850 / WCDMA-IMT-2000)
551 BAND_MODE_AUS_2, // "AUS band 2" (GSM-900 / DCS-1800 / WCDMA-850)
552 BAND_MODE_CELL_800, // "Cellular" (800-MHz Band)
553 BAND_MODE_PCS, // "PCS" (1900-MHz Band)
554 BAND_MODE_JTACS, // "Band Class 3" (JTACS Band)
555 BAND_MODE_KOREA_PCS, // "Band Class 4" (Korean PCS Band)
556 BAND_MODE_5_450M, // "Band Class 5" (450-MHz Band)
557 BAND_MODE_IMT2000, // "Band Class 6" (2-GMHz IMT2000 Band)
558 BAND_MODE_7_700M_2, // "Band Class 7" (Upper 700-MHz Band)
559 BAND_MODE_8_1800M, // "Band Class 8" (1800-MHz Band)
560 BAND_MODE_9_900M, // "Band Class 9" (900-MHz Band)
561 BAND_MODE_10_800M_2, // "Band Class 10" (Secondary 800-MHz Band)
562 BAND_MODE_EURO_PAMR_400M, // "Band Class 11" (400-MHz European PAMR Band)
563 BAND_MODE_AWS, // "Band Class 15" (AWS Band)
564 BAND_MODE_USA_2500M, // "Band Class 16" (US 2.5-GHz Band)
567 enum OperatorStatus : int32_t {
574 struct RadioResponseInfo {
575 RadioResponseType type; // Response type
576 int32_t serial; // Serial number of the request
577 RadioError error; // Response error
583 PersoSubstate persoSubstate; // applicable only if app_state == SUBSCRIPTION_PERSO
584 string aidPtr; // e.g., from 0xA0, 0x00 -> 0x41,
587 int32_t pin1Replaced; // applicable to USIM, CSIM & ISIM
594 PinState universalPinState; // applicable to USIM and CSIM
595 int32_t gsmUmtsSubscriptionAppIndex; // value < RADIO_CARD_MAX_APPS, -1 if none
596 int32_t cdmaSubscriptionAppIndex; // value < RADIO_CARD_MAX_APPS, -1 if none
597 int32_t imsSubscriptionAppIndex; // value < RADIO_CARD_MAX_APPS, -1 if none
598 int32_t numApplications; // value <= RADIO_CARD_MAX_APPS
599 AppStatus[RadioConst:RADIO_CARD_MAX_APPS] applications;
603 * User-to-User Signaling Information defined in 3GPP 23.087 v8.0
604 * This data is passed in RADIO_ExtensionRecord and rec contains this
605 * structure when type is RADIO_UUS_INFO_EXT_REC
608 UusType uusType; // UUS Type
609 UusDcs uusDcs; // UUS Data Coding Scheme
610 int32_t uusLength; // Length of UUS Data
611 string uusData; // UUS data
616 int32_t index; // Connection Index for use with, eg, AT+CHLD
617 int32_t toa; // type of address, eg 145 = intl
618 bool isMpty; // true if is mpty call
619 bool isMT; // true if call is mobile terminated
620 uint8_t als; // ALS line indicator if available (0 = line 1)
621 bool isVoice; // true if this is is a voice call
622 bool isVoicePrivacy; // true if CDMA voice privacy mode is active
623 string number; // Remote party number
624 CallPresentation numberPresentation;
625 string name; // Remote party name
626 CallPresentation namePresentation;
627 vec<UusInfo> uusInfo; // Vector of User-User Signaling Information
633 vec<UusInfo> uusInfo; // Vector of User-User Signaling Information
636 struct GwSignalStrength {
637 uint32_t signalStrength; // Valid values are (0-31, 99) as defined in
639 uint32_t bitErrorRate; // bit error rate (0-7, 99) as defined in TS 27.007 8.5
642 struct CdmaSignalStrength {
643 uint32_t dbm; // This value is the actual RSSI
644 // value multiplied by -1. Example: If the
645 // actual RSSI is -75, then this response value will
647 uint32_t ecio; // This value is the actual
648 // Ec/Io multiplied by -10. Example: If the
649 // actual Ec/Io is -12.5 dB, then this response value
653 struct EvdoSignalStrength {
654 uint32_t dbm; // This value is the actual
655 // RSSI value multiplied by -1.
656 // Example: If the actual RSSI is -75,
657 // then this response value will be 75.
658 uint32_t ecio; // This value is the actual
659 // Ec/Io multiplied by -10. Example: If the
660 // actual Ec/Io is -12.5 dB, then this response value
662 uint32_t signalNoiseRatio; // Valid values are 0-8. 8 is the highest signal to
666 struct LteSignalStrength {
667 uint32_t signalStrength; // Valid values are (0-31, 99) as defined in
669 uint32_t rsrp; // The current Reference Signal Receive Power in dBm
671 // Range: 44 to 140 dBm
672 // INT_MAX: 0x7FFFFFFF denotes invalid value.
673 // Reference: 3GPP TS 36.133 9.1.4
674 uint32_t rsrq; // The current Reference Signal Receive Quality in dB
676 // Range: 20 to 3 dB.
677 // INT_MAX: 0x7FFFFFFF denotes invalid value.
678 // Reference: 3GPP TS 36.133 9.1.7
679 int32_t rssnr; // The current reference signal signal-to-noise ratio in
681 // Range: -200 to +300 (-200 = -20.0 dB, +300 = 30dB).
682 // INT_MAX : 0x7FFFFFFF denotes invalid value.
683 // Reference: 3GPP TS 36.101 8.1.1
684 uint32_t cqi; // The current Channel Quality Indicator.
686 // INT_MAX : 0x7FFFFFFF denotes invalid value.
687 // Reference: 3GPP TS 36.101 9.2, 9.3, A.4
688 uint32_t timingAdvance; // timing advance in micro seconds for a one way trip
689 // from cell to device.
690 // Approximate distance is calculated using
691 // 300m/us * timingAdvance.
692 // Range: 0 to 0x7FFFFFFE
693 // INT_MAX : 0x7FFFFFFF denotes invalid value.
694 // Reference: 3GPP 36.321 section 6.1.3.5
695 // also: http://www.cellular-planningoptimization.com/2010/02/timing-advance-with-calculation.html
698 struct TdScdmaSignalStrength {
699 uint32_t rscp; // The Received Signal Code Power in dBm multipled by -1.
701 // INT_MAX: 0x7FFFFFFF denotes invalid value.
702 // Reference: 3GPP TS 25.123, section 9.1.1.1
705 struct SignalStrength {
707 CdmaSignalStrength cdma;
708 EvdoSignalStrength evdo;
709 LteSignalStrength lte;
710 TdScdmaSignalStrength tdScdma;
713 struct SendSmsResult {
714 int32_t messageRef; // TP-Message-Reference for GSM, and BearerData MessageId
715 // for CDMA (See 3GPP2 C.S0015-B, v2.0, table 4.5-1)
716 string ackPDU; // or empty string if n/a
717 int32_t errorCode; // See 3GPP 27.005, 3.2.5 for GSM/UMTS,
718 // 3GPP2 N.S0005 (IS-41C) Table 171 for CDMA,
719 // -1 if unknown or not applicable
722 struct SetupDataCallResult {
723 int32_t status; // A RadioDataCallFailCause, 0 which is
724 // RadioDataCallFailCause:NONE if no error
725 int32_t suggestedRetryTime; // If status != 0, this fields indicates the suggested
726 // retry back-off timer value RIL wants to override the
727 // one pre-configured in FW.
728 // The unit is miliseconds.
729 // The value < 0 means no value is suggested.
730 // The value 0 means retry must be done ASAP.
731 // The value of INT_MAX(0x7fffffff) means no retry.
732 int32_t cid; // Context ID, uniquely identifies this call
733 int32_t active; // 0=inactive, 1=active/physical link down,
734 // 2=active/physical link up */
735 string type; // One of the PDP_type values in TS 27.007 section 10.1.1.
736 // For example, "IP", "IPV6", "IPV4V6", or "PPP". If
738 // RadioDataCallFailCause:ONLY_SINGLE_BEARER_ALLOWED this
739 // is the type supported such as "IP" or "IPV6"
740 string ifname; // The network interface name
741 string addresses; // A space-delimited list of addresses with optional "/"
742 // prefix length, e.g., "192.0.1.3" or
743 // "192.0.1.11/16 2001:db8::1/64".
744 // Typically 1 IPv4 or 1 IPv6 or
745 // one of each. If the prefix length is absent the
746 // addresses are assumed to be point to point with IPv4
747 // having a prefix length of 32 and IPv6 128.
748 string dnses; // A space-delimited list of DNS server addresses,
749 // e.g., "192.0.1.3" or "192.0.1.11 2001:db8::1".
750 // Empty if no dns server addresses returned.
751 string gateways; // A space-delimited list of default gateway addresses,
752 // e.g., "192.0.1.3" or "192.0.1.11 2001:db8::1".
753 // When empty, the addresses represent
754 // point to point connections.
755 string pcscf; // the Proxy Call State Control Function address
756 // via PCO(Protocol Configuration Option) for IMS client.
757 int32_t mtu; // MTU received from network
758 // Value <= 0 means network has either not sent a
759 // value or sent an invalid value
763 int32_t command; // one of the commands listed for TS 27.007 +CRSM
764 int32_t fileid; // EF id
765 string path; // "pathid" from TS 27.007 +CRSM command.
766 // Path is in hex asciii format eg "7f205f70"
767 // Path must always be provided.
768 int32_t p1; // Values of p1, p2 & p3 defined as per 3GPP TS 51.011
771 string data; // information to be written to the SIM
773 string aidPtr; // AID value, See ETSI 102.221 8.1 and 101.220 4, empty
774 // string if no value.
780 string simResponse; // In hex string format ([a-fA-F0-9]*), except for
781 // SIM_AUTHENTICATION response for which it is in
782 // Base64 format, see 3GPP TS 31.102 7.1.2
785 struct VoiceRegStateResult {
787 int32_t lac; // LAC if registered on a GSM/WCDMA system or
788 // -1 if not.Valid LAC are 0x0000 - 0xffff
789 int32_t cid; // CID. if registered on a * GSM/WCDMA or -1 if not
790 // Valid CID are 0x00000000 - 0xffffffff
791 // In GSM, CID is Cell ID (see TS 27.007) in 16 bits
792 // In UMTS, CID is UMTS Cell Identity (see TS 25.331)
794 int32_t rat; // indicates the available voice radio technology,
795 // valid values as defined by RIL_RadioTechnology.
796 int32_t baseStationId; // Base Station ID. if registered on a CDMA
797 // system or -1 if not. Base Station ID in decimal format
798 int32_t baseStationLatitude; // Base Station latitude. if registered on a
799 // CDMA system or -1 if not. Base Station latitude is a
800 // decimal number as specified in 3GPP2 C.S0005-A v6.0.
801 // It is represented in units of 0.25 seconds and ranges
802 // from -1296000 to 1296000, both values inclusive
803 // (corresponding to a range of -90 to +90 degrees).
804 int32_t baseStationLongitude; // Base Station longitude. if registered on a
805 // CDMA system or -1 if not. Base Station
806 // longitude is a decimal number as specified in
807 // 3GPP2 C.S0005-A v6.0. It is represented in
808 // units of 0.25 seconds and ranges from -2592000
809 // to 2592000, both values inclusive (corresponding
810 // to a range of -180 to +180 degrees).
811 bool cssSupported; // concurrent services support indicator. if
812 // registered on a CDMA system.
813 // false - Concurrent services not supported,
814 // true - Concurrent services supported
815 int32_t systemId; // System ID. if registered on a CDMA system or
816 // -1 if not. Valid System ID are 0 - 32767
817 int32_t networkId; // Network ID. if registered on a CDMA system or
818 // -1 if not. Valid System ID are 0 - 65535
819 int32_t roamingIndicator; // TSB-58 Roaming Indicator if registered
820 // on a CDMA or EVDO system or -1 if not.
821 // Valid values are 0-255.
822 int32_t systemIsInPrl; // indicates whether the current system is in the
823 // PRL if registered on a CDMA or EVDO system or -1 if
824 // not. 0=not in the PRL, 1=in the PRL
825 int32_t defaultRoamingIndicator; // default Roaming Indicator from the PRL,
826 // if registered on a CDMA or EVDO system or -1 if not.
827 // Valid values are 0-255.
828 int32_t reasonForDenial; // reasonForDenial if registration state is 3
829 // (Registration denied) this is an enumerated reason why
830 // registration was denied. See 3GPP TS 24.008,
831 // 10.5.3.6 and Annex G.
833 // 1 - Authentication Failure
834 // 2 - IMSI unknown in HLR
837 // 5 - PLMN not allowed
838 // 6 - Location area not allowed
839 // 7 - Roaming not allowed
840 // 8 - No Suitable Cells in this Location Area
841 // 9 - Network failure
842 // 10 - Persistent location update reject
843 // 11 - PLMN not allowed
844 // 12 - Location area not allowed
845 // 13 - Roaming not allowed in this Location Area
846 // 15 - No Suitable Cells in this Location Area
847 // 17 - Network Failure
851 // 23 - GSM Authentication unacceptable
852 // 25 - Not Authorized for this CSG
853 // 32 - Service option not supported
854 // 33 - Requested service option not subscribed
855 // 34 - Service option temporarily out of order
856 // 38 - Call cannot be identified
857 // 48-63 - Retry upon entry into a new cell
858 // 95 - Semantically incorrect message
859 // 96 - Invalid mandatory information
860 // 97 - Message type non-existent or not implemented
861 // 98 - Message type not compatible with protocol state
862 // 99 - Information element non-existent or not implemented
863 // 100 - Conditional IE error
864 // 101 - Message not compatible with protocol state
865 // 111 - Protocol error, unspecified
866 int32_t psc; // Primary Scrambling Code of the current
867 // cell as described in TS 25.331, in hexadecimal
868 // format, or -1 if unknown or not registered
869 // to a UMTS network.
872 struct DataRegStateResult {
873 RegState regState; // Valid reg states are NOT_REG_MT_NOT_SEARCHING_OP,
874 // REG_HOME, NOT_REG_MT_SEARCHING_OP, REG_DENIED,
875 // UNKNOWN, REG_ROAMING defined in RegState
876 int32_t lac; // LAC if registered or -1 if not
877 // valid LAC are 0x0000 - 0xffff
878 int32_t cid; // CID if registered or -1 if not
879 // valid CID are 0x00000000 - 0x0fffffff
880 int32_t rat; // indicates the available data radio technology,
881 // valid values as defined by RIL_RadioTechnology.
882 int32_t reasonDataDenied; // if registration state is 3 (Registration
883 // denied) this is an enumerated reason why
884 // registration was denied. See 3GPP TS 24.008,
885 // Annex G.6 "Additonal cause codes for GMM".
886 // 7 == GPRS services not allowed
887 // 8 == GPRS services and non-GPRS services not allowed
888 // 9 == MS identity cannot be derived by the network
889 // 10 == Implicitly detached
890 // 14 == GPRS services not allowed in this PLMN
891 // 16 == MSC temporarily not reachable
892 // 40 == No PDP context activated
893 int32_t maxDataCalls; // The maximum number of simultaneous Data Calls that
894 // must be established using requestSetupDataCall().
895 // The values below are optional LTE location information in decimal.
896 // If a value is unknown that value must be -1.
897 int32_t tac; // a 16-bit Tracking Area Code.
898 int32_t phyCid; // a 0-503 Physical Cell Identifier.
899 int32_t eci; // a 28-bit E-UTRAN Cell Identifier.
900 int32_t csgid; // a 27-bit Closed Subscriber Group Identity.
901 int32_t tadv; // a 6-bit timing advance value.
904 // See also com.android.internal.telephony.gsm.CallForwardInfo
905 struct CallForwardInfo {
906 CallForwardInfoStatus status; // For queryCallForwardStatus()
907 // status must be ACTIVE, INACTIVE
908 // For setCallForward():
910 // DISABLE, ENABLE, INTERROGATE, REGISTRATION, ERASURE
911 int32_t reason; // from TS 27.007 7.11 "reason"
912 int32_t serviceClass; // From 27.007 +CCFC/+CLCK "class"
913 // See table for Android mapping from
915 // 0 means user doesnt input class
916 int32_t toa; // "type" from TS 27.007 7.11
917 string number; // "number" from TS 27.007 7.11.
921 // Response struct used in responseQueryAvailableNetworks
922 struct OperatorInfo {
923 string alphaLong; // long alpha ONS or EONS
924 string alphaShort; // short alpha ONS or EONS
925 string operatorNumeric; // 5 or 6 digit numeric code (MCC + MNC)
926 OperatorStatus status;
929 struct SmsWriteArgs {
930 SmsWriteArgsStatus status; // Status of message. See TS 27.005 3.1
931 string pdu; // PDU of message to write, as an ASCII hex string less
932 // the SMSC address, the TP-layer length is strlen(pdu)/2.
933 string smsc; // SMSC address in GSM BCD format prefixed by a length
934 // byte (as expected by TS 27.005) or NULL for default