Running

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.Band and C0 on which YateBTS will operate.

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] ;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-bladerf

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: nib.js or roaming.js:
 * nib.js implements a Network in a Box application in YateBTS
 * roaming.js is used when you wish to send REGISTER/INVITE/MESSAGE SIP requests to an external SIP server that will handle them

For YateBTS beginners we recommend running the [| Network in a Box] application. After setting up the NIB application:


 * register to the network
 * send a test SMS to Eliza (35492)
 * make a test call to a local IVR (32843). If you call the number you should hear an IVR with further advice.

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