package android.hardware.radio@1.0;
enum RadioConst : int32_t {
- RADIO_VERSION = 12,
- RADIO_LAST_IMPRECISE_RIL_VERSION = 12,
- RADIO_VERSION_MIN = 6,
- RADIO_CDMA_ALPHA_INFO_BUFFER_LENGTH = 64,
- RADIO_CDMA_NUMBER_INFO_BUFFER_LENGTH = 81,
- RADIO_MAX_RILDS = 3,
- RADIO_MAX_SOCKET_NAME_LENGTH = 6,
- RADIO_MAX_CLIENT_ID_LENGTH = 2,
- RADIO_MAX_DEBUG_SOCKET_NAME_LENGTH = 12,
- RADIO_MAX_QEMU_PIPE_NAME_LENGTH = 11,
- RADIO_MAX_UUID_LENGTH = 64,
- RADIO_RADIO_CAPABILITY_VERSION = 1,
- RADIO_CARD_MAX_APPS = 8,
- RADIO_CDMA_MAX_NUMBER_OF_INFO_RECS = 10,
- RADIO_SS_INFO_MAX = 4,
- RADIO_NUM_SERVICE_CLASSES = 7,
- RADIO_NUM_TX_POWER_LEVELS = 5,
+ CDMA_ALPHA_INFO_BUFFER_LENGTH = 64,
+ CDMA_NUMBER_INFO_BUFFER_LENGTH = 81,
+ MAX_RILDS = 3,
+ MAX_SOCKET_NAME_LENGTH = 6,
+ MAX_CLIENT_ID_LENGTH = 2,
+ MAX_DEBUG_SOCKET_NAME_LENGTH = 12,
+ MAX_QEMU_PIPE_NAME_LENGTH = 11,
+ MAX_UUID_LENGTH = 64,
+ CARD_MAX_APPS = 8,
+ CDMA_MAX_NUMBER_OF_INFO_RECS = 10,
+ SS_INFO_MAX = 4,
+ NUM_SERVICE_CLASSES = 7,
+ NUM_TX_POWER_LEVELS = 5,
};
enum RadioCdmaSmsConst : int32_t {
IP_ADDRESS_SIZE = 4,
};
-enum RadioRestrictedState : int32_t {
+enum RadioError : int32_t {
+ NONE = 0, // Success
+ RADIO_NOT_AVAILABLE = 1, // If radio did not start or is resetting
+ GENERIC_FAILURE = 2,
+ PASSWORD_INCORRECT = 3, // for PIN/PIN2 methods only
+ SIM_PIN2 = 4, // Operation requires SIM PIN2 to be entered
+ SIM_PUK2 = 5, // Operation requires SIM PIN2 to be entered
+ REQUEST_NOT_SUPPORTED = 6,
+ CANCELLED = 7,
+ OP_NOT_ALLOWED_DURING_VOICE_CALL = 8, // data ops are not allowed during voice
+ // call on a Class C GPRS device
+ OP_NOT_ALLOWED_BEFORE_REG_TO_NW = 9, // data ops are not allowed before device
+ // registers in network
+ SMS_SEND_FAIL_RETRY = 10, // fail to send sms and need retry
+ SIM_ABSENT = 11, // fail to set the location where CDMA subscription
+ // shall be retrieved because of SIM or RUIM
+ // card absent
+ SUBSCRIPTION_NOT_AVAILABLE = 12, // fail to find CDMA subscription from specified
+ // location
+ MODE_NOT_SUPPORTED = 13, // HW does not support preferred network type
+ FDN_CHECK_FAILURE = 14, // command failed because recipient is not on FDN list
+ ILLEGAL_SIM_OR_ME = 15, // network selection failed due to illegal SIM or ME
+ MISSING_RESOURCE = 16, // no logical channel available
+ NO_SUCH_ELEMENT = 17, // application not found on SIM
+ DIAL_MODIFIED_TO_USSD = 18, // DIAL request modified to USSD
+ DIAL_MODIFIED_TO_SS = 19, // DIAL request modified to SS
+ DIAL_MODIFIED_TO_DIAL = 20, // DIAL request modified to DIAL with different data
+ USSD_MODIFIED_TO_DIAL = 21, // USSD request modified to DIAL
+ USSD_MODIFIED_TO_SS = 22, // USSD request modified to SS
+ USSD_MODIFIED_TO_USSD = 23, // USSD request modified to different USSD request
+ SS_MODIFIED_TO_DIAL = 24, // SS request modified to DIAL
+ SS_MODIFIED_TO_USSD = 25, // SS request modified to USSD
+ SUBSCRIPTION_NOT_SUPPORTED = 26, // Subscription not supported by RIL
+ SS_MODIFIED_TO_SS = 27, // SS request modified to different SS request
+ LCE_NOT_SUPPORTED = 36, // LCE service not supported(36 in RILConstants.java)
+ NO_MEMORY = 37, // Not sufficient memory to process the request
+ INTERNAL_ERR = 38, // Hit unexpected vendor internal error scenario
+ SYSTEM_ERR = 39, // Hit platform or system error
+ MODEM_ERR = 40, // Hit unexpected modem error
+ INVALID_STATE = 41, // Unexpected request for the current state
+ NO_RESOURCES = 42, // Not sufficient resource to process the request
+ SIM_ERR = 43, // Received error from SIM card
+ INVALID_ARGUMENTS = 44, // Received invalid arguments in request
+ INVALID_SIM_STATE = 45, // Cannot process the request in current SIM state
+ INVALID_MODEM_STATE = 46, // Cannot process the request in current Modem state
+ INVALID_CALL_ID = 47, // Received invalid call id in request
+ NO_SMS_TO_ACK = 48, // ACK received when there is no SMS to ack
+ NETWORK_ERR = 49, // Received error from network
+ REQUEST_RATE_LIMITED = 50, // Operation denied due to overly-frequent requests
+ SIM_BUSY = 51, // SIM is busy
+ SIM_FULL = 52, // The target EF is full
+ NETWORK_REJECT = 53, // Request is rejected by network
+ OPERATION_NOT_ALLOWED = 54, // Not allowed the request now
+ EMPTY_RECORD = 55, // The request record is empty
+ INVALID_SMS_FORMAT = 56, // Invalid sms format
+ ENCODING_ERR = 57, // Message not encoded properly
+ INVALID_SMSC_ADDRESS = 58, // SMSC address specified is invalid
+ NO_SUCH_ENTRY = 59, // No such entry present to perform the request
+ NETWORK_NOT_READY = 60, // Network is not ready to perform the request
+ NOT_PROVISIONED = 61, // Device doesnot have this value provisioned
+ NO_SUBSCRIPTION = 62, // Device doesnot have subscription
+ NO_NETWORK_FOUND = 63, // Network cannot be found
+ DEVICE_IN_USE = 64, // Operation cannot be performed because the device
+ // is currently in use
+ RIL_E_ABORTED = 65, // Operation aborted
+
+ // TODO(May be moved to vendor HAL extension)
+ // OEM specific error codes. To be used by OEM when they don't want to reveal
+ // specific error codes which would be replaced by Generic failure.
+ OEM_ERROR_1 = 501,
+ OEM_ERROR_2 = 502,
+ OEM_ERROR_3 = 503,
+ OEM_ERROR_4 = 504,
+ OEM_ERROR_5 = 505,
+ OEM_ERROR_6 = 506,
+ OEM_ERROR_7 = 507,
+ OEM_ERROR_8 = 508,
+ OEM_ERROR_9 = 509,
+ OEM_ERROR_10 = 510,
+ OEM_ERROR_11 = 511,
+ OEM_ERROR_12 = 512,
+ OEM_ERROR_13 = 513,
+ OEM_ERROR_14 = 514,
+ OEM_ERROR_15 = 515,
+ OEM_ERROR_16 = 516,
+ OEM_ERROR_17 = 517,
+ OEM_ERROR_18 = 518,
+ OEM_ERROR_19 = 519,
+ OEM_ERROR_20 = 520,
+ OEM_ERROR_21 = 521,
+ OEM_ERROR_22 = 522,
+ OEM_ERROR_23 = 523,
+ OEM_ERROR_24 = 524,
+ OEM_ERROR_25 = 525,
+};
+
+enum RadioResponseType : int32_t {
+ SOLICITED,
+ SOLICITED_ACK,
+ SOLICITED_ACK_EXP,
+};
+
+enum RadioIndicationType : int32_t {
+ UNSOLICITED,
+ UNSOLICITED_ACK_EXP,
+};
+
+enum RestrictedState : int32_t {
NONE = 0x00,
CS_EMERGENCY = 0x01,
CS_NORMAL = 0x02,
PS_ALL = 0x10,
};
-enum RadioCardState : int32_t {
- ABSENT = 0,
- PRESENT = 1,
- ERROR = 2,
- /* card is present but not usable due to carrier restrictions.*/
- RESTRICTED = 3,
+enum CardState : int32_t {
+ ABSENT,
+ PRESENT,
+ ERROR,
+ RESTRICTED, // card is present but not usable due to carrier
+ // restrictions
+};
+
+enum PinState : int32_t {
+ UNKNOWN,
+ ENABLED_NOT_VERIFIED,
+ ENABLED_VERIFIED,
+ DISABLED,
+ ENABLED_BLOCKED,
+ ENABLED_PERM_BLOCKED,
+};
+
+enum AppType : int32_t {
+ UNKNOWN,
+ SIM,
+ USIM,
+ RUIM,
+ CSIM,
+ ISIM,
+};
+
+enum AppState : int32_t {
+ UNKNOWN,
+ DETECTED,
+ PIN, // If PIN1 or UPin is required
+ PUK, // If PUK1 or Puk for UPin is required
+ SUBSCRIPTION_PERSO, // perso_substate must be look at when app_state is
+ // assigned to this value
+ READY,
+};
+
+enum PersoSubstate : int32_t {
+ UNKNOWN, // initial state
+ IN_PROGRESS, // in between each lock transition
+ READY, // when either SIM or RUIM Perso is finished since each
+ // app must only have 1 active perso involved
+ SIM_NETWORK,
+ SIM_NETWORK_SUBSET,
+ SIM_CORPORATE,
+ SIM_SERVICE_PROVIDER,
+ SIM_SIM,
+ SIM_NETWORK_PUK, // The corresponding perso lock is blocked
+ SIM_NETWORK_SUBSET_PUK,
+ SIM_CORPORATE_PUK,
+ SIM_SERVICE_PROVIDER_PUK,
+ SIM_SIM_PUK,
+ RUIM_NETWORK1,
+ RUIM_NETWORK2,
+ RUIM_HRPD,
+ RUIM_CORPORATE,
+ RUIM_SERVICE_PROVIDER,
+ RUIM_RUIM,
+ RUIM_NETWORK1_PUK, // The corresponding perso lock is blocked
+ RUIM_NETWORK2_PUK,
+ RUIM_HRPD_PUK,
+ RUIM_CORPORATE_PUK,
+ RUIM_SERVICE_PROVIDER_PUK,
+ RUIM_RUIM_PUK,
+};
+
+enum RadioState : int32_t {
+ OFF = 0, // Radio explictly powered off (eg CFUN=0)
+ UNAVAILABLE = 1, // Radio unavailable (eg, resetting or not booted)
+ ON = 10, // Radio is ON
+};
+
+enum SapConnectRsp : int32_t {
+ SUCCESS,
+ CONNECT_FAILURE,
+ MSG_SIZE_TOO_LARGE,
+ MSG_SIZE_TOO_SMALL,
+ CONNECT_OK_CALL_ONGOING
+};
+
+enum SapDisconnectType : int32_t {
+ GRACEFUL,
+ IMMEDIATE
+};
+
+enum SapApduType : int32_t {
+ APDU,
+ APDU7816
+};
+
+enum SapResultCode : int32_t {
+ SUCCESS,
+ GENERIC_FAILURE,
+ CARD_NOT_ACCESSSIBLE,
+ CARD_ALREADY_POWERED_OFF,
+ CARD_REMOVED,
+ CARD_ALREADY_POWERED_ON,
+ DATA_NOT_AVAILABLE,
+ NOT_SUPPORTED
+};
+
+enum SapStatus : int32_t {
+ UNKNOWN_ERROR,
+ CARD_RESET,
+ CARD_NOT_ACCESSIBLE,
+ CARD_REMOVED,
+ CARD_INSERTED,
+ RECOVERED
+};
+
+enum SapTransferProtocol : int32_t {
+ T0,
+ T1
+};
+
+enum CallState : int32_t {
+ ACTIVE,
+ HOLDING,
+ DIALING, // MO call only
+ ALERTING, // MO call only
+ INCOMING, // MT call only
+ WAITING, // MT call only
+};
+
+/*
+ * User-to-User signaling Info activation types derived from 3GPP 23.087 v8.0
+ */
+enum UusType : int32_t {
+ TYPE1_IMPLICIT,
+ TYPE1_REQUIRED,
+ TYPE1_NOT_REQUIRED,
+ TYPE2_REQUIRED,
+ TYPE2_NOT_REQUIRED,
+ TYPE3_REQUIRED,
+ TYPE3_NOT_REQUIRED,
+};
+
+/*
+ * User-to-User Signaling Information data coding schemes. Possible values for
+ * Octet 3 (Protocol Discriminator field) in the UUIE. The values have been
+ * specified in section 10.5.4.25 of 3GPP TS 24.008
+ */
+enum UusDcs : int32_t {
+ USP, // User specified protocol
+ OSIHLP, // OSI higher layer protocol
+ X244, // X.244
+ RMCF, // Reserved for system mangement convergence function
+ IA5C, // IA5 characters
};
-enum RadioPinState : int32_t {
+enum CallPresentation : int32_t {
+ ALLOWED,
+ RESTRICTED,
+ UNKNOWN,
+ PAYPHONE,
+};
+
+enum Clir : int32_t {
+ DEFAULT, // "use subscription default value"
+ INVOCATION, // restrict CLI presentation
+ SUPPRESSION, // allow CLI presentation
+};
+
+enum LastCallFailCause : int32_t {
+ UNOBTAINABLE_NUMBER = 1,
+ NO_ROUTE_TO_DESTINATION = 3,
+ CHANNEL_UNACCEPTABLE = 6,
+ OPERATOR_DETERMINED_BARRING = 8,
+ NORMAL = 16,
+ BUSY = 17,
+ NO_USER_RESPONDING = 18,
+ NO_ANSWER_FROM_USER = 19,
+ CALL_REJECTED = 21,
+ NUMBER_CHANGED = 22,
+ PREEMPTION = 25,
+ DESTINATION_OUT_OF_ORDER = 27,
+ INVALID_NUMBER_FORMAT = 28,
+ FACILITY_REJECTED = 29,
+ RESP_TO_STATUS_ENQUIRY = 30,
+ NORMAL_UNSPECIFIED = 31,
+ CONGESTION = 34,
+ NETWORK_OUT_OF_ORDER = 38,
+ TEMPORARY_FAILURE = 41,
+ SWITCHING_EQUIPMENT_CONGESTION = 42,
+ ACCESS_INFORMATION_DISCARDED = 43,
+ REQUESTED_CIRCUIT_OR_CHANNEL_NOT_AVAILABLE = 44,
+ RESOURCES_UNAVAILABLE_OR_UNSPECIFIED = 47,
+ QOS_UNAVAILABLE = 49,
+ REQUESTED_FACILITY_NOT_SUBSCRIBED = 50,
+ INCOMING_CALLS_BARRED_WITHIN_CUG = 55,
+ BEARER_CAPABILITY_NOT_AUTHORIZED = 57,
+ BEARER_CAPABILITY_UNAVAILABLE = 58,
+ SERVICE_OPTION_NOT_AVAILABLE = 63,
+ BEARER_SERVICE_NOT_IMPLEMENTED = 65,
+ ACM_LIMIT_EXCEEDED = 68,
+ REQUESTED_FACILITY_NOT_IMPLEMENTED = 69,
+ ONLY_DIGITAL_INFORMATION_BEARER_AVAILABLE = 70,
+ SERVICE_OR_OPTION_NOT_IMPLEMENTED = 79,
+ INVALID_TRANSACTION_IDENTIFIER = 81,
+ USER_NOT_MEMBER_OF_CUG = 87,
+ INCOMPATIBLE_DESTINATION = 88,
+ INVALID_TRANSIT_NW_SELECTION = 91,
+ SEMANTICALLY_INCORRECT_MESSAGE = 95,
+ INVALID_MANDATORY_INFORMATION = 96,
+ MESSAGE_TYPE_NON_IMPLEMENTED = 97,
+ MESSAGE_TYPE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 98,
+ INFORMATION_ELEMENT_NON_EXISTENT = 99,
+ CONDITIONAL_IE_ERROR = 100,
+ MESSAGE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 101,
+ RECOVERY_ON_TIMER_EXPIRED = 102,
+ PROTOCOL_ERROR_UNSPECIFIED = 111,
+ INTERWORKING_UNSPECIFIED = 127,
+ CALL_BARRED = 240,
+ FDN_BLOCKED = 241,
+ IMSI_UNKNOWN_IN_VLR = 242,
+ IMEI_NOT_ACCEPTED = 243,
+ DIAL_MODIFIED_TO_USSD = 244, // STK Call Control
+ DIAL_MODIFIED_TO_SS = 245,
+ DIAL_MODIFIED_TO_DIAL = 246,
+ CDMA_LOCKED_UNTIL_POWER_CYCLE = 1000,
+ CDMA_DROP = 1001,
+ CDMA_INTERCEPT = 1002,
+ CDMA_REORDER = 1003,
+ CDMA_SO_REJECT = 1004,
+ CDMA_RETRY_ORDER = 1005,
+ CDMA_ACCESS_FAILURE = 1006,
+ CDMA_PREEMPTED = 1007,
+ CDMA_NOT_EMERGENCY = 1008, // For non-emergency number dialed during emergency
+ // callback mode
+ CDMA_ACCESS_BLOCKED = 1009, // This error will be deprecated soon,
+ // vendor code must make sure to map error
+ // code to specific error
+ ERROR_UNSPECIFIED = 0xffff,
+};
+
+enum DataCallFailCause : int32_t {
+ NONE = 0, // an integer cause code defined in TS 24.008
+ // section 6.1.3.1.3 or TS 24.301 Release 8+ Annex B.
+ // If the implementation does not have access to the exact
+ // cause codes, then it must return one of the
+ // following values, as the UI layer needs to distinguish
+ // these cases for error notification and potential
+ // retries.
+ OPERATOR_BARRED = 0x08, // no retry
+ NAS_SIGNALLING = 0x0E, // PDP_FAIL_LLC_SNDCP = 0x19,
+ INSUFFICIENT_RESOURCES = 0x1A,
+ MISSING_UKNOWN_APN = 0x1B, // no retry
+ UNKNOWN_PDP_ADDRESS_TYPE = 0x1C, // no retry
+ USER_AUTHENTICATION = 0x1D, // no retry
+ ACTIVATION_REJECT_GGSN = 0x1E, // no retry
+ ACTIVATION_REJECT_UNSPECIFIED = 0x1F,
+ SERVICE_OPTION_NOT_SUPPORTED = 0x20, // no retry
+ SERVICE_OPTION_NOT_SUBSCRIBED = 0x21, // no retry
+ SERVICE_OPTION_OUT_OF_ORDER = 0x22,
+ NSAPI_IN_USE = 0x23, // no retry
+ REGULAR_DEACTIVATION = 0x24, // possibly restart radio,
+ // based on framework config
+ QOS_NOT_ACCEPTED = 0x25,
+ NETWORK_FAILURE = 0x26,
+ UMTS_REACTIVATION_REQ = 0x27,
+ FEATURE_NOT_SUPP = 0x28,
+ TFT_SEMANTIC_ERROR = 0x29,
+ TFT_SYTAX_ERROR = 0x2A,
+ UNKNOWN_PDP_CONTEXT = 0x2B,
+ FILTER_SEMANTIC_ERROR = 0x2C,
+ FILTER_SYTAX_ERROR = 0x2D,
+ PDP_WITHOUT_ACTIVE_TFT = 0x2E,
+ ONLY_IPV4_ALLOWED = 0x32, // no retry
+ ONLY_IPV6_ALLOWED = 0x33, // no retry
+ ONLY_SINGLE_BEARER_ALLOWED = 0x34,
+ ESM_INFO_NOT_RECEIVED = 0x35,
+ PDN_CONN_DOES_NOT_EXIST = 0x36,
+ MULTI_CONN_TO_SAME_PDN_NOT_ALLOWED = 0x37,
+ MAX_ACTIVE_PDP_CONTEXT_REACHED = 0x41,
+ UNSUPPORTED_APN_IN_CURRENT_PLMN = 0x42,
+ INVALID_TRANSACTION_ID = 0x51,
+ MESSAGE_INCORRECT_SEMANTIC = 0x5F,
+ INVALID_MANDATORY_INFO = 0x60,
+ MESSAGE_TYPE_UNSUPPORTED = 0x61,
+ MSG_TYPE_NONCOMPATIBLE_STATE = 0x62,
+ UNKNOWN_INFO_ELEMENT = 0x63,
+ CONDITIONAL_IE_ERROR = 0x64,
+ MSG_AND_PROTOCOL_STATE_UNCOMPATIBLE = 0x65,
+ PROTOCOL_ERRORS = 0x6F, // no retry
+ APN_TYPE_CONFLICT = 0x70,
+ INVALID_PCSCF_ADDR = 0x71,
+ INTERNAL_CALL_PREEMPT_BY_HIGH_PRIO_APN = 0x72,
+ EMM_ACCESS_BARRED = 0x73,
+ EMERGENCY_IFACE_ONLY = 0x74,
+ IFACE_MISMATCH = 0x75,
+ COMPANION_IFACE_IN_USE = 0x76,
+ IP_ADDRESS_MISMATCH = 0x77,
+ IFACE_AND_POL_FAMILY_MISMATCH = 0x78,
+ EMM_ACCESS_BARRED_INFINITE_RETRY = 0x79,
+ AUTH_FAILURE_ON_EMERGENCY_CALL = 0x7A,
+ OEM_DCFAILCAUSE_1 = 0x1001,
+
+ // OEM specific error codes. To be used by OEMs when they don't want to
+ // reveal error code which would be replaced by PDP_FAIL_ERROR_UNSPECIFIED
+ // TODO(May be moved to vendor HAL extension)
+ OEM_DCFAILCAUSE_2 = 0x1002,
+ OEM_DCFAILCAUSE_3 = 0x1003,
+ OEM_DCFAILCAUSE_4 = 0x1004,
+ OEM_DCFAILCAUSE_5 = 0x1005,
+ OEM_DCFAILCAUSE_6 = 0x1006,
+ OEM_DCFAILCAUSE_7 = 0x1007,
+ OEM_DCFAILCAUSE_8 = 0x1008,
+ OEM_DCFAILCAUSE_9 = 0x1009,
+ OEM_DCFAILCAUSE_10 = 0x100A,
+ OEM_DCFAILCAUSE_11 = 0x100B,
+ OEM_DCFAILCAUSE_12 = 0x100C,
+ OEM_DCFAILCAUSE_13 = 0x100D,
+ OEM_DCFAILCAUSE_14 = 0x100E,
+ OEM_DCFAILCAUSE_15 = 0x100F,
+
+ // Not mentioned in the specification
+ VOICE_REGISTRATION_FAIL = -1,
+ DATA_REGISTRATION_FAIL = -2,
+
+ // reasons for data call drop - network/modem disconnect
+ SIGNAL_LOST = -3,
+ PREF_RADIO_TECH_CHANGED = -4, // preferred technology has changed, must retry
+ // with parameters appropriate for new technology
+ RADIO_POWER_OFF = -5, // data call was disconnected because radio was resetting,
+ // powered off - no retry
+ TETHERED_CALL_ACTIVE = -6, // data call was disconnected by modem because tethered
+ // mode was up on same APN/data profile - no retry until
+ // tethered call is off
+ ERROR_UNSPECIFIED = 0xffff,
+};
+
+/*
+ * Please note that registration state UNKNOWN is
+ * treated as "out of service" in the Android telephony.
+ * Registration state REG_DENIED must be returned if Location Update
+ * Reject (with cause 17 - Network Failure) is received
+ * repeatedly from the network, to facilitate
+ * "managed roaming"
+ */
+enum RegState : int32_t {
+ NOT_REG_MT_NOT_SEARCHING_OP, // Not registered, MT is not currently searching
+ // a new operator to register
+ REG_HOME, // Registered, home network
+ NOT_REG_MT_SEARCHING_OP, // Not registered, but MT is currently searching
+ // a new operator to register
+ REG_DENIED, // Registration denied
+ UNKNOWN, // Unknown
+ REG_ROAMING, // Registered, roaming
+ NOT_REG_MT_NOT_SEARCHING_OP_EM, // Same as NOT_REG_MT_NOT_SEARCHING_OP but indicates that
+ // emergency calls are enabled.
+ NOT_REG_MT_SEARCHING_OP_EM, // Same as NOT_REG_MT_SEARCHING_OP but indicates that
+ // emergency calls are enabled.
+ REG_DENIED_EM, // Same as REG_DENIED but indicates that
+ // emergency calls are enabled.
+ UNKNOWN_EM // Same as UNKNOWN but indicates that
+ // emergency calls are enabled.
+};
+
+enum RadioTechnology : int32_t {
UNKNOWN = 0,
- ENABLED_NOT_VERIFIED = 1,
- ENABLED_VERIFIED = 2,
- DISABLED = 3,
- ENABLED_BLOCKED = 4,
- ENABLED_PERM_BLOCKED = 5,
+ GPRS = 1,
+ EDGE = 2,
+ UMTS = 3,
+ IS95A = 4,
+ IS95B = 5,
+ ONE_X_RTT = 6,
+ EVDO_0 = 7,
+ EVDO_A = 8,
+ HSDPA = 9,
+ HSUPA = 10,
+ HSPA = 11,
+ EVDO_B = 12,
+ EHRPD = 13,
+ LTE = 14,
+ HSPAP = 15, // HSPA+
+ GSM = 16, // Only supports voice
+ TD_SCDMA = 17,
+ IWLAN = 18,
+ LTE_CA = 19,
+};
+
+enum DataProfile : int32_t {
+ DEFAULT = 0,
+ TETHERED = 1,
+ IMS = 2,
+ FOTA = 3,
+ CBS = 4,
+ OEM_BASE = 1000, // Start of OEM-specific profiles
+ INVALID = 0xFFFFFFFF,
+};
+
+enum SmsAcknowledgeFailCause : int32_t {
+ MEMORY_CAPAPCITY_EXCEEDED = 0xD3,
+ UNSPECIFIED_ERROR = 0XFF,
};
-enum RadioAppType : int32_t {
+enum CallForwardInfoStatus : int32_t {
+ ACTIVE,
+ INACTIVE,
+ DISABLE,
+ ENABLE,
+ INTERROGATE,
+ REGISTRATION,
+ ERASURE,
+};
+
+enum ClipStatus : int32_t {
+ CLIP_PROVISIONED, // CLIP provisioned
+ CLIP_UNPROVISIONED, // CLIP not provisioned
+ UNKOWN, // unknown, e.g. no network etc
+};
+
+enum SmsWriteArgsStatus : int32_t {
+ REC_UNREAD,
+ REC_READ,
+ STO_UNSENT,
+ STO_SENT,
+};
+
+enum RadioBandMode : int32_t {
+ BAND_MODE_UNSPECIFIED, // "unspecified" (selected by baseband automatically)
+ BAND_MODE_EURO, // "EURO band" (GSM-900 / DCS-1800 / WCDMA-IMT-2000)
+ BAND_MODE_USA, // "US band"
+ // (GSM-850 / PCS-1900 / WCDMA-850 / WCDMA-PCS-1900)
+ BAND_MODE_JPN, // "JPN band" (WCDMA-800 / WCDMA-IMT-2000)
+ BAND_MODE_AUS, // "AUS band"
+ // (GSM-900 / DCS-1800 / WCDMA-850 / WCDMA-IMT-2000)
+ BAND_MODE_AUS_2, // "AUS band 2" (GSM-900 / DCS-1800 / WCDMA-850)
+ BAND_MODE_CELL_800, // "Cellular" (800-MHz Band)
+ BAND_MODE_PCS, // "PCS" (1900-MHz Band)
+ BAND_MODE_JTACS, // "Band Class 3" (JTACS Band)
+ BAND_MODE_KOREA_PCS, // "Band Class 4" (Korean PCS Band)
+ BAND_MODE_5_450M, // "Band Class 5" (450-MHz Band)
+ BAND_MODE_IMT2000, // "Band Class 6" (2-GMHz IMT2000 Band)
+ BAND_MODE_7_700M_2, // "Band Class 7" (Upper 700-MHz Band)
+ BAND_MODE_8_1800M, // "Band Class 8" (1800-MHz Band)
+ BAND_MODE_9_900M, // "Band Class 9" (900-MHz Band)
+ BAND_MODE_10_800M_2, // "Band Class 10" (Secondary 800-MHz Band)
+ BAND_MODE_EURO_PAMR_400M, // "Band Class 11" (400-MHz European PAMR Band)
+ BAND_MODE_AWS, // "Band Class 15" (AWS Band)
+ BAND_MODE_USA_2500M, // "Band Class 16" (US 2.5-GHz Band)
+};
+
+enum OperatorStatus : int32_t {
+ UNKNOWN,
+ AVAILABLE,
+ CURRENT,
+ FORBIDDEN,
+};
+
+enum PreferredNetworkType : int32_t {
+ GSM_WCDMA, // GSM/WCDMA (WCDMA preferred)
+ GSM_ONLY, // GSM only
+ WCDMA, // WCDMA
+ GSM_WCDMA_AUTO, // GSM/WCDMA (auto mode, according to PRL)
+ CDMA_EVDO_AUTO, // CDMA and EvDo (auto mode, according to PRL)
+ CDMA_ONLY, // CDMA only
+ EVDO_ONLY, // EvDo only
+ GSM_WCDMA_CDMA_EVDO_AUTO, // GSM/WCDMA, CDMA, and EvDo (auto mode, according to PRL)
+ LTE_CDMA_EVDO, // LTE, CDMA and EvDo
+ LTE_GSM_WCDMA, // LTE, GSM/WCDMA
+ LTE_CMDA_EVDO_GSM_WCDMA, // LTE, CDMA, EvDo, GSM/WCDMA
+ LTE_ONLY, // LTE only
+ LTE_WCDMA, // LTE/WCDMA
+ TD_SCDMA_ONLY, // TD-SCDMA only
+ TD_SCDMA_WCDMA, // TD-SCDMA and WCDMA
+ TD_SCDMA_LTE, // TD-SCDMA and LTE
+ TD_SCDMA_GSM, // TD-SCDMA and GSM
+ TD_SCDMA_GSM_LTE, // TD-SCDMA,GSM and LTE
+ TD_SCDMA_GSM_WCDMA, // TD-SCDMA, GSM/WCDMA
+ TD_SCDMA_WCDMA_LTE, // TD-SCDMA, WCDMA and LTE
+ TD_SCDMA_GSM_WCDMA_LTE, // TD-SCDMA, GSM/WCDMA and LTE
+ TD_SCDMA_GSM_WCDMA_CDMA_EVDO_AUTO, // TD-SCDMA, GSM/WCDMA, CDMA and EvDo
+ TD_SCDMA_LTE_CDMA_EVDO_GSM_WCDMA, // TD-SCDMA, LTE, CDMA, EvDo GSM/WCDMA
+};
+
+enum CdmaSubscriptionSource : int32_t {
+ RUIM_SIM,
+ NV,
+};
+
+enum CdmaRoamingType : int32_t {
+ HOME_NETWORK,
+ AFFILIATED_ROAM,
+ ANY_ROAM,
+};
+
+enum TtyMode : int32_t {
+ OFF,
+ FULL,
+ HCO, // Hearing carryover
+ VCO, // Voice carryover
+};
+
+enum NvItem : int32_t {
+ // CDMA radio and account information (items 1-10)
+ CDMA_MEID = 1, // CDMA MEID (hex)
+ CDMA_MIN = 2, // CDMA MIN (MSID)
+ CDMA_MDN = 3, // CDMA MDN
+ CDMA_ACCOLC = 4, // CDMA access overload control
+
+ // Carrier device provisioning (items 11-30)
+ DEVICE_MSL = 11, // device MSL
+ RTN_RECONDITIONED_STATUS = 12, // RTN reconditioned status
+ RTN_ACTIVATION_DATE = 13, // RTN activation date
+ RTN_LIFE_TIMER = 14, // RTN life timer
+ RTN_LIFE_CALLS = 15, // RTN life calls
+ RTN_LIFE_DATA_TX = 16, // RTN life data TX
+ RTN_LIFE_DATA_RX = 17, // RTN life data RX
+ OMADM_HFA_LEVEL = 18, // HFA in progress
+
+ // Mobile IP profile information (items 31-50)
+ MIP_PROFILE_NAI = 31, // NAI realm
+ MIP_PROFILE_HOME_ADDRESS = 32, // MIP home address
+ MIP_PROFILE_AAA_AUTH = 33, // AAA auth
+ MIP_PROFILE_HA_AUTH = 34, // HA auth
+ MIP_PROFILE_PRI_HA_ADDR = 35, // primary HA address
+ MIP_PROFILE_SEC_HA_ADDR = 36, // secondary HA address
+ MIP_PROFILE_REV_TUN_PREF = 37, // reverse TUN preference
+ MIP_PROFILE_HA_SPI = 38, // HA SPI
+ MIP_PROFILE_AAA_SPI = 39, // AAA SPI
+ MIP_PROFILE_MN_HA_SS = 40, // HA shared secret
+ MIP_PROFILE_MN_AAA_SS = 41, // AAA shared secret
+
+ // CDMA network and band config (items 51-70)
+ CDMA_PRL_VERSION = 51, // CDMA PRL version
+ CDMA_BC10 = 52, // CDMA band class 10
+ CDMA_BC14 = 53, // CDMA band class 14
+ CDMA_SO68 = 54, // CDMA SO68
+ CDMA_SO73_COP0 = 55, // CDMA SO73 COP0
+ CDMA_SO73_COP1TO7 = 56, // CDMA SO73 COP1-7
+ CDMA_1X_ADVANCED_ENABLED = 57, // CDMA 1X Advanced enabled
+ CDMA_EHRPD_ENABLED = 58, // CDMA eHRPD enabled
+ CDMA_EHRPD_FORCED = 59, // CDMA eHRPD forced
+
+ // LTE network and band config (items 71-90)
+ LTE_BAND_ENABLE_25 = 71, // LTE band 25 enable
+ LTE_BAND_ENABLE_26 = 72, // LTE band 26 enable
+ LTE_BAND_ENABLE_41 = 73, // LTE band 41 enable
+
+ LTE_SCAN_PRIORITY_25 = 74, // LTE band 25 scan priority
+ LTE_SCAN_PRIORITY_26 = 75, // LTE band 26 scan priority
+ LTE_SCAN_PRIORITY_41 = 76, // LTE band 41 scan priority
+
+ LTE_HIDDEN_BAND_PRIORITY_25 = 77, // LTE hidden band 25 priority
+ LTE_HIDDEN_BAND_PRIORITY_26 = 78, // LTE hidden band 26 priority
+ LTE_HIDDEN_BAND_PRIORITY_41 = 79, // LTE hidden band 41 priority
+};
+
+enum ResetNvType : int32_t {
+ RELOAD, // reload all NV items
+ ERASE, // erase NV reset (SCRTN)
+ FACORY_RESET, // factory reset (RTN)
+};
+
+enum HardwareConfigType : int32_t {
+ MODEM,
+ SIM,
+};
+
+enum HardwareConfigState : int32_t {
+ ENABLED,
+ STANDBY,
+ DISABLED,
+};
+
+enum LceStatus : int32_t {
+ NOT_SUPPORTED,
+ STOPPED,
+ ACTIVE
+};
+
+enum CarrierMatchType : int32_t {
+ ALL = 0, // Apply to all carriers with the same mcc/mnc
+ SPN = 1, // Use SPN and mcc/mnc to identify the carrier
+ IMSI_PREFIX = 2, // Use IMSI prefix and mcc/mnc to identify the carrier
+ GID1 = 3, // Use GID1 and mcc/mnc to identify the carrier
+ GID2 = 4, // Use GID2 and mcc/mnc to identify the carrier
+};
+
+struct NeighboringCell {
+ string cid; // Combination of LAC and Cell Id in 32 bits in GSM.
+ // Upper 16 bits is LAC and lower 16 bits
+ // is CID (as described in TS 27.005)
+ // Primary Scrambling Code (as described in TS 25.331)
+ // in 9 bits in UMTS
+ // Valid values are hexadecimal 0x0000 - 0xffffffff.
+ int32_t rssi; // Received RSSI in GSM,
+ // Level index of CPICH Received Signal Code Power in UMTS
+};
+
+enum CdmaSmsDigitMode : int32_t {
+ FOUR_BIT, // DTMF digits
+ EIGHT_BIT,
+};
+
+enum CdmaSmsNumberMode : int32_t {
+ NOT_DATA_NETWORK,
+ DATA_NETWORK,
+};
+
+enum CdmaSmsNumberType : int32_t {
+ UNKNOWN,
+ INTERNATIONAL_OR_DATA_IP, // INTERNATIONAL is used when number mode is not data
+ // network
+ // address. DATA_IP is used when the number mode is data
+ // network address
+ NATIONAL_OR_INTERNET_MAIL, // NATIONAL is used when the number mode is not data
+ // network address. INTERNET_MAIL is used when the number
+ // mode is data network address. For INTERNET_MAIL, in
+ // the address data "digits", each byte contains an ASCII
+ // character.
+ // Examples are "x@y.com,a@b.com - ref
+ // TIA/EIA-637A 3.4.3.3
+ NETWORK,
+ SUBSCRIBER,
+ ALPHANUMERIC, // GSM SMS: address value is GSM 7-bit chars
+ ABBREVIATED,
+ RESERVED_7,
+};
+
+enum CdmaSmsNumberPlan : int32_t {
+ UNKNOWN,
+ TELEPHONY, // CCITT E.164 and E.163, including ISDN plan
+ RESERVED_2,
+ DATA, // CCITT X.121
+ TELEX, // CCITT F.69
+ RESERVED_5,
+ RESERVED_6,
+ RESERVED_7,
+ RESERVED_8,
+ PRIVATE,
+ RESERVED_10,
+ RESERVED_11,
+ RESERVED_12,
+ RESERVED_13,
+ RESERVED_14,
+ RESERVED_15,
+};
+
+enum CdmaSmsSubaddressType : int32_t {
+ NSAP, // CCITT X.213 or ISO 8348 AD2
+ USER_SPECIFIED, // e.g. X.25
+};
+
+enum CdmaSmsErrorClass : int32_t {
+ NO_ERROR,
+ ERROR,
+};
+
+enum CdmaSmsWriteArgsStatus : int32_t {
+ REC_UNREAD,
+ REC_READ,
+ STO_UNSENT,
+ STO_SENT
+};
+
+enum CellInfoType : int32_t {
+ GSM,
+ CDMA,
+ LTE,
+ WCDMA,
+ TD_SCDMA
+};
+
+enum TimeStampType : int32_t {
+ UNKNOWN,
+ ANTENNA,
+ MODEM,
+ OEM_RIL,
+ JAVA_RIL,
+};
+
+enum ApnAuthType : int32_t {
+ NO_PAP_NO_CHAP, // PAP and CHAP is never performed.
+ PAP_NO_CHAP, // PAP may be performed; CHAP is never performed.
+ NO_PAP_CHAP, // CHAP may be performed; PAP is never performed.
+ PAP_CHAP // PAP / CHAP may be performed - baseband dependent.
+};
+
+enum RadioTechnologyFamily : int32_t {
+ THREE_GPP, // 3GPP Technologies - GSM, WCDMA
+ THREE_GPP2 // 3GPP2 Technologies - CDMA
+};
+
+enum RadioCapabilityPhase : int32_t {
+ CONFIGURED = 0, // Logical Modem's (LM) initial value
+ // and value after FINISH completes
+ START = 1, // START is sent before APPLY and indicates that an
+ // APPLY is forthcoming with these same parameters
+ APPLY = 2, // APPLY is sent after all LM's receive START and returned
+ // RadioCapability.status = 0. If any START's fail, hal
+ // implementation must not send APPLY.
+ UNSOL_RSP = 3, // UNSOL_RSP is sent with unsol radioCapability()
+ FINISH = 4 // FINISH is sent after all commands have completed. If an
+ // error occurs in any previous command, the
+ // RadioAccessesFamily and logicalModemUuid fields must be
+ // the prior configuration thus restoring the configuration
+ // to the previous value. An error returned by FINISH
+ // will generally be ignored or may cause that logical
+ // modem to be removed from service.
+};
+
+enum RadioCapabilityStatus : int32_t {
+ NONE = 0, // This parameter has no meaning with
+ // RadioCapabilityPhase:START, RadioCapabilityPhase:APPLY
+ SUCCESS = 1, // Tell modem the action transaction of set radio
+ // capability was success with RadioCapabilityPhase:FINISH
+ FAIL = 2, // Tell modem the action transaction of set radio
+ // capability is fail with RadioCapabilityPhase:FINISH.
+};
+
+enum RadioAccessFamily : int32_t {
+ UNKNOWN = 1 << RadioTechnology:UNKNOWN,
+ GPRS = 1 << RadioTechnology:GPRS,
+ EDGE = 1 << RadioTechnology:EDGE,
+ UMTS = 1 << RadioTechnology:UMTS,
+ IS95A = 1 << RadioTechnology:IS95A,
+ IS95B = 1 << RadioTechnology:IS95B,
+ ONE_X_RTT = 1 << RadioTechnology:ONE_X_RTT,
+ EVDO_0 = 1 << RadioTechnology:EVDO_0,
+ EVDO_A = 1 << RadioTechnology:EVDO_A,
+ HSDPA = 1 << RadioTechnology:HSDPA,
+ HSUPA = 1 << RadioTechnology:HSUPA,
+ HSPA = 1 << RadioTechnology:HSPA,
+ EVDO_B = 1 << RadioTechnology:EVDO_B,
+ EHRPD = 1 << RadioTechnology:EHRPD,
+ LTE = 1 << RadioTechnology:LTE,
+ HSPAP = 1 << RadioTechnology:HSPAP,
+ GSM = 1 << RadioTechnology:GSM,
+ TD_SCDMA = 1 << RadioTechnology:TD_SCDMA,
+ LTE_CA = 1 << RadioTechnology:LTE_CA
+};
+
+enum UssdModeType : int32_t {
+ NOTIFY, // USSD-Notify
+ REQUEST, // USSD-Request
+ NW_RELEASE, // Session terminated by network
+ LOCAL_CLIENT, // other local client (eg, SIM Toolkit) has responded
+ NOT_SUPPORTED, // Operation not supported
+ NW_TIMEOUT, // Network timeout
+};
+
+enum SimRefreshType : int32_t {
+ SIM_FILE_UPDATE = 0, // A file on SIM has been updated.
+ SIM_INIT = 1, // SIM initialized. All files should be re-read.
+ SIM_RESET = 2 // SIM reset. SIM power required, SIM may be locked a
+ // nd all files must be re-read.
+};
+
+enum SrvccState :int32_t {
+ HANDOVER_STARTED = 0,
+ HANDOVER_COMPLETED = 1,
+ HANDOVER_FAILED = 2,
+ HANDOVER_CANCELED = 3
+};
+
+enum UiccSubActStatus : int32_t {
+ DEACTIVATE,
+ ACTIVATE
+};
+
+enum SubscriptionType : int32_t {
+ SUBSCRIPTION_1,
+ SUBSCRIPTION_2,
+ SUBSCRIPTION_3
+};
+
+enum DataProfileInfoType : int32_t {
+ COMMON,
+ THREE_GPP,
+ THREE_GPP2
+};
+
+enum PhoneRestrictedState : int32_t {
+ NONE = 0x00, // No restriction at all including voice/SMS/USSD/SS/AV64
+ // and packet data
+ CS_EMERGENCY = 0x01, // Block emergency call due to restriction. But allow all
+ // normal voice/SMS/USSD/SS/AV64.
+ CS_NORMAL = 0x02, // Block all normal voice/SMS/USSD/SS/AV64 due to
+ // restriction. Only Emergency call allowed.
+ CS_ALL = 0x04, // Block all voice/SMS/USSD/SS/AV64 including emergency
+ // call due to restriction.
+ PS_ALL = 0x10 // Block packet data access due to restriction.
+};
+
+enum CdmaCallWaitingNumberPresentation : int32_t {
+ ALLOWED = 0,
+ RESTRICTED = 1,
+ UNKNOWN = 2,
+};
+
+enum CdmaCallWaitingNumberType : int32_t {
UNKNOWN = 0,
- SIM = 1,
- USIM = 2,
- RUIM = 3,
- CSIM = 4,
- ISIM = 5,
+ INTERNATIONAL = 1,
+ NATIONAL = 2,
+ NETWORK_SPECIFIC = 3,
+ SUBSCRIBER = 4
};
-enum RadioAppState : int32_t {
+enum CdmaCallWaitingNumberPlan : int32_t {
UNKNOWN = 0,
- DETECTED = 1,
- PIN = 2,
- /* If PIN1 or UPin is required */
- PUK = 3,
- /* If PUK1 or Puk for UPin is required */
- SUBSCRIPTION_PERSO = 4,
- /* perso_substate should be look at when app_state is assigned to this value */
- READY = 5,
+ ISDN = 1,
+ DATA = 3,
+ TELEX = 4,
+ NATIONAL = 8,
+ PRIVATE = 9
+};
+
+enum CdmaOtaProvisionStatus : int32_t {
+ SPL_UNLOCKED,
+ SPC_RETRIES_EXCEEDED,
+ A_KEY_EXCHANGED,
+ SSD_UPDATED,
+ NAM_DOWNLOADED,
+ MDN_DOWNLOADED,
+ IMSI_DOWNLOADED,
+ PRL_DOWNLOADED,
+ COMMITTED,
+ OTAPA_STARTED,
+ OTAPA_STOPPED,
+ OTAPA_ABORTED
+};
+
+/* Names of the CDMA info records (C.S0005 section 3.7.5) */
+enum CdmaInfoRecName : int32_t {
+ DISPLAY,
+ CALLED_PARTY_NUMBER,
+ CALLING_PARTY_NUMBER,
+ CONNECTED_NUMBER,
+ SIGNAL,
+ REDIRECTING_NUMBER,
+ LINE_CONTROL,
+ EXTENDED_DISPLAY,
+ T53_CLIR,
+ T53_RELEASE,
+ T53_AUDIO_CONTROL
};
-enum RadioPersoSubstate : int32_t {
+/* Redirecting Number Information Record as defined in C.S0005 section 3.7.5.11 */
+enum CdmaRedirectingReason : int32_t {
UNKNOWN = 0,
- /* initial state */
- IN_PROGRESS = 1,
- /* in between each lock transition */
- READY = 2,
- /* when either SIM or RUIM Perso is finished since each app can only have 1 active perso
- involved */
- SIM_NETWORK = 3,
- SIM_NETWORK_SUBSET = 4,
- SIM_CORPORATE = 5,
- SIM_SERVICE_PROVIDER = 6,
- SIM_SIM = 7,
- SIM_NETWORK_PUK = 8,
- /* The corresponding perso lock is blocked */
- SIM_NETWORK_SUBSET_PUK = 9,
- SIM_CORPORATE_PUK = 10,
- SIM_SERVICE_PROVIDER_PUK = 11,
- SIM_SIM_PUK = 12,
- RUIM_NETWORK1 = 13,
- RUIM_NETWORK2 = 14,
- RUIM_HRPD = 15,
- RUIM_CORPORATE = 16,
- RUIM_SERVICE_PROVIDER = 17,
- RUIM_RUIM = 18,
- RUIM_NETWORK1_PUK = 19,
- /* The corresponding perso lock is blocked */
- RUIM_NETWORK2_PUK = 20,
- RUIM_HRPD_PUK = 21,
- RUIM_CORPORATE_PUK = 22,
- RUIM_SERVICE_PROVIDER_PUK = 23,
- RUIM_RUIM_PUK = 24,
-};
-
-enum RadioState : int32_t {
- OFF = 0,
- /* Radio explictly powered off (eg CFUN=0) */
- UNAVAILABLE = 1,
- /* States 2-9 below are deprecated. Just leaving them here for backward compatibility. */
- SIM_NOT_READY = 2,
- /* Radio is on, but the SIM interface is not ready */
- SIM_LOCKED_OR_ABSENT = 3,
- /* SIM PIN locked, PUK required, network
- personalization locked, or SIM absent */
- SIM_READY = 4,
- /* Radio is on and SIM interface is available */
- RUIM_NOT_READY = 5,
- /* Radio is on, but the RUIM interface is not ready */
- RUIM_READY = 6,
- /* Radio is on and the RUIM interface is available */
- RUIM_LOCKED_OR_ABSENT = 7,
- /* RUIM PIN locked, PUK required, network
- personalization locked, or RUIM absent */
- NV_NOT_READY = 8,
- /* Radio is on, but the NV interface is not available */
- NV_READY = 9,
- /* Radio is on */
- ON = 10,
-};
-
-struct RadioAppStatus {
- RadioAppType appType;
- RadioAppState appState;
- RadioPersoSubstate persoSubstate;
- /* applicable only if app_state == SUBSCRIPTION_PERSO */
- string aidPtr;
- /* null terminated string, e.g., from 0xA0, 0x00 -> 0x41, 0x30, 0x30, 0x30 */
+ CALL_FORWARDING_BUSY = 1,
+ CALL_FORWARDING_NO_REPLY = 2,
+ CALLED_DTE_OUT_OF_ORDER = 9,
+ CALL_FORWARDING_BY_THE_CALLED_DTE = 10,
+ CALL_FORWARDING_UNCONDITIONAL = 15,
+ RESERVED
+};
+
+enum SsServiceType : int32_t {
+ CFU,
+ CF_BUSY,
+ CF_NO_REPLY,
+ CF_NOT_REACHABLE,
+ CF_ALL,
+ CF_ALL_CONDITIONAL,
+ CLIP,
+ CLIR,
+ COLP,
+ COLR,
+ WAIT,
+ BAOC,
+ BAOIC,
+ BAOIC_EXC_HOME,
+ BAIC,
+ BAIC_ROAMING,
+ ALL_BARRING,
+ OUTGOING_BARRING,
+ INCOMING_BARRING
+};
+
+enum SsRequestType : int32_t {
+ ACTIVATION,
+ DEACTIVATION,
+ INTERROGATION,
+ REGISTRATION,
+ ERASURE
+};
+
+enum SsTeleserviceType : int32_t {
+ ALL_TELE_AND_BEARER_SERVICES,
+ ALL_TELESEVICES,
+ TELEPHONY,
+ ALL_DATA_TELESERVICES,
+ SMS_SERVICES,
+ ALL_TELESERVICES_EXCEPT_SMS
+};
+
+enum SuppServiceClass : int32_t {
+ NONE = 0,
+ VOICE = 1 << 0,
+ DATA = 1 << 1,
+ FAX = 1 << 2,
+ SMS = 1 << 3,
+ DATA_SYNC = 1 << 4,
+ DATA_ASYNC = 1 << 5,
+ PACKET = 1 << 6,
+ PAD = 1 << 7,
+ MAX = 1 << 7
+};
+
+struct RadioResponseInfo {
+ RadioResponseType type; // Response type
+ int32_t serial; // Serial number of the request
+ RadioError error; // Response error
+};
+
+struct AppStatus {
+ AppType appType;
+ AppState appState;
+ PersoSubstate persoSubstate; // applicable only if app_state == SUBSCRIPTION_PERSO
+ string aidPtr; // e.g., from 0xA0, 0x00 -> 0x41,
+ // 0x30, 0x30, 0x30
string appLabelPtr;
- /* null terminated string */
- int32_t pin1Replaced;
- /* applicable to USIM, CSIM & ISIM */
- RadioPinState pin1;
- RadioPinState pin2;
-};
-
-struct RadioCardStatus {
- RadioCardState cardState;
- RadioPinState universalPinState;
- /* applicable to USIM and CSIM */
- int32_t gsmUmtsSubscriptionAppIndex;
- /* value < RADIO_CARD_MAX_APPS, -1 if none */
- int32_t cdmaSubscriptionAppIndex;
- /* value < RADIO_CARD_MAX_APPS, -1 if none */
- int32_t imsSubscriptionAppIndex;
- /* value < RADIO_CARD_MAX_APPS, -1 if none */
- int32_t numApplications;
- /* value <= RADIO_CARD_MAX_APPS */
- RadioAppStatus[RadioConst:RADIO_CARD_MAX_APPS] applications;
+ int32_t pin1Replaced; // applicable to USIM, CSIM & ISIM
+ PinState pin1;
+ PinState pin2;
+};
+
+struct CardStatus {
+ CardState cardState;
+ PinState universalPinState; // applicable to USIM and CSIM
+ int32_t gsmUmtsSubscriptionAppIndex; // value < RadioConst:CARD_MAX_APPS, -1 if none
+ int32_t cdmaSubscriptionAppIndex; // value < RadioConst:CARD_MAX_APPS, -1 if none
+ int32_t imsSubscriptionAppIndex; // value < RadioConst:CARD_MAX_APPS, -1 if none
+ int32_t numApplications; // value <= RadioConst:CARD_MAX_APPS
+ AppStatus[RadioConst:CARD_MAX_APPS] applications;
+};
+
+/*
+ * User-to-User Signaling Information defined in 3GPP 23.087 v8.0
+ */
+struct UusInfo {
+ UusType uusType; // UUS Type
+ UusDcs uusDcs; // UUS Data Coding Scheme
+ string uusData; // UUS data
+};
+
+struct Call {
+ CallState state;
+ int32_t index; // Connection Index for use with, eg, AT+CHLD
+ int32_t toa; // type of address, eg 145 = intl
+ bool isMpty; // true if is mpty call
+ bool isMT; // true if call is mobile terminated
+ uint8_t als; // ALS line indicator if available (0 = line 1)
+ bool isVoice; // true if this is is a voice call
+ bool isVoicePrivacy; // true if CDMA voice privacy mode is active
+ string number; // Remote party number
+ CallPresentation numberPresentation;
+ string name; // Remote party name
+ CallPresentation namePresentation;
+ vec<UusInfo> uusInfo; // Vector of User-User Signaling Information
+};
+
+struct Dial {
+ string address;
+ Clir clir;
+ vec<UusInfo> uusInfo; // Vector of User-User Signaling Information
+};
+
+struct GsmSignalStrength {
+ uint32_t signalStrength; // Valid values are (0-61, 99) as defined in
+ // TS 27.007 8.69
+ uint32_t bitErrorRate; // bit error rate (0-7, 99) as defined in TS 27.007 8.5
+ int32_t timingAdvance; // Timing Advance in bit periods. 1 bit period = 48/13 us.
+ // INT_MAX denotes invalid value
+};
+
+struct WcdmaSignalStrength{
+ int32_t signalStrength; // Valid values are (0-96, 99) as defined in
+ // TS 27.007 8.69
+ int32_t bitErrorRate; // bit error rate (0-49, 99) as defined in TS 27.007 8.69
+};
+
+struct CdmaSignalStrength {
+ uint32_t dbm; // This value is the actual RSSI
+ // value multiplied by -1. Example: If the
+ // actual RSSI is -75, then this response value will
+ // be 75.
+ uint32_t ecio; // This value is the actual
+ // Ec/Io multiplied by -10. Example: If the
+ // actual Ec/Io is -12.5 dB, then this response value
+ // will be 125.
+};
+
+struct EvdoSignalStrength {
+ uint32_t dbm; // This value is the actual
+ // RSSI value multiplied by -1.
+ // Example: If the actual RSSI is -75,
+ // then this response value will be 75.
+ uint32_t ecio; // This value is the actual
+ // Ec/Io multiplied by -10. Example: If the
+ // actual Ec/Io is -12.5 dB, then this response value
+ // will be 125.
+ uint32_t signalNoiseRatio; // Valid values are 0-8. 8 is the highest signal to
+ // noise ratio.
+};
+
+struct LteSignalStrength {
+ uint32_t signalStrength; // Valid values are (0-31, 99) as defined in
+ // TS 27.007 8.5
+ uint32_t rsrp; // The current Reference Signal Receive Power in dBm
+ // multipled by -1.
+ // Range: 44 to 140 dBm
+ // INT_MAX: 0x7FFFFFFF denotes invalid value.
+ // Reference: 3GPP TS 36.133 9.1.4
+ uint32_t rsrq; // The current Reference Signal Receive Quality in dB
+ // multiplied by -1.
+ // Range: 20 to 3 dB.
+ // INT_MAX: 0x7FFFFFFF denotes invalid value.
+ // Reference: 3GPP TS 36.133 9.1.7
+ int32_t rssnr; // The current reference signal signal-to-noise ratio in
+ // 0.1 dB units.
+ // Range: -200 to +300 (-200 = -20.0 dB, +300 = 30dB).
+ // INT_MAX : 0x7FFFFFFF denotes invalid value.
+ // Reference: 3GPP TS 36.101 8.1.1
+ uint32_t cqi; // The current Channel Quality Indicator.
+ // Range: 0 to 15.
+ // INT_MAX : 0x7FFFFFFF denotes invalid value.
+ // Reference: 3GPP TS 36.101 9.2, 9.3, A.4
+ uint32_t timingAdvance; // timing advance in micro seconds for a one way trip
+ // from cell to device.
+ // Approximate distance is calculated using
+ // 300m/us * timingAdvance.
+ // Range: 0 to 0x7FFFFFFE
+ // INT_MAX : 0x7FFFFFFF denotes invalid value.
+ // Reference: 3GPP 36.321 section 6.1.3.5
+ // also: http://www.cellular-planningoptimization.com/2010/02/timing-advance-with-calculation.html
+};
+
+struct TdScdmaSignalStrength {
+ uint32_t rscp; // The Received Signal Code Power in dBm multipled by -1.
+ // Range : 25 to 120
+ // INT_MAX: 0x7FFFFFFF denotes invalid value.
+ // Reference: 3GPP TS 25.123, section 9.1.1.1
+};
+
+struct SignalStrength {
+ GsmSignalStrength gw;
+ CdmaSignalStrength cdma;
+ EvdoSignalStrength evdo;
+ LteSignalStrength lte;
+ TdScdmaSignalStrength tdScdma;
+};
+
+struct SendSmsResult {
+ int32_t messageRef; // TP-Message-Reference for GSM, and BearerData MessageId
+ // for CDMA (See 3GPP2 C.S0015-B, v2.0, table 4.5-1)
+ string ackPDU; // or empty string if n/a
+ int32_t errorCode; // See 3GPP 27.005, 3.2.5 for GSM/UMTS,
+ // 3GPP2 N.S0005 (IS-41C) Table 171 for CDMA,
+ // -1 if unknown or not applicable
+};
+
+struct SetupDataCallResult {
+ int32_t status; // A RadioDataCallFailCause, 0 which is
+ // RadioDataCallFailCause:NONE if no error
+ int32_t suggestedRetryTime; // If status != 0, this fields indicates the suggested
+ // retry back-off timer value RIL wants to override the
+ // one pre-configured in FW.
+ // The unit is miliseconds.
+ // The value < 0 means no value is suggested.
+ // The value 0 means retry must be done ASAP.
+ // The value of INT_MAX(0x7fffffff) means no retry.
+ int32_t cid; // Context ID, uniquely identifies this call
+ int32_t active; // 0=inactive, 1=active/physical link down,
+ // 2=active/physical link up */
+ string type; // One of the PDP_type values in TS 27.007 section 10.1.1.
+ // For example, "IP", "IPV6", "IPV4V6", or "PPP". If
+ // status is
+ // RadioDataCallFailCause:ONLY_SINGLE_BEARER_ALLOWED this
+ // is the type supported such as "IP" or "IPV6"
+ string ifname; // The network interface name
+ string addresses; // A space-delimited list of addresses with optional "/"
+ // prefix length, e.g., "192.0.1.3" or
+ // "192.0.1.11/16 2001:db8::1/64".
+ // Typically 1 IPv4 or 1 IPv6 or
+ // one of each. If the prefix length is absent the
+ // addresses are assumed to be point to point with IPv4
+ // having a prefix length of 32 and IPv6 128.
+ string dnses; // A space-delimited list of DNS server addresses,
+ // e.g., "192.0.1.3" or "192.0.1.11 2001:db8::1".
+ // Empty if no dns server addresses returned.
+ string gateways; // A space-delimited list of default gateway addresses,
+ // e.g., "192.0.1.3" or "192.0.1.11 2001:db8::1".
+ // When empty, the addresses represent
+ // point to point connections.
+ string pcscf; // the Proxy Call State Control Function address
+ // via PCO(Protocol Configuration Option) for IMS client.
+ int32_t mtu; // MTU received from network
+ // Value <= 0 means network has either not sent a
+ // value or sent an invalid value
+};
+
+struct IccIo {
+ int32_t command; // one of the commands listed for TS 27.007 +CRSM
+ int32_t fileid; // EF id
+ string path; // "pathid" from TS 27.007 +CRSM command.
+ // Path is in hex asciii format eg "7f205f70"
+ // Path must always be provided.
+ int32_t p1; // Values of p1, p2 & p3 defined as per 3GPP TS 51.011
+ int32_t p2;
+ int32_t p3;
+ string data; // information to be written to the SIM
+ string pin2;
+ string aidPtr; // AID value, See ETSI 102.221 8.1 and 101.220 4, empty
+ // string if no value.
+};
+
+struct IccIoResult {
+ int32_t sw1;
+ int32_t sw2;
+ string simResponse; // In hex string format ([a-fA-F0-9]*), except for
+ // SIM_AUTHENTICATION response for which it is in
+ // Base64 format, see 3GPP TS 31.102 7.1.2
+};
+
+struct VoiceRegStateResult {
+ RegState regState;
+ int32_t lac; // LAC if registered on a GSM/WCDMA system or
+ // -1 if not.Valid LAC are 0x0000 - 0xffff
+ int32_t cid; // CID. if registered on a * GSM/WCDMA or -1 if not
+ // Valid CID are 0x00000000 - 0xffffffff
+ // In GSM, CID is Cell ID (see TS 27.007) in 16 bits
+ // In UMTS, CID is UMTS Cell Identity (see TS 25.331)
+ // in 28 bits
+ int32_t rat; // indicates the available voice radio technology,
+ // valid values as defined by RIL_RadioTechnology.
+ int32_t baseStationId; // Base Station ID. if registered on a CDMA
+ // system or -1 if not. Base Station ID in decimal format
+ int32_t baseStationLatitude; // Base Station latitude. if registered on a
+ // CDMA system or -1 if not. Base Station latitude is a
+ // decimal number as specified in 3GPP2 C.S0005-A v6.0.
+ // It is represented in units of 0.25 seconds and ranges
+ // from -1296000 to 1296000, both values inclusive
+ // (corresponding to a range of -90 to +90 degrees).
+ int32_t baseStationLongitude; // Base Station longitude. if registered on a
+ // CDMA system or -1 if not. Base Station
+ // longitude is a decimal number as specified in
+ // 3GPP2 C.S0005-A v6.0. It is represented in
+ // units of 0.25 seconds and ranges from -2592000
+ // to 2592000, both values inclusive (corresponding
+ // to a range of -180 to +180 degrees).
+ bool cssSupported; // concurrent services support indicator. if
+ // registered on a CDMA system.
+ // false - Concurrent services not supported,
+ // true - Concurrent services supported
+ int32_t systemId; // System ID. if registered on a CDMA system or
+ // -1 if not. Valid System ID are 0 - 32767
+ int32_t networkId; // Network ID. if registered on a CDMA system or
+ // -1 if not. Valid System ID are 0 - 65535
+ int32_t roamingIndicator; // TSB-58 Roaming Indicator if registered
+ // on a CDMA or EVDO system or -1 if not.
+ // Valid values are 0-255.
+ int32_t systemIsInPrl; // indicates whether the current system is in the
+ // PRL if registered on a CDMA or EVDO system or -1 if
+ // not. 0=not in the PRL, 1=in the PRL
+ int32_t defaultRoamingIndicator; // default Roaming Indicator from the PRL,
+ // if registered on a CDMA or EVDO system or -1 if not.
+ // Valid values are 0-255.
+ int32_t reasonForDenial; // reasonForDenial if registration state is 3
+ // (Registration denied) this is an enumerated reason why
+ // registration was denied. See 3GPP TS 24.008,
+ // 10.5.3.6 and Annex G.
+ // 0 - General
+ // 1 - Authentication Failure
+ // 2 - IMSI unknown in HLR
+ // 3 - Illegal MS
+ // 4 - Illegal ME
+ // 5 - PLMN not allowed
+ // 6 - Location area not allowed
+ // 7 - Roaming not allowed
+ // 8 - No Suitable Cells in this Location Area
+ // 9 - Network failure
+ // 10 - Persistent location update reject
+ // 11 - PLMN not allowed
+ // 12 - Location area not allowed
+ // 13 - Roaming not allowed in this Location Area
+ // 15 - No Suitable Cells in this Location Area
+ // 17 - Network Failure
+ // 20 - MAC Failure
+ // 21 - Sync Failure
+ // 22 - Congestion
+ // 23 - GSM Authentication unacceptable
+ // 25 - Not Authorized for this CSG
+ // 32 - Service option not supported
+ // 33 - Requested service option not subscribed
+ // 34 - Service option temporarily out of order
+ // 38 - Call cannot be identified
+ // 48-63 - Retry upon entry into a new cell
+ // 95 - Semantically incorrect message
+ // 96 - Invalid mandatory information
+ // 97 - Message type non-existent or not implemented
+ // 98 - Message type not compatible with protocol state
+ // 99 - Information element non-existent or not implemented
+ // 100 - Conditional IE error
+ // 101 - Message not compatible with protocol state
+ // 111 - Protocol error, unspecified
+ int32_t psc; // Primary Scrambling Code of the current
+ // cell as described in TS 25.331, in hexadecimal
+ // format, or -1 if unknown or not registered
+ // to a UMTS network.
+};
+
+struct DataRegStateResult {
+ RegState regState; // Valid reg states are NOT_REG_MT_NOT_SEARCHING_OP,
+ // REG_HOME, NOT_REG_MT_SEARCHING_OP, REG_DENIED,
+ // UNKNOWN, REG_ROAMING defined in RegState
+ int32_t lac; // LAC if registered or -1 if not
+ // valid LAC are 0x0000 - 0xffff
+ int32_t cid; // CID if registered or -1 if not
+ // valid CID are 0x00000000 - 0x0fffffff
+ int32_t rat; // indicates the available data radio technology,
+ // valid values as defined by RIL_RadioTechnology.
+ int32_t reasonDataDenied; // if registration state is 3 (Registration
+ // denied) this is an enumerated reason why
+ // registration was denied. See 3GPP TS 24.008,
+ // Annex G.6 "Additonal cause codes for GMM".
+ // 7 == GPRS services not allowed
+ // 8 == GPRS services and non-GPRS services not allowed
+ // 9 == MS identity cannot be derived by the network
+ // 10 == Implicitly detached
+ // 14 == GPRS services not allowed in this PLMN
+ // 16 == MSC temporarily not reachable
+ // 40 == No PDP context activated
+ int32_t maxDataCalls; // The maximum number of simultaneous Data Calls that
+ // must be established using setupDataCall().
+ // The values below are optional LTE location information in decimal.
+ // If a value is unknown that value must be -1.
+ int32_t tac; // a 16-bit Tracking Area Code.
+ int32_t phyCid; // a 0-503 Physical Cell Identifier.
+ int32_t eci; // a 28-bit E-UTRAN Cell Identifier.
+ int32_t csgid; // a 27-bit Closed Subscriber Group Identity.
+ int32_t tadv; // a 6-bit timing advance value.
+};
+
+// See also com.android.internal.telephony.gsm.CallForwardInfo
+struct CallForwardInfo {
+ CallForwardInfoStatus status; // For queryCallForwardStatus()
+ // status must be ACTIVE, INACTIVE
+ // For setCallForward():
+ // status must be
+ // DISABLE, ENABLE, INTERROGATE, REGISTRATION, ERASURE
+ int32_t reason; // from TS 27.007 7.11 "reason"
+ int32_t serviceClass; // From 27.007 +CCFC/+CLCK "class"
+ // See table for Android mapping from
+ // MMI service code
+ // 0 means user doesnt input class
+ int32_t toa; // "type" from TS 27.007 7.11
+ string number; // "number" from TS 27.007 7.11.
+ int32_t timeSeconds;
+};
+
+// Response struct used in responseQueryAvailableNetworks
+struct OperatorInfo {
+ string alphaLong; // long alpha ONS or EONS
+ string alphaShort; // short alpha ONS or EONS
+ string operatorNumeric; // 5 or 6 digit numeric code (MCC + MNC)
+ OperatorStatus status;
+};
+
+struct SmsWriteArgs {
+ SmsWriteArgsStatus status; // Status of message. See TS 27.005 3.1
+ string pdu; // PDU of message to write, as an ASCII hex string less
+ // the SMSC address, the TP-layer length is strlen(pdu)/2.
+ string smsc; // SMSC address in GSM BCD format prefixed by a length
+ // byte (as expected by TS 27.005) or NULL for default
+ // SMSC
+};
+
+struct CdmaSmsAddress {
+ CdmaSmsDigitMode digitMode; // CdmaSmsDigitMode is of two types : 4 bit & 8 bit.
+ // For 4-bit type, only "digits" field defined below in
+ // this struct is used.
+ CdmaSmsNumberMode numberMode; // Used only when digitMode is 8-bit
+ CdmaSmsNumberType numberType; // Used only when digitMode is 8-bit.
+ // To specify an international address, use the following:
+ // digitMode = CdmaSmsDigitMode:EIGHT_BIT:
+ // numberMode = CdmaSmsNumberMode:NOT_DATA_NETWORK
+ // numberType = CdmaSmsNumberType:INTERNATIONAL_OR_DATA_IP
+ // numberPlan = CdmaSmsNumberPlan:TELEPHONY
+ // numberOfDigits = number of digits
+ // digits = ASCII digits, e.g. '1', '2', '3', '4', and '5'
+ CdmaSmsNumberPlan numberPlan; // Used only when digitMode is 8-bit
+ vec<uint8_t> digits; // Each byte in this array represents a 4 bit or 8-bit digit
+ // of address data
+};
+
+struct CdmaSmsSubaddress {
+ CdmaSmsSubaddressType subaddressType;
+ bool odd; // true means the last byte's lower 4 bits must be ignored
+ vec<uint8_t> digits; // Each byte respresents an 8-bit digit of subaddress data
+};
+
+struct CdmaSmsMessage {
+ int32_t teleserviceId;
+ bool isServicePresent;
+ int32_t serviceCategory;
+ CdmaSmsAddress address;
+ CdmaSmsSubaddress subAddress;
+ vec<uint8_t> bearerData; // 3GPP2 C.S0015-B, v2.0,
+};
+
+struct CdmaSmsAck {
+ CdmaSmsErrorClass errorClass;
+ int32_t smsCauseCode; // As defined in N.S00005, 6.5.2.125.
+ // Currently, only 35 (resource shortage) and
+ // 39 (other terminal problem) are reported.
+};
+
+struct CdmaBroadcastSmsConfigInfo {
+ int32_t serviceCategory; // serviceCategory defines a Broadcast message identifier
+ // whose value is 0x0000 - 0xFFFF as defined in
+ // C.R1001G 9.3.1 and 9.3.2.
+ int32_t language; // language code of Broadcast Message
+ // whose value is 0x00 - 0x07 as defined in C.R1001G 9.2.
+ bool selected; // selected false means message types specified in
+ // serviceCategory are not accepted, while true means
+ // accepted.
+};
+
+struct CdmaSmsWriteArgs {
+ CdmaSmsWriteArgsStatus status; // Status of message. See TS 27.005 3.1
+ CdmaSmsMessage message;
+};
+
+
+/**
+ * Which types of Cell Broadcast Message (CBM) are to be received by the ME
+ *
+ * fromServiceID - uToServiceID defines a range of CBM message identifiers
+ * whose value is 0x0000 - 0xFFFF as defined in TS 23.041 9.4.1.2.2 for GMS
+ * and 9.4.4.2.2 for UMTS. All other values must be treated as empty
+ * CBM message ID.
+ *
+ * fromCodeScheme - uToCodeScheme defines a range of CBM data coding schemes
+ * whose value is 0x00 - 0xFF as defined in TS 23.041 9.4.1.2.3 for GMS
+ * and 9.4.4.2.3 for UMTS.
+ * All other values must be treated as empty CBM data coding scheme.
+ *
+ * selected false means message types specified in <fromServiceId, toServiceId>
+ * and <fromCodeScheme, toCodeScheme>are not accepted, while true means accepted.
+ */
+struct GsmBroadcastSmsConfigInfo {
+ int32_t fromServiceId;
+ int32_t toServiceId;
+ int32_t fromCodeScheme;
+ int32_t toCodeScheme;
+ bool selected;
+};
+
+struct CellIdentityGsm {
+ string mcc; // 3-digit Mobile Country Code, 0..999, INT_MAX if unknown
+ string mnc; // 2 or 3-digit Mobile Network Code, 0..999, INT_MAX if
+ // unknown
+ int32_t lac; // 16-bit Location Area Code, 0..65535, INT_MAX if unknown
+ int32_t cid; // 16-bit GSM Cell Identity described in
+ // TS 27.007, 0..65535, INT_MAX if unknown
+ int32_t arfcn; // 16-bit GSM Absolute RF channel number, INT_MAX if
+ // unknown
+ uint8_t bsic; // 6-bit Base Station Identity Code, 0xFF if unknown
+};
+
+struct CellIdentityWcdma {
+ string mcc; // 3-digit Mobile Country Code, 0..999, INT_MAX if unknown
+ string mnc; // 2 or 3-digit Mobile Network Code, 0..999, INT_MAX
+ // if unknown
+ int32_t lac; // 16-bit Location Area Code, 0..65535, INT_MAX if unknown
+ int32_t cid; // 28-bit UMTS Cell Identity described in
+ // TS 25.331, 0..268435455, INT_MAX if unknown
+ int32_t psc; // 9-bit UMTS Primary Scrambling Code described in
+ // TS 25.331, 0..511, INT_MAX if unknown
+ int32_t uarfcn; // 16-bit UMTS Absolute RF Channel Number, INT_MAX if
+ // unknown
+};
+
+struct CellIdentityCdma {
+ int32_t networkId; // Network Id 0..65535, INT_MAX if unknown
+ int32_t systemId; // CDMA System Id 0..32767, INT_MAX if unknown
+ int32_t basestationId; // Base Station Id 0..65535, INT_MAX if unknown
+ int32_t longitude; // Longitude is a decimal number as specified in
+ // 3GPP2 C.S0005-A v6.0. It is represented in units of
+ // 0.25 seconds and ranges from -2592000 to 2592000,
+ // both values inclusive (corresponding to a range of -180
+ // to +180 degrees). INT_MAX if unknown
+ int32_t latitude; // Latitude is a decimal number as specified in
+ // 3GPP2 C.S0005-A v6.0. It is represented in units of
+ // 0.25 seconds and ranges from -1296000 to 1296000,
+ // both values inclusive (corresponding to a range of -90
+ // to +90 degrees). INT_MAX if unknown
+};
+
+struct CellIdentityLte {
+ string mcc; // 3-digit Mobile Country Code, 0..999, INT_MAX if unknown
+ string mnc; // 2 or 3-digit Mobile Network Code, 0..999, INT_MAX if
+ // unknown
+ int32_t ci; // 28-bit Cell Identity described in TS TS 27.007, INT_MAX
+ // if unknown
+ int32_t pci; // physical cell id 0..503, INT_MAX if unknown
+ int32_t tac; // 16-bit tracking area code, INT_MAX if unknown
+ int32_t earfcn; // 18-bit LTE Absolute RC Channel Number, INT_MAX if
+ // unknown
+};
+
+struct CellIdentityTdscdma {
+ string mcc; // 3-digit Mobile Country Code, 0..999, INT_MAX if unknown
+ string mnc; // 2 or 3-digit Mobile Network Code, 0..999, INT_MAX if
+ // unknown
+ int32_t lac; // 16-bit Location Area Code, 0..65535, INT_MAX if
+ // unknown
+ int32_t cid; // 28-bit UMTS Cell Identity described in
+ // TS 25.331, 0..268435455, INT_MAX if unknown
+ int32_t cpid; // 8-bit Cell Parameters ID described in
+ // TS 25.331, 0..127, INT_MAX if unknown
+};
+
+struct CellInfoGsm {
+ CellIdentityGsm cellIdentityGsm;
+ GsmSignalStrength signalStrengthGsm;
+};
+
+struct CellInfoWcdma {
+ CellIdentityWcdma cellIdentityWcdma;
+ WcdmaSignalStrength signalStrengthWcdma;
+};
+
+struct CellInfoCdma {
+ CellIdentityCdma cellIdentityCdma;
+ CdmaSignalStrength signalStrengthCdma;
+ EvdoSignalStrength signalStrengthEvdo;
+};
+
+struct CellInfoLte {
+ CellIdentityLte cellIdentityLte;
+ LteSignalStrength signalStrengthLte;
+};
+
+struct CellInfoTdscdma {
+ CellIdentityTdscdma cellIdentityTdscdma;
+ TdScdmaSignalStrength signalStrengthTdscdma;
+};
+
+struct CellInfo {
+ CellInfoType cellInfoType; // cell type for selecting from union CellInfo
+ bool registered; // true if this cell is registered false if not registered
+ TimeStampType timeStampType; // type of time stamp represented by timeStamp
+ uint64_t timeStamp; // Time in nanos as returned by ril_nano_time
+ // Only one of the below vectors must be of size 1 based on the CellInfoType & others must be
+ // of size 0
+ vec<CellInfoGsm> gsm; // Valid only if type = gsm and size = 1 else must be empty
+ vec<CellInfoCdma> cdma; // Valid only if type = cdma and size = 1 else must be
+ // empty
+ vec<CellInfoLte> lte; // Valid only if type = lte and size = 1 else must be
+ // empty
+ vec<CellInfoWcdma> wcdma; // Valid only if type = wcdma and size = 1 else must be
+ // empty
+ vec<CellInfoTdscdma> tdscdma; // Valid only if type = tdscdma and size = 1 else must be
+ // empty
+};
+
+struct GsmSmsMessage {
+ string smscPdu; // SMSC address in GSM BCD format prefixed by a length
+ // byte (as expected by TS 27.005) or empty string for
+ // default SMSC
+ string pdu; // SMS in PDU format as an ASCII hex string less the
+ // SMSC address. TP-Layer-Length is be "strlen(pdu)/2
+};
+
+struct ImsSmsMessage {
+ RadioTechnologyFamily tech;
+ bool retry; // false == not retry, true == retry */
+ int32_t messageRef; // Valid field if retry is set to true.
+ // Contains messageRef from SendSmsResult stuct
+ // corresponding to failed MO SMS.
+ // Only one of the below vectors must be of size 1 based on the RadioTechnologyFamily & others
+ // must be of size 0
+ vec<CdmaSmsMessage> cdmaMessage; // Valid field if tech is 3GPP2 and size = 1 else must be
+ // empty
+ vec<GsmSmsMessage> gsmMessage; // Valid field if tech is 3GPP and size = 1 else must be
+ // empty
+};
+
+struct SimApdu {
+ int32_t sessionid; // "sessionid" from TS 27.007 +CGLA command. Must be
+ // ignored for +CSIM command.
+ // Following fields are used to derive the APDU ("command" and "length"
+ // values in TS 27.007 +CSIM and +CGLA commands).
+ int32_t cla;
+ int32_t instruction;
+ int32_t p1;
+ int32_t p2;
+ int32_t p3; // A negative P3 implies a 4 byte APDU.
+ string data; // In hex string format ([a-fA-F0-9]*).
+};
+
+struct NvWriteItem {
+ NvItem itemID;
+ string value;
+};
+
+struct SelectUiccSub {
+ int32_t slot;
+ int32_t appIndex; // array subscriptor from
+ // applications[RadioConst:CARD_MAX_APPS] in
+ // getIccCardStatus()
+ SubscriptionType subType;
+ UiccSubActStatus actStatus;
+};
+
+struct HardwareConfigModem {
+ int32_t rilModel;
+ uint32_t rat; // bitset - ref. RadioTechnology.
+ int32_t maxVoice;
+ int32_t maxData;
+ int32_t maxStandby;
+};
+
+struct HardwareConfigSim {
+ string modemUuid; // RadioConst:MAX_UUID_LENGTH is max length of the
+ // string
+};
+
+struct HardwareConfig {
+ HardwareConfigType type;
+ string uuid; // RadioConst:MAX_UUID_LENGTH is max length of the
+ // string
+ HardwareConfigState state;
+ // Only one of the below vectors must have size = 1 based on the HardwareConfigType and other
+ // must have size = 0.
+ vec<HardwareConfigModem> modem; // Valid only if type is Modem and size = 1 else must be
+ // empty
+ vec<HardwareConfigSim> sim; // Valid only if type is SIM or else emptyand size = 1
+ // else must be empty
+};
+
+struct DataProfileInfo {
+ int32_t profileId; // id of the data profile
+ string apn; // The APN to connect to
+ string protocol; // One of the PDP_type values in TS 27.007 section 10.1.1.
+ // For example, "IP", "IPV6", "IPV4V6", or "PPP".
+ ApnAuthType authType;
+ string user; // The username for APN, or empty string
+ string password; // The password for APN, or empty string
+ DataProfileInfoType type;
+ int32_t maxConnsTime; // The period in seconds to limit the maximum connections
+ int32_t maxConns; // The maximum connections during maxConnsTime
+ int32_t waitTime; // The required wait time in seconds after a successful UE
+ // initiated disconnect of a given PDN connection before
+ // the device can send a new PDN connection request for
+ // that given PDN
+ bool enabled; // True to enable the profile, false to disable
+};
+
+struct RadioCapability {
+ int32_t session; // Unique session value defined by framework returned in
+ // all "responses/unsol"
+ RadioCapabilityPhase phase;
+ RadioAccessFamily raf;
+ string logicalModemUuid; // A UUID typically "com.xxxx.lmX where X is the logical
+ // modem. RadioConst:MAX_UUID_LENGTH is the max
+ // length
+ RadioCapabilityStatus status;
+};
+
+struct LceStatusInfo {
+ LceStatus lceStatus;
+ uint8_t actualIntervalMs; // actual LCE reporting interval,
+ // meaningful only if LceStatus = ACTIVE.
+};
+
+struct LceDataInfo {
+ uint32_t lastHopCapacityKbps; // last-hop cellular capacity: kilobits/second.
+ uint8_t confidenceLevel; // capacity estimate confidence: 0-100
+ bool lceSuspended; // LCE report going to be suspended? (e.g., radio
+ // moves to inactive state or network type change)
+ // true = suspended;
+ // false = not suspended.
+};
+
+struct ActivityStatsInfo {
+ uint32_t sleepModeTimeMs; // total time (in ms) when modem is in a low power or
+ // sleep state
+ uint32_t idleModeTimeMs; // total time (in ms) when modem is awake but neither
+ // the transmitter nor receiver are active/awake
+ uint32_t[RadioConst:NUM_TX_POWER_LEVELS] txmModetimeMs;
+ // Each index represent total time (in ms) during which
+ // the transmitter is active/awake for a particular
+ // power range as shown below.
+ // index 0 = tx_power < 0dBm
+ // index 1 = 0dBm < tx_power < 5dBm
+ // index 2 = 5dBm < tx_power < 15dBm
+ // index 3 = 15dBm < tx_power < 20dBm
+ // index 4 = tx_power > 20dBm
+ uint32_t rxModeTimeMs; // total time (in ms) for which receiver is
+ // active/awake and the transmitter is inactive
+};
+
+struct Carrier {
+ string mcc;
+ string mnc;
+ CarrierMatchType matchType; // Specify match type for the carrier.
+ // If it’s ALL, matchData is empty string;
+ // otherwise, matchData is the value for the match type.
+ string matchData;
+};
+
+struct CarrierRestrictions {
+ vec<Carrier> allowedCarriers; // whitelist for allowed carriers
+ vec<Carrier> excludedCarriers; // blacklist for explicitly excluded carriers
+ // which match allowed_carriers. Eg. allowedCarriers
+ // match mcc/mnc, excludedCarriers has same mcc/mnc and
+ // gid1 is ABCD. It means except the carrier whose gid1
+ // is ABCD, all carriers with the same mcc/mnc are
+ // allowed.
+};
+
+struct SuppSvcNotification {
+ bool isMT; // notification type
+ // false = MO intermediate result code
+ // true = MT unsolicited result code
+ bool isCode1; // See 27.007 7.17
+ // true = "code1" for MO
+ // false = "code2" for MT
+ int32_t index; // CUG index. See 27.007 7.17.
+ int32_t type; // "type" from 27.007 7.17 (MT only).
+ string number; // "number" from 27.007 7.17
+ // (MT only, may be empty string).
+};
+
+struct SimRefreshResult {
+ SimRefreshType type;
+ int32_t efId; // is the EFID of the updated file if the result is
+ // SIM_FILE_UPDATE or 0 for any other result.
+ string aid; // is AID(application ID) of the card application
+ // See ETSI 102.221 8.1 and 101.220 4
+ // For SIM_FILE_UPDATE result it must be set to AID of
+ // application in which updated EF resides or it must be
+ // empty string if EF is outside of an application.
+ // For SIM_INIT result this field is set to AID of
+ // application that caused REFRESH
+ // For SIM_RESET result it is empty string.
+};
+
+/* CDMA Signal Information Record as defined in C.S0005 section 3.7.5.5 */
+struct CdmaSignalInfoRecord {
+ bool isPresent; // true if signal information record is present
+ int8_t signalType; // as defined 3.7.5.5-1
+ int8_t alertPitch; // as defined 3.7.5.5-2
+ int8_t signal; // as defined 3.7.5.5-3, 3.7.5.5-4 or 3.7.5.5-5
+};
+
+struct CdmaCallWaiting {
+ string number; // Remote party number
+ CdmaCallWaitingNumberPresentation numberPresentation;
+ string name; // Remote party name
+ CdmaSignalInfoRecord signalInfoRecord;
+ // Number type/Number plan required to support International Call Waiting
+ CdmaCallWaitingNumberType numbertype;
+ CdmaCallWaitingNumberPlan numberPlan;
+};
+
+/*
+ * Display Info Rec as defined in C.S0005 section 3.7.5.1
+ * Extended Display Info Rec as defined in C.S0005 section 3.7.5.16
+ * Note: the Extended Display info rec contains multiple records of the
+ * form: display_tag, display_len, and display_len occurrences of the
+ * char field if the display_tag is not 10000000 or 10000001.
+ * To save space, the records are stored consecutively in a byte buffer.
+ * The display_tag, display_len and chari fields are all 1 byte.
+ */
+struct CdmaDisplayInfoRecord {
+ string alphaBuf; // Max length = RadioConst:CDMA_ALPHA_INFO_BUFFER_LENGTH
+};
+
+/*
+ * Called Party Number Info Rec as defined in C.S0005 section 3.7.5.2
+ * Calling Party Number Info Rec as defined in C.S0005 section 3.7.5.3
+ * Connected Number Info Rec as defined in C.S0005 section 3.7.5.4
+ */
+struct CdmaNumberInfoRecord {
+ string number; // Max length = RADIP_CDMA_NUMBER_INFO_BUFFER_LENGTH
+ uint8_t numberType;
+ uint8_t numberPlan;
+ uint8_t pi;
+ uint8_t si;
+};
+
+struct CdmaRedirectingNumberInfoRecord{
+ CdmaNumberInfoRecord redirectingNumber;
+ CdmaRedirectingReason redirectingReason; // redirectingReason is set to UNKNOWN if not included
+};
+
+/* Line Control Information Record as defined in C.S0005 section 3.7.5.15 */
+struct CdmaLineControlInfoRecord {
+ uint8_t lineCtrlPolarityIncluded;
+ uint8_t lineCtrlToggle;
+ uint8_t lineCtrlReverse;
+ uint8_t lineCtrlPowerDenial;
+};
+
+/* T53 CLIR Information Record */
+struct CdmaT53ClirInfoRecord {
+ uint8_t cause;
+};
+
+/* T53 Audio Control Information Record */
+struct CdmaT53AudioControlInfoRecord {
+ uint8_t upLink;
+ uint8_t downLink;
+};
+
+struct CdmaInformationRecord {
+ CdmaInfoRecName name;
+ // Only one of the below vectors must have size = 1 based on the
+ // CdmaInfoRecName. All other vectors must have size 0.
+ vec<CdmaDisplayInfoRecord> display; // Display and Extended Display Info Rec
+ vec<CdmaNumberInfoRecord> number; // Called Party Number, Calling Party Number, Connected
+ // number Info Rec
+ vec<CdmaSignalInfoRecord> signal; // Signal Info Rec
+ vec<CdmaRedirectingNumberInfoRecord> redir; // Redirecting Number Info Rec
+ vec<CdmaLineControlInfoRecord> lineCtrl; // Line Control Info Rec
+ vec<CdmaT53ClirInfoRecord> clir; // T53 CLIR Info Rec
+ vec<CdmaT53AudioControlInfoRecord> audioCtrl; // T53 Audio Control Info Rec
+};
+
+struct CdmaInformationRecords {
+ vec<CdmaInformationRecord> infoRec; // Max length = RadioConst:CDMA_MAX_NUMBER_OF_INFO_RECS
+};
+
+struct CfData {
+ vec<CallForwardInfo> cfInfo; // This is the response data
+ // for SS request to query call
+ // forward status. see getCallForwardStatus()
+ // Max size = RadioConst:NUM_SERVICE_CLASSES
+};
+
+struct SsInfoData {
+ vec<int32_t> ssInfo; // This is the response data for all of the SS GET/SET
+ // Radio requests. E.g. IRadio.getClir() returns
+ // two ints, so first two values of ssInfo[] will be
+ // used for response if serviceType is SS_CLIR and
+ // requestType is SS_INTERROGATION
+ // Max size = RadioConst:SS_INFO_MAX
+};
+
+struct StkCcUnsolSsResult {
+ SsServiceType serviceType;
+ SsRequestType requestType;
+ SsTeleserviceType teleserviceType;
+ SuppServiceClass serviceClass;
+ RadioError result;
+ // Only one of the below vectors may contain values and other must be empty
+ vec<SsInfoData> ssInfo; // Valid only for all SsserviceType except
+ // SsServiceType:CF_* else empty.
+ vec<CfData> cfData; // Valid for SsServiceType:CF_* else empty
+};
+
+struct PcoDataInfo {
+ int32_t cid; // Context ID, uniquely identifies this call
+ string bearerProto; // One of the PDP_type values in TS 27.007 section 10.1.1.
+ // For example, "IP", "IPV6", "IPV4V6"
+ int32_t pcoId; // The protocol ID for this box. Note that only IDs from
+ // FF00H - FFFFH are accepted. If more than one is
+ // included from the network, multiple calls must be made
+ // to send all of them.
+ vec<uint8_t> contents; // Carrier-defined content. It is binary, opaque and
+ // loosely defined in LTE Layer 3 spec 24.008
};
\ No newline at end of file