Dummy
Intro
- Gateway software to run on on-site E1 connection (see artice E1/T1 Interface)
- Transmits application-level messages between CTS E1 and TetraPack Core
- Decodes/encodes full signalling stack:
- E1 handler \
- HDLC FSM - (normally done by IC on BSC411 board)
- Q.921 FSM /
- Inter-site Connect transport including priority management (normally done by ISCD2.EXE)
- Decodes/encodes E1 and pre-buffer carrier streams (normally done by BSC411/TR412 boards)
- Partially emulates BSS.EXE/GWS.EXE (presence / status updates)
- VTUN over E1 between CTS and host (does not forward to the server)
- Uses the same bss3.txt configuration file as a base-station
- Has additional D-BUS API to pass specific data types such CTS logs to the server
- Debian 11 arm64 or amd64, tested on Raspberry Pi 3*, CM4 and Intel x64 PC
- Typical IP bandwith 4-100 Kbits/sec
* Some revisions of Raspberry Pi 3 have issues with icE1usb connection stability due to USB NIC
Configuration
Default configuration file is /opt/TetraPack/default.env
# E1D interface and line in format [interface number].[line number]
DUMMY_LINE=0.0
# Path to CTS topology file (bss3.bss.txt or bssparams.txt)
DUMMY_TOPOLOGY=/opt/TetraPack/bss3.bssparams.txt
# IP address and mask for CTS VTUN interface
DUMMY_NETWORK="192.168.0.8 mask 255.255.255.0"
# Specific options (multiple values can be delimited with comma):
# replace-forwarded-link-status - replace IP-forwarded status for both E1 lines status of local BSs/GWPC to up
# emulated-bs-line1-down - set E1-1 status of emulated BS to down
# emulated-bs-line2-down - set E1-2 status of emulated BS to down
# emulated-gwpc-line1-down - set E1-1 status of emulated GWPC to down
# emulated-gwpc-line2-down - set E1-2 status of emulated GWPC to down
DUMMY_OPTION=
# Server connection URI in format http(s)://[user]:[password]@[address]/[path and parameters]
# If you care about securely stored password, please put credentials into /opt/TetraPack/.netrc (man netrc)
DUMMY_CONNECTION="http://xxxxxx:password@core.tetrapack.online:8081/dummy/?emulation=bs+gwpc"
# Instance name for D-BUS IPC interface
DUMMY_INSTANCE=default
Connection URL
Parameters:
- emulation
- bs - tells Core to emulate basestation, required to deliver group and private calls. Emulated basestation will use ID from topology file (/base-station/base-station-id)
- gwpc - tells Core to emulate GWPC, required to forward SMS, location, etc. Please don't use if you have GWPC on-site
Topology
bss3.txt / bssparams.txt is used to map CTS system topology and E1 layout as well as a system configuration. Parameter /base-station/base-station-id is used as identifier of emulated basestation (identifier of GWPC is hardcoded in CTS).
A capacity (amount of concurrent calls) of emulated basestation depends on amount on configured virtual transceivers for this basestation. Capacity = [count of transceivers] * 4 - 1
Please keep in mind that due to specific of CTS system topology must me configured as a chain of nodes, connected end-to-end. For example if you have two physical BSs, topology file has to be configured in scheme BS1 <-> BS2 <-> emulated BS <-> emulated GWPC. Regarding to this scheme you have to have properly configured termination endpoint in the main configuration (.env):
# emulated-bs-line1-down - set E1-1 status of emulated BS to down
# emulated-bs-line2-down - set E1-2 status of emulated BS to down
# emulated-gwpc-line1-down - set E1-1 status of emulated GWPC to down
# emulated-gwpc-line2-down - set E1-2 status of emulated GWPC to down
DUMMY_OPTION=emulated-gwpc-line1-down
Multiple instances
You can have several separated CTS systems connected to one or more core servers (for example, production and test). For such case you need to have several .env files for each configuration. use sudo ./setup.sh install to register all instances.
Also it's possible to run dummy in command line - sudo ./run.sh <configuration.env>