# Cell broadcast

**Detailed Description**

This section contains APIs related to configure, activate and receive 3GPP ETWS/CMAS cell broadcast messages.

- *group* Telematics\_cellbroadcast

    - Typedefs

- using RequestFiltersResponseCallback = std::function&lt;void(std::vector&lt;CellBroadcastFilter&gt; filters, [telux](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6commonE)::[ErrorCode](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6common9ErrorCodeE) error)&gt;

    - This function is called with the response to requestMessageIdFilters API.

The callback can be invoked from multiple different threads. The implementation should be thread safe.

- Param filters:

    - **[in]** List of broadcast filters [CellBroadcastFilter](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00660)

- Param error:

    - **[in]** Return code which indicates whether the operation succeeded or not ErrorCode

- using RequestActivationStatusResponseCallback = std::function&lt;void(bool isActivated, [telux](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6commonE)::[ErrorCode](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6common9ErrorCodeE) error)&gt;

    - This function is called with the response to requestActivationStatus API.

The callback can be invoked from multiple different threads. The implementation should be thread safe.

- Param isActivated:

    - **[in]** If true then filters are activated else filters are deactivated

- Param error:

    - **[in]** Return code which indicates whether the operation succeeded or not ErrorCode

Enums

- enum GeographicalScope

    - Defines geographical scope of cell broadcast.

*Values:*

- enumerator CELL\_WIDE\_IMMEDIATE

    - Cell wide geographical scope with immediate display

- enumerator PLMN\_WIDE

    - PLMN wide geographical scope

- enumerator LA\_WIDE

    - 

- enumerator CELL\_WIDE

    - Location / Service/ Tracking area wide geographical scope (GSM/UMTS/E-UTRAN/NG-RAN). Cell wide geographical scope

- enum MessagePriority

    - Defines priority for cell broadcast message.

*Values:*

- enumerator UNKNOWN

    - Unknown message priority

- enumerator NORMAL

    - Normal message priority

- enumerator EMERGENCY

    - Emergency message priority

- enum MessageType

    - Defines message type for cell broadcast message.

*Values:*

- enumerator UNKNOWN

    - Unknown message type

- enumerator ETWS

    - Earthquake and Tsunami Warning System

- enumerator CMAS

    - Commercial Mobile Alert System

- enum EtwsWarningType

    - Defines warning type for ETWS cell broadcast message.

*Values:*

- enumerator UNKNOWN

    - Unknown ETWS warning type

- enumerator EARTHQUAKE

    - ETWS warning type for earthquake

- enumerator TSUNAMI

    - ETWS warning type for tsunami

- enumerator EARTHQUAKE\_AND\_TSUNAMI

    - ETWS warning type for earthquake and tsunami

- enumerator TEST\_MESSAGE

    - ETWS warning type for test messages

- enumerator OTHER\_EMERGENCY

    - ETWS warning type for other emergency types

- enum CmasMessageClass

    - Defines message class for CMAS cell broadcast message.

*Values:*

- enumerator UNKNOWN

    - CMAS category for warning types that are reserved for future extension

- enumerator PRESIDENTIAL\_LEVEL\_ALERT

    - Presidential-level alert (Korean Public Alert System Class 0 message)

- enumerator EXTREME\_THREAT

    - Extreme threat to life and property (Korean Public Alert System Class 1 message)

- enumerator SEVERE\_THREAT

    - Severe threat to life and property (Korean Public Alert System Class 1 message).

- enumerator CHILD\_ABDUCTION\_EMERGENCY

    - Child abduction emergency (AMBER Alert)

- enumerator REQUIRED\_MONTHLY\_TEST

    - CMAS test message

- enumerator CMAS\_EXERCISE

    - CMAS exercise

- enumerator OPERATOR\_DEFINED\_USE

    - CMAS category for operator defined use

- enum CmasSeverity

    - Defines severity type for CMAS cell broadcast message.

*Values:*

- enumerator UNKNOWN

    - CMAS alert severity is unknown. The severity is available for all GSM/UMTS alerts except for the Presidential-level alert class (Korean Public Alert System Class 0).

- enumerator EXTREME

    - Extraordinary threat to life or property

- enumerator SEVERE

    - Significant threat to life or property

- enum CmasUrgency

    - Defines urgency type for CMAS cell broadcast message.

*Values:*

- enumerator UNKNOWN

    - CMAS alert urgency is unknown. The urgency is available for all GSM/UMTS alerts except for the Presidential-level alert class (Korean Public Alert System Class 0).

- enumerator IMMEDIATE

    - Responsive action should be taken immediately

- enumerator EXPECTED

    - Responsive action should be taken within the next hour

