Commit Graph
143 Commits
Author SHA1 Message Date
MengMengCode 4f3f37ba7c feat: implement SMS management features including frontend UI and backend API handlers 2026-08-20 15:35:10 +08:00
MengMengCode 53345d2915 Fix something 2026-08-20 15:13:19 +08:00
MengMengCode 0cba13634a feat: implement carrier profile resolution system and initial profile database for VoWiFi connectivity 2026-08-20 14:36:06 +08:00
MengMengCode b8df7f43f8 feat: implement IKE session relay and transport layer for ePDG communication 2026-08-20 13:14:45 +08:00
MengMengCode 497cd24c8d feat: implement device management and eSIM support services v0.2.11 2026-08-20 12:49:14 +08:00
MengMengCode d6291d0254 feat: add device API management layer and SMS runtime for VoWiFi integration v0.2.10 2026-08-20 03:35:10 +08:00
MengMengCode 2f40c64f3f feat: implement authentication service and notification/settings handlers 2026-08-20 03:22:47 +08:00
MengMengCode 392d44f919 feat: implement dynamic carrier profile system and infrastructure for VoWiFi configuration v0.2.9 2026-08-20 03:07:47 +08:00
MengMengCode 8accaaaabc feat: implement incoming call monitoring and multi-channel notification support 2026-08-20 02:06:36 +08:00
MengMengCode 9eebcc1773 Merge branch 'master' of https://github.com/MengMengCode/VoCat 2026-08-20 01:44:36 +08:00
MengMengCode ff4c1ab036 feat: implement VoWiFi IMS SMS and USSD runtime support for message delivery and transmission 2026-08-20 01:44:31 +08:00
1dc6bcccd9 docs: fix inconsistent dash punctuation in Thanks section (#67)
Co-authored-by: pi <[email protected]>
2026-08-20 00:52:45 +08:00
MengMengCode be40e324db feat: add USB/PC/SC discovery support and an automated deployment installation script 2026-08-20 00:29:30 +08:00
MengMengCode 63553eaf2b Merge branch 'master' of https://github.com/MengMengCode/VoCat v0.2.8 2026-08-19 23:46:18 +08:00
MengMengCode 72e0af6eb9 FIX #61 2026-08-19 23:46:14 +08:00
c66fe06def Trust GSMA RSP2 Root CI1 for ES9+ TLS (#66)
Production SM-DP+ endpoints may use the GSMA RSP2 Root CI1, which is not present in the Alpine system CA bundle. Add the verified root to the ES9+ client's trust pool while preserving the existing public-destination and TLS validation rules.\n\nConstraint: ES9+ TLS must trust the GSMA RSP2 Root CI1 used by production SM-DP+ services.\nRejected: Disable certificate verification or trust the leaf certificate | both weaken server authentication and break rotation.\nConfidence: high\nScope-risk: narrow\nReversibility: clean\nDirective: Keep the additional root scoped to ES9+; update it only from a verified GSMA certificate source.\nTested: go test ./...\nNot-tested: Clean-container live download against every SM-DP+ provider.

Co-authored-by: Meng Meng <[email protected]>
2026-08-19 23:45:50 +08:00
MengMengCode 489a6dc10c del 2026-08-19 23:41:54 +08:00
MengMengCode 9c39e15bcf feat: add runtime support for IMS SMS and USSD handling including SIP transaction management 2026-08-19 23:39:33 +08:00
3b8f32f591 Handle ePDG COOKIE challenges during IKE_SA_INIT (#65)
Some ePDGs return zero-Responder-SPI COOKIE challenges, and multiple resolved gateways can respond differently. Accept valid COOKIE responses, retry with COOKIE as the first payload, and prefer a gateway that completes SA negotiation.\n\nConstraint: RFC 7296 requires the COOKIE notification to be the first payload on the retry.\nRejected: Treat COOKIE as an ordinary or fatal notification | either drops a valid challenge or prevents the required retry.\nConfidence: high\nScope-risk: narrow\nReversibility: clean\nDirective: Keep relaxed zero-Responder-SPI matching limited to IKE_SA_INIT COOKIE responses.\nTested: go test ./internal/vowifi/ike ./internal/vowifi/...\nNot-tested: Live carrier authorization after IKE_AUTH.

Co-authored-by: Meng Meng <[email protected]>
2026-08-19 22:57:06 +08:00
MengMengCode 0318670f49 FIX #31 2026-08-19 21:52:54 +08:00
MengMengCode d06afdb076 FIX #45 2026-08-19 21:48:27 +08:00
MengMengCode b56acc0e3a FIX #58 2026-08-19 21:48:13 +08:00
MengMengCode 60cc636969 FIX #56 2026-08-19 21:47:58 +08:00
MengMengCode 73a72680ad FIX #46 2026-08-19 21:47:26 +08:00
MengMengCode 60501d4831 FIX #51 FIX #60 2026-08-19 21:46:09 +08:00
MengMengCode 2c843d82a4 FIX #63 2026-08-19 21:41:54 +08:00
MengMengCode ad66456d2f FIX #51 2026-08-19 21:41:42 +08:00
MengMengCode 161aa667c9 FIX #59 2026-08-19 21:41:31 +08:00
MengMengCode 8137fc875b Merge branch 'master' of https://github.com/MengMengCode/VoCat 2026-08-18 14:45:27 +08:00
MengMengCode 1df338f9b3 FIX #59 2026-08-18 14:45:23 +08:00
NayaccoandGitHub 20f91fac72 fix: restore DJI modem AT availability (#55)
Normalize the DJI USB serial and QMI interface bindings without leaving a broad qmi_wwan dynamic ID, and expose only the live-discovered AT port to the terminal UI.
2026-08-18 11:46:43 +08:00
NayaccoandGitHub 30880f6612 fix: provision QMI tools for DJI doctor (#53) 2026-08-18 01:52:15 +08:00
fdb2ac45ce feat: import Apple carrier bundles safely (#50)
* feat: import Apple carrier bundles safely

* Delete docs/CARRIER_IPCC_IMPORT.md

---------

Co-authored-by: Meng Meng <[email protected]>
v0.2.7
2026-08-17 19:27:17 +08:00
95299a0a39 fix: align IMS calls with MMTel dialog requirements (#48)
* fix: align IMS calls with MMTel routing

* fix: originate calls with associated public identity

* fix: use carrier-specific IMS dial URIs

* fix: acknowledge rejected INVITE transactions

* docs: record sanitized IMS call validation

* Delete docs/IMS_CALL_INTEROPERABILITY.md

* Update README.md

---------

Co-authored-by: Meng Meng <[email protected]>
2026-08-17 17:50:13 +08:00
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