Merge "Emergency Function HAL (continued)"

am: f461463b39

Change-Id: I6c0105193a38b477fdfa7e8b88343bd5b8bb2f14
This commit is contained in:
Shuo Qian
2018-10-02 19:21:20 -07:00
committed by android-build-merger
5 changed files with 76 additions and 77 deletions

View File

@@ -22,6 +22,7 @@ hidl_interface {
"AccessNetwork",
"DataRegStateResult",
"EmergencyNumber",
"EmergencyNumberSource",
"EmergencyServiceCategory",
"LteVopsInfo",
],

View File

@@ -86,36 +86,19 @@ interface IRadio extends @1.2::IRadio {
bool isRoaming, DataRequestReason reason, vec<string> addresses, vec<string> dnses);
/**
* Request the current emergency number list.
*
* Each emergency number (@1.3::EmergencyNumber) in the emergency number list contains a
* dialing number, one or more service category(s), and mobile country code.
*
* Radio must collect all sources of the emergency number to build the response.
* For example, network operator signals, sim card information, modem configuration, OEM
* configuration (for example, OEM system properties), always-available emergency numbers and
* sim-absence emergency numbers, etc.
*
* 112, 911 are always available. Besides, 000, 08, 110, 999, 118 and 119 should be available
* when sim is not present.
*
* Please refer the document of @1.3::EmergencyNumber to construct each emergency number to be
* returned.
*
* Reference: 3GPP TS 22.101 version 9.1.0 Release 9
*
* @param serial Serial number of request.
*
* Response function is IRadioResponse.getCurrentEmergencyNumberListResponse()
*/
oneway getCurrentEmergencyNumberList(int32_t serial);
/**
* Initiate emergency voice call, with one or more emergency service category(s).
* Initiate emergency voice call, with zero or more emergency service category(s).
*
* Note this API is the same as IRadio.dial except using the
* @1.3::EmergencyServiceCategory as the input param.
*
* If the dialed emergency number does not have a specified emergency service category, the
* 'categories' field is set to @1.3::EmergencyServiceCategory#UNSPECIFIED; iff either the
* 'categories' field is set to @1.3::EmergencyServiceCategory#UNSPECIFIED or the underlying
* technology used to request emergency services does not support the emergency service
* category, the interpretation of the categories is defined by implementation.
*
* Reference: 3gpp TS 22.101, Section 10 - Emergency Calls
*
* @param serial Serial number of request.
* @param dialInfo the same @1.0::Dial information used by @1.0::IRadio.dial.
* @param categories bitfield<@1.3::EmergencyServiceCategory> the Emergency Service Category(s)

View File

@@ -24,29 +24,28 @@ import @1.2::IRadioIndication;
*/
interface IRadioIndication extends @1.2::IRadioIndication {
/**
* Indicate and update all of the current Emergency Number information known to the radio,
* when any of the Emergency Number sources (For example, network operator signals, sim card
* information, modem configuration, OEM configuration or system properties, etc.) change the
* list of emergency numbers.
* Report the current list of emergency numbers
*
* 112, 911 are always available. Besides, 000, 08, 110, 999, 118 and 119 should be available
* when sim is not present.
* Each emergency number (@1.3::EmergencyNumber) in the emergency number list contains a
* dialing number, zero or more service category(s), mobile country code, and source(s) that
* indicate where it comes from.
*
* This should be the same information as returned by getCurrentEmergencyNumberList() in
* 1.3::IRadio.
* Radio must report all the valid emergency numbers with known mobile country code and
* emergency service categories from all available sources including network signaling, sim,
* modem/oem configuration, and default configuration (112 and 911 must be always available;
* additionally, 000, 08, 110, 999, 118 and 119 must be available when sim is not present).
* Radio shall not report emergency numbers that are invalid in the current locale. The
* reported emergency number list must not have duplicate @1.3::EmergencyNumber entries. Please
* refer the documentation of @1.3::EmergencyNumber to construct each emergency number to
* report.
*
* The indicated list of emergency numbers should not have duplicate @1.3::EmergencyNumber.
* Please refer the document of @1.3::EmergencyNumber to construct each emergency number to be
* returned.
* Radio must report the complete list of emergency numbers whenever the emergency numbers in
* the list are changed or whenever the client and the radio server are connected.
*
* Reference: 3GPP TS 22.101 version 9.1.0 Release 9
* Reference: 3gpp 22.101, Section 10 - Emergency Calls
*
* @param type Type of radio indication
* @param emergencyNumberList List of current Emergency Number information
* (@1.3::EmergencyNumber) known to radio. Radio must collect all sources of the emergency
* numbers to build the indication. For example, network operator signals, sim card
* information, modem configuration, OEM configuration (for example, OEM specific system
* properties), always-available emergency numbers and sim-absence emergency numbers, etc.
* @param emergencyNumberList Current list of emergency numbers known to radio.
*/
oneway currentEmergencyNumberList(RadioIndicationType type,
vec<EmergencyNumber> emergencyNumberList);

View File

@@ -23,30 +23,6 @@ import @1.2::IRadioResponse;
* Interface declaring response functions to solicited radio requests.
*/
interface IRadioResponse extends @1.2::IRadioResponse {
/**
* @param info Response info struct containing response type, serial no. and error
* @param emergencyNumberList List of current Emergency Number information known to radio.
*
* Radio must collect all sources of the emergency number to build the response. For example,
* network operator signals, sim card information, modem configuration, OEM configuration (for
* example, OEM system properties), always-available emergency numbers and sim-absence
* emergency numbers, etc.
*
* The returned list of emergency numbers must not have duplicate @1.3::EmergencyNumber. Please
* refer the document of @1.3::EmergencyNumber to construct each emergency number to be
* returned.
*
* Reference: 3GPP TS 22.101 version 9.1.0 Release 9
*
* Valid errors returned:
* RadioError:NONE
* RadioError:RADIO_NOT_AVAILABLE
* RadioError:NO_MEMORY
* RadioError:MODEM_ERR
*/
oneway getCurrentEmergencyNumberListResponse(RadioResponseInfo info,
vec<EmergencyNumber> emergencyNumberList);
/**
* @param info Response info struct containing response type, serial no. and error
*

View File

@@ -29,14 +29,14 @@ enum AccessNetwork : @1.2::AccessNetwork {
};
/**
* Emergency number contains information of number, one or more service category(s), and mobile
* country code (mcc).
* Emergency number contains information of number, one or more service category(s), mobile country
* code (mcc), and source(s) that indicate where it comes from.
*
* If the source of the emergency number is associated with country, field mcc must be
* provided; otherwise the field mcc must be an empty string.
*
* A unique EmergencyNumber has a unique combination of number and mcc fields.
* Multiple @1.3::EmergencyServiceCategory should be merged into the bitfield for the same
* A unique EmergencyNumber has a unique combination of number, mcc and 'categories' fields.
* Multiple @1.3::EmergencyNumberSource should be merged into the bitfield for the same
* EmergencyNumber.
*
* Reference: 3GPP TS 22.101 version 9.1.0 Release 9
@@ -56,6 +56,11 @@ struct EmergencyNumber{
* the value of each bit.
*/
bitfield<EmergencyServiceCategory> categories;
/**
* The bitfield of @1.3::EmergencyNumberSource(s). See @1.3::EmergencyNumberSource for the
* value of each bit.
*/
bitfield<EmergencyNumberSource> sources;
};
/**
@@ -69,20 +74,55 @@ struct EmergencyNumber{
* - Manually Initiated eCall (MIeC);
* - Automatically Initiated eCall (AIeC);
*
* Type GENERIC (General emergency call, all categories) is considered to use if the reported type
* is not any of the other specific types.
* Category UNSPECIFIED (General emergency call, all categories) indicates that no specific
* services are associated with this emergency number.
*
* Reference: 3GPP TS 22.101 version 9.1.0 Release 9
* Reference: 3gpp 22.101, Section 10 - Emergency Calls
*/
enum EmergencyServiceCategory : int32_t {
GENERIC = 0, // General emergency call, all categories
/**
* General emergency call, all categories
*/
UNSPECIFIED = 0,
POLICE = 1 << 0,
AMBULANCE = 1 << 1,
FIRE_BRIGADE = 1 << 2,
MARINE_GUARD = 1 << 3,
MOUNTAIN_RESCUE = 1 << 4,
MIEC = 1 << 5, // Manually Initiated eCall (MIeC)
AIEC = 1 << 6, // Automatically Initiated eCall (AIeC)
/**
* Manually Initiated eCall (MIeC)
*/
MIEC = 1 << 5,
/**
* Automatically Initiated eCall (AIeC)
*/
AIEC = 1 << 6,
};
/**
* The source to tell where the corresponding @1.3::EmergencyNumber comes from.
*
* Reference: 3gpp 22.101, Section 10 - Emergency Calls
*/
enum EmergencyNumberSource : int32_t {
/**
* Indicates the number is from the network signal.
*/
NETWORK_SIGNALING = 1 << 0,
/**
* Indicates the number is from the sim card.
*/
SIM = 1 << 1,
/**
* Indicates the number is from the modem config.
*/
MODEM_CONFIG = 1 << 2,
/**
* Indicates the number is available as default. Per the reference, 112, 911 must always be
* available; additionally, 000, 08, 110, 999, 118 and 119 must be available when sim is not
* present.
*/
DEFAULT = 1 << 3,
};
/**