Live Contact


Picture this !


MS monitor & tracker for OpenBTS

The goal is here was to create a simple tool which allows real-time presentation of Mobile Station data. It should also be present data when the MS is handed over to another BTS.monitor


Some features which work at the moment:

    • Detect which IMSI's are available in the system and select the one of interest.
    • Information is obtained just by knowing the ip-address of a single BTS, no multiple parameter configuration required.
    • Detect relevant neighbor BTS's.
    • Only list neighbors which are 'pingable'.
    • Present data at a 0.5 second rate.
    • When a MS is on a call and is handed over to another BTS, the MS-data is still being presented to the application. This can be activated on the GUI. If you are only interested in data from a single BTS, the feature can be turned off.
    • User-friendly GUI.

Short demonstration (3 minutes) of the tool on Youtube:  Beta Demo

The tool relies on the recent introduced API of OpenBTS. It is in a early stage, but interesting enough to play with. Hence this tool. The source of the tool will be published on Github once the rough-edges are polished.

Some requirements on the BTS (after a standard install):

    • A firewall-change which NAT's to and some specific ports. This allows ZeroMQ communication between the host on which the application runs and the BTS's. (Firewall rules posted below.)
    • A kernel-parameter-change which allows access to Also required for communication via ZeroMQ.
    • The above is required because I have no changes to original the OpenBTS-source in mind.

Some requirements on the host running the tool:

    • NetMQ if not installed from a distribution package.
    • .NET 4

To enable network access to the API of a BTS, a change is required of the standard firewall of that BTS.  The 'trick' is to NAT the ip-address of the local ethernetcard to<port>.  In addition a kernel-parameter needs to be altered to allow access to from an external network. Some may consider this a security-risk. Furthermore, the changes need to be permanent, to survive reboots.

Firewall setting:

iptables -t nat -I PREROUTING -p tcp -d <ipaddress> --dport 45060 -j DNAT --to-destination
iptables -t nat -I PREROUTING -p tcp -d <ipaddress> --dport 45063 -j DNAT --to-destination
iptables -t nat -I PREROUTING -p tcp -d <ipaddress> --dport 45064 -j DNAT --to-destination
iptables -t nat -I PREROUTING -p tcp -d <ipaddress> --dport 45160 -j DNAT --to-destination

Where <ipaddress> is the ipaddress assigned to the local ethernet-interface of the BTS. To make the firewall change permanent I installed 'iptables-permanent'.

sudo apt-get install iptables-persistent



sudo sysctl -w net.ipv4.conf.eth0.route_localnet=1

Where 'eth0' is the local ethernet interface of the BTS. To make this change permanent, add an entry 'net.ipv4.conf.eth0.route_localnet=1' in this file:


Updated version:

  • Visual indicators of RX Level & RSSI
  • Fixed IMSI selection, only IMSI's know by SipAuthServe can be selected
  • When a IMSI is selected, the associated msisdn (phonenumber) is made visible. Usefull when you only know the phonenumber you are interested in.
  • When Rx Qual Full BER exceeds 0, the textbox turns yellow, indicating the Rx BER more prominent that it exceeds the desired value.

monitor rev2

Go to top