From OpenBTS
Revision as of 00:11, 24 July 2014 by Miedema (Talk | contribs) (Created page with "== Introduction == OpenBTS-UMTS is a Linux-based application that uses a software radio to present a UMTS network to any standard 3G UMTS handset or modem. == Supported Radi...")

(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search


OpenBTS-UMTS is a Linux-based application that uses a software radio to present a UMTS network to any standard 3G UMTS handset or modem.

Supported Radios

The following instructions support the Range Networks SDR1 radio, integration with other software-defined radios is ongoing, see Radio Integration for more information about connecting OpenBTS and OpenBTS-UMTS to different radio interfaces.

Build, Install, Setup, and Run Instructions

To build and run the software, you will want to use the following steps:


Several prerequisites are required to successfully build and run OpenBTS-UMTS, including:

  • Ensure you have a Ubuntu 12.04 i386 (32-bit) server system with a connection to the Internet.
  • You may also need available packages such as build-essentials and g++, several other packages are setup when building OpenBTS, see the BuildInstallRun page for more information.
  • You will need the ASN1C compiler setup and installed.
  • OpenBTS-UMTS needs sipauthserve to register and process handsets coming onto the network. See Building and Installing the Subscriber Registry and sipauthserve for more information.
    • Don't forget to add a subscriber, use a SIM with a known IMSI and Ki value.
    • Ensure you have launched sipauthserve:
  cd /OpenBTS
  sudo ./sipauthserve &

Obtaining the OpenBTS-UMTS Source Code

OpenBTS-UMTS is available on GitHub, ensure that you have Git version 1.8.2+ installed on your system, and then:

  git clone

Building and Setting Up OpenBTS-UMTS

You are now ready to build OpenBTS-UMTS, from your checked-out OpenBTS-UMTS directory:

  sudo ./
  sudo ./configure
  sudo ./make
  sudo ./make install

The OpenBTS-UMTS application will be placed into the /OpenBTS-UMTS directory. Before running it, there are several other support steps necessary. The first is to instantiate some run-time artifacts needed by OpenBTS-UMTS, including the initial database:

  sudo mkdir /var/log/OpenBTS-UMTS

Create the configuration database with this command:

  sudo sqlite3 /etc/OpenBTS-UMTS/OpenBTS-UMTS.db "OpenBTS-UMTS.example.sql"

Copy sipauthserve's comp128 to run-time directory of OpenBTS-UMTS

  sudo cp /OpenBTS-UMTS/comp128 /OpenBTS-UMTS/

You will need to go into the TransceiverRAD1 directory and run the following script right before running the OpenBTS-UMTS binary in the apps directory (OpenBTS-UMTS/apps/):

  sudo ./

You will need to setup forwarding in iptables to properly forward data between your devices, your host machine, and the Internet. Create a file called /etc/OpenBTS-UMTS/iptables.rules and insert the following:


Then, edit yoru Ubuntu network settings to include the rules script:

  sudo /etc/network/interfaces

Insert into your Internet-facing network interface:

  pre-up iptables-restore < /etc/OpenBTS-UMTS/iptables.rules

Running OpenBTS-UMTS

After successfully building and configuring, you are ready to launch OpenBTS-UMTS:

  cd /OpenBTS-UMTS
  sudo ./OpenBTS-UMTS

Several useful commands are available for debugging the packet-switched OpenBTS-UMTS application:

  sgsn list


Regarding troubleshoot SDR1, YMMV

My data stream is always dropping, what can I do?

Try increasing the transceiver buffer size. The default is 1e6, but this can be increased depending on your available hardware.

  config UMTS.RLC.TransceiverBufferSize 5000000
  rawconfig UMTS.RLC.TransceiverBufferSize 100000000