OsmoBTS is a software implementation of a GSM BTS.

It implements the follwing protocols/interfaces:
  • LAPDm (GSM 04.06)
  • RTP
  • A-bis/IP in IPA multiplex
  • OML (GSM TS 12.21)
  • RSL (GSM TS 08.58)

OsmoBTS is building up on work done previosuly for OpenBSC (e.g. RSL, OML, RTP) and OsmocomBB (e.g. LAPDm). The Abis/IP protocol staking is inspired by ip.access A-bis/IP, sometimes called IPA multiplex.

OsmoBTS in the Osmocom architecture

Backends / Hardware support

OsmoBTS is modular and has support for multiple back-ends. A back-end talks to a specific L1/PHY implementation of the respective BTS hardware. Based on this architecture, it should be relatively easy to add a new back-end to support so-far unsupported GSM PHY/L1 and associated hardware.

So far OsmoBTS has been integrated with several different L1/PHY and hardware systems. The backends are:
  • osmo-bts-sysmo
  • osmo-bts-trx
    • Wideband SDR transceiver hardware supported by OpenBTS transceiver or [OsmoTRX] PHY layer software, including the UmTRX, the USRP family, etc.
    • Multiple indoor and outdoor fairwaves BTSs, like UmDESK and UmSITE
  • osmo-bts-litecell15
  • osmo-bts-octphy
  • osmo-bts-bb
    • A pretty crazy experimental BTS hardware based on two OsmocomBB phones had originally been supported, but needs to be re-integrated with core code changes.



The source code includes a file with current status information

GPRS support

In the GSM architecture, the BTS is an element in the circuit-switched domain only.

For packet-switched support, OsmoBTS provides a socket interface towards OsmoPCU. This adds GPRS and EDGE support to it.

Source code

The source code is available from (module osmo-bts).

Public read-only access is available via
git clone git://
You can browse it via cgit:

Authors / Credits

OsmoBTS was originally developed in 2011 by Andreas Eversberg and Harald Welte.

Today it is mostly maintained by Harald Welte and Holger Freyther at sysmocom. Exception is the osmo-bts-trx back-end which is maintained by Fairwaves.