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, C0, Radio.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:
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:
For more information about options of running Yate run:
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:
- nipc.js implements a Network in a PC 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 PC application.
After setting up the NiPC 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