3.4 KiB

osmo-cbc - Osmocom Cell Broadcast Centre

This repository contains a C-language implementation of a minimal 3GPP Cell Broadcast Centre (CBC). It is part of the Osmocom Open Source Mobile Communications project.

A Cell Broadcast Centre is the central network element of a cellular network for distribution of Cell Broadcast and Emergency messages.

This code implements

  • the CBSP protocol on the CBC-BSC interface
  • a custom HTTP/REST based interface for external users to create/delete CBS messages

We plan to add support for the following features in the future:

  • the SABP protocol on the CBC-RNC (or CBC-HNBGW) interface for UMTS support
  • the SBcAP protocol on the CBC-MME interface for LTE support


The official homepage of the project is https://osmocom.org/projects/osmo-cbc/wiki

GIT Repository

You can clone from the official osmo-cbc.git repository using

git clone https://gitea.osmocom.org/cellular-infrastructure/osmo-cbc

There is a web interface at https://gitea.osmocom.org/cellular-infrastructure/osmo-cbc


User Manuals and VTY reference manuals are [optionally] built in PDF form as part of the build process.

Pre-rendered PDF version of the current "master" can be found at User Manual as well as the VTY Reference Manual for osmo-cbc

Mailing List

Discussions related to osmo-cbc are happening on the openbsc@lists.osmocom.org mailing list, please see https://lists.osmocom.org/mailman/listinfo/openbsc for subscription options and the list archive.

Please observe the Osmocom Mailing List Rules when posting.


Our coding standards are described at https://osmocom.org/projects/cellular-infrastructure/wiki/Coding_standards

We us a gerrit based patch submission/review process for managing contributions. Please see https://osmocom.org/projects/cellular-infrastructure/wiki/Gerrit for more details

The current patch queue for osmo-cbc can be seen at https://gerrit.osmocom.org/#/q/project:osmo-cbc+status:open

Generating asn1c code

Upstream master as1nc from vlm doesn't support APER encoding. Nevertheless, the upstream fork maintained by a big contributor mouse07410 does support it, and it is used in osmo-cbc to generate the SBc-AP code from ASN.1 files present in src/sbcap/asn1/.

In order to regenerate the code, one shall adjust the ASN1C_SKELETON_PATH and ASN1C_BIN_PATH in configure.ac to point to the built & installed asn1c from mouse07410 (usually vlm_master branch). Last generated code was built using commit hash 08b293e8aa342d465d26805d1d66f3595b2ce261.

Then, do the usual autoreconf -fi && ./configure, using a buildir != srcdir (important, in order to avoid ending up with tempotary files in srcdir and making it difficult to stash the relevant changes).

Finally, run make -C src/ regen, which will regenerate the files and copy over the skeletons, with git possibily showing changes in the following paths:

  • include/osmocom/sbcap/
  • src/sbcap/gen/
  • src/sbcap/skel/