"What would the world look like if cellular networks were open-sourced?"
In mid-2007, Kestrel Signal Processing, Inc., a small software radio consulting shop in northern California, started writing an implementation of a GSM basestation. The initial developers were Kestrel co-founder Harvind Samra and myself. Our goal was to create a new kind of light-weight cellular network that could be built out inexpensively in remote and sparsely populated areas. Our software-radio GSM system, now called OpenBTS, was released publicly under the GPLv3 license in September 2008 and will be used in pilot deployments with small operators by the time this article goes to publication. This will probably be the first use of a free software basestation in a public cellular network, where both network operators and subscribers can download and read the full source code of the GSM protocol stack that connects their handsets to the rest of the world and where the operators will be free to modify the system to meet their specific needs. This article introduces the goals and evolution of the OpenBTS project.
To understand the relationship between OpenBTS and open source development, you must first understand the project's history. Initially, we planned to fund the development of low-cost cellular technology through the standard Silicon Valley startup process. Our process started in July 2007 with a meeting of the project founders and our first senior advisor, Glenn Edens, a former executive at both AT&T and Sun. We had breakfast along the San Francisco waterfront, laid out our story for Glenn, and asked how we should start our search for funding. After listening and considering, he said, "You don't need money at this point. You need a movement. Do this as a public open source project and develop a following, then the money will be much easier." Glenn also suggested using the Burning Man festival as a technical proving ground for the project, for the exposure that it would produce, and because it would be a lot of fun. This one meeting set the direction of our activities for the next 18 months.
Despite the name, OpenBTS is not a natural candidate for a public open source project. For such a project to have mass appeal, it needs to be something that is easy to use and can provide significant functionality early in the development process. A GSM network stack lacks both of these features. First, the stack must be mostly complete in layers 1 and 2 to do anything useful and these are the most complex layers of the system. Second, a developer needs about US$1,300 worth of radio equipment, a legal way to operate that equipment, some test phones, and a working knowledge of how GSM networks and handsets interact. Granted, US$1,300 is a remarkably small sum for a cellular basestation development kit, but this cost would be a significant barrier for many potential contributors. Given these circumstances, we knew that we would not make a public announcement of our project until layers 1 and 2 were complete. We assumed that open source participation would be limited to people who already owned the required hardware, the Universal Software Radio Peripheral (USRP), for other projects. We would have to write a lot of OpenBTS ourselves, see it work and then release it, and that would take several more months. Even after that, we did not expect a lot of outside contributions.
In May 2008, just as the software was becoming complete enough for a public release, a former consulting client sued Kestrel and me personally over the OpenBTS project, claiming that the yet-unreleased source code was misappropriated from work I had done for him in the period 2005-2007. The work in question was a GSM stack for an IMSI-catcher, a device used to perform false-basestation and man-in-the-middle attacks on cellular networks. The client filed this suit having seen only a small fraction of the OpenBTS source code and knowing that I had written other GSM protocol implementations for other defense-sector clients prior to working for him. Among other things, he accused me of violating the trade secrets act, even though GSM is a publicly available specification and IMSI-catchers are the subject of patents in the UK and EU. This client eventually claimed the text of the source code itself as a trade secret, even though we did not use that client's source code in the OpenBTS project. It was our position that the case had no merit. We laid off our two junior employees to free up money for legal fees and continued moving forward as well as we could.
In September 2008, we ran a GSM test network at the Burning Man festival in Nevada. Our funds and equipment were limited, but the system actually worked. We immediately followed the test with a public announcement and the first public release of the source code. We made our initial announcement in the GNU Radio project's mailing list, a large forum for USRP developers. News of the project spread quickly in the USRP and GNU Radio communities and within a few weeks John Gilmore, one of the founders of the Free Software Foundation (FSF) and a backer of GNU Radio, expressed interest in the project. John suggested that we transfer the copyrights for the OpenBTS source code to the FSF for release under the GPL license. We soon realized that the FSF's standard assignment contract preserved nearly all of our rights as developers through the grant-back of a blanket license. We formalized our FSF copyright assignment on October 24, 2008 and made a GPL release through the GNU Radio web site within a few days.
In early November 2008, after tens of thousands of visitors to the OpenBTS web site and hundreds of downloads under GPLv3, the ex-client and his lawyers discovered the public distribution of OpenBTS. They immediately petitioned the court for an injunction blocking distribution of the software, not against the FSF, but against the project founders. The court granted a more limited injunction requiring us to preserve the "names and internet addresses" of those who received technical information from the project. While that compromise seemed reasonable to the court in principle, the practical reality was confusing. We could only distribute the source code to individuals through e-mail, but the FSF, not being a party to the case, continued to run their anonymous access servers unaffected. We could continue to develop privately, but could not contribute to the public distribution of the project we had started. While this arrangement distorted the project's management, it was clear that the only way anyone could really shut down the OpenBTS project would be to sue the FSF directly. Another effect of the injunction was greater public interest in the project. News of the injunction became a starting point for many online discussions of intellectual property law. As the public profile of the lawsuit rose, this client was becoming a well-known member of an industry that avoids publicity. The case was settled and the injunction lifted in August 2009, after several months of negotiations. While the settlement and negotiations were confidential, we have no doubt that our public release through the FSF had a tremendous influence on the early settlement of the case.
OpenBTS continues to make GPLv3 releases through the FSF GNU Radio project. To date, the public and commercial releases of OpenBTS are identical in functionality, differing only in licensing. Our long-range plan is to follow a model similar to that of Digium and Asterisk, with a free public release under the GPL and a commercial private release under a different license. We will also have a contributor's license agreement that protects the rights of contributing developers while transferring the copyrights for their contributions to Kestrel. We do not do this expecting other developers to write our system for free. A great majority of the current code has been written by Kestrel employees and paid contract developers and we do not expect that to change. There are, however, several practical reasons for maintaining a free public release.
Free as in Freedom
Free software and open source software are not the same thing, although OpenBTS's public release is both. One of the great lessons of our lawsuit experience is that widespread public distribution is an excellent way to protect your right to continue producing that work.
One of the best reasons for a public release is to maintain the public visibility of the project. By making the source code available to developers and students for inspection and evaluation, we make the project real and exciting in the minds of a lot people. Since our long term goal is to provide cheap communications in poor and remote areas, it is counter to the spirit of the project to tell students and development workers that they must pay thousands of dollars to use the software in their experiments. From a business standpoint, there is little to be gained by denying groups that can not afford large licensing fees access to the software. The direct business advantage is that their work may lead to new applications and markets that we would not have been aware of otherwise. There is also a business advantage in creating a public image of the project as supportive of groups with socially important goals.
Testing and Documentation
While we do not get a lot of no-cost contributions from outside developers, we do get a lot of useful bug reports and debugging discussions. By following the typical sequence of questions from a new user and reading the material posted to the public wiki and discussion lists, we develop better documentation. The feedback we get through the public release is valuable in development and in the preparation of training materials and documentation.
As our project attracts more funding and we are required to hire staff, we expect the public work on the project to be a useful recruiting tool. While we do not depend on outside developers to move the project forward, such developers do exist. Most would contribute more if they could be paid to do so and some would be glad to have full-time jobs on the project. From a hiring standpoint, these developers are known quantities. We have been coordinating with them and already have samples of their work. We have had good results hiring contract developers this way and hope to continue and expand that practice in the future.
Simply put, an open source release may have saved our project. Now that the litigation threat is over, open source work continues to serve our commercial interests.