- enum CmasCertainty

    - Defines certainty type for CMAS cell broadcast message.

*Values:*

- enumerator UNKNOWN

    - CMAS alert certainty is unknown. The certainty is available for all GSM/UMTS alerts except for the Presidential-level alert class (Korean Public Alert System Class 0).

- enumerator OBSERVED

    - Determined to have occurred or to be ongoing.

- enumerator LIKELY

    - Likely (probability &gt; ~50%)

- enum GeometryType

    - Defines geometry type specified in wireless emergency alert.

*Values:*

- enumerator UNKNOWN

    - Unknown geometry type

- enumerator POLYGON

    - [Polygon](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00662) geometry type

- enumerator CIRCLE

    - [Circle](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00663) geometry type

- struct CellBroadcastFilter

    - Defines cellbroadcast message filter. Refer spec 3GPP TS 23.041 9.4.1.2.2 for message identifier. Eg: If user want to receive from 0x1112 to 0x1116 then, startMessageId is 0x1112 and endMessageId is 0x1116. If user want to receive only 0x1112, then both startMessageId and endMessageId is 0x1112.

Public Members

- int startMessageId

    - Intended to receive start from which MessageType

- int endMessageId

    - Intended to receive upto which MessageType

- struct Point

    - [Point](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00661) represented by latitude and longitude.

Public Members

- double latitude

    - 

- double longitude

    -

- class Polygon

    - This class represents a simple polygon with different points.

Public Functions

