Merge "Extend Telephony HIDL interface to include unsolicited RIL commands." am: d91322ea43

am: 1545f16308

Change-Id: I865b579f98ca0d6a2da267094ec0c8ff1509ae14
This commit is contained in:
Sanket Padawe
2016-11-10 00:11:38 +00:00
committed by android-build-merger
3 changed files with 1865 additions and 61 deletions

File diff suppressed because it is too large Load Diff

View File

@@ -21,9 +21,453 @@ package android.hardware.radio@1.0;
*/
interface IRadioIndication {
/*
* Called when radio state changes.
* Indicates when radio state changes.
*
* @param type Type of radio indication
* @param radioState Current radio state
*/
oneway radioStateChanged(RadioState radioState);
oneway radioStateChanged(RadioIndicationType type, RadioState radioState);
/*
* Indicates when call state has changed.
* Callee must invoke IRadio.getCurrentCalls()
* Must be invoked on, for example,
* "RING", "BUSY", "NO CARRIER", and also call state
* transitions (DIALING->ALERTING ALERTING->ACTIVE)
*
* Redundent or extraneous invocations are tolerated
*
* @param type Type of radio indication
*/
oneway callStateChanged(RadioIndicationType type);
/*
* Indicates when voice network state changed
* Callee must invoke IRadio.getVoiceRegistrationState() and IRadio.getOperator()
*
* @param type Type of radio indication
*/
oneway voiceNetworkStateChanged(RadioIndicationType type);
/*
* Indicates when new SMS is received.
* Callee must subsequently confirm the receipt of the SMS with a
* acknowledgeLastIncomingGsmSms()
*
* Server must not send newSms() nor newSmsStatusReport() messages until a
* acknowledgeLastIncomingGsmSms() has been received
*
* @param type Type of radio indication
* @param pdu PDU of SMS-DELIVER represented as byte array.
* The PDU starts with the SMSC address per TS 27.005 (+CMT:)
*/
oneway newSms(RadioIndicationType type, vec<uint8_t> pdu);
/*
* Indicates when new SMS Status Report is received.
* Callee must subsequently confirm the receipt of the SMS with a
* acknowledgeLastIncomingGsmSms()
*
* Server must not send newSms() nor newSmsStatusReport() messages until a
* acknowledgeLastIncomingGsmSms() has been received
*
* @param type Type of radio indication
* @param pdu PDU of SMS-STATUS-REPORT represented as byte array.
* The PDU starts with the SMSC address per TS 27.005 (+CMT:)
*/
oneway newSmsStatusReport(RadioIndicationType type, vec<uint8_t> pdu);
/*
* Indicates when new SMS has been stored on SIM card
*
* @param type Type of radio indication
*/
oneway newSmsOnSim(RadioIndicationType type);
/*
* Indicates when a new USSD message is received.
* The USSD session is assumed to persist if the type code is REQUEST, otherwise
* the current session (if any) is assumed to have terminated.
*
* @param type Type of radio indication
* @param modeType USSD type code
*/
oneway onUssd(RadioIndicationType type, UssdModeType modeType);
/*
* Indicates when radio has received a NITZ time message.
*
* @param type Type of radio indication
* @param nitzTime NITZ time string in the form "yy/mm/dd,hh:mm:ss(+/-)tz,dt"
* @param receivedTime milliseconds since boot that the NITZ time was received
*/
oneway nitzTimeReceived(RadioIndicationType type, string nitzTime, uint64_t receivedTime);
/*
* Indicates current signal strength of the radio.
*
* @param type Type of radio indication
* @param signalStrength SignalStrength information as defined in types.hal
*/
oneway currentSignalStrength(RadioIndicationType type, SignalStrength signalStrength);
/*
* Indicates data call contexts have changed.
*
* @param type Type of radio indication
* @param dcList array of SetupDataCallResult identical to that
* returned by IRadio.getDataCallList(). It is the complete list
* of current data contexts including new contexts that have been
* activated. A data call is only removed from this list when the
* framework sends a IRadio.deactivateDataCall() or the radio
* is powered off/on
*/
oneway dataCallListChanged(RadioIndicationType type, vec<SetupDataCallResult> dcList);
/*
* Reports supplementary service related notification from the network.
*
* @param type Type of radio indication
* @param suppSvc SuppSvcNotification as defined in types.hal
*/
oneway suppSvcNotify(RadioIndicationType type, SuppSvcNotification suppSvc);
/*
* Indicates when STK session is terminated by SIM.
*
* @param type Type of radio indication
*/
oneway stkSessionEnd(RadioIndicationType type);
/*
* Indicates when SIM issue a STK proactive command to applications
*
* @param type Type of radio indication
* @param cmd SAT/USAT proactive represented as byte array starting with command tag.
* Refer ETSI TS 102.223 section 9.4 for command types
*/
oneway stkProactiveCommand(RadioIndicationType type, vec<uint8_t> cmd);
/*
* Indicates when SIM notifies applcations some event happens.
*
* @param type Type of radio indication
* @param cmd SAT/USAT commands or responses
* sent by ME to SIM or commands handled by ME, represented as byte array
* starting with first byte of response data for command tag. Refer
* ETSI TS 102.223 section 9.4 for command types
*/
oneway stkEventNotify(RadioIndicationType type, vec<uint8_t> cmd);
/*
* Indicates when SIM wants application to setup a voice call.
*
* @param type Type of radio indication
* @param timeout Timeout value in millisec for setting up voice call
*/
oneway stkCallSetup(RadioIndicationType type, int64_t timeout);
/*
* Indicates that SMS storage on the SIM is full. Sent when the network
* attempts to deliver a new SMS message. Messages cannot be saved on the
* SIM until space is freed. In particular, incoming Class 2 messages must not
* be stored
*
* @param type Type of radio indication
*/
oneway simSmsStorageFull(RadioIndicationType type);
/*
* Indicates that file(s) on the SIM have been updated, or the SIM
* has been reinitialized.
* Note: If the SIM state changes as a result of the SIM refresh (eg,
* SIM_READY -> SIM_LOCKED_OR_ABSENT), simStatusChanged()
* must be sent.
*
* @param type Type of radio indication
* @param refreshResult Result of sim refresh
*/
oneway simRefresh(RadioIndicationType type, SimRefreshResult refreshResult);
/*
* Ring indication for an incoming call (eg, RING or CRING event).
* There must be at least one callRing() at the beginning
* of a call and sending multiple is optional. If the system property
* ro.telephony.call_ring.multiple is false then the upper layers
* must generate the multiple events internally. Otherwise the vendor
* code must generate multiple callRing() if
* ro.telephony.call_ring.multiple is true or if it is absent.
*
* The rate of these events is controlled by ro.telephony.call_ring.delay
* and has a default value of 3000 (3 seconds) if absent.
*
* @param type Type of radio indication
* @param isGsm true for GSM & false for CDMA
* @param record Cdma Signal Information
*/
oneway callRing(RadioIndicationType type, bool isGsm, CdmaSignalInfoRecord record);
/*
* Indicates that SIM state changes.
* Callee must invoke getIccCardStatus()
*
* @param type Type of radio indication
*/
oneway simStatusChanged(RadioIndicationType type);
/*
* Indicates when new CDMA SMS is received
* Callee must subsequently confirm the receipt of the SMS with
* acknowledgeLastIncomingCdmaSms()
* Server must not send cdmaNewSms() messages until
* acknowledgeLastIncomingCdmaSms() has been received
*
* @param type Type of radio indication
* @param msg Cdma Sms Message
*/
oneway cdmaNewSms(RadioIndicationType type, CdmaSmsMessage msg);
/*
* Indicates when new Broadcast SMS is received
*
* @param type Type of radio indication
* @param data If received from GSM network, "data" is byte array of 88 bytes
* which indicates each page of a CBS Message sent to the MS by the
* BTS as coded in 3GPP 23.041 Section 9.4.1.2.
* If received from UMTS network, "data" is byte array of 90 up to 1252
* bytes which contain between 1 and 15 CBS Message pages sent as one
* packet to the MS by the BTS as coded in 3GPP 23.041 Section 9.4.2.2
*/
oneway newBroadcastSms(RadioIndicationType type, vec<uint8_t> data);
/*
* Indicates that SMS storage on the RUIM is full. Messages
* cannot be saved on the RUIM until space is freed.
*
* @param type Type of radio indication
*/
oneway cdmaRuimSmsStorageFull(RadioIndicationType type);
/*
* Indicates a restricted state change (eg, for Domain Specific Access Control).
* Radio must send this msg after radio off/on cycle no matter it is changed or not.
*
* @param type Type of radio indication
* @param state Bitmask of restricted state as defined by PhoneRestrictedState
*/
oneway restrictedStateChanged(RadioIndicationType type, PhoneRestrictedState state);
/*
* Indicates that the radio system selection module has
* autonomously entered emergency callback mode.
*
* @param type Type of radio indication
*/
oneway enterEmergencyCallbackMode(RadioIndicationType type);
/*
* Indicates when CDMA radio receives a call waiting indication.
*
* @param type Type of radio indication
* @param callWaitingRecord Cdma CallWaiting information
*/
oneway cdmaCallWaiting(RadioIndicationType type, CdmaCallWaiting callWaitingRecord);
/*
* Indicates when CDMA radio receives an update of the progress of an OTASP/OTAPA call.
*
* @param type Type of radio indication
* @param status Cdma OTA provision status
*/
oneway cdmaOtaProvisionStatus(RadioIndicationType type, CdmaOtaProvisionStatus status);
/*
* Indicates when CDMA radio receives one or more info recs.
*
* @param type Type of radio indication
* @param records New Cdma Information
*/
oneway cdmaInfoRec(RadioIndicationType type, CdmaInformationRecords records);
/*
* This is for OEM specific use.
*
* @param type Type of radio indication
* @param data data passed as raw bytes
*/
oneway oemHookRaw(RadioIndicationType type, vec<uint8_t> data);
/*
* Indicates that nework doesn't have in-band information, need to
* play out-band tone.
*
* @param type Type of radio indication
* @param start true = start play ringback tone, false = stop playing ringback tone
*/
oneway indicateRingbackTone(RadioIndicationType type, bool start);
/*
* Indicates that framework/application must reset the uplink mute state.
*
* @param type Type of radio indication
*/
oneway resendIncallMute(RadioIndicationType type);
/*
* Indicates when CDMA subscription source changed.
*
* @param type Type of radio indication
* @param cdmaSource New Cdma SubscriptionSource
*/
oneway cdmaSubscriptionSourceChanged(RadioIndicationType type,
CdmaSubscriptionSource cdmaSource);
/*
* Indicates when PRL (preferred roaming list) changes.
*
* @param type Type of radio indication
* @param version PRL version after PRL changes
*/
oneway cdmaPrlChanged(RadioIndicationType type, int32_t version);
/*
* Indicates when Emergency Callback Mode Ends.
* Indicates that the radio system selection module has
* proactively exited emergency callback mode.
*
* @param type Type of radio indication
*/
oneway exitEmergencyCallbackMode(RadioIndicationType type);
/*
* TODO(Consider moving this to separate interface. Client will receive this function with an
* IRadioResponse interface so that all requests in that IRadioResponse will fail before
* rilConnected() is received)
*
* Indicates the ril connects and returns the version
*
* @param type Type of radio indication
*/
oneway rilConnected(RadioIndicationType type);
/*
* Indicates that voice technology has changed. Responds with new rat.
*
* @param type Type of radio indication
* @param rat Current new voice rat
*/
oneway voiceRadioTechChanged(RadioIndicationType type, RadioTechnology rat);
/*
* Same information as returned by getCellInfoList().
*
* @param type Type of radio indication
* @param records Current cell information known to radio
*/
oneway cellInfoList(RadioIndicationType type, vec<CellInfo> records);
/*
* Indicates when IMS registration state has changed.
* To get IMS registration state and IMS SMS format, callee needs to invoke
* getImsRegistrationState()
*
* @param type Type of radio indication
*/
oneway imsNetworkStateChanged(RadioIndicationType type);
/*
* Indicated when there is a change in subscription status.
* This event must be sent in the following scenarios
* - subscription readiness at modem, which was selected by telephony layer
* - when subscription is deactivated by modem due to UICC card removal
* - when network invalidates the subscription i.e. attach reject due to authentication reject
*
* @param type Type of radio indication
* @param activate false for subscription deactivated, true for subscription activated
*/
oneway subscriptionStatusChanged(RadioIndicationType type, bool activate);
/*
* Indicates when Single Radio Voice Call Continuity (SRVCC)
* progress state has changed
*
* @param type Type of radio indication
* @param state New Srvcc State
*/
oneway srvccStateNotify(RadioIndicationType type, SrvccState state);
/*
* Indicates when the hardware configuration associated with the RILd changes.
*
* @param type Type of radio indication
* @param configs Array of hardware configs
*/
oneway hardwareConfigChanged(RadioIndicationType type, vec<HardwareConfig> configs);
/*
* Sent when setRadioCapability() completes.
* Returns the phone radio capability exactly as
* getRadioCapability() and must be the
* same set as sent by setRadioCapability().
*
* @param type Type of radio indication
* @param rc Current radio capability
*/
oneway radioCapabilityIndication(RadioIndicationType type, RadioCapability rc);
/*
* Indicates when Supplementary service(SS) response is received when DIAL/USSD/SS is changed to
* SS by call control.
*
* @param type Type of radio indication
*/
oneway onSupplementaryServiceIndication(RadioIndicationType type, StkCcUnsolSsResult ss);
/*
* Indicates when there is an ALPHA from UICC during Call Control.
*
* @param type Type of radio indication
* @param alpha ALPHA string from UICC in UTF-8 format
*/
oneway stkCallControlAlphaNotify(RadioIndicationType type, string alpha);
/*
* Indicates when there is an incoming Link Capacity Estimate (LCE) info report.
*
* @param type Type of radio indication
* @param lce LceData information
*/
oneway lceData(RadioIndicationType type, LceDataInfo lce);
/*
* Indicates when there is new Carrier PCO data received for a data call. Ideally
* only new data must be forwarded, though this is not required. Multiple
* boxes of carrier PCO data for a given call must result in a series of
* pcoData() calls.
*
* @param type Type of radio indication
* @param pco New PcoData
*/
oneway pcoData(RadioIndicationType type, PcoDataInfo pco);
/*
* Indicates when there is a modem reset.
*
* When modem restarts, one of the following radio state transitions must happen
* 1) RadioState:ON->RadioState:UNAVAILABLE->RadioState:ON or
* 2) RadioState:OFF->RadioState:UNAVAILABLE->RadioState:OFF
* This message must be sent either just before the Radio State changes to RadioState:UNAVAILABLE
* or just after but must never be sent after the Radio State changes from RadioState:UNAVAILABLE
* to RadioState:ON/RadioState:OFF again.
* It must NOT be sent after the Radio state changes to RadioState:ON/RadioState:OFF after the
* modem restart as that may be interpreted as a second modem reset by the
* framework.
*
* @param type Type of radio indication
* @param reason the reason for the reset. It
* may be a crash signature if the restart was due to a crash or some
* string such as "user-initiated restart" or "AT command initiated
* restart" that explains the cause of the modem restart
*/
oneway modemReset(RadioIndicationType type, string reason);
};

