- PHP 69.1%
- Volt 27.5%
- Shell 2.4%
- Makefile 1%
| src/opnsense | ||
| +POST_INSTALL.post | ||
| +PRE_DEINSTALL.pre | ||
| LICENSE | ||
| Makefile | ||
| pkg-descr | ||
| README.md | ||
os-vos5g — OPNsense plugin: 5G VOS router status monitor
Live status dashboard for a VOS-branded 5G / 4G-LTE router, straight from the OPNsense web UI.
What it shows
Pulls the router's own diagnostic data via its web CGI API
(qcmap_web_cgi) and displays:
| Section | Fields |
|---|---|
| Signal & serving | LTE RSRP (dBm), 5G NR RSRP (dBm), operator, MCC/MNC, radio interface, serving band, channel, CA status |
| Carrier aggregation | Pcell + Scell 1–4 with bandwidths |
| SIM & APN | SIM status, PIN/PUK retry counters, APN name, PDP type |
| Firmware | firmware + module versions |
How authentication works
The VOS router does not accept a cleartext password. Its login flow
(cgi-bin/qcmap_auth) expects the password, XXTEA-encrypted with a fixed key
(currently O2xiAxil09), and returns a session token. That token is then sent
on every qcmap_web_cgi call both as a POST field and as the
X-Csrf-Token header. This plugin reproduces that flow over HTTPS with no
browser (library/OPNsense/Vos5g/Xxtea.php is a byte-for-byte port of the
router's xxtea.js).
Install
This tree drops into the official opnsense/plugins repo as os-vos5g/ and
is built with the OPNsense build box (Makefile includes Mk/plugins.mk).
After install:
- Configure the router host / username / password under Services › 5G VOS router › Settings.
- Open the Status page (or
/ui/vos5g/status/index) to view live data. - CLI / automation:
configctl vos5g status.
API
GET /api/vos5g/status/get— live status (JSON)GET|POST /api/vos5g/settings/get|set— plugin configuration
Requirements
- OPNsense (modern MVC plugin tree)
- PHP
curlextension
License
BSD-2-Clause. Copyright (C) NT Home Lab.