Running YateBTS

This page is a starting point on how to configure and run YateBTS. Further information can be found in Configuration section in the menu on the left side of the page.

Configure YateBTS

Starting with Yate 5.2, Yate loads the ybts module by default. Previously, users needed to set extrapath=bts in [general] section in the yate.conf, but this step is no longer needed.

Also by default, Yate loads all the available modules. Unless you are an expert user of Yate and want to customize the loading of modules, we recommend that you load all modules.

To configure YateBTS, you have to modify the ybts.conf file from /usr/local/etc/yate.

Make sure you set at least the Radio.BandC0Radio.PowerManager.MaxAttenDB and Radio.PowerManager.MinAttenDB’on which YateBTS will operate. You must set Radio.PowerManager.MaxAttenDB and Radio.PowerManager.MinAttenDB with the default value 40. This is necessary in order not to interfere with an already used frequency.

Note: You can also change the output power from rmanager (Telnet) with the command:

mbts power 40 40

You will also need to modify the Path in the [transceiver] section, depending on the transceiver used. The example below shows the necessary set-up when using the bladeRF transceiver. ./transceiver is a link to ./transceiver-bladerf.

[transceiver]
;Path to the transceiver relative to where MBTS is started.
;Should be one of: ./transceiver-bladerf ./transceiver-rad1 ./transceiver-usrp1 ./transceiver-uhd.
;Defaults to ./transceiver
Path=./transceiver

Run YateBTS

When Yate is installed from a package, the init script in /etc/rc.d/init.d/ should take care of providing the proper init parameters for starting Yate as a service.

We recommend starting Yate with the following command:

yate -sd -vvvvv -l /var/log/yate.log

This will start Yate as a supervised (-s) daemon (-d) , with maximum debug level (-vvvvv) and logs saved in /var/log/yate.log.

A list of the modules you set to load should be displayed as loading, the last one being MBTS which actually is the bts module. Make sure you have the radio connected to your PC.

If the initial configuration was performed correctly, open a new terminal window and type the following commands to start the Telnet console of Yate:

telnet 127.0.0.1 5038

For more information about options of running Yate run:

yate -h

This command will list all the possible commands and their options when starting YateBTS:

Usage: yate [options] [commands …]
-h, –help Display help message (this one) and exit
-V, –version Display program version and exit
-v Verbose debugging (you can use more than once)
-q Quieter debugging (you can use more than once)
-d Daemonify, suppress output unless logged
-s Supervised, restart if crashes or locks up
-r Enable rotation of log file (needs -s and -l)
-p filename Write PID to file
-l filename Log to file
-n configname Use specified configuration name ()
-e pathname Path to shared files directory (/usr/local/share/yate)
-c pathname Path to conf files directory (/usr/local/etc/yate)
-u pathname Path to user files directory (/home/username/.yate)
-m pathname Path to modules directory (/usr/local/lib/yate)
-x relpath Relative path to extra modules directory (can be repeated)
-w directory Change working directory
-N nodename Set the name of this node in a cluster
-C Enable core dumps if possible
-F Increase the maximum file handle to compiled value
-t Truncate log file, don’t append to it
-D[options] Special debugging options
a Abort if bugs are encountered
m Attempt to debug mutex deadlocks
d Disable locking debugging and safety features
l Try to keep module symbols local
c Call dlclose() until it gets an error
u Do not unload modules on exit, just finalize
i Reinitialize after 1st initialization
x Exit immediately after initialization
w Delay creation of 1st worker thread
o Colorize output using ANSI codes
s Abort on bugs even during shutdown
t Timestamp debugging messages relative to program start
e Timestamp debugging messages based on EPOCH (1-1-1970 GMT)
f Timestamp debugging in GMT format YYYYMMDDhhmmss.uuuuuu
z Timestamp debugging in local timezone YYYYMMDDhhmmss.uuuuuu

Test Procedure

After going through all the steps mentioned above, a scan of networks with an unlocked handset should show the signal from your YateBTS.

To actually connect a handset you need to use some of the application scripts provided with YateBTS: nipc.js or roaming.js:

For YateBTS beginners we recommend running the Network in a PC application.
After setting up the NiPC  application:

If you have any troubles check out the Troubleshooting page.

Access YateBTS remotely

Accessing and controlling your YateBTS remotely can be performed through the SSH default port 54321.

Use the default credentials below.

username: yatebts
password: yatebts

Our solutions