[[cell_broadcast]]
== Cell Broadcast

Normally, all user plane data in GSM/GPRS networks are sent in
point-to-point channels from the network to the user. Those are called
_dedicated_ radio channels which exist between the network and one
given phone/subscriber at a time.

Cell Broadcast is an exception to that rule. It permits user data
(so-called SMS-CB data) to be broadcast by the network in a way that
can be received by all phones in the coverage area of the given BTS
simultaneously.

More high-level information can be found at
https://en.wikipedia.org/wiki/Cell_Broadcast and the related
specification is <<3gpp-ts-23-041>>.

=== Use Cases

Cell Broadcast was used for various different use cases primarily in
the 1990s and early 2000s, including

* advertisement of the GPS position of the cell tower you're currently camping on
* advertisement of the calling codes of your current "home zone", i.e. a
 "lower cost short distance" call zone travelling with you as you roam around.

More recently, SMS-CB is seeing some uptake by various disaster
warning systems, such as

* CMAS (Commercial Mobile Alert System), later renamed to WEA (Wireless Emergency Alerts) in the US.
* EU-Alert in the European union
* Messer Ishi (Rocket Alert) in Israel
* ETWS (Earthquake and Tsunami Warning System) in Japan
* KPAS (Korean Public Alert System)

=== Osmocom Cell Broadcast support

* OsmoBTS implements the `SMS BROADCAST COMMAND` Message in A-bis RSL
  according to Section 8.5.8 of 3GPP TS 48.058
* low-level testing/debugging features
** OsmoNITB and OsmoBSC implement a VTY command
   `bts <0-255> smscb-command <1-4> HEXSTRING` to send a given hex-formatted cell
   broadcast message to a specified BTS. This can be used for low-level debugging
* proper 3GPP-specified CBS/PWS elements and protocols
** OsmoBSC supports routing and distribution of CBS and warning messages
** OsmoBSC implements the BSC-CBC interface using the CBSP protocol
** OsmoCBC implements the central function of a _Cell Broadcast Centre_,
   receiving cell broadcast and warning messages from external entities
   via a REST based HTTP interface, and distributing it throughout the
   cellular network.
** OsmoCBC implements the BSC-CBC interface using the CBSP protocol (for
   2G/GSM RAN)
** OsmoCBC implements the MME-CBC interface using the SBcAP protocol (for
   4G/LTE RAN)


[mscgen]
----
include::osmocom-cbs.msc[]
----

=== Message Structure

* Each message has a maximum of 15 pages
* Each page is 82 bytes of data, resulting in 93 characters in GSM
  7-bit default alphabet
* Messages are broadcast on logical channels (more like an address)
* Subscribers can activate/deactivate selective addresses

