The OpenBTS Project is an effort to construct an open-source Unix application that uses the Universal Software Radio Peripheral (USRP) to present a GSM air interface ("Um") to standard GSM handsets and uses the Asterisk software PBX to connect calls. This is in fact very different from a conventional GSM BTS, which is a dumb device that is managed externally by a basestation controller (BSC) and connects calls in a remote "mobile switching center" (MSC). Because of this important architectural difference, the end product of this project is better referred to as an access point, even though the project is called "OpenBTS".
Overall Architecture of the OpenBTS Access Point
Why Build an Open Source GSM Stack?¶The combination of the ubiquitous GSM air interface with VoIP backhaul could form the basis of a new type of cellular network that could be deployed and operated at substantially lower cost than existing technologies. Since these new hybrid networks are not readily compatible with legacy networks, and since radical two-tier pricing would be disruptive for existing carriers, we are not likely to see this kind of innovation from the conventional telecom community. This is the primary motivation for starting this project: a vision of truly universal telephone service. The inspiration for this project came from a simultaneous recognition of these elements after several years of experience with GSM, software radios, VoIP and sustainable power systems:
- The USRP can be readily adapted as a GSM transceiver and the hardware can be reworked to give a carrier-grade radio for use in a software BTS.
- GSM is simple. Once you have a coding framework and understand the specifications, this stuff almost writes itself.
- L1 is textbook radio and FEC algorithms.
- L2 is simplified HDLC.
- L3 is fully defined in GSM 04.08 and ITU-T Q.931 and is immediately familiar to anyone who has worked with ISDN.
- Most telephone switching functions, calling features and mobility management functions can be moved into Asterisk, eliminating the need for most of the network infrastructure (HLRs, MSCs, etc.).
- Plenty of functional GSM handsets are discarded in rich countries every year that can be reused in developing countries.
- With economical software design and careful selection of power amplifiers, it should be possible to run a low-capacity GSM cell from solar panels or micro wind turbines, drastically reducing the cost of service in off-grid environments.
GSM is Old and Boring. Why Not CDMA?¶
GSM is a good choice precisely because it is old and boring. Everyone knows it works and 80% of the world's carriers are still using it. It's a proven technology that is well-suited to the target application and the specification is publicly available.
CDMA physical layers are too complex for an inexpensive all-software radio and do not scale well for low-capacity cells. CMDA capacity comes in increments of 50 or more subscriber lines and the lowest layers of your radio must process all of that bandwidth whether you intend to use it or not. By contrast, GSM capacity comes in increments of 7-8 lines and a well-managed radio can even ignore inactive parts of the signal. Beyond the technical issues, IS-95-style CMDA (including cdma2000) is tightly controlled intellectual property. You can't even get a copy of the specification without signing an NDA and paying several hundred dollars, so open-source CDMA is out of the question.
What About GPRS/EDGE and UMTS?¶
Future versions of the OpenBTS may well support GPRS and EDGE. GPRS, when available, should be a software-only upgrade for any installed OpenBTS system. EDGE support may require additional computational resources but the additional software is not complex, at least when compared to the rest of the BTS. UMTS, however, is a radically different CDMA-style physical layer and well outside the current scope of this project.
All that said, let's walk before we run by implementing basic voice services on a single-ARFCN GMSK BTS.
What's Wrong with WiFi, WiMax, WiWhatever?¶
There are a lot of people out there who would rather not blanket Africa with WiWhatever than find a way to make GSM dirt cheap. We say "not" because none of those people who talk about it are really going to do it because it's not a realistic goal. It's sexier to talk about the newest air interface and that talk gets a lot a buzz, but the truth is that that WiWhatever is poorly suited to mobile telephony.
WiFi range is far too short for mobile coverage in rural areas. For example, you're not going to cover 700 square miles with a single WiFi tower, but that's exactly what GSM was made to do. If access points are connected through different ISPs, handovers will be unreliable. The phones are expensive and power-hungry, and compared to GSM they always will be. WiFi may become a decent technology for semi-mobile telephones in dense urban areas, but it's not a mobile phone standard and it's not well-matched to the rural cellular application.
WiMax has most of the problems of WiFi. To make matters worse, most WiMax bands don't penetrate structures very well. Most WiMax deployers are planning to solve this problem by saturating large buildings with small access points. That's fine in Manhattan and London, but we don't see anyone putting femtocells in a million houses when those households couldn't afford phones in the first place.
More important than all of that is to remember the goal of the OpenBTS: universal telephone service. Our project philosophy is that it is much better to give people basic telephone service with an upgrade path to 250 kb/sec packet service than to generate a lot of hype over a scorching fast broadband technology that can probably never be truly universal.
Is This Emerging Telephony?¶
We certainly hope so.
Who Are You People, Anyway?¶
OpenBTS is now part of the GNU Radio project and administered by the Free Software Foundation.
The original founders of this project are David A. Burgess (dburgess00 (at) gnuradio.org) and Harvind S. Samra (hssarmra (at) gnuradio.org). They are still major contributors, but assigned their copyrights to FSF on 24 October 2008. For a number of practical reasons, Harvind and David also conduct a lot of their OpenBTS activities through a California S-Corporation called Kestrel Signal Processing, Inc.
Sounds Good. How Do I Start?¶
Start from the project's main GNU Radio wiki page, OpenBTS. Read it all, get a copy and try to use it.
After that, it depends on what you want to do.
I Want to Work on the Software¶We specifically need:
- DSP and comms people for the transceiver and L1 FEC,
- protocol people and well-rounded C++ programmers for L2 and L3,
- embedded people get this code onto a target embedded board and
- Asterisk people to help us get the most out of Asterisk.
I Want to Work on the Hardware¶We specifically need:
- digital hardware engineers to customize the USRP motherboard
- RF engineers to redo USRP layouts and specify external components like amplifiers and filters
- mechanical engineers for packaging, cooling and off-grid power systems
- power engineers for off-grid power systems
I'm Not Technical, but Want to Help¶There are also ways to support this project in a non-technical capacity.
- If you have some rural land in Solano or Yolo Counties in California, you could host a test range.
- We are usually in need of equipment: test equipment, power amps, filters, masts, etc.
- We could always use money to support the work. OpenBTS can be funded though the Public Software Fund.
...or maybe you can offer something we just haven't thought of yet.