View File

@@ -147,11 +147,14 @@ enum RadioError : int32_t {
};
enum RadioResponseType : int32_t {
RESPONSE_SOLICITED,
RESPONSE_UNSOLICITED,
RESPONSE_SOLICITED_ACK,
RESPONSE_SOLICITED_ACK_EXP,
RESPONSE_UNSOLICITED_ACK_EXP,
SOLICITED,
SOLICITED_ACK,
SOLICITED_ACK_EXP,
};
enum RadioIndicationType : int32_t {
UNSOLICITED,
UNSOLICITED_ACK_EXP,
};
enum RestrictedState : int32_t {
@@ -846,6 +849,78 @@ enum RadioTechnologyFamily : int32_t {
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
@@ -863,6 +938,134 @@ enum DataProfileInfoType : int32_t {
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
};
struct RadioResponseInfo {
RadioResponseType type; // Response type
int32_t serial; // Serial number of the request
@@ -1283,7 +1486,7 @@ struct CdmaBroadcastSmsConfigInfo {
};
struct CdmaSmsWriteArgs {
CdmaSmsWriteArgsStatus status; // Status of message. See TS 27.005 3.1
CdmaSmsWriteArgsStatus status; // Status of message. See TS 27.005 3.1
CdmaSmsMessage message;
};
@@ -1408,7 +1611,7 @@ struct 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 1 of the below vectors must be of size 1 based on the CellInfoType & others must be
// 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
@@ -1435,7 +1638,7 @@ struct ImsSmsMessage {
int32_t messageRef; // Valid field if retry is set to true.
// Contains messageRef from SendSmsResult stuct
// corresponding to failed MO SMS.
// Only 1 of the below vectors must be of size 1 based on the RadioTechnologyFamily & others
// 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
@@ -1488,7 +1691,7 @@ struct HardwareConfig {
string uuid; // RadioConst:MAX_UUID_LENGTH is max length of the
// string
HardwareConfigState state;
// Only 1 of the below vectors must have size = 1 based on the HardwareConfigType and other
// 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
@@ -1514,56 +1717,6 @@ struct DataProfileInfo {
bool enabled; // True to enable the profile, false to disable
};
enum RadioCapabilityPhase : int32_t {
CONFIGURED = 0, // LM is configured is initial value and value after
// FINISH completes
START = 1, // START is sent before Apply and indicates that an
// APPLY will be
// 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 no
// APPLY will be sent
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 will be
// the prior configuration thus restoring the configuration
// to the previous value. An error returned by this command
// 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 RC_PHASE_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)
};
struct RadioCapability {
int32_t session; // Unique session value defined by framework returned in
// all "responses/unsol"
@@ -1626,3 +1779,156 @@ struct CarrierRestrictions {
// 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
};