OPNsense plugin: 5G VOS router status monitor
  • PHP 69.1%
  • Volt 27.5%
  • Shell 2.4%
  • Makefile 1%
Find a file
2026-10-01 13:20:12 +00:00
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 curl extension

License

BSD-2-Clause. Copyright (C) NT Home Lab.