Harald Welte | d41b7c7 | 2019-06-13 09:41:58 +0200 | [diff] [blame] | 1 | [[smscb]] |
| 2 | == SMSCB (Cell Broadcast) |
| 3 | |
| 4 | OsmoBSC supports SMS Cell Broadcast (SMSCB) services (CBS). This |
| 5 | includes the CBSP protocol to interact with a CBC (Cell Broadcast |
| 6 | Centre) such as OsmoCBC, as well as the scheduling of SMSCB messages on |
| 7 | both the BASIC and EXTENDED CBCH and transmission of related RSL |
| 8 | messages to the attached BTS. |
| 9 | |
| 10 | More high-level information can be found at |
| 11 | https://en.wikipedia.org/wiki/Cell_Broadcast and the related |
| 12 | specification is <<3gpp-ts-23-041>>. |
| 13 | |
| 14 | In order to use SMSCB with OsmoBSC, you will need to |
| 15 | |
Neels Hofmeyr | ca979b7 | 2020-09-03 13:30:06 +0200 | [diff] [blame] | 16 | * Configure OsmoBSC as either CBSP server or client |
Harald Welte | d41b7c7 | 2019-06-13 09:41:58 +0200 | [diff] [blame] | 17 | * Use a channel combination including a CBCH on the BTSs |
| 18 | |
| 19 | === Enabling a CBCH channel combination |
| 20 | |
| 21 | On the Um interface, SMSCB are transmitted via the CBCH (Cell Broadcast |
| 22 | Channel). The CBCH is a separate downlink-only logical channel which |
| 23 | must be activated on any of the BTSs requiring CBSP support. |
| 24 | |
| 25 | The channel combination is configured in the `timeslot` node of each TRX. |
| 26 | |
| 27 | The two `phys_chan_config` supporting CBCH are `CCCH+SDCCH4+CBCH` and |
| 28 | `SDCCH/8+CBCH`. Please note that the CBCH steals one of the SDCCH, so |
| 29 | a SDCCH/4 will only have three remaining SDCCH, and a SDCCH/8 will |
| 30 | have only seven remaining SDCCH. |
| 31 | |
| 32 | === Configuring the CBSP connection |
| 33 | |
| 34 | CBSP is the protocol between BSC and CBC. It operates over TCP. |
| 35 | |
| 36 | According to 3GPP TS 48.049, a BSC typically operates as a TCP server, |
| 37 | and the CBC connects as TCP client. This would require the CBC to have |
| 38 | out-of-band knowledge of all the BSCs in the network (and their IP |
| 39 | addresses). |
| 40 | |
| 41 | In order to comply with the specifications, OsmoBSC supports this mode |
| 42 | of operation as CBSP TCP server. However, to make network operation and |
| 43 | configuration more simple, it also can operate in TCP client mode, |
Neels Hofmeyr | ca979b7 | 2020-09-03 13:30:06 +0200 | [diff] [blame] | 44 | connecting to the CBC. This way the BSCs need to know the CBC IP |
Harald Welte | d41b7c7 | 2019-06-13 09:41:58 +0200 | [diff] [blame] | 45 | address, but not vice-versa. |
| 46 | |
Neels Hofmeyr | ca979b7 | 2020-09-03 13:30:06 +0200 | [diff] [blame] | 47 | The BSC can operate in either CBSP TCP server mode or CBSP TCP client mode. |
Harald Welte | d41b7c7 | 2019-06-13 09:41:58 +0200 | [diff] [blame] | 48 | |
| 49 | The CBC related configuration of OsmoBSC can be found in the `cbc` configuration |
| 50 | node of the VTY interface. |
| 51 | |
Neels Hofmeyr | ca979b7 | 2020-09-03 13:30:06 +0200 | [diff] [blame] | 52 | The default port number for the CBSP server is 48049, according to the CBSP |
| 53 | specification. Hence it normally suffices to configure only the IP addresses for |
| 54 | the remote CBC server or the local CBSP server: |
| 55 | |
| 56 | .Example: Configure CBSP TCP client to connect to CBC at 1.2.3.4:48049 in osmo-bsc.cfg |
Harald Welte | d41b7c7 | 2019-06-13 09:41:58 +0200 | [diff] [blame] | 57 | ---- |
Neels Hofmeyr | ca979b7 | 2020-09-03 13:30:06 +0200 | [diff] [blame] | 58 | cbc |
| 59 | mode client |
| 60 | client |
| 61 | remote-ip 1.2.3.4 |
Harald Welte | d41b7c7 | 2019-06-13 09:41:58 +0200 | [diff] [blame] | 62 | ---- |
| 63 | |
Neels Hofmeyr | ca979b7 | 2020-09-03 13:30:06 +0200 | [diff] [blame] | 64 | In server mode, the default configuration is 127.0.0.1:48049, so it suffices to |
| 65 | set `mode server` to accept CBSP connections from localhost: |
| 66 | |
Harald Welte | d41b7c7 | 2019-06-13 09:41:58 +0200 | [diff] [blame] | 67 | ---- |
Neels Hofmeyr | ca979b7 | 2020-09-03 13:30:06 +0200 | [diff] [blame] | 68 | cbc |
| 69 | mode server |
Harald Welte | d41b7c7 | 2019-06-13 09:41:58 +0200 | [diff] [blame] | 70 | ---- |
| 71 | |
Neels Hofmeyr | ca979b7 | 2020-09-03 13:30:06 +0200 | [diff] [blame] | 72 | To also listen for inbound CBSP connections on all interfaces, both IPv4 and |
| 73 | IPv6: |
| 74 | |
| 75 | .Example: Configure CBSP TCP server to listen on all interfaces in osmo-bsc.cfg |
| 76 | ---- |
| 77 | cbc |
| 78 | mode server |
| 79 | server |
| 80 | local-ip :: |
| 81 | ---- |
| 82 | |
| 83 | Should non-standard port numbers be required, these can be configured with the |
| 84 | `client` / `local-port` or the `server` / `remote-port` settings. |
| 85 | |
| 86 | The `client` config also supports an explicit local bind for connecting to the |
| 87 | remote CBC, using `client` / `local-ip` and `local-port`. |
| 88 | |
| 89 | IP addresses for client and server can remain configured at the same time, and |
| 90 | the `mode` command can be used to switch between client and server operation. |
| 91 | The `mode` command takes immediate effect, no restart of OsmoBSC is required. |
| 92 | After changing `cbc` IP addresses in the telnet VTY, it is required to switch |
| 93 | `mode` to `disabled` and back to `client` or `server` to take effect. |
| 94 | |
| 95 | .Example: Disable the CBSP link in the telnet VTY |
Harald Welte | d41b7c7 | 2019-06-13 09:41:58 +0200 | [diff] [blame] | 96 | ---- |
| 97 | OsmoBSC> enable |
| 98 | OsmoBSC# configure terminal |
| 99 | OsmoBSC(config)# cbc |
Neels Hofmeyr | ca979b7 | 2020-09-03 13:30:06 +0200 | [diff] [blame] | 100 | OsmoBSC(config-cbc)# mode disabled |
Harald Welte | d41b7c7 | 2019-06-13 09:41:58 +0200 | [diff] [blame] | 101 | OsmoBSC(config-cbc)# end |
| 102 | ---- |
| 103 | |
| 104 | For more details on the available configuration commands, please check the OsmoBSC VTY Reference. |