Develop HIDL interface for radio (RIL). am: 76372496a7 am: 1602874c83

am: 11499a3979

Change-Id: I3c6d85dda5dfa9e810fc233d66b51e60fc65d948
This commit is contained in:
Sanket Padawe
2016-10-28 17:41:08 +00:00
committed by android-build-merger
6 changed files with 4193 additions and 207 deletions

View File

@@ -7,12 +7,14 @@ genrule {
srcs: [
"types.hal",
"IRadio.hal",
"IRadioCallback.hal",
"IRadioIndication.hal",
"IRadioResponse.hal",
],
out: [
"android/hardware/radio/1.0/types.cpp",
"android/hardware/radio/1.0/RadioAll.cpp",
"android/hardware/radio/1.0/RadioCallbackAll.cpp",
"android/hardware/radio/1.0/RadioIndicationAll.cpp",
"android/hardware/radio/1.0/RadioResponseAll.cpp",
],
}
@@ -23,7 +25,8 @@ genrule {
srcs: [
"types.hal",
"IRadio.hal",
"IRadioCallback.hal",
"IRadioIndication.hal",
"IRadioResponse.hal",
],
out: [
"android/hardware/radio/1.0/types.h",
@@ -32,11 +35,16 @@ genrule {
"android/hardware/radio/1.0/BnRadio.h",
"android/hardware/radio/1.0/BpRadio.h",
"android/hardware/radio/1.0/BsRadio.h",
"android/hardware/radio/1.0/IRadioCallback.h",
"android/hardware/radio/1.0/IHwRadioCallback.h",
"android/hardware/radio/1.0/BnRadioCallback.h",
"android/hardware/radio/1.0/BpRadioCallback.h",
"android/hardware/radio/1.0/BsRadioCallback.h",
"android/hardware/radio/1.0/IRadioIndication.h",
"android/hardware/radio/1.0/IHwRadioIndication.h",
"android/hardware/radio/1.0/BnRadioIndication.h",
"android/hardware/radio/1.0/BpRadioIndication.h",
"android/hardware/radio/1.0/BsRadioIndication.h",
"android/hardware/radio/1.0/IRadioResponse.h",
"android/hardware/radio/1.0/IHwRadioResponse.h",
"android/hardware/radio/1.0/BnRadioResponse.h",
"android/hardware/radio/1.0/BpRadioResponse.h",
"android/hardware/radio/1.0/BsRadioResponse.h",
],
}

File diff suppressed because it is too large Load Diff

View File

@@ -16,27 +16,901 @@
package android.hardware.radio@1.0;
import IRadioCallback;
import IRadioResponse;
import IRadioIndication;
/*
* This interface is used by telephony & telecom to talk to cellular radio.
* All the functions have minimum two parameters:
* slotId: which corresponds to sim slot id.
* serial: which corresponds to serial no. of request. Serial numbers must only be memorized for the
* duration of a method call. If clients provide colliding serials (including passing the same
* serial to different methods), multiple responses (one for each method call) must still be served.
*/
interface IRadio {
/**
* Set callback that has response functions for requests
/*
* Set response functions for radio requests & radio indications.
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param radioCallback Object containing response callbacks
* @param radioResponse Object containing response functions
* @param radioIndication Object containing radio indications
*/
setCallback(int32_t slotId, IRadioCallback radioCallback);
setResponseFunctions(int32_t slotId, IRadioResponse radioResponse,
IRadioIndication radioIndication);
/**
/*
* Requests status of the ICC card
*
* Response callback is IRadioCallback.responseGetSimStatus()
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
*
* Valid errors:
* Must never fail for a valid slot id
* Response function is IRadioResponse.getIccCardStatusResponse()
*
*/
oneway getIccCardStatus(int32_t slotId, int32_t serial);
/*
* Supplies ICC PIN. Only called if CardStatus has AppState.PIN state
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request
* @param serial Serial number of request.
* @param pin PIN value
* @param aid AID value, See ETSI 102.221 8.1 and 101.220 4, empty string if no value.
*
* Response function is IRadioResponse.supplyIccPinForAppResponse()
*
*/
oneway requestGetSimStatus(int32_t slotId, int32_t serial);
};
oneway supplyIccPinForApp(int32_t slotId, int32_t serial, string pin, string aid);
/*
* Supplies ICC PUK and new PIN.
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
* @param puk PUK value
* @param pin New PIN value
* @param aid AID value, See ETSI 102.221 8.1 and 101.220 4, empty string if no value.
*
* Response function is IRadioResponse.supplyIccPukForAppResponse()
*
*/
oneway supplyIccPukForApp(int32_t slotId, int32_t serial, string puk, string pin, string aid);
/*
* Supplies ICC PIN2. Only called following operation where SIM_PIN2 was
* returned as a a failure from a previous operation.
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
* @param pin2 PIN2 value
* @param aid AID value, See ETSI 102.221 8.1 and 101.220 4, empty string if no value.
*
* Response function is IRadioResponse.supplyIccPin2ForAppResponse()
*
*/
oneway supplyIccPin2ForApp(int32_t slotId, int32_t serial, string pin2, string aid);
/*
* Supplies ICC PUK2 and new PIN2.
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
* @param puk2 PUK2 value
* @param pin2 New PIN2 value
* @param aid AID value, See ETSI 102.221 8.1 and 101.220 4, empty string if no value.
*
* Response function is IRadioResponse.supplyIccPuk2ForAppResponse()
*
*/
oneway supplyIccPuk2ForApp(int32_t slotId, int32_t serial, string puk2, string pin2,
string aid);
/*
* Supplies old ICC PIN and new PIN.
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
* @param oldPin Old pin value
* @param newPin New pin value
* @param aid AID value, See ETSI 102.221 8.1 and 101.220 4, empty string if no value.
*
* Response function is IRadioResponse.changeIccPinForAppResponse()
*
*/
oneway changeIccPinForApp(int32_t slotId, int32_t serial, string oldPin, string newPin,
string aid);
/*
* Supplies old ICC PIN2 and new PIN2.
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
* @param oldPin2 Old pin2 value
* @param newPin2 New pin2 value
* @param aid AID value, See ETSI 102.221 8.1 and 101.220 4, empty string if no value.
*
* Response function is IRadioResponse.changeIccPin2ForAppResponse()
*
*/
oneway changeIccPin2ForApp(int32_t slotId, int32_t serial, string oldPin2, string newPin2,
string aid);
/*
* Requests that network personalization be deactivated
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
* @param netPin Network depersonlization code
*
* Response function is IRadioResponse.supplyNetworkDepersonalizationResponse()
*
*/
oneway supplyNetworkDepersonalization(int32_t slotId, int32_t serial, string netPin);
/*
* Requests current call list
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
*
* Response function is IRadioResponse.getCurrentCallsResponse()
*
*/
oneway getCurrentCalls(int32_t slotId, int32_t serial);
/*
* Initiate voice call.
* This method is never used for supplementary service codes
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
* @param dialInfo Dial struct
*
* Response function is IRadioResponse.dialResponse()
*
*/
oneway dial(int32_t slotId, int32_t serial, Dial dialInfo);
/*
* Get the SIM IMSI
* Only valid when radio state is "RADIO_STATE_ON"
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
* @param aid AID value, See ETSI 102.221 8.1 and 101.220 4, empty string if no value.
*
* Response function is IRadioResponse.getImsiForAppResponse()
*
*/
oneway getImsiForApp(int32_t slotId, int32_t serial, string aid);
/*
* Hang up a specific line (like AT+CHLD=1x)
* After this HANGUP request returns, Radio must show the connection is NOT
* active anymore in next requestGetCurrentCalls query.
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
* @param gsmIndex Connection index (value of 'x' in CHLD above)
*
* Response function is IRadioResponse.hangupResponse()
*
*/
oneway hangup(int32_t slotId, int32_t serial, int32_t gsmIndex);
/*
* Hang up waiting or held (like AT+CHLD=0)
* After this HANGUP request returns, Radio must show the connection is NOT
* active anymore in next getCurrentCalls() query.
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
*
* Response function is IRadioResponse.hangupWaitingOrBackgroundResponse()
*
*/
oneway hangupWaitingOrBackground(int32_t slotId, int32_t serial);
/*
* Hang up waiting or held (like AT+CHLD=1)
* After this HANGUP request returns, Radio must show the connection is NOT
* active anymore in next getCurrentCalls query.
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
*
* Response function is IRadioResponse.hangupForegroundResumeBackgroundResponse()
*
*/
oneway hangupForegroundResumeBackground(int32_t slotId, int32_t serial);
/*
* Switch waiting or holding call and active call (like AT+CHLD=2)
* State transitions must be as follows:
*
* Call transitions must happen as shown below.
*
* BEFORE AFTER
* Call 1 Call 2 Call 1 Call 2
* ACTIVE HOLDING HOLDING ACTIVE
* ACTIVE WAITING HOLDING ACTIVE
* HOLDING WAITING HOLDING ACTIVE
* ACTIVE IDLE HOLDING IDLE
* IDLE IDLE IDLE IDLE
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
*
* Response function is IRadioResponse.switchWaitingOrHoldingAndActiveResponse()
*
*/
oneway switchWaitingOrHoldingAndActive(int32_t slotId, int32_t serial);
/*
* Conference holding and active (like AT+CHLD=3)
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
*
* Response function is IRadioResponse.conferenceResponse()
*
*/
oneway conference(int32_t slotId, int32_t serial);
/*
* Send UDUB (user determined user busy) to ringing or
* waiting call answer)
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
*
* Response function is IRadioResponse.rejectCallResponse()
*
*/
oneway rejectCall(int32_t slotId, int32_t serial);
/*
* Requests the failure cause code for the most recently terminated call.
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
*
* Response function is IRadioResponse.getLastCallFailCauseResponse()
*
*/
oneway getLastCallFailCause(int32_t slotId, int32_t serial);
/*
* Requests current signal strength and associated information.
* Must succeed if radio is on.
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
*
* Response function is IRadioResponse.getSignalStrengthResponse()
*/
oneway getSignalStrength(int32_t slotId, int32_t serial);
/*
* Request current voice registration state
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
*
* Response function is IRadioResponse.getVoiceRegistrationStateResponse()
*/
oneway getVoiceRegistrationState(int32_t slotId, int32_t serial);
/*
* Request current data registration state
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
*
* Response function is IRadioResponse.getDataRegistrationStateResponse()
*/
oneway getDataRegistrationState(int32_t slotId, int32_t serial);
/*
* Request current operator ONS or EONS
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
*
* Response function is IRadioResponse.getOperatorResponse()
*/
oneway getOperator(int32_t slotId, int32_t serial);
/*
* Toggle radio on and off (for "airplane" mode)
* If the radio is turned off/on the radio modem subsystem
* is expected return to an initialized state. For instance,
* any voice and data calls must be terminated and all associated
* lists emptied.
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
* @param on To turn on radio -> on = true, to turn off radio -> on = false.
*
* Response function is IRadioResponse.setRadioPowerResponse()
*/
oneway setRadioPower(int32_t slotId, int32_t serial, bool on);
/*
* Send a DTMF tone
*
* If the implementation is currently playing a tone requested via
* startDtmf(), that tone must be cancelled and the new tone
* must be played instead
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
* @param s string with single char having one of 12 values: 0-9, *, #
*
* Response function is IRadioResponse.sendDtmfResponse()
*/
oneway sendDtmf(int32_t slotId, int32_t serial, string s);
/*
* Send an SMS message
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
* @param smscPDU is SMSC address in GSM BCD format prefixed by a length byte
* (as expected by TS 27.005) or empty string for default SMSC
* @param pdu is SMS in PDU format as an ASCII hex string less the SMSC address
* TP-Layer-Length is be "strlen(pdu)/2"
*
* Response function is IRadioResponse.sendSmsResponse()
*
* Based on the return error, caller decides to resend if sending sms
* fails. RadioError:SMS_SEND_FAIL_RETRY means retry (i.e. error cause is 332)
* and RadioError:GENERIC_FAILURE means no retry (i.e. error cause is 500)
*/
oneway sendSms(int32_t slotId, int32_t serial, string smscPDU, string pdu);
/*
* Send an SMS message. Identical to sendSms,
* except that more messages are expected to be sent soon. If possible,
* keep SMS relay protocol link open (eg TS 27.005 AT+CMMS command)
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
* @param smscPDU is SMSC address in GSM BCD format prefixed by a length byte
* (as expected by TS 27.005) or empty string for default SMSC
* @param pdu is SMS in PDU format as an ASCII hex string less the SMSC address
* TP-Layer-Length is be "strlen(pdu)/2"
*
* Response function is IRadioResponse.sendSMSExpectMoreResponse()
*
* Based on the return error, caller decides to resend if sending sms
* fails. RadioError:SMS_SEND_FAIL_RETRY means retry (i.e. error cause is 332)
* and RadioError:GENERIC_FAILURE means no retry (i.e. error cause is 500)
*/
oneway sendSMSExpectMore(int32_t slotId, int32_t serial, string smscPDU, string pdu);
/*
* Setup a packet data connection. If DataCallResponse.status
* return DataCallFailCause:NONE it is added to the list of data calls and a
* unsolDataCallListChanged() is sent. The call remains in the
* list until deactivateDataCall() is issued or the
* radio is powered off/on. This list is returned by getDataCallList()
* and dataCallListChanged().
*
* The RIL is expected to:
* - Create one data call context.
* - Create and configure a dedicated interface for the context
* - The interface must be point to point.
* - The interface is configured with one or more addresses and
* is capable of sending and receiving packets. The prefix length
* of the addresses must be /32 for IPv4 and /128 for IPv6.
* - Must NOT change the linux routing table.
* - Support up to getDataRegistrationState response[5]
* number of simultaneous data call contexts.
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
* @param radioTechnology Radio technology to use: 0-CDMA, 1-GSM/UMTS, 2...
* for values above 2 this is RadioTechnology + 2.
* @param profile is a RadioDataProfile (support is optional)
* @param apn is the APN to connect to if radio technology is GSM/UMTS. This APN must
* override the one in the profile. empty string indicates no APN overrride.
* @param user is the username for APN, or empty string
* @param password is the password for APN, or empty string
* @param authType is the PAP / CHAP auth type. Values:
* 0 => PAP and CHAP is never performed.
* 1 => PAP may be performed; CHAP is never performed.
* 2 => CHAP may be performed; PAP is never performed.
* 3 => PAP / CHAP may be performed - baseband dependent.
* @param protocol is the connection type to request must be one of the
* PDP_type values in TS 27.007 section 10.1.1.
* For example, "IP", "IPV6", "IPV4V6", or "PPP".
*
* Response function is IRadioResponse.setupDataCallResponse()
*/
oneway setupDataCall(int32_t slotId, int32_t serial, int32_t radioTechnology,
int32_t profile, string apn, string user, string password, int32_t authType,
string protocol);
/*
* Request ICC I/O operation.
* This is similar to the TS 27.007 "restricted SIM" operation
* where it assumes all of the EF selection must be done by the
* callee
*
* Arguments and responses that are unused for certain
* values of "command" must be ignored or set to empty string
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
* @param iccIo IccIo
*
* Please note that IccIo has a "PIN2" field which may be empty string,
* or may specify a PIN2 for operations that require a PIN2 (eg
* updating FDN records)
*
* Response function is IRadioResponse.iccIOForAppResponse()
*/
oneway iccIOForApp(int32_t slotId, int32_t serial, IccIo iccIo);
/*
* Send a USSD message.
*
* If a USSD session already exists, the message must be sent in the
* context of that session. Otherwise, a new session must be created.
*
* The network reply must be reported via unsolOnUssd
*
* Only one USSD session must exist at a time, and the session is assumed
* to exist until:
* a) The android system invokes cancelUssd()
* b) The implementation sends a unsolOnUssd() with a type code
* of "0" (USSD-Notify/no further action) or "2" (session terminated)
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
* @param ussd string containing the USSD request in UTF-8 format
*
* Response function is IRadioResponse.sendUssdResponse()
*
* See also requestCancelUssd, unsolOnUssd
*/
oneway sendUssd(int32_t slotId, int32_t serial, string ussd);
/*
* Cancel the current USSD session if one exists.
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
*
* Response function is IRadioResponse.cancelPendingUssdResponse()
*/
oneway cancelPendingUssd(int32_t slotId, int32_t serial);
/*
* Gets current CLIR status
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
*
* Response function is IRadioResponse.getClirResponse()
*/
oneway getClir(int32_t slotId, int32_t serial);
/*
* Set current CLIR status
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
* @param status "n" parameter from TS 27.007 7.7
*
* Response function is IRadioResponse.setClirResponse()
*/
oneway setClir(int32_t slotId, int32_t serial, int32_t status);
/*
* Request call forward status.
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
* @param callInfo CallForwardInfo
*
* Response function is IRadioResponse.getCallForwardStatusResponse()
*/
oneway getCallForwardStatus(int32_t slotId, int32_t serial,
CallForwardInfo callInfo);
/*
* Configure call forward rule
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
* @param callInfo CallForwardInfo
*
* Response function is IRadioResponse.setCallForwardResponse()
*/
oneway setCallForward(int32_t slotId, int32_t serial, CallForwardInfo callInfo);
/*
* Query current call waiting state
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
* @param serviceClass Service class is the TS 27.007 service class to query
*
* Response function is IRadioResponse.getCallWaitingResponse()
*/
oneway getCallWaiting(int32_t slotId, int32_t serial, int32_t serviceClass);
/*
* Configure current call waiting state
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
* @param enable is false for "disabled" and true for "enabled"
* @param serviceClass is the TS 27.007 service class bit vector of services to modify
*
* Response function is IRadioResponse.setCallWaitingResponse()
*/
oneway setCallWaiting(int32_t slotId, int32_t serial, bool enable,
int32_t serviceClass);
/*
* Acknowledge successful or failed receipt of SMS previously indicated
* via unsolResponseNewSms
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
* @param success is true on successful receipt
* (basically, AT+CNMA=1 from TS 27.005 is 0 on failed receipt
* (basically, AT+CNMA=2 from TS 27.005)
* @param cause: if success is false, this contains the failure cause as defined
* in TS 23.040, 9.2.3.22.
*
* Response function is IRadioResponse.acknowledgeLastIncomingGsmSmsResponse()
*/
oneway acknowledgeLastIncomingGsmSms(int32_t slotId, int32_t serial, bool success,
SmsAcknowledgeFailCause cause);
/*
* Answer incoming call
* Must not be called for WAITING calls.
* switchWaitingOrHoldingAndActive() must be used in this case
* instead
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
*
* Response function is IRadioResponse.acceptCallResponse()
*/
oneway acceptCall(int32_t slotId, int32_t serial);
/*
* Deactivate packet data connection and remove from the
* data call list if RadioError:NONE is returned. Any other return
* values must also try to remove the call from the list. An
* unsolDataCallListChanged must be
* issued because of an deactivateDataCall.
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
* @param cid Indicates CID
* @param reasonRadioShutDown Indicates Disconnect Reason
* false => No specific reason specified
* true => Radio shutdown requested
*
* Response function is IRadioResponse.deactivateDataCallResponse()
*/
oneway deactivateDataCall(int32_t slotId, int32_t serial, int32_t cid,
bool reasonRadioShutDown);
/*
* Query the status of a facility lock state
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
* @param facility is the facility string code from TS 27.007 7.4
* (eg "AO" for BAOC, "SC" for SIM lock)
* @param password is the password, or "" if not required
* @param serviceClass is the TS 27.007 service class bit vector of services to query
* @param appId is AID value, See ETSI 102.221 8.1 and 101.220 4, empty string if no value.
* This is only applicable in the case of Fixed Dialing Numbers (FDN) requests.
*
* Response function is IRadioResponse.getFacilityLockForAppResponse()
*/
oneway getFacilityLockForApp(int32_t slotId, int32_t serial, string facility,
string password, int32_t serviceClass, string appId);
/*
* Enable/disable one facility lock
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
* @param facility is the facility string code from TS 27.007 7.4 (eg "AO" for BAOC)
* @param lockState false for "unlock" and true for "lock"
* @param password is the password
* @param serviceClass is string representation of decimal TS 27.007
* service class bit vector. Eg, the string
* "1" means "set this facility for voice services"
* @param appId is AID value, See ETSI 102.221 8.1 and 101.220 4, empty string if no value.
* This is only applicable in the case of Fixed Dialing Numbers (FDN) requests.
*
* Response function is IRadioResponse.setFacilityLockForAppResponse()
*/
oneway setFacilityLockForApp(int32_t slotId, int32_t serial, string facility, bool lockState,
string password, int32_t serviceClass, string appId);
/*
* Change call barring facility password
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
* @param facility facility string code from TS 27.007 7.4 (eg "AO" for BAOC)
* @param oldPassword old password
* @param newPassword new password
*
* Response function is IRadioResponse.setBarringPasswordResponse()
*/
oneway setBarringPassword(int32_t slotId, int32_t serial, string facility,
string oldPassword, string newPassword);
/*
* Query current network selection mode
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
*
* Response function is IRadioResponse.getNetworkSelectionModeResponse()
*/
oneway getNetworkSelectionMode(int32_t slotId, int32_t serial);
/*
* Specify that the network must be selected automatically.
* This request must not respond until the new operator is selected and registered.
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
*
* Response function is IRadioResponse.setNetworkSelectionModeAutomaticResponse()
*/
oneway setNetworkSelectionModeAutomatic(int32_t slotId, int32_t serial);
/*
* Manually select a specified network.
* This request must not respond until the new operator is selected and registered.
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
* @param operatorNumeric string specifying MCCMNC of network to select (eg "310170")
*
* Response function is IRadioResponse.setNetworkSelectionModeManualResponse()
*/
oneway setNetworkSelectionModeManual(int32_t slotId, int32_t serial, string operatorNumeric);
/*
* Scans for available networks
* This request must not respond until the new operator is selected and registered.
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
*
* Response function is IRadioResponse.getAvailableNetworksResponse()
*/
oneway getAvailableNetworks(int32_t slotId, int32_t serial);
/*
* Start playing a DTMF tone. Continue playing DTMF tone until
* stopDtmf is received.
* If a startDtmf() is received while a tone is currently playing,
* it must cancel the previous tone and play the new one.
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
* @param s string having a single character with one of 12 values: 0-9,*,#
*
* Response function is IRadioResponse.startDtmfResponse()
*/
oneway startDtmf(int32_t slotId, int32_t serial, string s);
/*
* Stop playing a currently playing DTMF tone.
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
*
* Response function is IRadioResponse.stopDtmfResponse()
*/
oneway stopDtmf(int32_t slotId, int32_t serial);
/*
* Return string value indicating baseband version, eg response from AT+CGMR
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
*
* Response function is IRadioResponse.getBasebandVersionResponse()
*/
oneway getBasebandVersion(int32_t slotId, int32_t serial);
/*
* Separate a party from a multiparty call placing the multiparty call
* (less the specified party) on hold and leaving the specified party
* as the only other member of the current (active) call
*
* Like AT+CHLD=2x
*
* See TS 22.084 1.3.8.2 (iii)
* TS 22.030 6.5.5 "Entering "2X followed by send"
* TS 27.007 "AT+CHLD=2x"
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
* @param gsmIndex contains Connection index (value of 'x' in CHLD above)
*
* Response function is IRadioResponse.separateConnectionResponse()
*/
oneway separateConnection(int32_t slotId, int32_t serial, int32_t gsmIndex);
/*
* Turn on or off uplink (microphone) mute.
* Must only be sent while voice call is active.
* Must always be reset to "disable mute" when a new voice call is initiated
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
* @param enable true for "enable mute" and false for "disable mute"
*
* Response function is IRadioResponse.setMuteResponse()
*/
oneway setMute(int32_t slotId, int32_t serial, bool enable);
/*
* Queries the current state of the uplink mute setting
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
*
* Response function is IRadioResponse.getMuteResponse()
*/
oneway getMute(int32_t slotId, int32_t serial);
/*
* Queries the status of the CLIP supplementary service
* (for MMI code "*#30#")
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
*
* Response function is IRadioResponse.getClipResponse()
*/
oneway getClip(int32_t slotId, int32_t serial);
/*
* Returns the data call list. An entry is added when a
* setupDataCall() is issued and removed on a
* deactivateDataCall(). The list is emptied when
* setRadioPower() off/on is issued.
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
*
* Response function is IRadioResponse.getDataCallListResponse()
*/
oneway getDataCallList(int32_t slotId, int32_t serial);
/*
* This request is reserved for OEM-specific uses. It passes raw byte arrays back and forth.
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
* @param data data passed as raw bytes to oem
*
* Response function is IRadioResponse.sendOemRilRequestRawResponse()
*/
oneway sendOemRilRequestRaw(int32_t slotId, int32_t serial, vec<uint8_t> data);
/*
* This request is reserved for OEM-specific uses. It passes strings back and forth.
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
* @param data data passed as strings to oem
*
* Response function is IRadioResponse.sendOemRilRequestStringsResponse()
*/
oneway sendOemRilRequestStrings(int32_t slotId, int32_t serial, vec<string> data);
/*
* Indicates the current state of the screen. When the screen is off, the
* Radio must notify the baseband to suppress certain notifications (eg,
* signal strength and changes in LAC/CID or BID/SID/NID/latitude/longitude)
* in an effort to conserve power. These notifications must resume when the
* screen is on.
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
* @param enable true = screen on, false = screen off.
*
* Response function is IRadioResponse.sendScreenStateResponse()
*/
oneway sendScreenState(int32_t slotId, int32_t serial, bool enable);
/*
* Enables/disables supplementary service related notifications from the network.
* Notifications are reported via unsolSuppSvcNotification().
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
* @param enable true = notifications enabled, false = notifications disabled.
*
* Response function is IRadioResponse.setSuppServiceNotificationsResponse()
*/
oneway setSuppServiceNotifications(int32_t slotId, int32_t serial, bool enable);
/*
* Stores a SMS message to SIM memory.
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
* @param smsWriteArgs SmsWriteArgs defined in types.hal
*
* Response function is IRadioResponse.writeSmsToSimResponse()
*/
oneway writeSmsToSim(int32_t slotId, int32_t serial, SmsWriteArgs smsWriteArgs);
/*
* Deletes a SMS message from SIM memory.
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
* @param index Record index of the message to delete.
*
* Response function is IRadioResponse.deleteSmsOnSimResponse()
*/
oneway deleteSmsOnSim(int32_t slotId, int32_t serial, int32_t index);
/*
* Assign a specified band for RF configuration.
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
* @param mode RadioBandMode defined in types.hal
*
* Response function is IRadioResponse.setBandModeResponse()
*/
oneway setBandMode(int32_t slotId, int32_t serial, RadioBandMode mode);
/*
* Get the list of band modes supported by RF.
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
*
* Response function is IRadioResponse.getAvailableBandModesResponse()
*/
oneway getAvailableBandModes(int32_t slotId, int32_t serial);
/*
* Requests to send a SAT/USAT envelope command to SIM.
* The SAT/USAT envelope command refers to 3GPP TS 11.14 and 3GPP TS 31.111
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
* @param command SAT/USAT command in hexadecimal format string starting with command tag
*
* Response function is IRadioResponse.sendEnvelopeResponse()
*/
oneway sendEnvelope(int32_t slotId, int32_t serial, string command);
/*
* Requests to send a terminal response to SIM for a received proactive command
*
* @param slotId SIM slot id for which the function is called; needed for multi-sim
* @param serial Serial number of request.
* @param commandResponse SAT/USAT response in hexadecimal format string starting with
* first byte of response data
*
* Response function is IRadioResponse.sendTerminalResponseResponseToSim()
*/
oneway sendTerminalResponseToSim(int32_t slotId, int32_t serial, string commandResponse);
};

