[[smscb]]
== SMSCB (Cell Broadcast)

OsmoBSC supports SMS Cell Broadcast (SMSCB) services (CBS).  This
includes the CBSP protocol to interact with a CBC (Cell Broadcast
Centre) such as OsmoCBC, as well as the scheduling of SMSCB messages on
both the BASIC and EXTENDED CBCH and transmission of related RSL
messages to the attached BTS.

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

In order to use SMSCB with OsmoBSC, you will need to

* Configure OsmoBSC as either CBSP server or client
* Use a channel combination including a CBCH on the BTSs

=== Enabling a CBCH channel combination

On the Um interface, SMSCB are transmitted via the CBCH (Cell Broadcast
Channel).  The CBCH is a separate downlink-only logical channel which
must be activated on any of the BTSs requiring CBSP support.

The channel combination is configured in the `timeslot` node of each TRX.

The two `phys_chan_config` supporting CBCH are `CCCH+SDCCH4+CBCH` and
`SDCCH/8+CBCH`.  Please note that the CBCH steals one of the SDCCH, so
a SDCCH/4 will only have three remaining SDCCH, and a SDCCH/8 will
have only seven remaining SDCCH.

=== Configuring the CBSP connection

CBSP is the protocol between BSC and CBC.  It operates over TCP.

According to 3GPP TS 48.049, a BSC typically operates as a TCP server,
and the CBC connects as TCP client.  This would require the CBC to have
out-of-band knowledge of all the BSCs in the network (and their IP
addresses).

In order to comply with the specifications, OsmoBSC supports this mode
of operation as CBSP TCP server.  However, to make network operation and
configuration more simple, it also can operate in TCP client mode,
connecting to the CBC.  This way the BSCs need to know the CBC IP
address, but not vice-versa.

The BSC can operate in either CBSP TCP server mode or CBSP TCP client mode.

The CBC related configuration of OsmoBSC can be found in the `cbc` configuration
node of the VTY interface.

The default port number for the CBSP server is 48049, according to the CBSP
specification. Hence it normally suffices to configure only the IP addresses for
the remote CBC server or the local CBSP server:

.Example: Configure CBSP TCP client to connect to CBC at 1.2.3.4:48049 in osmo-bsc.cfg
----
cbc
 mode client
 client
  remote-ip 1.2.3.4
----

In server mode, the default configuration is 127.0.0.1:48049, so it suffices to
set `mode server` to accept CBSP connections from localhost:

----
cbc
 mode server
----

To also listen for inbound CBSP connections on all interfaces, both IPv4 and
IPv6:

.Example: Configure CBSP TCP server to listen on all interfaces in osmo-bsc.cfg
----
cbc
 mode server
 server
  local-ip ::
----

Should non-standard port numbers be required, these can be configured with the
`client` / `local-port` or the `server` / `remote-port` settings.

The `client` config also supports an explicit local bind for connecting to the
remote CBC, using `client` / `local-ip` and `local-port`.

IP addresses for client and server can remain configured at the same time, and
the `mode` command can be used to switch between client and server operation.
The `mode` command takes immediate effect, no restart of OsmoBSC is required.
After changing `cbc` IP addresses in the telnet VTY, it is required to switch
`mode` to `disabled` and back to `client` or `server` to take effect.

.Example: Disable the CBSP link in the telnet VTY
----
OsmoBSC> enable
OsmoBSC# configure terminal
OsmoBSC(config)# cbc
OsmoBSC(config-cbc)# mode disabled
OsmoBSC(config-cbc)# end
----

For more details on the available configuration commands, please check the OsmoBSC VTY Reference.
