Commit Graph
109 Commits
Author SHA1 Message Date
NayaccoandGitHub 1a4032d013 feat: add Lark group bot notifications (#47) 2026-08-17 13:47:10 +08:00
Rain SevenandGitHub 6ec950bfd2 style: gofmt IMS security policies (#44) 2026-08-17 00:14:42 +08:00
04dd026e95 test: align IMS registration expectations (#43)
Co-authored-by: Meng Meng <[email protected]>
2026-08-16 23:46:28 +08:00
a2a72dfd30 test: cover SMS state across restarts (#42)
Co-authored-by: Meng Meng <[email protected]>
2026-08-16 23:36:21 +08:00
67079c99b9 feat: add DJI QMI recovery doctor (#41)
Co-authored-by: Meng Meng <[email protected]>
2026-08-16 23:35:38 +08:00
f949001480 fix: support non-Quectel Qualcomm modems and fix 410 dongle AT timeouts (#40)
1. Vendor-neutral modem compatibility:
   - Discovery switched from a vendor-ID whitelist to detecting the QMI
     channel directly (an interface bound to the kernel qmi_wwan driver),
     so SIMCom, Sierra, Telit and other Qualcomm-based modules are found
     automatically while MBIM-only devices stay excluded
   - AT port responses now distinguish an AT command error from firmware
     incompatibility: ERROR / +CME ERROR is returned as a normal response
     (200) instead of being folded into a 502, which only a real transport
     failure produces

2. Fixed the 410 dongle's AT command timeouts:
   - Default WWAN AT port switched from wwan0at0 to wwan0at1: ModemManager
     marks the first AT port that answers its probe as primary (at1 on the
     tested UFI dongles) and closes AT ports once initialization finishes,
     so at1 is the responsive, idle channel for vocat while MM uses the
     QMI port for control
   - Drain the WWAN input buffer before each command write, discarding the
     late bytes of a previous timed-out command so they cannot pollute the
     next response's parsing
   - AT+CGSN now uses an independent short timeout instead of inheriting
     the refresh's 30s deadline (on MHI modems it returns the IMEI line
     but never a final OK). Previously every refresh held the device lock
     for the full 30s, queueing AT terminal commands behind it for 10-20s
   - The QMI UIM ICCID fallback only runs when AT+CPIN? already proved a
     READY card, so a SIM-less slot no longer blocks refresh waiting out
     its long timeout

Tests: added WWAN drain cleanup, drain-before-write ordering, CGSN timeout
bound, skip-QMI-ICCID-without-SIM, CommandError-as-200, WWAN at1 port
selection and vendor-neutral discovery cases. go vet and go test ./... pass.

Co-authored-by: Test <[email protected]>
2026-08-16 23:34:12 +08:00
fa8afb9571 fix: deliver Vodafone UK MT SMS over WiFi Calling (#39)
- Read ipsec-3gpp UDP server port even when REGISTER used TCP
- Advertise Allow MESSAGE and smsip Accept-Contact for all carriers
- Do not require P-CSCF port-c (50601) on inbound UE-server XFRM
- Log rejected inbound TCP/UDP sources

Verified on VOXI/Vodafone UK 23415 with Quectel EC25.

Closes #38

Co-authored-by: wl77vv <[email protected]>
2026-08-16 22:24:33 +08:00
bfda29193a feat: add operational health and metrics endpoints (#37)
Co-authored-by: Meng Meng <[email protected]>
2026-08-16 21:28:01 +08:00
ed64fd428a fix: restart the active systemd unit after update (#36)
Co-authored-by: Meng Meng <[email protected]>
2026-08-16 21:25:50 +08:00
Rain SevenandGitHub f84a1f99b1 feat: verify SOCKS5 with real UDP round trip (#35) 2026-08-16 21:24:14 +08:00
MengMengCodeandClaude Opus 4.8 e2177a6e9a feat: remove legacy device stat panels from dashboard
The total/online/offline/last-refresh mini panels are superseded by the
new module online-rate card.

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
v0.2.2 v0.2.5 v0.2.4 v0.2.3 v0.2.6
2026-08-16 18:33:25 +08:00
MengMengCodeandClaude Opus 4.8 115598757a feat: dashboard host, performance, task, and online-rate cards
Add four cards to the dashboard:

- Host hardware card (CPU / motherboard / memory / disk model) backed by
  a new GET /api/dashboard/host endpoint that probes /proc and /sys once
  and caches the identities. x86 hosts read cpuinfo model name, DMI board
  data, dmidecode DIMM info, and block device models; ARM boards compose
  the device-tree SoC with the Cortex part name and fall back to memory
  capacity.
- Performance card with live CPU / memory / disk usage bars and real-time
  network up/down rates. Rates derive from cumulative kernel counters
  sampled on demand by dashboard polling (no background goroutine), with
  bridge/tunnel/vocat virtual interfaces excluded to avoid double
  counting.
- Upcoming scheduled tasks card listing the next three enabled automatic
  tasks with their run times.
- Module online rate card aggregating all recognized modules into one
  large percentage colored by four levels (red/orange/yellow/green).

Co-Authored-By: Claude Opus 4.8 (1M context) <[email protected]>
2026-08-16 17:46:38 +08:00
Rain SevenandGitHub 297d2c1839 fix: deduplicate cumulative IMS SMS segments (#34) 2026-08-16 17:09:08 +08:00
Rain SevenandGitHub 7ba30132f9 fix: retry interrupted serial drain (#33) 2026-08-16 17:09:01 +08:00
Rain SevenandGitHub 82494f519b feat: auto-detect DJI 4G modules (#32) 2026-08-16 17:08:51 +08:00
MengMengCode 5eee89a92a feat: Enhance SIM identity handling and carrier profile integration
- Added support for reading SIM metadata (SPN, GID1, GID2) in EC20 and Native QMI adapters.
- Refactored ePDG resolver to utilize carrier profiles for DNS resolution.
- Introduced automatic legacy proposal fallback in IKE provider based on negotiation failures.
- Updated IMS provider to cache transport settings per SIM identity and implement transport fallback logic.
- Enhanced SMS center retrieval to fall back to carrier profiles when no explicit configuration is found.
- Updated state management to include carrier profile information.
- Improved integration tests to cover new transport caching and SMS center logic.
- Added UI components to display carrier profile and match source in the device overview.
- Updated internationalization files to include new labels for carrier profile and match source.
v0.2.1
2026-08-16 16:10:53 +08:00
MengMengCode ae3a2a6eea FIX #29 v0.2.0 2026-08-16 15:16:45 +08:00
MengMengCode 505ee1eac0 FIX #27 v0.1.18 2026-08-16 13:49:42 +08:00
MengMengCode b19ae2240a FIX #25 v0.1.17 2026-08-16 13:33:55 +08:00
MengMengCode adf7de6d29 FIX #28 2026-08-16 13:20:50 +08:00
MengMengCode ffa0fd23b8 feat: enhance IMS SMS handling with structured logging and payload extraction 2026-08-16 13:05:20 +08:00
MengMengCode f014628048 feat: add curl options for binary download with progress feedback 2026-08-16 12:02:13 +08:00
MengMengCode 68813198f9 fix: complete native 410 eSIM and VoWiFi flow v0.1.16 2026-08-16 02:54:38 +08:00
MengMengCode 5774b196d2 feat: add issue report template for bug reporting and triage v0.1.15 2026-08-16 02:45:23 +08:00
AlexandGitHub 5604813254 fix: support physical SIM automatic tasks (#26) 2026-08-16 01:48:23 +08:00
MengMengCode 38b4264133 Merge branch 'master' of https://github.com/MengMengCode/VoCat 2026-08-15 23:48:35 +08:00
MengMengCode df9dbfee74 feat: implement fresh device discovery and update UI for device refresh 2026-08-15 23:48:32 +08:00
8dc6d4f620 feat: add native OpenStick 410 modem support (#23)
* build: add QMI dependency and license attribution

* feat: add native OpenStick 410 modem support

---------

Co-authored-by: w0x41en <[email protected]>
2026-08-15 23:45:15 +08:00
Meng MengandGitHub 70bdb88e4c Refactor PR size limit workflow for clarity and efficiency 2026-08-15 22:29:45 +08:00
Meng MengandGitHub 091d12cd30 Enhance PR size limit workflow with timeout and permissions
Increased timeout for the PR size limit check from 2 to 5 minutes. Added issue permissions and improved PR size calculation steps.
2026-08-15 22:24:00 +08:00
MengMengCode c4c6a6c181 fix: support Fake-IP notifications and resilient updates 2026-08-14 22:59:46 +08:00
Meng MengandGitHub 540a967f96 fix: remove CLI credential timeout and password complexity limits (#20) 2026-08-14 22:46:37 +08:00
Meng MengandGitHub fcf57ffec9 Feat/admin credentials pr limit (#19)
* feat: reset admin credentials without requiring current password and update related prompts

* feat: update password requirements to a minimum of 6 characters for admin credentials
v0.1.13
2026-08-14 21:52:53 +08:00
MengMengCode 4b1bcdf582 feat: add XeSIM CTE and RedPocket VoWiFi compatibility 2026-08-14 21:15:34 +08:00
Meng MengandGitHub 0d1779bf25 fix: prevent schema-incompatible installer downgrades (#18)
Add schema 17–19 compatibility migrations
2026-08-14 20:59:45 +08:00
Meng MengandGitHub 08cdd99141 feat: reset admin credentials without requiring current password and update related prompts (#17) 2026-08-14 20:38:15 +08:00
Meng MengandGitHub f6cd31f50b Merge pull request #16 from CwithW/fix-dockerfile-missing-iproute2
fix: install iproute2 in runtime image
2026-08-14 20:00:40 +08:00
Chara White e442dde284 fix: install iproute2 in runtime image 2026-08-14 19:50:01 +08:00
MengMengCode 083a952480 feat: add notification destination context for Telegram polling and implement related test 2026-08-14 19:09:31 +08:00
MengMengCode 67f2ddbaeb feat: add home carrier information to ModemSummary interface 2026-08-14 00:22:39 +08:00
MengMengCode e546e810fe Rollback 2026-08-13 23:38:45 +08:00
MengMengCode 30c0d2d9d5 Implement 3GPP Device Identity Handling in IKE
- Added support for DEVICE_IDENTITY request as per TS 24.302.
- Implemented deviceIdentityRequested function to check for DEVICE_IDENTITY notifications.
- Created deviceIdentityNotify function to construct DEVICE_IDENTITY notifications with IMEI/IMEISV.
- Enhanced security proposal to accommodate O2 Germany's integrity-only ESP profile.
- Updated tests to validate DEVICE_IDENTITY encoding and request handling.
- Refactored security proposal to include fallback encryption and integrity algorithms.
- Improved session management to ensure proper cleanup of IPSec resources after caller deadline.
- Added comprehensive tests for security agreement parsing and algorithm support.

FIX #11
2026-08-13 23:30:00 +08:00
MengMengCode 64cd5714ef fix: support O2 Germany certificate-authenticated EAP 2026-08-13 21:28:38 +08:00
MengMengCode aa54ad8f6a fix: stabilize EM7430 hotplug support 2026-08-13 20:58:24 +08:00
MengMengCode c7c7174b45 feat: support Sierra EM7430 MBIM modems 2026-08-13 20:05:07 +08:00
MengMengCode b45f7825ca fix: bind physical SIMs and validate multi-arch images 2026-08-13 11:01:36 +08:00
MengMengCode c436e12532 fix: discover USB smart card readers without pcscd 2026-08-13 10:53:56 +08:00
MengMengCode 0c380c1e07 fix: persist admin credentials in database and discover MHI modems 2026-08-13 10:46:12 +08:00
Meng MengandGitHub c63c765d14 Merge pull request #7 from jiuliking/fix/plmn-23410-ims-interoperability
fix: support PLMN 234-10 IMS registration
2026-08-13 10:17:10 +08:00
Alex 18408106fa [verified] fix: support PLMN 234-10 IMS registration
Select UDP P-CSCF signalling for the explicit 234-10 and 234-010 PLMN forms while preserving exact MNC length semantics. Skip incomplete ipsec-3gpp algorithm advertisements so a later complete Security-Server offer can be selected, while keeping malformed and partially specified SA parameters fail-closed.
2026-08-13 01:45:16 +08:00