Chapter 7. NodeManager APIs

NodeManager is a common control interface across OpenBTS, SMQueue, and SIPAuthServe used for system configuration and monitoring. All components support some common functionality (such as configuration manipulation) with specialized APIs available for component-specific tasks or data sources. The NodeManager APIs are divided into two main categories: request/response and streaming. Both types use JSON formatted messages and communicate over ZeroMQ, a library that creates simple and robust socket connections between processes. NodeManager APIs were implemented to simplify the remote management of multiple OpenBTS instances, as well as Central Services like SMQueue and SIPAuthServe.

APIs are such a normal part of the Internet that this might not seem too exciting. However, keep Figure I-1 in mind when reading through PhysicalStatus API. No need for a dozen protocols and entities—the core radio measurement data is now available directly as a stream of JSON messages! Additional APIs will be added to the NodeManager interface in future releases.

nmcli.py

A small Python utility is included in the NodeManager repository named nmcli.py. It requires a few dependencies to be installed, but the build.sh script (in Building the Code) should have already done this. To make sure you have them, here are the manual commands:

$ sudo add-apt-repository -y ppa:chris-lea/zeromq
$ sudo apt-get update
$ sudo apt-get install libzmq3-dev libzmq3 python-zmq

The capabilities of nmcli.py ...

Get Getting Started with OpenBTS now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.