TRX IP - Callbox/UEsim
The purpose of this tutorial is to show you how to utilize the software packages installed in trx-ip mode. Actually there is no fundamental differences in terms of high level operation between normal mode and trx-ip mode. So the main purpose of this tutorial is not show the details on basic operation, but to show that what kind of capabilities are supported and verified.
TRX IP mode is the mode of operation in which a Callbox and UEsim exchange all the communication data/signal in IP packet without using any physical SDR card. It has a good / handy use-cases as follows
- Run Callbox / UEsim without SDR card
- Run Callbox / UEsim in a single PC
In short, with trx ip feature, you can run all of the following stacks within a single PC without any dedicated hardware (i.e, sdr card)

Table of Contents
Introduction
TRX IP mode represents a significant advancement in the field of wireless communications testing, offering a flexible and hardware-agnostic approach to protocol stack verification and functional validation. Traditionally, software-based base station simulators (Callbox) and user equipment simulators (UEsim) require physical Software Defined Radio (SDR) cards to facilitate radio frequency (RF) communication. In contrast, TRX IP mode enables these components to exchange all protocol and signaling data over standard IP packets, effectively eliminating the need for dedicated RF hardware. This architecture allows the complete radio access network (RAN) protocol stack—encompassing layers such as PHY, MAC, RLC, PDCP, RRC, and NAS—to operate seamlessly within a single computing environment, using virtualized network interfaces instead of physical transmission channels. Such capabilities are particularly valuable for software development, automated testing, and CI/CD workflows, as they simplify setup, reduce hardware dependencies, and increase reproducibility. By decoupling the protocol stack execution from physical SDR constraints, TRX IP mode enhances test coverage, accelerates development cycles, and enables rapid prototyping in both research and commercial contexts. In the broader ecosystem, this approach supports scalable, cost-effective solutions for network validation, training, and continuous integration, reflecting a growing trend towards virtualization and cloud-native architectures in telecommunications.
-
Technology Overview
- Context and Purpose: TRX IP mode enables Callbox and UEsim to communicate via IP packets, bypassing the need for SDR hardware and RF signals. This mode is designed for environments where physical radio transmission is unnecessary or impractical, such as software development labs, CI/CD pipelines, or virtualized testbeds.
- Architectural Highlights: The protocol stacks for both the network and user equipment are instantiated within a common computing platform. Inter-layer communication is handled internally, while interface points for RF data transfer are replaced with virtual IP-based channels, maintaining protocol fidelity without physical transmission.
-
Key Concepts:
- Virtualized radio access via IP packet exchange
- Full protocol stack execution on a single PC
- Elimination of SDR hardware dependencies
- Support for both standalone and integrated test scenarios
-
Relevance and Importance
- Use Cases: TRX IP mode is invaluable for software developers, testers, and researchers who require a flexible, repeatable, and hardware-independent environment for protocol validation, troubleshooting, and feature prototyping.
- Advantages: Accelerates development cycles, reduces hardware costs, and facilitates complex automation scenarios. Enables seamless integration with modern software engineering workflows, including continuous integration and automated regression testing.
-
Tutorial Outcomes
- Learners will gain practical experience in configuring and operating Callbox and UEsim in TRX IP mode.
- Understand the architectural differences and operational workflows compared to traditional SDR-based configurations.
- Acquire the skills to leverage TRX IP mode for efficient protocol stack verification and automated testing within a virtualized environment.
-
Prerequisite Knowledge
- Familiarity with wireless communication concepts and protocol stack layers (PHY, MAC, RLC, PDCP, RRC, NAS).
- Basic understanding of IP networking and virtualization principles.
- Experience with the Callbox and UEsim software environments is beneficial but not strictly required.
Summary of the Tutorial
This tutorial demonstrates the basic call setup procedure using Amarisoft Callbox and UEsim in trx-ip mode, focusing on configuration and operational steps while highlighting differences from standard SDR mode. The test is designed to show that, aside from specific rf_driver settings, operation in trx-ip mode is functionally equivalent to SDR mode, with the convenience of running all components on a single PC.
-
Test Setup
-
No physical SDR hardware is required; the entire setup is achievable on a single PC with a compatible operating system for Amarisoft Software.
The configuration uses loopback IP interfaces for RF data exchange between Callbox (ENB/MME/IMS) and UEsim.
-
-
Configuration Procedure
-
Navigate to /root/enb/config and ensure the enb.cfg is linked to enb.default.cfg. This is typically the default; re-link if needed for clarity.
The ENB configuration file (enb.default.cfg) remains unchanged from normal mode, except for the rf_driver include, which points to ip/config.cfg instead of sdr/config.cfg.
/* RF driver configuration */
include "rf_driver/config.cfg",
<== this file is mapped to /root/enb/config/ip/config.cfg whereas it is mapped /root/enb/config/sdr/config.cfg in normal mode(sdr mode) /root/enb/config/ip/config.cfg contains the specific IP-based RF driver configuration. The key difference is name: "ip" (as opposed to "sdr"), which enables data exchange via IP sockets. Port mappings are defined to facilitate this virtual RF link.
Core network configuration (MME) does not change for trx-ip mode.
On the UEsim side, ue.default.cfg is also used, with the rf_driver include pointing to /root/ue/config/ip/config.cfg.
include "rf_driver/config.cfg",
<== this file is mapped to /root/ue/config/ip/config.cfg whereas it is mapped /root/ue/config/sdr/config.cfg in normal mode(sdr mode)
The /root/ue/config/ip/config.cfg similarly sets name: "ip" for the rf_driver and defines corresponding port mappings for RF communication over IP.
-
-
Service Verification
-
Use service lte status to confirm LTE services are active and running.
Use service lte restart and screen -r to access the terminal multiplexer showing all Callbox and UEsim processes running together.
-
-
Test Execution
-
On the ENB console, verify S1 connection to MME using the s1 command; ensure the ENB is properly registered with the core.
From the MME console, verify ENB connectivity using the enb command.
On UEsim, initiate power_on to start UE registration and interaction with the network.
Use the t (trace) command to monitor the log output and confirm normal operation. Trace logs should appear as in SDR mode, though potentially at a slower rate.
-
-
Log Analysis
-
The WebGUI log option can be set for full stack logging, confirming that the procedure and output in trx-ip mode match those in SDR mode, from PHY through higher layers.
Sample logs of IP-based traffic, such as ping, confirm identical behavior to SDR mode operation.
-
Conclusion: The tutorial shows that basic call setup with Callbox and UEsim in trx-ip mode requires only configuration changes for the RF driver, specifically mapping to IP-based config files. All operational procedures, service checks, test execution, and log analysis steps remain fundamentally the same as in SDR mode, providing a convenient and hardware-free testing environment.
Test 1 : Basic Call setup
This is just to show you the basic operation of a Callbox and UEsim connected with trx-ip mode. Most of operation is same as explained in the tutorial OutOfBox LTE. The only difference that I want to highlight is rf_driver related configurations in the configuration file. So if you are already familiar with basic usage of Callbox and UEsim, you may just look into 'Configuration' part and skip the other parts.
Test Setup
Since this does not require any physical SDR card, the only hardware setup that you need is a single PC with the operating system that support Amarisoft Software.

