Welcome to the  OpenBTS Public Release

This Trac is the home of the OpenBTS public release, a  FOSS version of  Range Network's self-contained SDR/GSM/VoIP stack.

To edit this wiki, you can login as user "guest" with the password "guestpass". If you are a regular editor of this wiki, please request a personal account from Kurtis (log in to see info) so that your changes can be tracked. Contributions to this wiki are licensed under CC-BY-SA 3.0.

Quick Links:

What is OpenBTS?

OpenBTS is a Unix application that uses a software radio to present a GSM air interface to standard 2G GSM handset and uses a SIP softswitch or PBX to connect calls. (You might even say that OpenBTS is a simplified form of  IMS that works with 2G feature-phone handsets.) The combination of the global-standard GSM air interface with low-cost VoIP backhaul forms the basis of a new type of cellular network that can be deployed and operated at substantially lower cost than existing technologies in many applications, including rural cellular deployments and private cellular networks in remote areas.

OpenBTS is distributed in two forms:

  1. The public ("P") release. The public release is distributed under  AGPLv3 with copyrights assigned to the  Free Software Foundation. The public release is a subset of the commercial release intended for experimentation, education, evaluation and proof-of-concept projects.
  2. The commercial ("C") release. The commercial release is installed in Range Networks products under a mix of GPL and non-GPL licenses. Range Networks also offers a customer portal for commercial customers where source code is available for the GPL components of the OpenBTS installation. The "C" release is intended for users
    • who need to provide cellular service in industrial, government or commercial applications,
    • whose intellectual property policies or business models are incompatible with A/GPLv3 or
    • who require commercial support, network monitoring or other professional services.

How do I get started?

There are two ways to get started with the public release of OpenBTS:

  1. Get a development kit. You can buy one online  here. This is probably the best choice for users who want to experiment with the public ("P") release of OpenBTS in a desktop setting, without a lot of additional up-front effort. The current development kit consists of
    • a Range Networks RAD-1 multi-band digital radio, including a software-trimmable 52 MHz TCXO clock generator and
    • a mini-ITX PC with the latest public release of OpenBTS pre-installed in both source code and binary form.
  2. Get a full-scale basestation. Range Networks produces several GSM basestation models based on the RAD-1 radio hardware and the commercial ("C") release of OpenBTS. These units are available in single- and multi-ARFCN configurations, at power levels ranging from 100 mW to 50 W. Any of these units can also be used to run the public release. This is probably the best choice for users who want to use OpenBTS for normal communications, who want to experiment with OpenBTS in full-range configurations or who require commercial support or other professional services. For more information on these products, contact Range sales.
  3. Roll your own. The public release of OpenBTS is compatible with several digital radio products from  Ettus Research.

Where can I get the latest code?

The best way to get OpenBTS is by pulling the code directly from our source code repository as an anonymous read-only user.

svn co http://wush.net/svn/range/software/public

If you're planning on developing for OpenBTS, we recommend using git instead of svn. This allows you to commit and test your code locally, before uploading it to the main repository.

git svn init http://wush.net/svn/range/software/public openbts
cd openbts
git svn fetch

Using git-svn is described in numerous places,  here being an example.

How do I build and install and run the code?

See BuildInstallRun for instructions on how to build and install a simple, one-PC, one-BTS system. This is the appropriate starting point for new users.

For advanced users, see multiBTS for instructions on operating a more complicated setup.

For debugging techniques, please see DebuggingCode for tips and tricks.

Is there documentation?

This wiki is the primary documentation for the OpenBTS public release.

We also maintain an OpenBTS manual, though it is not as up to date as the wiki. If you can't find some important information on the wiki, look there (and then put it on the wiki).

Lastly, a contributor has provided a Spanish manual as well. This is almost certainly not going to be updated very often.

How do I get support?

Commercial support for OpenBTS is available from  Range Networks and  Fairwaves. Contact respective companies for more information.

Free support for the public release is available from the OpenBTS public mailing list, openbts-discuss (at) lists.sourceforge.net.

Who else is using OpenBTS?

If your organization is using OpenBTS, please let us know by putting a link here.

Current Feature Efforts in the Public Release

Other Technical Notes

Other Open Projects Related to OpenBTS

Decoding UMTS

This is a sub-wiki dedicated to a clearer, more complete explanation of UMTS/UTRAN 3G than what is found in the official specifications. Hopefully, it will become an alternative presentation of the specs for people who actually want to understand how UMTS works.


SMQ2 is a proposed replacement for our current smqueue text messaging store-and-forward server. Smqueue has served us well for over two years now, but we are hitting its limitations and it might be time for a better-informed fresh start.

Programming SIM Cards using PC/SC devices

OpenBTS is a registered trademark of Range Networks, Inc.