| /* |
| * Copyright (C) 2016 The Android Open Source Project |
| * |
| * Licensed under the Apache License, Version 2.0 (the "License"); |
| * you may not use this file except in compliance with the License. |
| * You may obtain a copy of the License at |
| * |
| * http://www.apache.org/licenses/LICENSE-2.0 |
| * |
| * Unless required by applicable law or agreed to in writing, software |
| * distributed under the License is distributed on an "AS IS" BASIS, |
| * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. |
| * See the License for the specific language governing permissions and |
| * limitations under the License. |
| */ |
| |
| package android.hardware.radio@1.0; |
| |
| enum RadioConst : int32_t { |
| 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 { |
| ADDRESS_MAX = 36, |
| SUBADDRESS_MAX = 36, |
| BEARER_DATA_MAX = 255, |
| UDH_MAX_SND_SIZE = 128, |
| UDH_EO_DATA_SEGMENT_MAX = 131, |
| MAX_UD_HEADERS = 7, |
| USER_DATA_MAX = 229, |
| UDH_LARGE_PIC_SIZE = 128, |
| UDH_SMALL_PIC_SIZE = 32, |
| UDH_VAR_PIC_SIZE = 134, |
| UDH_ANIM_NUM_BITMAPS = 4, |
| UDH_LARGE_BITMAP_SIZE = 32, |
| UDH_SMALL_BITMAP_SIZE = 8, |
| UDH_OTHER_SIZE = 226, |
| IP_ADDRESS_SIZE = 4, |
| }; |
| |
| 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, // Modem hit unexpected error scenario while handling |
| // this request |
| SYSTEM_ERR = 39, // Hit platform or system error |
| MODEM_ERR = 40, // Vendor RIL got unexpected or incorrect response |
| // from modem for this request |
| 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 does not have this value provisioned |
| NO_SUBSCRIPTION = 62, // Device does not 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 |
| ABORTED = 65, // Operation aborted |
| INVALID_RESPONSE = 66, // Response from vendor had invalid data |
| |
| 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, |
| CS_ALL = 0x04, |
| PS_ALL = 0x10, |
| }; |
| |
| enum CardState : int32_t { |
| /* card is physically absent from device. (Some old modems use CardState.ABSENT when the SIM |
| is powered off. This is no longer correct, however the platform will still support this |
| legacy behavior.) */ |
| ABSENT, |
| /* card is inserted in the device */ |
| PRESENT, |
| ERROR, |
| /* card is present but not usable due to carrier restrictions */ |
| RESTRICTED, |
| }; |
| |
| 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 explicitly 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 management convergence function |
| IA5C, // IA5 characters |
| }; |
| |
| 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, |
| RADIO_OFF = 247, // Radio is OFF |
| OUT_OF_SERVICE = 248, // No cellular coverage |
| NO_VALID_SIM = 249, // No valid SIM is present |
| RADIO_INTERNAL_ERROR = 250, // Internal error at Modem |
| NETWORK_RESP_TIMEOUT = 251, // No response from network |
| NETWORK_REJECT = 252, // Explicit network reject |
| RADIO_ACCESS_FAILURE = 253, // RRC connection failure. Eg.RACH |
| RADIO_LINK_FAILURE = 254, // Radio Link Failure |
| RADIO_LINK_LOST = 255, // Radio link lost due to poor coverage |
| RADIO_UPLINK_FAILURE = 256, // Radio uplink failure |
| RADIO_SETUP_FAILURE = 257, // RRC connection setup failure |
| RADIO_RELEASE_NORMAL = 258, // RRC connection release, normal |
| RADIO_RELEASE_ABNORMAL = 259, // RRC connection release, abnormal |
| ACCESS_CLASS_BLOCKED = 260, // Access class barring |
| NETWORK_DETACH = 261, // Explicit network detach |
| 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, |
| |
| /** |
| * OEM specific error codes. Used to distinguish error from |
| * CALL_FAIL_ERROR_UNSPECIFIED and help assist debugging */ |
| OEM_CAUSE_1 = 0xf001, |
| OEM_CAUSE_2 = 0xf002, |
| OEM_CAUSE_3 = 0xf003, |
| OEM_CAUSE_4 = 0xf004, |
| OEM_CAUSE_5 = 0xf005, |
| OEM_CAUSE_6 = 0xf006, |
| OEM_CAUSE_7 = 0xf007, |
| OEM_CAUSE_8 = 0xf008, |
| OEM_CAUSE_9 = 0xf009, |
| OEM_CAUSE_10 = 0xf00a, |
| OEM_CAUSE_11 = 0xf00b, |
| OEM_CAUSE_12 = 0xf00c, |
| OEM_CAUSE_13 = 0xf00d, |
| OEM_CAUSE_14 = 0xf00e, |
| OEM_CAUSE_15 = 0xf00f, |
| |
| ERROR_UNSPECIFIED = 0xffff, // This error will be deprecated soon, |
| // vendor code must make sure to map error |
| // code to specific error |
| }; |
| |
| 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_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 = 0, // Not registered, MT is not currently searching |
| // a new operator to register |
| REG_HOME = 1, // Registered, home network |
| NOT_REG_MT_SEARCHING_OP = 2, // Not registered, but MT is currently searching |
| // a new operator to register |
| REG_DENIED = 3, // Registration denied |
| UNKNOWN = 4, // Unknown |
| REG_ROAMING = 5, // Registered, roaming |
| NOT_REG_MT_NOT_SEARCHING_OP_EM = 10, // Same as NOT_REG_MT_NOT_SEARCHING_OP but indicates that |
| // emergency calls are enabled. |
| NOT_REG_MT_SEARCHING_OP_EM = 12, // Same as NOT_REG_MT_SEARCHING_OP but indicates that |
| // emergency calls are enabled. |
| REG_DENIED_EM = 13, // Same as REG_DENIED but indicates that |
| // emergency calls are enabled. |
| UNKNOWN_EM = 14, // Same as UNKNOWN but indicates that |
| // emergency calls are enabled. |
| }; |
| |
| enum RadioTechnology : int32_t { |
| UNKNOWN = 0, |
| 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 DataProfileId : 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_CAPACITY_EXCEEDED = 0xD3, |
| UNSPECIFIED_ERROR = 0XFF, |
| }; |
| |
| enum CallForwardInfoStatus : int32_t { |
| DISABLE, |
| ENABLE, |
| INTERROGATE, |
| REGISTRATION, |
| ERASURE, |
| }; |
| |
| enum ClipStatus : int32_t { |
| CLIP_PROVISIONED, // CLIP provisioned |
| CLIP_UNPROVISIONED, // CLIP not provisioned |
| UNKNOWN, // 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) |
| FACTORY_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 { |
| NONE = 0, |
| GSM = 1, |
| CDMA = 2, |
| LTE = 3, |
| WCDMA = 4, |
| TD_SCDMA = 5 |
| }; |
| |
| 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 unsolicited 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, |
| INTERNATIONAL = 1, |
| NATIONAL = 2, |
| NETWORK_SPECIFIC = 3, |
| SUBSCRIBER = 4 |
| }; |
| |
| enum CdmaCallWaitingNumberPlan : int32_t { |
| UNKNOWN = 0, |
| 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 |
| }; |
| |
| /** Redirecting Number Information Record as defined in C.S0005 section 3.7.5.11 */ |
| enum CdmaRedirectingReason : int32_t { |
| UNKNOWN = 0, |
| 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 |
| }; |
| |
| enum ApnTypes : int32_t { |
| NONE = 0, // None |
| DEFAULT = 1 << 0, // APN type for default data traffic |
| MMS = 1 << 1, // APN type for MMS traffic |
| SUPL = 1 << 2, // APN type for SUPL assisted GPS |
| DUN = 1 << 3, // APN type for DUN traffic |
| HIPRI = 1 << 4, // APN type for HiPri traffic |
| FOTA = 1 << 5, // APN type for FOTA |
| IMS = 1 << 6, // APN type for IMS |
| CBS = 1 << 7, // APN type for CBS |
| IA = 1 << 8, // APN type for IA Initial Attach APN |
| EMERGENCY = 1 << 9, // APN type for Emergency PDN. This is not an IA apn, |
| // but is used for access to carrier services in an |
| // emergency call situation. |
| ALL = DEFAULT | MMS | SUPL | DUN | HIPRI | FOTA | IMS | CBS | IA | EMERGENCY, |
| }; |
| |
| enum IndicationFilter : int32_t { |
| NONE = 0, |
| SIGNAL_STRENGTH = 1 << 0, // When this bit is set, modem should always send the |
| // signal strength update through |
| // IRadioIndication.currentSignalStrength(), |
| // otherwise suppress it. |
| FULL_NETWORK_STATE = 1 << 1, // When this bit is set, modem should always invoke |
| // IRadioIndication.networkStateChanged() when any field |
| // in VoiceRegStateResult or DataRegStateResult changes. |
| // When this bit is not set, modem should suppress |
| // IRadioIndication.networkStateChanged() when there are |
| // only changes from those insignificant fields |
| // (e.g. cell info). Modem should continue invoking |
| // IRadioIndication.networkStateChanged() |
| // when significant fields are updated even when this bit |
| // is not set. The following fields are considered |
| // significant, registration state and radio technology. |
| DATA_CALL_DORMANCY_CHANGED = 1 << 2, // When this bit is set, modem should send the data call |
| // list changed indication |
| // IRadioIndication.dataCallListChanged() whenever any |
| // field in ITypes.SetupDataCallResult changes. Otherwise |
| // modem should suppress the indication when the only |
| // changed field is 'active' (for data dormancy). |
| // For all other fields change, modem should continue |
| // sending IRadioIndication.dataCallListChanged() |
| // regardless this bit is set or not. |
| ALL = SIGNAL_STRENGTH | FULL_NETWORK_STATE | DATA_CALL_DORMANCY_CHANGED, |
| }; |
| |
| enum MvnoType : int32_t { |
| NONE, // None |
| IMSI, // The matching data is based on IMSI. |
| GID, // The matching data is based on group id. |
| SPN, // The matching data is based service provider name. |
| }; |
| |
| enum DeviceStateType : int32_t { |
| POWER_SAVE_MODE, // Device power save mode (provided by PowerManager) |
| // True indicates the device is in power save mode. |
| CHARGING_STATE, // Device charging state (provided by BatteryManager) |
| // True indicates the device is charging. |
| LOW_DATA_EXPECTED // Low data expected mode. True indicates low data traffic |
| // is expected, for example, when the device is idle |
| // (e.g. not doing tethering in the background). Note |
| // this doesn't mean no data is expected. |
| }; |
| |
| enum P2Constant : int32_t { |
| NO_P2 = -1, // No P2 value is provided |
| }; |
| |
| 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; |
| int32_t pin1Replaced; // applicable to USIM, CSIM and 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 |
| vec<AppStatus> applications; // size <= RadioConst:CARD_MAX_APPS |
| }; |
| |
| /** |
| * 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 LastCallFailCauseInfo { |
| LastCallFailCause causeCode; |
| string vendorCause; |
| }; |
| |
| struct GsmSignalStrength { |
| uint32_t signalStrength; // Valid values are (0-61, 99) as defined in |
| // TS 27.007 8.69; INT_MAX means invalid/unreported. |
| uint32_t bitErrorRate; // bit error rate (0-7, 99) as defined in TS 27.007 8.5; |
| // INT_MAX means invalid/unreported. |
| int32_t timingAdvance; // Timing Advance in bit periods. 1 bit period = 48/13 us. |
| // INT_MAX means invalid/unreported. |
| }; |
| |
| struct WcdmaSignalStrength{ |
| int32_t signalStrength; // Valid values are (0-31, 99) as defined in |
| // TS 27.007 8.5; INT_MAX means unreported. |
| int32_t bitErrorRate; // bit error rate (0-7, 99) as defined in TS 27.007 8.5; |
| // INT_MAX means invalid/unreported. |
| }; |
| |
| 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. INT_MAX means invalid/unreported. |
| 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. INT_MAX means invalid/unreported. |
| }; |
| |
| 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; INT_MAX means |
| // invalid/unreported. |
| 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; INT_MAX means invalid/unreported. |
| uint32_t signalNoiseRatio; // Valid values are 0-8. 8 is the highest signal to |
| // noise ratio; INT_MAX means invalid/unreported. |
| }; |
| |
| struct LteSignalStrength { |
| uint32_t signalStrength; // Valid values are (0-31, 99) as defined in |
| // TS 27.007 8.5; INT_MAX means invalid/unreported. |
| uint32_t rsrp; // The current Reference Signal Receive Power in dBm |
| // multipled by -1. |
| // Range: 44 to 140 dBm; |
| // INT_MAX: 0x7FFFFFFF denotes invalid/unreported 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/unreported 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/unreported 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/unreported 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 1282 inclusive. |
| // INT_MAX: 0x7FFFFFFF denotes invalid/unreported value. |
| // Reference: 3GPP 36.213 section 4.2.3 |
| }; |
| |
| struct TdScdmaSignalStrength { |
| uint32_t rscp; // The Received Signal Code Power in dBm multiplied by -1. |
| // Range : 25 to 120 |
| // INT_MAX: 0x7FFFFFFF denotes invalid/unreported value. |
| // Reference: 3GPP TS 25.123, section 9.1.1.1 |
| }; |
| |
| struct SignalStrength { |
| /** |
| * If GSM measurements are provided, this structure must contain valid measurements; otherwise |
| * all fields should be set to INT_MAX to mark them as invalid. |
| */ |
| GsmSignalStrength gw; |
| /** |
| * If CDMA measurements are provided, this structure must contain valid measurements; otherwise |
| * all fields should be set to INT_MAX to mark them as invalid. |
| */ |
| CdmaSignalStrength cdma; |
| /** |
| * If EvDO measurements are provided, this structure must contain valid measurements; otherwise |
| * all fields should be set to INT_MAX to mark them as invalid. |
| */ |
| EvdoSignalStrength evdo; |
| /** |
| * If LTE measurements are provided, this structure must contain valid measurements; otherwise |
| * all fields should be set to INT_MAX to mark them as invalid. |
| */ |
| LteSignalStrength lte; |
| /** |
| * If TD-SCDMA measurements are provided, this structure must contain valid measurements; |
| * otherwise all fields should be set to INT_MAX to mark them as invalid. |
| */ |
| 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 { |
| DataCallFailCause status; // Data call fail cause. DataCallFailCause.NONE if no |
| // error. |
| int32_t suggestedRetryTime; // If status != DataCallFailCause.NONE, this field |
| // indicates the suggested retry back-off timer value RIL |
| // wants to override the one pre-configured in FW. |
| // The unit is milliseconds. |
| // 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 |
| // DataCallFailCause.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 ascii format eg "7f205f70" |
| // Path must always be provided. |
| int32_t p1; // Values of p1, p2 and 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 aid; // 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 |
| }; |
| |
| // See also com.android.internal.telephony.gsm.CallForwardInfo |
| struct CallForwardInfo { |
| CallForwardInfoStatus status; // For queryCallForwardStatus() |
| // status is DISABLE (Not used by vendor code currently) |
| // 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 doesn't 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 and 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 represents 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, empty string if |
| // unknown |
| string mnc; // 2 or 3-digit Mobile Network Code, 0..999, empty string |
| // 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; this value must |
| // be valid |
| uint8_t bsic; // 6-bit Base Station Identity Code, 0xFF if unknown |
| }; |
| |
| struct CellIdentityWcdma { |
| string mcc; // 3-digit Mobile Country Code, 0..999, empty string if |
| // unknown |
| string mnc; // 2 or 3-digit Mobile Network Code, 0..999, empty string |
| // 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; this value must be valid |
| int32_t uarfcn; // 16-bit UMTS Absolute RF Channel Number; this value must |
| // be valid |
| }; |
| |
| 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, empty string if |
| // unknown |
| string mnc; // 2 or 3-digit Mobile Network Code, 0..999, empty string |
| // 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; this value must be valid |
| int32_t tac; // 16-bit tracking area code, INT_MAX if unknown |
| int32_t earfcn; // 18-bit LTE Absolute RF Channel Number; this value must |
| // be valid |
| }; |
| |
| struct CellIdentityTdscdma { |
| string mcc; // 3-digit Mobile Country Code, 0..999, empty string if |
| // unknown |
| string mnc; // 2 or 3-digit Mobile Network Code, 0..999, empty string |
| // 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 and 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 CellIdentity { |
| CellInfoType cellInfoType; // cell type for selecting from union CellInfo |
| // Only one of the below vectors must be of size 1, based on a valid CellInfoType and |
| // others must be of size 0. If cell info type is NONE, then all the vectors |
| // must be of size 0. |
| vec<CellIdentityGsm> cellIdentityGsm; |
| vec<CellIdentityWcdma> cellIdentityWcdma; |
| vec<CellIdentityCdma> cellIdentityCdma; |
| vec<CellIdentityLte> cellIdentityLte; |
| vec<CellIdentityTdscdma> cellIdentityTdscdma; |
| }; |
| |
| struct VoiceRegStateResult { |
| 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 rat; // indicates the available voice radio technology, |
| // valid values as defined by RadioTechnology. |
| bool cssSupported; // concurrent services support indicator. if |
| // registered on a CDMA system. |
| // false - Concurrent services not supported, |
| // true - Concurrent services supported |
| 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 |
| CellIdentity cellIdentity; |
| }; |
| |
| 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 rat; // indicates the available data radio technology, |
| // valid values as defined by 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 "Additional 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(). |
| CellIdentity cellIdentity; |
| }; |
| |
| 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 struct |
| // corresponding to failed MO SMS. |
| // Only one of the below vectors must be of size 1 based on the RadioTechnologyFamily and 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 empty and size = 1 |
| // else must be empty |
| }; |
| |
| struct DataProfileInfo { |
| DataProfileId 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". |
| string roamingProtocol; // one of the PDP_type values in TS 27.007 section 10.1.1 |
| // used on roaming network. For example, "IP", "IPV6", |
| // "IPV4V6", or "PPP". |
| ApnAuthType authType; // APN authentication type |
| string user; // The username for APN, or empty string |
| string password; // The password for APN, or empty string |
| DataProfileInfoType type; // Data profile technology 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 |
| bitfield<ApnTypes> supportedApnTypesBitmap; // Supported APN types bitmap. See ApnTypes for the |
| // value of each bit. |
| bitfield<RadioAccessFamily> bearerBitmap; // The bearer bitmap. See RadioAccessFamily for the |
| // value of each bit. |
| int32_t mtu; // Maximum transmission unit (MTU) size in bytes |
| MvnoType mvnoType; // The MVNO matching data type |
| string mvnoMatchData; // MVNO matching data. This is defined by the carrier. |
| // For example, |
| // SPN like: "A MOBILE", "BEN NL", etc... |
| // IMSI like: "302720x94", "2060188", etc... |
| // GID like: "4E", "33", etc... |
| }; |
| |
| struct RadioCapability { |
| int32_t session; // Unique session value defined by framework returned in |
| // all "responses/unsol" |
| RadioCapabilityPhase phase; |
| bitfield<RadioAccessFamily> raf; // 32-bit bitmap of RadioAccessFamily |
| 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; // Allowed carriers |
| vec<Carrier> excludedCarriers; // 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 |
| int32_t code; // result code. See 27.007 7.17. |
| 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; |
| bitfield<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 |
| }; |