diff --git a/radio/1.4/IRadio.hal b/radio/1.4/IRadio.hal index b0810a4422..ba0dafa235 100644 --- a/radio/1.4/IRadio.hal +++ b/radio/1.4/IRadio.hal @@ -103,14 +103,14 @@ interface IRadio extends @1.3::IRadio { oneway setDataProfile_1_4(int32_t serial, vec profiles); /** - * Initiate emergency voice call, with zero or more emergency service category(s) and routing - * information for handling the call. Android uses this request to make its emergency call - * instead of using @1.0::IRadio.dial if the 'address' in the 'dialInfo' field is identified - * as an emergency number by Android. + * Initiate emergency voice call, with zero or more emergency service category(s), zero or + * more emergency Uniform Resource Names (URN), and routing information for handling the call. + * Android uses this request to make its emergency call instead of using @1.0::IRadio.dial + * if the 'address' in the 'dialInfo' field is identified as an emergency number by Android. * - * In multi-sim senario, this radio request is sent through the IRadio service that serves - * the subscription the emergency number belongs to, no matter of the PUK/PIN state of the - * subscription and the service state. + * In multi-sim scenario, if the emergency number is from a specific subscription, this radio + * request is sent through the IRadio service that serves the subscription, no matter of the + * PUK/PIN state of the subscription and the service state of the radio. * * Some countries or carriers require some emergency numbers that must be handled with normal * call routing or emergency routing. If the 'routing' field is specified as @@ -120,22 +120,29 @@ interface IRadio extends @1.3::IRadio { * @1.4::EmergencyNumberRouting#UNKNOWN, Android does not know how to handle the call. * * If the dialed emergency number does not have a specified emergency service category, the - * 'categories' field is set to @1.4::EmergencyServiceCategory#UNSPECIFIED; if the underlying - * technology used to request emergency services does not support the emergency service - * category, the categories may be ignored. + * 'categories' field is set to @1.4::EmergencyServiceCategory#UNSPECIFIED; if the dialed + * emergency number does not have specified emergency Uniform Resource Names, the 'urns' field + * is set to an empty list. If the underlying technology used to request emergency services + * does not support the emergency service category or emergency uniform resource names, the + * field 'categories' or 'urns' may be ignored. * - * Reference: 3gpp TS 22.101, Section 10 - Emergency Calls + * Reference: 3gpp 22.101, Section 10 - Emergency Calls; + * 3gpp 23.167, Section 6 - Functional description; + * 3gpp 24.503, Section 5.1.6.8.1 - General; + * RFC 5031 * * @param serial Serial number of request. * @param dialInfo the same @1.0::Dial information used by @1.0::IRadio.dial. * @param categories bitfield<@1.4::EmergencyServiceCategory> the Emergency Service Category(s) * of the call. + * @param urns the emergency Uniform Resource Names (URN) * @param routing @1.4::EmergencyCallRouting the emergency call routing information. * * Response function is IRadioResponse.emergencyDialResponse() */ oneway emergencyDial(int32_t serial, Dial dialInfo, - bitfield categories, EmergencyCallRouting routing); + bitfield categories, vec urns, + EmergencyCallRouting routing); /** * Starts a network scan diff --git a/radio/1.4/IRadioIndication.hal b/radio/1.4/IRadioIndication.hal index a58d19c784..58b7b70d34 100644 --- a/radio/1.4/IRadioIndication.hal +++ b/radio/1.4/IRadioIndication.hal @@ -27,22 +27,24 @@ interface IRadioIndication extends @1.3::IRadioIndication { * Report the current list of emergency numbers * * Each emergency number (@1.4::EmergencyNumber) in the emergency number list contains a - * dialing number, zero or more service category(s), mobile country code, mobile network code, - * and source(s) that indicate where it comes from. + * dialing number, zero or more service category(s), zero or more emergency uniform resource + * names, mobile country code, mobile network code, and source(s) that indicate where it comes + * from. * * Radio must report all the valid emergency numbers with known mobile country code, mobile - * network 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.4::EmergencyNumber - * entries. Please refer the documentation of @1.4::EmergencyNumber to construct each - * emergency number to report. + * network code, emergency service categories, and emergency uniform resource names 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.4::EmergencyNumber entries. Please refer the documentation of + * @1.4::EmergencyNumber to construct each emergency number to report. * * 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 22.101, Section 10 - Emergency Calls + * Reference: 3gpp 22.101, Section 10 - Emergency Calls; + * 3gpp 24.008, Section 9.2.13.4 - Emergency Number List * * @param type Type of radio indication * @param emergencyNumberList Current list of emergency numbers known to radio. diff --git a/radio/1.4/types.hal b/radio/1.4/types.hal index 74613afc19..38ee8e5e04 100644 --- a/radio/1.4/types.hal +++ b/radio/1.4/types.hal @@ -52,20 +52,27 @@ enum AccessNetwork : @1.2::AccessNetwork { }; /** - * Emergency number contains information of number, one or more service category(s), mobile country - * code (mcc), mobile network country (mnc) and source(s) that indicate where it comes from. + * Emergency number contains information of number, one or more service category(s), zero or more + * emergency uniform resource names, mobile country code (mcc), mobile network country (mnc) 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. + * If the emergency number is associated with country, field ‘mcc’ must be provided, otherwise + * field ‘mcc’ must be an empty string. If the emergency number is associated with network + * operator, field ‘mcc’ and 'mnc' must be provided, otherwise field ‘mnc’ must be an empty + * string. If the emergency number is specified with emergency service category(s), field + * 'categories' must be provided, otherwise field 'categories' must be + * @1.4::EmergencyServiceCategories::UNSPECIFIED. If the emergency number is specified with + * emergency uniform resource names (URN), field 'urns' must be provided, otherwise field 'urns' + * must be an empty list. * - * If the source of the emergency number is associated with network operator, field ‘mcc’ and - * 'mnc' must be provided; otherwise the field ‘mnc’ must be an empty string. + * A unique EmergencyNumber has a unique combination of ‘number’, ‘mcc’, 'mnc', 'categories' and + * 'urns' fields. Multiple @1.4::EmergencyNumberSource should be merged into one 'sources' field + * via bitwise-OR combination for the same EmergencyNumber. * - * A unique EmergencyNumber has a unique combination of ‘number’, ‘mcc’, 'mnc' and 'categories' - * fields. Multiple @1.4::EmergencyNumberSource should be merged into the bitfield for the same - * EmergencyNumber. - * - * Reference: 3GPP TS 22.101 version 9.1.0 Release 9 + * Reference: 3gpp 22.101, Section 10 - Emergency Calls; + * 3gpp 23.167, Section 6 - Functional description; + * 3gpp 24.503, Section 5.1.6.8.1 - General; + * RFC 5031 */ struct EmergencyNumber{ /** @@ -86,6 +93,10 @@ struct EmergencyNumber{ * the value of each bit. */ bitfield categories; + /** + * The list of emergency Uniform Resource Names (URN). + */ + vec urns; /** * The bitfield of @1.4::EmergencyNumberSource(s). See @1.4::EmergencyNumberSource for the * value of each bit.