Configuration
Go to the directory /root/enb/config and make a symbolic link as follows. (
![]()
Now you should see the enb.cfg file linked to enb.default.cfg as follows. As you see here, there is no differences in terms of configuration file name. The only differences would be the rf_driver configuration within the contents of the configuration file which will be explained shortly.

Now go to the directory /root/mme/config. You should see the configuration files as below. For core network configuration, there is no differences at all between trx-ip mode and normal mode.

Now let's take a look into enb.cfg (/root/enb/config/enb.default.cfg). Actually the contents of this file is exactly same as the enb.default.cfg file in normal mode. The only difference is the configuration file mapped to rf_driver/config.cfg file.
|
/* RF driver configuration */ include "rf_driver/config.cfg",
|
Then check out the contents of /root/enb/config/ip/config.cfg
|
/* Parameters for IP RF frontend version 2024-03-21 * Copyright (C) 2015-2024 Amarisoft */ rf_driver: { name: "ip", clock: "master", /* * >1: Faster * +1: Real time * <1: Slow down * 0: Best effort (sync with slave) */ #default CLOCK_FACTOR 1 clock_factor: CLOCK_FACTOR, debug: 0, packet_size: 3958, //sample_format: "fc32", #ifdef USE_TCP use_tcp: 1, #endif #ifdef USE_MT multi_thread: 1, #endif
/* Port 0 */ dst0: "127.0.0.1:4000", src0: "127.0.0.1:4001",
/* Port 1 */ dst1: "127.0.0.1:4002", src1: "127.0.0.1:4003",
/* Port 2 */ dst2: "127.0.0.1:4004", src2: "127.0.0.1:4005", },
tx_gain: 43, /* TX power: 20W */ rx_gain: -50, /* RX power: use UE tx_gain */
|
One UEsim side as well, I will just use the default configuration (ue.default.cfg).

Now let's take a look into ue.cfg (/root/ue/config/ue.default.cfg). Actually the contents of this file is exactly same as the ue.default.cfg file in normal mode. The only difference is the configuration file mapped to rf_driver/config.cfg file.
|
include "rf_driver/config.cfg",
|
Then check out the contents of /root/ue/config/ip/config.cfg
|
/* Parameters for IP RF frontend version 2024-03-21 * Copyright (C) 2015-2024 Amarisoft */ rf_driver: { name: "ip", clock: "slave", // clock: "slave-nosync", debug: 0, packet_size: 3958, //sample_format: "fc32", #ifdef USE_TCP use_tcp: 1, #endif #ifdef USE_MT multi_thread: 1, #endif
/* Port 0 */ dst0: "127.0.0.1:4001", src0: "127.0.0.1:4000",
/* Port 1 */ dst1: "127.0.0.1:4003", src1: "127.0.0.1:4002",
/* Port 2 */ dst2: "127.0.0.1:4005", src2: "127.0.0.1:4004",
dst3: "127.0.0.1:4007", src3: "127.0.0.1:4006", },
tx_gain: -50, /* TX power */ rx_gain: 0, /* RX power */
|
Check if LTE service is Running
As a basic checkup, try with 'service lte status' and confirm that the the LTE service is in 'active (running)' status without causing any problem. It would be a good idea to check this out at least once right after you install the package.

Just try with 'service lte restart' and 'screen -r' to get the screen as shown below. This is same as the screen that you get in normal mode. One different thing is that you get both callbox component (MME, ENB, IMS) and UEsim component(UE) in the same screen.

Perform the Test
Basic operation in trx ip mode is not different from Callbox and UEsim operation in normal mode (sdr mode). The purpose of this section is just to show that the usage of trx ip mode is same as the normal mode. The only difference is that you can do all of these operations in a single PC.
Once you are in screen mode in LTE configuration, check if the enb is properly connected to mme (LTE core network) by checking the output of 's1' command.

In the same way, you can check if enb is connected to the core network from mme screen by checking the result of 'enb' command.

Once enb and corenetwork is connected to each other propery, you can try 'power_on' on UEsim
![]()
Then you can check out the trace log by 't' command. The result of the output would be same as you get in normal mode, but the log is printed at much slower phase.

Log Analysis
The purpose of this section is not for doing any analysis but for providing an evidence that the trx-ip gives the same output as in the normal mode. So only a few snapshot will be presented without much explanation.
First I set WebGUI log loption for full stack as explained here. It shows the traffic from PHY through higher layer.

This is the log for the ping showing the higher layer traffic which is also same as in the normal mode (sdr mode)
