starting the softmodem with the telnet server

March 27, 2026 ยท View on GitHub

By default the embedded telnet server, which is implemented in a shared library, is not built. It can be built after compiling the softmodem executable using the build_oai script:

 cd \<oai repository\>/openairinterface5g
 source oaienv
 cd cmake_targets
 ./build_oai  --build-lib telnetsrv

This will create the libtelnetsrv.so and libtelnetsrv_<app> file in the cmake_targets/ran_build/build subdirectory of the oai repository. <app> can be "enb", "gnb", "4GUE", "5GUE", "ci" or "ciUE" each library containing functions specific to a given executable:

Library NameDescription
libtelnetsrv.soGeneral telnet server library
libtelnetsrv_enbeNodeB specific functions
libtelnetsrv_gnbgNodeB specific functions
libtelnetsrv_4GUE4G NR UE specific functions
libtelnetsrv_5GUE5G NR UE specific functions
libtelnetsrv_cigNB specific CI functions
libtelnetsrv_ciUEUE specific CI functions

When starting the softmodem, you must specify the --telnetsrv option to load and start the telnet server. The telnet server is loaded via the oai shared library loader.

using the Command Line Interface

By default the telnet server listen on all the ip addresses configured on the system and on port 9090. This behavior can be changed using the listenaddr and listenport parameters. The telnet server includes a basic help, listing available commands and some commands also provide a specific detailed help sub-command. Below are examples of telnet sessions:

telnet server parameters

The telnet server is using the oai configuration module. Telnet parameters must be specified in the telnetsrv section. Some parameters can be modified via the telnet telnet server command, as specified in the last column of the following table.

nametypedefaultdescriptiondynamic
listenaddripV4 address, ascii format"0.0.0.0"local address the server is listening onN
listenportinteger9090port number the server is listening onN
listenstdininteger (bool)0enable input from stdin via additional threadN
policyinteger0scheduling priority for telnet (0-99)N
loopcountinteger10number of iterations for the loop commandY
loopdelayinteger5000delay (in ms) between 2 loop command iterationsY
histfilestring"oaitelnet.history"file used for command history persistencyY
histsizeinteger50maximum number of commands saved in the historyY
logfilestringoaisoftmodem.logoutput file to which to redirect
phypbsizeinteger65000string buffer size to dump phy statsY
staticmodstring(empty)additional internally defined telnet modules (--telnetsrv.staticmod X, comma-separated) to load on startup. The modules should define a function add_X_cmds() in which the module can register telnet commandsN
shrmodstring(empty)additional shared object files telnetsrv_X.so (--telnetsrv.shrmod X, comma-separated) to load on startup. The shared object(s) should define a function add_X_cmds() in which the shared object can register telnet commandsN

oai telnet server home