View File

@@ -16,20 +16,14 @@
package android.hardware.radio@1.0;
interface IRadioCallback {
/**
* Response callback for IRadio.requestGetSimStatus()
*
* @param serial Serial number of request
* @param cardStatus ICC card status
*/
responseGetSimStatus(int32_t serial, RadioCardStatus cardStatus);
// ONLY UNSOLICITED CALLBACKS BELOW
/**
/*
* Interface declaring unsolicited radio indications.
*/
interface IRadioIndication {
/*
* Called when radio state changes.
*
* @param radioState Current radio state
*/
oneway unsolRadioStateChanged(RadioState radioState);
};
oneway radioStateChanged(RadioState radioState);
};

1061
radio/1.0/IRadioResponse.hal Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -54,7 +54,111 @@ enum RadioCdmaSmsConst : int32_t {
IP_ADDRESS_SIZE = 4,
};
enum RadioRestrictedState : int32_t {
enum RadioError : int32_t {
NONE = 0, // Success
RADIO_NOT_AVAILABLE = 1, // If radio did not start or is resetting
GENERIC_FAILURE = 2,
PASSWORD_INCORRECT = 3, // for PIN/PIN2 methods only
SIM_PIN2 = 4, // Operation requires SIM PIN2 to be entered
SIM_PUK2 = 5, // Operation requires SIM PIN2 to be entered
REQUEST_NOT_SUPPORTED = 6,
CANCELLED = 7,
OP_NOT_ALLOWED_DURING_VOICE_CALL = 8, // data ops are not allowed during voice
// call on a Class C GPRS device
OP_NOT_ALLOWED_BEFORE_REG_TO_NW = 9, // data ops are not allowed before device
// registers in network
SMS_SEND_FAIL_RETRY = 10, // fail to send sms and need retry
SIM_ABSENT = 11, // fail to set the location where CDMA subscription
// shall be retrieved because of SIM or RUIM
// card absent
SUBSCRIPTION_NOT_AVAILABLE = 12, // fail to find CDMA subscription from specified
// location
MODE_NOT_SUPPORTED = 13, // HW does not support preferred network type
FDN_CHECK_FAILURE = 14, // command failed because recipient is not on FDN list
ILLEGAL_SIM_OR_ME = 15, // network selection failed due to illegal SIM or ME
MISSING_RESOURCE = 16, // no logical channel available
NO_SUCH_ELEMENT = 17, // application not found on SIM
DIAL_MODIFIED_TO_USSD = 18, // DIAL request modified to USSD
DIAL_MODIFIED_TO_SS = 19, // DIAL request modified to SS
DIAL_MODIFIED_TO_DIAL = 20, // DIAL request modified to DIAL with different data
USSD_MODIFIED_TO_DIAL = 21, // USSD request modified to DIAL
USSD_MODIFIED_TO_SS = 22, // USSD request modified to SS
USSD_MODIFIED_TO_USSD = 23, // USSD request modified to different USSD request
SS_MODIFIED_TO_DIAL = 24, // SS request modified to DIAL
SS_MODIFIED_TO_USSD = 25, // SS request modified to USSD
SUBSCRIPTION_NOT_SUPPORTED = 26, // Subscription not supported by RIL
SS_MODIFIED_TO_SS = 27, // SS request modified to different SS request
LCE_NOT_SUPPORTED = 36, // LCE service not supported(36 in RILConstants.java)
NO_MEMORY = 37, // Not sufficient memory to process the request
INTERNAL_ERR = 38, // Hit unexpected vendor internal error scenario
SYSTEM_ERR = 39, // Hit platform or system error
MODEM_ERR = 40, // Hit unexpected modem error
INVALID_STATE = 41, // Unexpected request for the current state
NO_RESOURCES = 42, // Not sufficient resource to process the request
SIM_ERR = 43, // Received error from SIM card
INVALID_ARGUMENTS = 44, // Received invalid arguments in request
INVALID_SIM_STATE = 45, // Cannot process the request in current SIM state
INVALID_MODEM_STATE = 46, // Cannot process the request in current Modem state
INVALID_CALL_ID = 47, // Received invalid call id in request
NO_SMS_TO_ACK = 48, // ACK received when there is no SMS to ack
NETWORK_ERR = 49, // Received error from network
REQUEST_RATE_LIMITED = 50, // Operation denied due to overly-frequent requests
SIM_BUSY = 51, // SIM is busy
SIM_FULL = 52, // The target EF is full
NETWORK_REJECT = 53, // Request is rejected by network
OPERATION_NOT_ALLOWED = 54, // Not allowed the request now
EMPTY_RECORD = 55, // The request record is empty
INVALID_SMS_FORMAT = 56, // Invalid sms format
ENCODING_ERR = 57, // Message not encoded properly
INVALID_SMSC_ADDRESS = 58, // SMSC address specified is invalid
NO_SUCH_ENTRY = 59, // No such entry present to perform the request
NETWORK_NOT_READY = 60, // Network is not ready to perform the request
NOT_PROVISIONED = 61, // Device doesnot have this value provisioned
NO_SUBSCRIPTION = 62, // Device doesnot have subscription
NO_NETWORK_FOUND = 63, // Network cannot be found
DEVICE_IN_USE = 64, // Operation cannot be performed because the device
// is currently in use
RIL_E_ABORTED = 65, // Operation aborted
// TODO(May be moved to vendor HAL extension)
// OEM specific error codes. To be used by OEM when they don't want to reveal
// specific error codes which would be replaced by Generic failure.
OEM_ERROR_1 = 501,
OEM_ERROR_2 = 502,
OEM_ERROR_3 = 503,
OEM_ERROR_4 = 504,
OEM_ERROR_5 = 505,
OEM_ERROR_6 = 506,
OEM_ERROR_7 = 507,
OEM_ERROR_8 = 508,
OEM_ERROR_9 = 509,
OEM_ERROR_10 = 510,
OEM_ERROR_11 = 511,
OEM_ERROR_12 = 512,
OEM_ERROR_13 = 513,
OEM_ERROR_14 = 514,
OEM_ERROR_15 = 515,
OEM_ERROR_16 = 516,
OEM_ERROR_17 = 517,
OEM_ERROR_18 = 518,
OEM_ERROR_19 = 519,
OEM_ERROR_20 = 520,
OEM_ERROR_21 = 521,
OEM_ERROR_22 = 522,
OEM_ERROR_23 = 523,
OEM_ERROR_24 = 524,
OEM_ERROR_25 = 525,
};
enum RadioResponseType : int32_t {
RESPONSE_SOLICITED,
RESPONSE_UNSOLICITED,
RESPONSE_SOLICITED_ACK,
RESPONSE_SOLICITED_ACK_EXP,
RESPONSE_UNSOLICITED_ACK_EXP,
};
enum RestrictedState : int32_t {
NONE = 0x00,
CS_EMERGENCY = 0x01,
CS_NORMAL = 0x02,
@@ -62,130 +166,771 @@ enum RadioRestrictedState : int32_t {
PS_ALL = 0x10,
};
enum RadioCardState : int32_t {
ABSENT = 0,
PRESENT = 1,
ERROR = 2,
/* card is present but not usable due to carrier restrictions.*/
RESTRICTED = 3,
enum CardState : int32_t {
ABSENT,
PRESENT,
ERROR,
RESTRICTED, // card is present but not usable due to carrier
// restrictions
};
enum RadioPinState : int32_t {
UNKNOWN = 0,
ENABLED_NOT_VERIFIED = 1,
ENABLED_VERIFIED = 2,
DISABLED = 3,
ENABLED_BLOCKED = 4,
ENABLED_PERM_BLOCKED = 5,
enum PinState : int32_t {
UNKNOWN,
ENABLED_NOT_VERIFIED,
ENABLED_VERIFIED,
DISABLED,
ENABLED_BLOCKED,
ENABLED_PERM_BLOCKED,
};
enum RadioAppType : int32_t {
UNKNOWN = 0,
SIM = 1,
USIM = 2,
RUIM = 3,
CSIM = 4,
ISIM = 5,
enum AppType : int32_t {
UNKNOWN,
SIM,
USIM,
RUIM,
CSIM,
ISIM,
};
enum RadioAppState : int32_t {
UNKNOWN = 0,
DETECTED = 1,
PIN = 2,
/* If PIN1 or UPin is required */
PUK = 3,
/* If PUK1 or Puk for UPin is required */
SUBSCRIPTION_PERSO = 4,
/* perso_substate should be look at when app_state is assigned to this value */
READY = 5,
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 RadioPersoSubstate : int32_t {
UNKNOWN = 0,
/* initial state */
IN_PROGRESS = 1,
/* in between each lock transition */
READY = 2,
/* when either SIM or RUIM Perso is finished since each app can only have 1 active perso
involved */
SIM_NETWORK = 3,
SIM_NETWORK_SUBSET = 4,
SIM_CORPORATE = 5,
SIM_SERVICE_PROVIDER = 6,
SIM_SIM = 7,
SIM_NETWORK_PUK = 8,
/* The corresponding perso lock is blocked */
SIM_NETWORK_SUBSET_PUK = 9,
SIM_CORPORATE_PUK = 10,
SIM_SERVICE_PROVIDER_PUK = 11,
SIM_SIM_PUK = 12,
RUIM_NETWORK1 = 13,
RUIM_NETWORK2 = 14,
RUIM_HRPD = 15,
RUIM_CORPORATE = 16,
RUIM_SERVICE_PROVIDER = 17,
RUIM_RUIM = 18,
RUIM_NETWORK1_PUK = 19,
/* The corresponding perso lock is blocked */
RUIM_NETWORK2_PUK = 20,
RUIM_HRPD_PUK = 21,
RUIM_CORPORATE_PUK = 22,
RUIM_SERVICE_PROVIDER_PUK = 23,
RUIM_RUIM_PUK = 24,
enum PersoSubstate : int32_t {
UNKNOWN, // initial state
IN_PROGRESS, // in between each lock transition
READY, // when either SIM or RUIM Perso is finished since each
// app must only have 1 active perso involved
SIM_NETWORK,
SIM_NETWORK_SUBSET,
SIM_CORPORATE,
SIM_SERVICE_PROVIDER,
SIM_SIM,
SIM_NETWORK_PUK, // The corresponding perso lock is blocked
SIM_NETWORK_SUBSET_PUK,
SIM_CORPORATE_PUK,
SIM_SERVICE_PROVIDER_PUK,
SIM_SIM_PUK,
RUIM_NETWORK1,
RUIM_NETWORK2,
RUIM_HRPD,
RUIM_CORPORATE,
RUIM_SERVICE_PROVIDER,
RUIM_RUIM,
RUIM_NETWORK1_PUK, // The corresponding perso lock is blocked
RUIM_NETWORK2_PUK,
RUIM_HRPD_PUK,
RUIM_CORPORATE_PUK,
RUIM_SERVICE_PROVIDER_PUK,
RUIM_RUIM_PUK,
};
enum RadioState : int32_t {
OFF = 0,
/* Radio explictly powered off (eg CFUN=0) */
UNAVAILABLE = 1,
/* States 2-9 below are deprecated. Just leaving them here for backward compatibility. */
SIM_NOT_READY = 2,
/* Radio is on, but the SIM interface is not ready */
SIM_LOCKED_OR_ABSENT = 3,
/* SIM PIN locked, PUK required, network
personalization locked, or SIM absent */
SIM_READY = 4,
/* Radio is on and SIM interface is available */
RUIM_NOT_READY = 5,
/* Radio is on, but the RUIM interface is not ready */
RUIM_READY = 6,
/* Radio is on and the RUIM interface is available */
RUIM_LOCKED_OR_ABSENT = 7,
/* RUIM PIN locked, PUK required, network
personalization locked, or RUIM absent */
NV_NOT_READY = 8,
/* Radio is on, but the NV interface is not available */
NV_READY = 9,
/* Radio is on */
ON = 10,
enum RadioState : int32_t {
OFF, // Radio explictly powered off (eg CFUN=0)
UNAVAILABLE, // Radio unavailable (eg, resetting or not booted)
};
struct RadioAppStatus {
RadioAppType appType;
RadioAppState appState;
RadioPersoSubstate persoSubstate;
/* applicable only if app_state == SUBSCRIPTION_PERSO */
string aidPtr;
/* null terminated string, e.g., from 0xA0, 0x00 -> 0x41, 0x30, 0x30, 0x30 */
enum CallState : int32_t {
ACTIVE,
HOLDING,
DIALING, // MO call only
ALERTING, // MO call only
INCOMING, // MT call only
WAITING, // MT call only
};
/*
* User-to-User signaling Info activation types derived from 3GPP 23.087 v8.0
*/
enum UusType : int32_t {
TYPE1_IMPLICIT,
TYPE1_REQUIRED,
TYPE1_NOT_REQUIRED,
TYPE2_REQUIRED,
TYPE2_NOT_REQUIRED,
TYPE3_REQUIRED,
TYPE3_NOT_REQUIRED,
};
/*
* User-to-User Signaling Information data coding schemes. Possible values for
* Octet 3 (Protocol Discriminator field) in the UUIE. The values have been
* specified in section 10.5.4.25 of 3GPP TS 24.008
*/
enum UusDcs : int32_t {
USP, // User specified protocol
OSIHLP, // OSI higher layer protocol
X244, // X.244
RMCF, // Reserved for system mangement convergence function
IA5C, // IA5 characters
};
enum CallPresentation : int32_t {
ALLOWED,
RESTRICTED,
UNKNOWN,
PAYPHONE,
};
enum Clir : int32_t {
DEFAULT, // "use subscription default value"
INVOCATION, // restrict CLI presentation
SUPPRESSION, // allow CLI presentation
};
enum LastCallFailCause : int32_t {
UNOBTAINABLE_NUMBER = 1,
NO_ROUTE_TO_DESTINATION = 3,
CHANNEL_UNACCEPTABLE = 6,
OPERATOR_DETERMINED_BARRING = 8,
NORMAL = 16,
BUSY = 17,
NO_USER_RESPONDING = 18,
NO_ANSWER_FROM_USER = 19,
CALL_REJECTED = 21,
NUMBER_CHANGED = 22,
PREEMPTION = 25,
DESTINATION_OUT_OF_ORDER = 27,
INVALID_NUMBER_FORMAT = 28,
FACILITY_REJECTED = 29,
RESP_TO_STATUS_ENQUIRY = 30,
NORMAL_UNSPECIFIED = 31,
CONGESTION = 34,
NETWORK_OUT_OF_ORDER = 38,
TEMPORARY_FAILURE = 41,
SWITCHING_EQUIPMENT_CONGESTION = 42,
ACCESS_INFORMATION_DISCARDED = 43,
REQUESTED_CIRCUIT_OR_CHANNEL_NOT_AVAILABLE = 44,
RESOURCES_UNAVAILABLE_OR_UNSPECIFIED = 47,
QOS_UNAVAILABLE = 49,
REQUESTED_FACILITY_NOT_SUBSCRIBED = 50,
INCOMING_CALLS_BARRED_WITHIN_CUG = 55,
BEARER_CAPABILITY_NOT_AUTHORIZED = 57,
BEARER_CAPABILITY_UNAVAILABLE = 58,
SERVICE_OPTION_NOT_AVAILABLE = 63,
BEARER_SERVICE_NOT_IMPLEMENTED = 65,
ACM_LIMIT_EXCEEDED = 68,
REQUESTED_FACILITY_NOT_IMPLEMENTED = 69,
ONLY_DIGITAL_INFORMATION_BEARER_AVAILABLE = 70,
SERVICE_OR_OPTION_NOT_IMPLEMENTED = 79,
INVALID_TRANSACTION_IDENTIFIER = 81,
USER_NOT_MEMBER_OF_CUG = 87,
INCOMPATIBLE_DESTINATION = 88,
INVALID_TRANSIT_NW_SELECTION = 91,
SEMANTICALLY_INCORRECT_MESSAGE = 95,
INVALID_MANDATORY_INFORMATION = 96,
MESSAGE_TYPE_NON_IMPLEMENTED = 97,
MESSAGE_TYPE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 98,
INFORMATION_ELEMENT_NON_EXISTENT = 99,
CONDITIONAL_IE_ERROR = 100,
MESSAGE_NOT_COMPATIBLE_WITH_PROTOCOL_STATE = 101,
RECOVERY_ON_TIMER_EXPIRED = 102,
PROTOCOL_ERROR_UNSPECIFIED = 111,
INTERWORKING_UNSPECIFIED = 127,
CALL_BARRED = 240,
FDN_BLOCKED = 241,
IMSI_UNKNOWN_IN_VLR = 242,
IMEI_NOT_ACCEPTED = 243,
DIAL_MODIFIED_TO_USSD = 244, // STK Call Control
DIAL_MODIFIED_TO_SS = 245,
DIAL_MODIFIED_TO_DIAL = 246,
CDMA_LOCKED_UNTIL_POWER_CYCLE = 1000,
CDMA_DROP = 1001,
CDMA_INTERCEPT = 1002,
CDMA_REORDER = 1003,
CDMA_SO_REJECT = 1004,
CDMA_RETRY_ORDER = 1005,
CDMA_ACCESS_FAILURE = 1006,
CDMA_PREEMPTED = 1007,
CDMA_NOT_EMERGENCY = 1008, // For non-emergency number dialed during emergency
// callback mode
CDMA_ACCESS_BLOCKED = 1009, // This error will be deprecated soon,
// vendor code must make sure to map error
// code to specific error
ERROR_UNSPECIFIED = 0xffff,
};
enum DataCallFailCause : int32_t {
NONE = 0, // an integer cause code defined in TS 24.008
// section 6.1.3.1.3 or TS 24.301 Release 8+ Annex B.
// If the implementation does not have access to the exact
// cause codes, then it must return one of the
// following values, as the UI layer needs to distinguish
// these cases for error notification and potential
// retries.
OPERATOR_BARRED = 0x08, // no retry
NAS_SIGNALLING = 0x0E, // PDP_FAIL_LLC_SNDCP = 0x19,
INSUFFICIENT_RESOURCES = 0x1A,
MISSING_UKNOWN_APN = 0x1B, // no retry
UNKNOWN_PDP_ADDRESS_TYPE = 0x1C, // no retry
USER_AUTHENTICATION = 0x1D, // no retry
ACTIVATION_REJECT_GGSN = 0x1E, // no retry
ACTIVATION_REJECT_UNSPECIFIED = 0x1F,
SERVICE_OPTION_NOT_SUPPORTED = 0x20, // no retry
SERVICE_OPTION_NOT_SUBSCRIBED = 0x21, // no retry
SERVICE_OPTION_OUT_OF_ORDER = 0x22,
NSAPI_IN_USE = 0x23, // no retry
REGULAR_DEACTIVATION = 0x24, // possibly restart radio,
// based on framework config
QOS_NOT_ACCEPTED = 0x25,
NETWORK_FAILURE = 0x26,
UMTS_REACTIVATION_REQ = 0x27,
FEATURE_NOT_SUPP = 0x28,
TFT_SEMANTIC_ERROR = 0x29,
TFT_SYTAX_ERROR = 0x2A,
UNKNOWN_PDP_CONTEXT = 0x2B,
FILTER_SEMANTIC_ERROR = 0x2C,
FILTER_SYTAX_ERROR = 0x2D,
PDP_WITHOUT_ACTIVE_TFT = 0x2E,
ONLY_IPV4_ALLOWED = 0x32, // no retry
ONLY_IPV6_ALLOWED = 0x33, // no retry
ONLY_SINGLE_BEARER_ALLOWED = 0x34,
ESM_INFO_NOT_RECEIVED = 0x35,
PDN_CONN_DOES_NOT_EXIST = 0x36,
MULTI_CONN_TO_SAME_PDN_NOT_ALLOWED = 0x37,
MAX_ACTIVE_PDP_CONTEXT_REACHED = 0x41,
UNSUPPORTED_APN_IN_CURRENT_PLMN = 0x42,
INVALID_TRANSACTION_ID = 0x51,
MESSAGE_INCORRECT_SEMANTIC = 0x5F,
INVALID_MANDATORY_INFO = 0x60,
MESSAGE_TYPE_UNSUPPORTED = 0x61,
MSG_TYPE_NONCOMPATIBLE_STATE = 0x62,
UNKNOWN_INFO_ELEMENT = 0x63,
CONDITIONAL_IE_ERROR = 0x64,
MSG_AND_PROTOCOL_STATE_UNCOMPATIBLE = 0x65,
PROTOCOL_ERRORS = 0x6F, // no retry
APN_TYPE_CONFLICT = 0x70,
INVALID_PCSCF_ADDR = 0x71,
INTERNAL_CALL_PREEMPT_BY_HIGH_PRIO_APN = 0x72,
EMM_ACCESS_BARRED = 0x73,
EMERGENCY_IFACE_ONLY = 0x74,
IFACE_MISMATCH = 0x75,
COMPANION_IFACE_IN_USE = 0x76,
IP_ADDRESS_MISMATCH = 0x77,
IFACE_AND_POL_FAMILY_MISMATCH = 0x78,
EMM_ACCESS_BARRED_INFINITE_RETRY = 0x79,
AUTH_FAILURE_ON_EMERGENCY_CALL = 0x7A,
OEM_DCFAILCAUSE_1 = 0x1001,
// OEM specific error codes. To be used by OEMs when they don't want to
// reveal error code which would be replaced by PDP_FAIL_ERROR_UNSPECIFIED
// TODO(May be moved to vendor HAL extension)
OEM_DCFAILCAUSE_2 = 0x1002,
OEM_DCFAILCAUSE_3 = 0x1003,
OEM_DCFAILCAUSE_4 = 0x1004,
OEM_DCFAILCAUSE_5 = 0x1005,
OEM_DCFAILCAUSE_6 = 0x1006,
OEM_DCFAILCAUSE_7 = 0x1007,
OEM_DCFAILCAUSE_8 = 0x1008,
OEM_DCFAILCAUSE_9 = 0x1009,
OEM_DCFAILCAUSE_10 = 0x100A,
OEM_DCFAILCAUSE_11 = 0x100B,
OEM_DCFAILCAUSE_12 = 0x100C,
OEM_DCFAILCAUSE_13 = 0x100D,
OEM_DCFAILCAUSE_14 = 0x100E,
OEM_DCFAILCAUSE_15 = 0x100F,
// Not mentioned in the specification
VOICE_REGISTRATION_FAIL = -1,
DATA_REGISTRATION_FAIL = -2,
// reasons for data call drop - network/modem disconnect
SIGNAL_LOST = -3,
PREF_RADIO_TECH_CHANGED = -4, // preferred technology has changed, must retry
// with parameters appropriate for new technology
RADIO_POWER_OFF = -5, // data call was disconnected because radio was resetting,
// powered off - no retry
TETHERED_CALL_ACTIVE = -6, // data call was disconnected by modem because tethered
// mode was up on same APN/data profile - no retry until
// tethered call is off
ERROR_UNSPECIFIED = 0xffff,
};
/*
* Please note that registration state UNKNOWN is
* treated as "out of service" in the Android telephony.
* Registration state REG_DENIED must be returned if Location Update
* Reject (with cause 17 - Network Failure) is received
* repeatedly from the network, to facilitate
* "managed roaming"
*/
enum RegState : int32_t {
NOT_REG_MT_NOT_SEARCHING_OP, // Not registered, MT is not currently searching
// a new operator to register
REG_HOME, // Registered, home network
NOT_REG_MT_SEARCHING_OP, // Not registered, but MT is currently searching
// a new operator to register
REG_DENIED, // Registration denied
UNKNOWN, // Unknown
REG_ROAMING, // Registered, roaming
NOT_REG_MT_NOT_SEARCHING_OP_EM, // Same as NOT_REG_MT_NOT_SEARCHING_OP but indicates that
// emergency calls are enabled.
NOT_REG_MT_SEARCHING_OP_EM, // Same as NOT_REG_MT_SEARCHING_OP but indicates that
// emergency calls are enabled.
REG_DENIED_EM, // Same as REG_DENIED but indicates that
// emergency calls are enabled.
UNKNOWN_EM // Same as UNKNOWN but indicates that
// emergency calls are enabled.
};
enum RadioTechnology : int32_t {
UNKNOWN,
GPRS,
EDGE,
UMTS,
IS95A,
IS95B,
ONE_X_RTT,
EVDO_0,
EVDO_A,
HSDPA,
HSUPA,
HSPA,
EVDO_B,
EHRPD,
LTE,
HSPAP, // HSPA+
GSM, // Only supports voice
TD_SCDMA,
IWLAN,
LTE_CA,
};
enum DataProfile : int32_t {
DEFAULT = 0,
TETHERED = 1,
IMS = 2,
FOTA = 3,
CBS = 4,
OEM_BASE = 1000, // Start of OEM-specific profiles
INVALID = 0xFFFFFFFF,
};
enum SmsAcknowledgeFailCause : int32_t {
MEMORY_CAPAPCITY_EXCEEDED = 0xD3,
UNSPECIFIED_ERROR = 0XFF,
};
enum CallForwardInfoStatus : int32_t {
ACTIVE,
INACTIVE,
DISABLE,
ENABLE,
INTERROGATE,
REGISTRATION,
ERASURE,
};
enum ClipStatus : int32_t {
CLIP_PROVISIONED, // CLIP provisioned
CLIP_UNPROVISIONED, // CLIP not provisioned
UNKOWN, // unknown, e.g. no network etc
};
enum SmsWriteArgsStatus : int32_t {
REC_UNREAD,
REC_READ,
STO_UNSENT,
STO_SENT,
};
enum RadioBandMode : int32_t {
BAND_MODE_UNSPECIFIED, // "unspecified" (selected by baseband automatically)
BAND_MODE_EURO, // "EURO band" (GSM-900 / DCS-1800 / WCDMA-IMT-2000)
BAND_MODE_USA, // "US band"
// (GSM-850 / PCS-1900 / WCDMA-850 / WCDMA-PCS-1900)
BAND_MODE_JPN, // "JPN band" (WCDMA-800 / WCDMA-IMT-2000)
BAND_MODE_AUS, // "AUS band"
// (GSM-900 / DCS-1800 / WCDMA-850 / WCDMA-IMT-2000)
BAND_MODE_AUS_2, // "AUS band 2" (GSM-900 / DCS-1800 / WCDMA-850)
BAND_MODE_CELL_800, // "Cellular" (800-MHz Band)
BAND_MODE_PCS, // "PCS" (1900-MHz Band)
BAND_MODE_JTACS, // "Band Class 3" (JTACS Band)
BAND_MODE_KOREA_PCS, // "Band Class 4" (Korean PCS Band)
BAND_MODE_5_450M, // "Band Class 5" (450-MHz Band)
BAND_MODE_IMT2000, // "Band Class 6" (2-GMHz IMT2000 Band)
BAND_MODE_7_700M_2, // "Band Class 7" (Upper 700-MHz Band)
BAND_MODE_8_1800M, // "Band Class 8" (1800-MHz Band)
BAND_MODE_9_900M, // "Band Class 9" (900-MHz Band)
BAND_MODE_10_800M_2, // "Band Class 10" (Secondary 800-MHz Band)
BAND_MODE_EURO_PAMR_400M, // "Band Class 11" (400-MHz European PAMR Band)
BAND_MODE_AWS, // "Band Class 15" (AWS Band)
BAND_MODE_USA_2500M, // "Band Class 16" (US 2.5-GHz Band)
};
enum OperatorStatus : int32_t {
UNKNOWN,
AVAILABLE,
CURRENT,
FORBIDDEN,
};
struct RadioResponseInfo {
RadioResponseType type; // Response type
int32_t serial; // Serial number of the request
RadioError error; // Response error
};
struct AppStatus {
AppType appType;
AppState appState;
PersoSubstate persoSubstate; // applicable only if app_state == SUBSCRIPTION_PERSO
string aidPtr; // e.g., from 0xA0, 0x00 -> 0x41,
// 0x30, 0x30, 0x30
string appLabelPtr;
/* null terminated string */
int32_t pin1Replaced;
/* applicable to USIM, CSIM & ISIM */
RadioPinState pin1;
RadioPinState pin2;
int32_t pin1Replaced; // applicable to USIM, CSIM & ISIM
PinState pin1;
PinState pin2;
};
struct RadioCardStatus {
RadioCardState cardState;
RadioPinState universalPinState;
/* applicable to USIM and CSIM */
int32_t gsmUmtsSubscriptionAppIndex;
/* value < RADIO_CARD_MAX_APPS, -1 if none */
int32_t cdmaSubscriptionAppIndex;
/* value < RADIO_CARD_MAX_APPS, -1 if none */
int32_t imsSubscriptionAppIndex;
/* value < RADIO_CARD_MAX_APPS, -1 if none */
int32_t numApplications;
/* value <= RADIO_CARD_MAX_APPS */
RadioAppStatus[RadioConst:RADIO_CARD_MAX_APPS] applications;
struct CardStatus {
CardState cardState;
PinState universalPinState; // applicable to USIM and CSIM
int32_t gsmUmtsSubscriptionAppIndex; // value < RADIO_CARD_MAX_APPS, -1 if none
int32_t cdmaSubscriptionAppIndex; // value < RADIO_CARD_MAX_APPS, -1 if none
int32_t imsSubscriptionAppIndex; // value < RADIO_CARD_MAX_APPS, -1 if none
int32_t numApplications; // value <= RADIO_CARD_MAX_APPS
AppStatus[RadioConst:RADIO_CARD_MAX_APPS] applications;
};
/*
* User-to-User Signaling Information defined in 3GPP 23.087 v8.0
* This data is passed in RADIO_ExtensionRecord and rec contains this
* structure when type is RADIO_UUS_INFO_EXT_REC
*/
struct UusInfo {
UusType uusType; // UUS Type
UusDcs uusDcs; // UUS Data Coding Scheme
int32_t uusLength; // Length of UUS Data
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 GwSignalStrength {
uint32_t signalStrength; // Valid values are (0-31, 99) as defined in
// TS 27.007 8.5
uint32_t bitErrorRate; // bit error rate (0-7, 99) as defined in TS 27.007 8.5
};
struct CdmaSignalStrength {
uint32_t dbm; // This value is the actual RSSI
// value multiplied by -1. Example: If the
// actual RSSI is -75, then this response value will
// be 75.
uint32_t ecio; // This value is the actual
// Ec/Io multiplied by -10. Example: If the
// actual Ec/Io is -12.5 dB, then this response value
// will be 125.
};
struct EvdoSignalStrength {
uint32_t dbm; // This value is the actual
// RSSI value multiplied by -1.
// Example: If the actual RSSI is -75,
// then this response value will be 75.
uint32_t ecio; // This value is the actual
// Ec/Io multiplied by -10. Example: If the
// actual Ec/Io is -12.5 dB, then this response value
// will be 125.
uint32_t signalNoiseRatio; // Valid values are 0-8. 8 is the highest signal to
// noise ratio.
};
struct LteSignalStrength {
uint32_t signalStrength; // Valid values are (0-31, 99) as defined in
// TS 27.007 8.5
uint32_t rsrp; // The current Reference Signal Receive Power in dBm
// multipled by -1.
// Range: 44 to 140 dBm
// INT_MAX: 0x7FFFFFFF denotes invalid value.
// Reference: 3GPP TS 36.133 9.1.4
uint32_t rsrq; // The current Reference Signal Receive Quality in dB
// multiplied by -1.
// Range: 20 to 3 dB.
// INT_MAX: 0x7FFFFFFF denotes invalid value.
// Reference: 3GPP TS 36.133 9.1.7
int32_t rssnr; // The current reference signal signal-to-noise ratio in
// 0.1 dB units.
// Range: -200 to +300 (-200 = -20.0 dB, +300 = 30dB).
// INT_MAX : 0x7FFFFFFF denotes invalid value.
// Reference: 3GPP TS 36.101 8.1.1
uint32_t cqi; // The current Channel Quality Indicator.
// Range: 0 to 15.
// INT_MAX : 0x7FFFFFFF denotes invalid value.
// Reference: 3GPP TS 36.101 9.2, 9.3, A.4
uint32_t timingAdvance; // timing advance in micro seconds for a one way trip
// from cell to device.
// Approximate distance is calculated using
// 300m/us * timingAdvance.
// Range: 0 to 0x7FFFFFFE
// INT_MAX : 0x7FFFFFFF denotes invalid value.
// Reference: 3GPP 36.321 section 6.1.3.5
// also: http://www.cellular-planningoptimization.com/2010/02/timing-advance-with-calculation.html
};
struct TdScdmaSignalStrength {
uint32_t rscp; // The Received Signal Code Power in dBm multipled by -1.
// Range : 25 to 120
// INT_MAX: 0x7FFFFFFF denotes invalid value.
// Reference: 3GPP TS 25.123, section 9.1.1.1
};
struct SignalStrength {
GwSignalStrength gw;
CdmaSignalStrength cdma;
EvdoSignalStrength evdo;
LteSignalStrength lte;
TdScdmaSignalStrength tdScdma;
};
struct SendSmsResult {
int32_t messageRef; // TP-Message-Reference for GSM, and BearerData MessageId
// for CDMA (See 3GPP2 C.S0015-B, v2.0, table 4.5-1)
string ackPDU; // or empty string if n/a
int32_t errorCode; // See 3GPP 27.005, 3.2.5 for GSM/UMTS,
// 3GPP2 N.S0005 (IS-41C) Table 171 for CDMA,
// -1 if unknown or not applicable
};
struct SetupDataCallResult {
int32_t status; // A RadioDataCallFailCause, 0 which is
// RadioDataCallFailCause:NONE if no error
int32_t suggestedRetryTime; // If status != 0, this fields indicates the suggested
// retry back-off timer value RIL wants to override the
// one pre-configured in FW.
// The unit is miliseconds.
// The value < 0 means no value is suggested.
// The value 0 means retry must be done ASAP.
// The value of INT_MAX(0x7fffffff) means no retry.
int32_t cid; // Context ID, uniquely identifies this call
int32_t active; // 0=inactive, 1=active/physical link down,
// 2=active/physical link up */
string type; // One of the PDP_type values in TS 27.007 section 10.1.1.
// For example, "IP", "IPV6", "IPV4V6", or "PPP". If
// status is
// RadioDataCallFailCause:ONLY_SINGLE_BEARER_ALLOWED this
// is the type supported such as "IP" or "IPV6"
string ifname; // The network interface name
string addresses; // A space-delimited list of addresses with optional "/"
// prefix length, e.g., "192.0.1.3" or
// "192.0.1.11/16 2001:db8::1/64".
// Typically 1 IPv4 or 1 IPv6 or
// one of each. If the prefix length is absent the
// addresses are assumed to be point to point with IPv4
// having a prefix length of 32 and IPv6 128.
string dnses; // A space-delimited list of DNS server addresses,
// e.g., "192.0.1.3" or "192.0.1.11 2001:db8::1".
// Empty if no dns server addresses returned.
string gateways; // A space-delimited list of default gateway addresses,
// e.g., "192.0.1.3" or "192.0.1.11 2001:db8::1".
// When empty, the addresses represent
// point to point connections.
string pcscf; // the Proxy Call State Control Function address
// via PCO(Protocol Configuration Option) for IMS client.
int32_t mtu; // MTU received from network
// Value <= 0 means network has either not sent a
// value or sent an invalid value
};
struct IccIo {
int32_t command; // one of the commands listed for TS 27.007 +CRSM
int32_t fileid; // EF id
string path; // "pathid" from TS 27.007 +CRSM command.
// Path is in hex asciii format eg "7f205f70"
// Path must always be provided.
int32_t p1; // Values of p1, p2 & p3 defined as per 3GPP TS 51.011
int32_t p2;
int32_t p3;
string data; // information to be written to the SIM
string pin2;
string aidPtr; // AID value, See ETSI 102.221 8.1 and 101.220 4, empty
// string if no value.
};
struct IccIoResult {
int32_t sw1;
int32_t sw2;
string simResponse; // In hex string format ([a-fA-F0-9]*), except for
// SIM_AUTHENTICATION response for which it is in
// Base64 format, see 3GPP TS 31.102 7.1.2
};
struct VoiceRegStateResult {
RegState regState;
int32_t lac; // LAC if registered on a GSM/WCDMA system or
// -1 if not.Valid LAC are 0x0000 - 0xffff
int32_t cid; // CID. if registered on a * GSM/WCDMA or -1 if not
// Valid CID are 0x00000000 - 0xffffffff
// In GSM, CID is Cell ID (see TS 27.007) in 16 bits
// In UMTS, CID is UMTS Cell Identity (see TS 25.331)
// in 28 bits
int32_t rat; // indicates the available voice radio technology,
// valid values as defined by RIL_RadioTechnology.
int32_t baseStationId; // Base Station ID. if registered on a CDMA
// system or -1 if not. Base Station ID in decimal format
int32_t baseStationLatitude; // Base Station latitude. if registered on a
// CDMA system or -1 if not. Base Station latitude is a
// decimal number as specified in 3GPP2 C.S0005-A v6.0.
// It is represented in units of 0.25 seconds and ranges
// from -1296000 to 1296000, both values inclusive
// (corresponding to a range of -90 to +90 degrees).
int32_t baseStationLongitude; // Base Station longitude. if registered on a
// CDMA system or -1 if not. Base Station
// longitude is a decimal number as specified in
// 3GPP2 C.S0005-A v6.0. It is represented in
// units of 0.25 seconds and ranges from -2592000
// to 2592000, both values inclusive (corresponding
// to a range of -180 to +180 degrees).
bool cssSupported; // concurrent services support indicator. if
// registered on a CDMA system.
// false - Concurrent services not supported,
// true - Concurrent services supported
int32_t systemId; // System ID. if registered on a CDMA system or
// -1 if not. Valid System ID are 0 - 32767
int32_t networkId; // Network ID. if registered on a CDMA system or
// -1 if not. Valid System ID are 0 - 65535
int32_t roamingIndicator; // TSB-58 Roaming Indicator if registered
// on a CDMA or EVDO system or -1 if not.
// Valid values are 0-255.
int32_t systemIsInPrl; // indicates whether the current system is in the
// PRL if registered on a CDMA or EVDO system or -1 if
// not. 0=not in the PRL, 1=in the PRL
int32_t defaultRoamingIndicator; // default Roaming Indicator from the PRL,
// if registered on a CDMA or EVDO system or -1 if not.
// Valid values are 0-255.
int32_t reasonForDenial; // reasonForDenial if registration state is 3
// (Registration denied) this is an enumerated reason why
// registration was denied. See 3GPP TS 24.008,
// 10.5.3.6 and Annex G.
// 0 - General
// 1 - Authentication Failure
// 2 - IMSI unknown in HLR
// 3 - Illegal MS
// 4 - Illegal ME
// 5 - PLMN not allowed
// 6 - Location area not allowed
// 7 - Roaming not allowed
// 8 - No Suitable Cells in this Location Area
// 9 - Network failure
// 10 - Persistent location update reject
// 11 - PLMN not allowed
// 12 - Location area not allowed
// 13 - Roaming not allowed in this Location Area
// 15 - No Suitable Cells in this Location Area
// 17 - Network Failure
// 20 - MAC Failure
// 21 - Sync Failure
// 22 - Congestion
// 23 - GSM Authentication unacceptable
// 25 - Not Authorized for this CSG
// 32 - Service option not supported
// 33 - Requested service option not subscribed
// 34 - Service option temporarily out of order
// 38 - Call cannot be identified
// 48-63 - Retry upon entry into a new cell
// 95 - Semantically incorrect message
// 96 - Invalid mandatory information
// 97 - Message type non-existent or not implemented
// 98 - Message type not compatible with protocol state
// 99 - Information element non-existent or not implemented
// 100 - Conditional IE error
// 101 - Message not compatible with protocol state
// 111 - Protocol error, unspecified
int32_t psc; // Primary Scrambling Code of the current
// cell as described in TS 25.331, in hexadecimal
// format, or -1 if unknown or not registered
// to a UMTS network.
};
struct DataRegStateResult {
RegState regState; // Valid reg states are NOT_REG_MT_NOT_SEARCHING_OP,
// REG_HOME, NOT_REG_MT_SEARCHING_OP, REG_DENIED,
// UNKNOWN, REG_ROAMING defined in RegState
int32_t lac; // LAC if registered or -1 if not
// valid LAC are 0x0000 - 0xffff
int32_t cid; // CID if registered or -1 if not
// valid CID are 0x00000000 - 0x0fffffff
int32_t rat; // indicates the available data radio technology,
// valid values as defined by RIL_RadioTechnology.
int32_t reasonDataDenied; // if registration state is 3 (Registration
// denied) this is an enumerated reason why
// registration was denied. See 3GPP TS 24.008,
// Annex G.6 "Additonal cause codes for GMM".
// 7 == GPRS services not allowed
// 8 == GPRS services and non-GPRS services not allowed
// 9 == MS identity cannot be derived by the network
// 10 == Implicitly detached
// 14 == GPRS services not allowed in this PLMN
// 16 == MSC temporarily not reachable
// 40 == No PDP context activated
int32_t maxDataCalls; // The maximum number of simultaneous Data Calls that
// must be established using requestSetupDataCall().
// The values below are optional LTE location information in decimal.
// If a value is unknown that value must be -1.
int32_t tac; // a 16-bit Tracking Area Code.
int32_t phyCid; // a 0-503 Physical Cell Identifier.
int32_t eci; // a 28-bit E-UTRAN Cell Identifier.
int32_t csgid; // a 27-bit Closed Subscriber Group Identity.
int32_t tadv; // a 6-bit timing advance value.
};
// See also com.android.internal.telephony.gsm.CallForwardInfo
struct CallForwardInfo {
CallForwardInfoStatus status; // For queryCallForwardStatus()
// status must be ACTIVE, INACTIVE
// For setCallForward():
// status must be
// DISABLE, ENABLE, INTERROGATE, REGISTRATION, ERASURE
int32_t reason; // from TS 27.007 7.11 "reason"
int32_t serviceClass; // From 27.007 +CCFC/+CLCK "class"
// See table for Android mapping from
// MMI service code
// 0 means user doesnt input class
int32_t toa; // "type" from TS 27.007 7.11
string number; // "number" from TS 27.007 7.11.
int32_t timeSeconds;
};
// Response struct used in responseQueryAvailableNetworks
struct OperatorInfo {
string alphaLong; // long alpha ONS or EONS
string alphaShort; // short alpha ONS or EONS
string operatorNumeric; // 5 or 6 digit numeric code (MCC + MNC)
OperatorStatus status;
};
struct SmsWriteArgs {
SmsWriteArgsStatus status; // Status of message. See TS 27.005 3.1
string pdu; // PDU of message to write, as an ASCII hex string less
// the SMSC address, the TP-layer length is strlen(pdu)/2.
string smsc; // SMSC address in GSM BCD format prefixed by a length
// byte (as expected by TS 27.005) or NULL for default
// SMSC
};