- Polygon(std::vector&lt;[Point](https://docs.qualcomm.com/doc/80-PF458-2/topic/struct_a00661.html#_CPPv4N5telux3tel5PointE)&gt; vertices)

    - [Polygon](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00662) constructor.

- Parameters:

    - **vertices** – **[in]** List of [telux::tel::Point](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00661)

- std::vector&lt;[Point](https://docs.qualcomm.com/doc/80-PF458-2/topic/struct_a00661.html#_CPPv4N5telux3tel5PointE)&gt; getVertices()

    - Get vertices of polygon.

- Returns:

    - List of [telux::tel::Point](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00661).

Private Members

- std::vector&lt;[Point](https://docs.qualcomm.com/doc/80-PF458-2/topic/struct_a00661.html#_CPPv4N5telux3tel5PointE)&gt; vertices\_

    -

- class Circle

    - This class represents a geometry represented as simple circle.

Public Functions

- Circle([Point](https://docs.qualcomm.com/doc/80-PF458-2/topic/struct_a00661.html#_CPPv4N5telux3tel5PointE) center, double radius)

    - [Circle](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00663) constructor.

- Parameters:

    - - **center** – **[in]** Center of circle represented by [telux::tel::Point](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00661)
- **radius** – **[in]** Radius of circle in meters

- [Point](https://docs.qualcomm.com/doc/80-PF458-2/topic/struct_a00661.html#_CPPv4N5telux3tel5PointE) getCenter()

    - Get center point of circle.

- Returns:

    - Center of circle.

- double getRadius()

    - Get radius of circle.

- Returns:

    - Radius of circle.

Private Members

- [Point](https://docs.qualcomm.com/doc/80-PF458-2/topic/struct_a00661.html#_CPPv4N5telux3tel5PointE) center\_

    - 

- double radius\_

    -

- class Geometry

    - This class represents warning area geometry to perform geofencing on alert.

Public Functions

- Geometry(std::shared\_ptr&lt;[Polygon](https://docs.qualcomm.com/doc/80-PF458-2/topic/class_a00662.html#_CPPv4N5telux3tel7PolygonE)&gt; polygon)

    - [Geometry](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00664) constructor.

- Parameters:

    - **polygon** – **[in]** [Polygon](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00662)

- Geometry(std::shared\_ptr&lt;[Circle](https://docs.qualcomm.com/doc/80-PF458-2/topic/class_a00663.html#_CPPv4N5telux3tel6CircleE)&gt; circle)

    - [Geometry](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00664) constructor.

- Parameters:

    - **circle** – **[in]** [Circle](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00663)

- [GeometryType](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux3tel12GeometryTypeE) getType() const

    - Get the geometry type.

- Returns:

    - [GeometryType](https://docs.qualcomm.com/doc/80-PF458-2/topic/enum_a00017_1gab18e40b1b40ed357442091815f2c01eb.html#a00017_1gab18e40b1b40ed357442091815f2c01eb).

- std::shared\_ptr&lt;[Polygon](https://docs.qualcomm.com/doc/80-PF458-2/topic/class_a00662.html#_CPPv4N5telux3tel7PolygonE)&gt; getPolygon() const

    - Get polygon goemetry as warning area to perform geofencing. This method should be called only if geometry type returned by [getType()](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00664_1af696a9a355cf605d81578b8a2a0d5359) API is GeometryType::POLYGON

- Returns:

    - [Polygon](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00662) geometry object.

- std::shared\_ptr&lt;[Circle](https://docs.qualcomm.com/doc/80-PF458-2/topic/class_a00663.html#_CPPv4N5telux3tel6CircleE)&gt; getCircle() const

    - Get circle goemetry as warning area to perform geofencing. This method should be called only if geometry type returned by [getType()](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00664_1af696a9a355cf605d81578b8a2a0d5359) API is GeometryType::CIRCLE

- Returns:

    - [Circle](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00663) geometry object.

Private Members

- [GeometryType](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux3tel12GeometryTypeE) type\_

    - 

- std::shared\_ptr&lt;[Polygon](https://docs.qualcomm.com/doc/80-PF458-2/topic/class_a00662.html#_CPPv4N5telux3tel7PolygonE)&gt; polygon\_

    - 

- std::shared\_ptr&lt;[Circle](https://docs.qualcomm.com/doc/80-PF458-2/topic/class_a00663.html#_CPPv4N5telux3tel6CircleE)&gt; circle\_

    -

- class WarningAreaInfo

    - This class represents warning area information for alert.

Public Functions

- WarningAreaInfo(int maxWaitTime, std::vector&lt;[Geometry](https://docs.qualcomm.com/doc/80-PF458-2/topic/class_a00664.html#_CPPv4N5telux3tel8GeometryE)&gt; geometries)

    - Warning Area Information constructor.

- Parameters:

    - - **maxWaitTime** – **[in]** Maximum wait time allowed to determine position for alert Range is 0 to 255 where 0 means Zero wait time, 1 - 254 is Geo-Fencing Maximum Wait Time in seconds and 255 means use device default wait time.
- **geometries** – **[in]** Geometries to perform geofencing on alert

- int getGeoFenceMaxWaitTime()

    - Get maximum wait time allowed to determine position for alert.

- Returns:

    - Maximum wait time for alert in seconds.

- std::vector&lt;[Geometry](https://docs.qualcomm.com/doc/80-PF458-2/topic/class_a00664.html#_CPPv4N5telux3tel8GeometryE)&gt; getGeometries()

    - Get geometries to perform geofencing on alert.

- Returns:

    - List of [telux::tel::Geometry](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00664).

Private Members

- int maxWaitTime\_

    - 

- std::vector&lt;[Geometry](https://docs.qualcomm.com/doc/80-PF458-2/topic/class_a00664.html#_CPPv4N5telux3tel8GeometryE)&gt; geometries\_

    -

- class EtwsInfo

    - Contains information elements for a GSM/UMTS/E-UTRAN/NG-RAN ETWS warning notification. Supported values for each element are defined in 3GPP TS 23.041.

Public Functions

- EtwsInfo([GeographicalScope](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux3tel17GeographicalScopeE) geographicalScope, int msgId, int serialNumber, std::string languageCode, std::string messageText, [MessagePriority](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux3tel15MessagePriorityE) priority, [EtwsWarningType](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux3tel15EtwsWarningTypeE) warningType, bool emergencyUserAlert, bool activatePopup, bool primary, std::vector&lt;uint8\_t&gt; warningSecurityInformation)

    - [EtwsInfo](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00666) constructor.

- Parameters:

    - - **geographicalScope** – **[in]** [GeographicalScope](https://docs.qualcomm.com/doc/80-PF458-2/topic/enum_a00017_1ga9970a52491ae6faa54ef8bc71a4d9e65.html#a00017_1ga9970a52491ae6faa54ef8bc71a4d9e65)
- **msgId** – **[in]** Unique message identifier
- **serialNumber** – **[in]** Serial number for message
- **languageCode** – **[in]** ISO-639-1 language code for message
- **messageText** – **[in]** Message text
- **priority** – **[in]** [MessagePriority](https://docs.qualcomm.com/doc/80-PF458-2/topic/enum_a00017_1ga55949f6615817e2815b368bd5f1b2d39.html#a00017_1ga55949f6615817e2815b368bd5f1b2d39)
- **warningType** – **[in]** [EtwsWarningType](https://docs.qualcomm.com/doc/80-PF458-2/topic/enum_a00017_1ga61c5777e493306b823e81226f9ad5eec.html#a00017_1ga61c5777e493306b823e81226f9ad5eec)
- **emergencyUserAlert** – **[in]** If true message is emergency user alert otherwise not
- **activatePopup** – **[in]** If true message message activate popup flag is set, otherwise popup flag is false.
- **primary** – **[in]** If true ETWS message is primary notification otherwise not
- **warningSecurityInformation** – **[in]** Buffer containing security information about ETWS primary notification such as timestamp and digital signature

- [GeographicalScope](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux3tel17GeographicalScopeE) getGeographicalScope() const

    - Get the geographicalScope of cellbroadcast message.

- Returns:

    - [GeographicalScope](https://docs.qualcomm.com/doc/80-PF458-2/topic/enum_a00017_1ga9970a52491ae6faa54ef8bc71a4d9e65.html#a00017_1ga9970a52491ae6faa54ef8bc71a4d9e65).

- int getMessageId() const

    - Get cellbroadcast message identifier. The message identifier identifies the type of the cell broadcast message defined in spec 3GPP TS 23.041 9.4.1.2.2

- Returns:

    - Message identifier.

- int getSerialNumber() const

    - Get the serial number of broadcast (geographical scope + message code + update number for GSM/UMTS).

- Returns:

    - int containing cellbroadcast serial number.

- std::string getLanguageCode() const

    - Get the ISO-639-1 language code for cell broadcast message, or empty string if unspecified. This is not applicable for ETWS primary notification.

- Returns:

    - Language code

- std::string getMessageBody() const

    - Get the body of cell broadcast message, or empty string if no body available. For ETWS primary notification based on message identifier pre cannned message will be sent.

- Returns:

    - body or empty string

- [MessagePriority](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux3tel15MessagePriorityE) getPriority() const

    - Get the priority for the cell broadcast message.

- Returns:

    - [MessagePriority](https://docs.qualcomm.com/doc/80-PF458-2/topic/enum_a00017_1ga55949f6615817e2815b368bd5f1b2d39.html#a00017_1ga55949f6615817e2815b368bd5f1b2d39).

- int getMessageCode() const

    - Get the cellbroadcast message code.

- Returns:

    - int containing cellbroadcast message code.

- int getUpdateNumber() const

    - Get the cellbroadcast message update number.

- Returns:

    - int containing cellbroadcast message’s update number.

- [EtwsWarningType](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux3tel15EtwsWarningTypeE) getEtwsWarningType()

    - Get ETWS warning type.

- Returns:

    - [EtwsWarningType](https://docs.qualcomm.com/doc/80-PF458-2/topic/enum_a00017_1ga61c5777e493306b823e81226f9ad5eec.html#a00017_1ga61c5777e493306b823e81226f9ad5eec).

- bool isEmergencyUserAlert()

    - Returns the ETWS emergency user alert flag.

- Returns:

    - true to notify terminal to activate emergency user alert or false otherwise

- bool isPopupAlert()

    - Returns the ETWS activate popup flag.

- Returns:

    - true to notify terminal to activate display popup or false otherwise

- bool isPrimary()

    - Returns the ETWS format flag. This flag determine whether ETWS message is primary notification or not.

- Returns:

    - true if the message is primary message, otherwise secondary message

- std::vector&lt;uint8\_t&gt; getWarningSecurityInformation()

    - Returns security information about ETWS primary notification such as timestamp and digital signature(applicable only for GSM).

- Returns:

    - byte buffer

Private Members

- [GeographicalScope](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux3tel17GeographicalScopeE) scope\_

    - 

- int messageId\_

    - 

- int serialNum\_

    - 

- int messageCode\_

    - 

- int updateNumber\_

    - 

- std::string languageCode\_ = ""

    - 

- std::string body\_ = ""

    - 

- [MessagePriority](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux3tel15MessagePriorityE) priority\_

    - 

- [EtwsWarningType](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux3tel15EtwsWarningTypeE) warningType\_

    - 

- bool emergencyUserAlert\_

    - 

- bool activatePopup\_

    - 

- bool isPrimary\_

    - 

- std::vector&lt;uint8\_t&gt; warningInfo\_

    -

- class CmasInfo

    - Contains information elements for a GSM/UMTS/E-UTRAN/NG-RAN CMAS warning notification. Supported values for each element are defined in 3GPP TS 23.041.

Public Functions

- CmasInfo([GeographicalScope](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux3tel17GeographicalScopeE) geographicalScope, int msgId, int serialNumber, std::string languageCode, std::string messageText, [MessagePriority](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux3tel15MessagePriorityE) priority, [CmasMessageClass](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux3tel16CmasMessageClassE) messageClass, [CmasSeverity](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux3tel12CmasSeverityE) severity, [CmasUrgency](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux3tel11CmasUrgencyE) urgency, [CmasCertainty](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux3tel13CmasCertaintyE) certainty, std::shared\_ptr&lt;[WarningAreaInfo](https://docs.qualcomm.com/doc/80-PF458-2/topic/class_a00665.html#_CPPv4N5telux3tel15WarningAreaInfoE)&gt; warningAreaInfo)

    - [CmasInfo](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00667) constructor.

- Parameters:

    - - **geographicalScope** – **[in]** [GeographicalScope](https://docs.qualcomm.com/doc/80-PF458-2/topic/enum_a00017_1ga9970a52491ae6faa54ef8bc71a4d9e65.html#a00017_1ga9970a52491ae6faa54ef8bc71a4d9e65)
- **msgId** – **[in]** Unique message identifier
- **serialNumber** – **[in]** Serial number for message
- **languageCode** – **[in]** ISO-639-1 language code for message
- **messageText** – **[in]** Message text
- **priority** – **[in]** [MessagePriority](https://docs.qualcomm.com/doc/80-PF458-2/topic/enum_a00017_1ga55949f6615817e2815b368bd5f1b2d39.html#a00017_1ga55949f6615817e2815b368bd5f1b2d39)
- **messageClass** – **[in]** [CmasMessageClass](https://docs.qualcomm.com/doc/80-PF458-2/topic/enum_a00017_1gaa6d497b48801e7fdc89d4e7b95db648c.html#a00017_1gaa6d497b48801e7fdc89d4e7b95db648c)
- **severity** – **[in]** [CmasSeverity](https://docs.qualcomm.com/doc/80-PF458-2/topic/enum_a00017_1gad2bda2f93d30c39bd4facedf42d24cc3.html#a00017_1gad2bda2f93d30c39bd4facedf42d24cc3)
- **urgency** – **[in]** [CmasUrgency](https://docs.qualcomm.com/doc/80-PF458-2/topic/enum_a00017_1ga1f0784d1655c4fc196925fe6b8beca6d.html#a00017_1ga1f0784d1655c4fc196925fe6b8beca6d)
- **certainty** – **[in]** [CmasCertainty](https://docs.qualcomm.com/doc/80-PF458-2/topic/enum_a00017_1gaf8736247240bf78e1670077f1bcf248b.html#a00017_1gaf8736247240bf78e1670077f1bcf248b)
- **warningAreaInfo** – **[in]** [WarningAreaInfo](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00665)

- [GeographicalScope](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux3tel17GeographicalScopeE) getGeographicalScope() const

    - Get the geographicalScope of cellbroadcast message.

- Returns:

    - [GeographicalScope](https://docs.qualcomm.com/doc/80-PF458-2/topic/enum_a00017_1ga9970a52491ae6faa54ef8bc71a4d9e65.html#a00017_1ga9970a52491ae6faa54ef8bc71a4d9e65).

- int getMessageId() const

    - Get cellbroadcast message identifier. The message identifier identifies the type of the cell broadcast message defined in spec 3GPP TS 23.041 9.4.1.2.2

- Returns:

    - Message identifier.

- int getSerialNumber() const

    - Get the serial number of broadcast (geographical scope + message code + update number for GSM/UMTS).

- Returns:

    - int containing cellbroadcast serial number.

- std::string getLanguageCode() const

    - Get the ISO-639-1 language code for cell broadcast message, or empty string if unspecified. This is not applicable for ETWS primary notification.

- Returns:

    - Language code

- std::string getMessageBody() const

    - Get the body of cell broadcast message, or empty string if no body available. For ETWS primary notification based on message identifier pre cannned message will be sent.

- Returns:

    - body or empty string

- [MessagePriority](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux3tel15MessagePriorityE) getPriority() const

    - Get the priority for the cell broadcast message.

- Returns:

    - [MessagePriority](https://docs.qualcomm.com/doc/80-PF458-2/topic/enum_a00017_1ga55949f6615817e2815b368bd5f1b2d39.html#a00017_1ga55949f6615817e2815b368bd5f1b2d39).

- int getMessageCode() const

    - Get the cellbroadcast message code.

- Returns:

    - int containing cellbroadcast message code.

- int getUpdateNumber() const

    - Get the cellbroadcast message update number.

- Returns:

    - int containing cellbroadcast message’s update number.

- [CmasMessageClass](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux3tel16CmasMessageClassE) getMessageClass()

    - Get CMAS message class.

- Returns:

    - [CmasMessageClass](https://docs.qualcomm.com/doc/80-PF458-2/topic/enum_a00017_1gaa6d497b48801e7fdc89d4e7b95db648c.html#a00017_1gaa6d497b48801e7fdc89d4e7b95db648c).

- [CmasSeverity](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux3tel12CmasSeverityE) getSeverity()

    - Get CMAS message severity.

- Returns:

    - [CmasSeverity](https://docs.qualcomm.com/doc/80-PF458-2/topic/enum_a00017_1gad2bda2f93d30c39bd4facedf42d24cc3.html#a00017_1gad2bda2f93d30c39bd4facedf42d24cc3).

- [CmasUrgency](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux3tel11CmasUrgencyE) getUrgency()

    - Get CMAS message urgency.

- Returns:

    - [CmasUrgency](https://docs.qualcomm.com/doc/80-PF458-2/topic/enum_a00017_1ga1f0784d1655c4fc196925fe6b8beca6d.html#a00017_1ga1f0784d1655c4fc196925fe6b8beca6d).

- [CmasCertainty](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux3tel13CmasCertaintyE) getCertainty()

    - Get CMAS message certainty.

- Returns:

    - [CmasCertainty](https://docs.qualcomm.com/doc/80-PF458-2/topic/enum_a00017_1gaf8736247240bf78e1670077f1bcf248b.html#a00017_1gaf8736247240bf78e1670077f1bcf248b).

- std::shared\_ptr&lt;[WarningAreaInfo](https://docs.qualcomm.com/doc/80-PF458-2/topic/class_a00665.html#_CPPv4N5telux3tel15WarningAreaInfoE)&gt; getWarningAreaInfo()

    - Returns warning area information for alert. This is applicable for LTE and NR5G

- Returns:

    - pointer to [WarningAreaInfo](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00665) or null if there is no warning area information available.

Private Members

- [GeographicalScope](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux3tel17GeographicalScopeE) scope\_

    - 

- int messageId\_

    - 

- int serialNum\_

    - 

- int messageCode\_

    - 

- int updateNumber\_

    - 

- std::string languageCode\_ = ""

    - 

- std::string body\_ = ""

    - 

- [MessagePriority](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux3tel15MessagePriorityE) priority\_

    - 

- [CmasMessageClass](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux3tel16CmasMessageClassE) messageClass\_

    - 

- [CmasSeverity](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux3tel12CmasSeverityE) severity\_

    - 

- [CmasUrgency](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux3tel11CmasUrgencyE) urgency\_

    - 

- [CmasCertainty](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux3tel13CmasCertaintyE) certainity\_

    - 

- std::shared\_ptr&lt;[WarningAreaInfo](https://docs.qualcomm.com/doc/80-PF458-2/topic/class_a00665.html#_CPPv4N5telux3tel15WarningAreaInfoE)&gt; warningAreaInfo\_

    -

- class CellBroadcastMessage

    - Cell Broadcast message.

Public Functions

- CellBroadcastMessage(std::shared\_ptr&lt;[EtwsInfo](https://docs.qualcomm.com/doc/80-PF458-2/topic/class_a00666.html#_CPPv4N5telux3tel8EtwsInfoE)&gt; etwsInfo)

    - [CellBroadcastMessage](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00668) constructor.

- Parameters:

    - **etwsInfo** – **[in]** [EtwsInfo](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00666)

- CellBroadcastMessage(std::shared\_ptr&lt;[CmasInfo](https://docs.qualcomm.com/doc/80-PF458-2/topic/class_a00667.html#_CPPv4N5telux3tel8CmasInfoE)&gt; cmasInfo)

    - [CellBroadcastMessage](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00668) constructor.

- Parameters:

    - **cmasInfo** – **[in]** [CmasInfo](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00667)

- [MessageType](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux3tel11MessageTypeE) getMessageType() const

    - Get the cellbroadcast message type.

- Returns:

    - [MessageType](https://docs.qualcomm.com/doc/80-PF458-2/topic/enum_a00017_1ga0485d1dc1b19a0bcc008cd647368ea41.html#a00017_1ga0485d1dc1b19a0bcc008cd647368ea41).

- std::shared\_ptr&lt;[EtwsInfo](https://docs.qualcomm.com/doc/80-PF458-2/topic/class_a00666.html#_CPPv4N5telux3tel8EtwsInfoE)&gt; getEtwsInfo() const

    - Get ETWS warning notification containing information about the ETWS warning type, the emergency user alert flag and the popup flag. This method should be called only if message type returned by [getMessageType()](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00668_1ac41e73dbae875f3e00efa056e58d1287) API is MessageType::ETWS

- Returns:

    - pointer to [EtwsInfo](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00666) or null if this is not an ETWS warning notification

- std::shared\_ptr&lt;[CmasInfo](https://docs.qualcomm.com/doc/80-PF458-2/topic/class_a00667.html#_CPPv4N5telux3tel8CmasInfoE)&gt; getCmasInfo() const

    - Get CMAS warning notification containing information about the CMAS message class, severity, urgency and certainty.This method should be called only if message type returned by [getMessageType()](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00668_1ac41e73dbae875f3e00efa056e58d1287) API is MessageType::CMAS

- Returns:

    - pointer to [CmasInfo](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00667) or null if this is not a CMAS warning notification

Private Members

- [MessageType](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux3tel11MessageTypeE) messageType\_

    - 

- std::shared\_ptr&lt;[EtwsInfo](https://docs.qualcomm.com/doc/80-PF458-2/topic/class_a00666.html#_CPPv4N5telux3tel8EtwsInfoE)&gt; etwsInfo\_

    - 

- std::shared\_ptr&lt;[CmasInfo](https://docs.qualcomm.com/doc/80-PF458-2/topic/class_a00667.html#_CPPv4N5telux3tel8CmasInfoE)&gt; cmasInfo\_

    -

- class ICellBroadcastManager

    - CellBroadcastManager class is primary interface to configure and activate emergency broadcast messages and receive broadcast messages.

Public Functions

- virtual bool isSubsystemReady() = 0

    - Checks the status of network subsystem and returns the result.

Deprecated Use [ICellBroadcastManager::getServiceStatus()](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00669_1a15eff9ca112e9095dc5a23fc26317a4d) API.

- Returns:

    - True if network subsystem is ready for service otherwise false.

- virtual std::future&lt;bool&gt; onSubsystemReady() = 0

    - Wait for network subsystem to be ready.

Deprecated Use InitResponseCb in [PhoneFactory::getCellBroadcastManager](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00736_1afcd18fb69372816f8e30d8c955ceae8f) instead, to get notified about subsystem readiness.

- Returns:

    - A future that caller can wait on to be notified when network subsystem is ready.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6commonE)::[ServiceStatus](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6common13ServiceStatusE) getServiceStatus() = 0

    - This status indicates whether the [ICellBroadcastManager](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00669) object is in a usable state.

- Returns:

    - SERVICE\_AVAILABLE - If CellBroadcast Manager is ready for service. SERVICE\_UNAVAILABLE - If CellBroadcast Manager is temporarily unavailable. SERVICE\_FAILED - If CellBroadcast Manager encountered an irrecoverable failure.

- virtual [SlotId](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv46SlotId) getSlotId() = 0

    - Get associated slot for this CellBroadcastManager.

- Returns:

    - SlotId

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6common6StatusE) updateMessageFilters(std::vector&lt;[CellBroadcastFilter](https://docs.qualcomm.com/doc/80-PF458-2/topic/struct_a00660.html#_CPPv4N5telux3tel19CellBroadcastFilterE)&gt; filters, [telux](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6commonE)::[ResponseCallback](https://docs.qualcomm.com/doc/80-PF458-2/topic/typedef_a00236_1a8f614f0a0eeca90c94dad1967ca93bcd.html#_CPPv4N5telux6common16ResponseCallbackE) callback = nullptr) = 0

    - Configures the broadcast messages to be received.

On platforms with access control enabled, caller needs to have TELUX\_TEL\_CELL\_BROADCAST\_CONFIG permission to invoke this API successfully.

- Parameters:

    - - **filters** – **[in]** List of filtered broadcast message identifiers.
- **callback** – **[in]** Optional callback to get the response of set cell broadcast filters.

- Returns:

    - Status of updateMessageIdFilters i.e. success or suitable error code.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6common6StatusE) requestMessageFilters([RequestFiltersResponseCallback](https://docs.qualcomm.com/doc/80-PF458-2/topic/typedef_a00017_1ga219d5d7edb8801f0e52d179606491dd4.html#_CPPv4N5telux3tel30RequestFiltersResponseCallbackE) callback) = 0

    - Retrieve configured message filters for which broadcast messages will be received.

On platforms with access control enabled, caller needs to have TELUX\_TEL\_CELL\_BROADCAST\_CONFIG permission to invoke this API successfully.

- Parameters:

    - **callback** – **[in]** Callback to get the response of get cell broadcast filters.

- Returns:

    - Status of requestMessageIdFilters i.e. success or suitable error code.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6common6StatusE) setActivationStatus(bool activate, [telux](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6commonE)::[ResponseCallback](https://docs.qualcomm.com/doc/80-PF458-2/topic/typedef_a00236_1a8f614f0a0eeca90c94dad1967ca93bcd.html#_CPPv4N5telux6common16ResponseCallbackE) callback = nullptr) = 0

    - Allows activation and deactivation of configured broadcast messages.

On platforms with access control enabled, caller needs to have TELUX\_TEL\_CELL\_BROADCAST\_CONFIG permission to invoke this API successfully.

- Parameters:

    - - **activate** – **[in]** Activate/deactivate broadcast messages.
- **callback** – **[in]** Optional callback pointer to get the response.

- Returns:

    - Status of setActivationStatus i.e. success or suitable error code.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6common6StatusE) requestActivationStatus([RequestActivationStatusResponseCallback](https://docs.qualcomm.com/doc/80-PF458-2/topic/typedef_a00017_1ga4bffec4e3e0300d4474d0e5d0e33b336.html#_CPPv4N5telux3tel39RequestActivationStatusResponseCallbackE) callback) = 0

    - Get activation status for configured broadcast messages.

On platforms with access control enabled, caller needs to have TELUX\_TEL\_CELL\_BROADCAST\_CONFIG permission to invoke this API successfully.

- Parameters:

    - **callback** – **[in]** Callback pointer to get the response.

- Returns:

    - Status of requestActivationStatus i.e. success or suitable error code.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6common6StatusE) registerListener(std::weak\_ptr&lt;[ICellBroadcastListener](https://docs.qualcomm.com/doc/80-PF458-2/topic/class_a00670.html#_CPPv4N5telux3tel22ICellBroadcastListenerE)&gt; listener) = 0

    - Register a listener for cell broadcast messages.

- Parameters:

    - **listener** – **[in]** Pointer to [ICellBroadcastListener](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00670) object which receives broadcast message.

- Returns:

    - Status of registerListener i.e. success or suitable error code.

- virtual [telux](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6commonE)::[Status](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6common6StatusE) deregisterListener(std::weak\_ptr&lt;[ICellBroadcastListener](https://docs.qualcomm.com/doc/80-PF458-2/topic/class_a00670.html#_CPPv4N5telux3tel22ICellBroadcastListenerE)&gt; listener) = 0

    - De-register the listener.

- Parameters:

    - **listener** – **[in]** Listener to be de-registered

- Returns:

    - Status of deregisterListener i.e. success or suitable error code.

- inline virtual ~ICellBroadcastManager()

    -

- class ICellBroadcastListener : public [telux](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv45telux)::[common](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv4N5telux6commonE)::[IServiceStatusListener](https://docs.qualcomm.com/doc/80-PF458-2/topic/class_a00049.html#_CPPv4N5telux6common22IServiceStatusListenerE)

    - A listener class which monitors cell broadcast messages.

The methods in listener can be invoked from multiple different threads. The implementation should be thread safe.

Public Functions

- inline virtual void onIncomingMessage([SlotId](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv46SlotId) slotId, const std::shared\_ptr&lt;[CellBroadcastMessage](https://docs.qualcomm.com/doc/80-PF458-2/topic/class_a00668.html#_CPPv4N5telux3tel20CellBroadcastMessageE)&gt; cbMessage)

    - This function is called when device receives an incoming cell broadcast message.

On platforms with access control enabled, the client needs to have TELUX\_TEL\_CELL\_BROADCAST\_LISTEN permission to invoke this API successfully.

- Parameters:

    - - **slotId** – **[in]** - Slot Id on which broadcast message is received.
- **cbMessage** – **[in]** - Broadcast message with information related to ETWS/CMAS notification.

- inline virtual void onMessageFilterChange([SlotId](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#_CPPv46SlotId) slotId, std::vector&lt;[CellBroadcastFilter](https://docs.qualcomm.com/doc/80-PF458-2/topic/struct_a00660.html#_CPPv4N5telux3tel19CellBroadcastFilterE)&gt; filters)

    - This function is called when there is change in broadcast configuration like updation of message filters by the client using [ICellBroadcastManager::updateMessageFilters](https://docs.qualcomm.com/doc/80-PF458-2/topic/common.html#a00669_1ac3bc9a889512f487b9e56b71114c8c7e).

On platforms with access control enabled, the client needs to have TELUX\_TEL\_CELL\_BROADCAST\_CONFIG permission to invoke this API successfully.

- Parameters:

    - - **slotId** – **[in]** - Slot Id on which change in message filters is received.
- **filters** – **[in]** - Complete list of configured broadcast message filters.

- inline virtual ~ICellBroadcastListener()

    -

Last Published: Apr 14, 2026

[Previous Topic
telux::tel::ISapCardListener](https://docs.qualcomm.com/bundle/publicresource/80-PF458-2/topics/sim_card_services.md) [Next Topic
IMS settings](https://docs.qualcomm.com/bundle/publicresource/80-PF458-2/topics/ims_settings.md)