How fujr/qmodem works
QModem is an OpenWrt cellular-modem management stack. The documented user workflow is to manage a modem in LuCI, pass control requests through rpcd/ubus to QModem control and dialing, and reach the modem through AT or data-interface layers; status and SMS are additional user-facing workflows. The README documents discovery and several dialing protocols, while the supplied tree also exposes SMS, VoIP, firmware-download, and vendor connection components. Some central QModem and LuCI backend paths are absent from this tree, so those documented subsystems have no asserted source path; source excerpts are partial.
Main entry points: src/main.c AT port daemon · src/main.c SMS service · src/main.c AT / SMS client · overview.js LuCI modem UI
Components 19
Management UI
- LuCI modem UI
luci/luci-app-qmodem-next/htdocs/luci-static/resources/view/qmodem/overview.js - LuCI VoIP UI
luci/luci-app-qmodem-voip/htdocs/luci-static/resources/view/qmodem-voip/call.js - SMS UI
luci/luci-app-qmodem-next/htdocs/luci-static/resources/view/qmodem/sms.js
Modem control
- rpcd / ubus
- QModem control and dialer
- Modem discovery
application/modem_scan/src/modem_scand.c - AT port daemon
application/ubus_at_daemon/src/main.c - AT / SMS client
application/tom_modem/src/main.c
Connectivity
- Quectel connection manager
application/quectel_CM_5G_M/src/main.c - Cellular kernel drivers
driver/quectel_QMI_WWAN/src/qmi_wwan_q.c - MHI transport driver
driver/quectel_MHI/src/core/mhi_main.c
Modem services
- SMS service
application/qmodem_smsd/src/main.c - SMS database
application/qmodem_smsd/src/sms_db.c - SMS forwarding
application/sms_forwarder/src/main.c - VoIP daemon
application/voipd/src/main.c - SIP service
application/qmodem_sipd/src/sip_control.c - Firmware downloader
application/qfirehose/src/qfirehose.c
Other components
- Router operator
- USB / PCIe modem
Connections 20
- Router operator → LuCI modem UI: manages
- LuCI modem UI → rpcd / ubus: sends requests
- rpcd / ubus → QModem control and dialer: dispatches control
- QModem control and dialer → Modem discovery: uses discovery
- QModem control and dialer → AT port daemon: AT access
- AT / SMS client → AT port daemon: ubus AT
- QModem control and dialer → Quectel connection manager: starts data sessions
- Quectel connection manager → Cellular kernel drivers: uses interfaces
- Cellular kernel drivers → USB / PCIe modem: transfers data
- MHI transport driver → USB / PCIe modem: transports data
- SMS UI → rpcd / ubus: requests SMS
- rpcd / ubus → SMS service: dispatches SMS
- SMS service → SMS database: reads / writes
- SMS service → AT / SMS client: modem operations
- SMS forwarding → AT / SMS client: reads modem SMS
- LuCI VoIP UI → rpcd / ubus: controls calls
- rpcd / ubus → VoIP daemon: dispatches calls
- VoIP daemon → AT port daemon: subscribes AT events
- SIP service → AT port daemon: uses AT service
- Firmware downloader → USB / PCIe modem: downloads firmware