OpenBTS / OsmoBTS Transceiver

The following how-to will guide you through the steps needed for using an OsmocomBB-compatible phone as transceiver for OsmoBTS or OpenBTS.


First of all, make sure you have the Preliminary Requirements Also you need to have a working setup of OsmocomBB.

To get started with your phone-as-BTS setup, follow the following steps:


The transceiver needs libosmodsp as a dependency:

git clone git://

To compile and install it:

cd libosmo-dsp/
autoreconf -i
sudo make install
cd ..

Building OsmocomBB

In the OsmocomBB-tree, switch to the sylvain/testing branch:

git checkout sylvain/testing

After doing that, build the source:

make HOST_layer23_CONFARGS=--enable-transceiver

Building OpenBTS

Follow this excellent how-to in the Range Networks Public wiki on building OpenBTS.

Once you have OpenBTS up and running, you need to change the following configuration parameters in the database (/etc/OpenBTS/OpenBTS.db):

Control.GSMTAP.TargetIP =
GSM.Radio.NeedBSIC = 1
GSM.Radio.Band = 1800
GSM.CellSelection.Neighbors =           (set to empty string)
GSM.RACH.MaxRetrans = 3
GSM.RACH.TxInteger = 8
GSM.Radio.C0 = <your ARFCN (see note)>
Control.LUR.OpenRegistration = ^26242.*$   (note: in this example only IMSIs with MCC 262 and the MNC 42 will be allowed to register to the network, change that accordingly)

Warning: Only set GSM.Radio.C0 to an ARFCN you have a valid license for.

Booting the phone

Use osmocon to execute the trx app on the phone (trx.compalram/highram.bin).

Starting OpenBTS

In the folder where the OpenBTS executable resides, create a script with the filename transceiver with the following content and make it executable:

exec <your path to osmocom-bb>/src/host/layer23/src/transceiver/transceiver 1

Whereas 1 needs to be replaced with the ARFCN of the reference cell you want to use for synchronization (find a strong one with the rssi-app for example).

You now can start up OpenBTS and should hopefully see the BTS by performing a manual network search with your phone. Monitor the output of osmocon and the transceiver/OpenBTS to see if all goes well. If anything should fail, reboot the phone and start over.