Repository navigation
Releases: Guru-RF/SVXConnect-CLI
Release list
v0.1.4
--enroll checks the certificate you have
Up to 0.1.3, svxconnect --enroll with a certificate that looks valid said "nothing to do" and asked nobody. Now it logs in and asks the reflector:
- accepted — it says so;
- refused (revoked or removed on the reflector, or the clocks disagree) — it requests a new certificate with the same key and waits for the sysop, never offering the refused one again;
- no answer — nothing changes, and it says it could not check.
It takes the shared run lock before logging in, and leaves the check to another SVXConnect that is connected. A replacement for a refused certificate is no longer held to the refused one's expiry date, here and in the running client.
Also in 0.1.3 (no separate GitHub release was published for 0.1.2 or 0.1.3)
- a microphone or speaker that starts but never runs is detected and reopened, instead of transmitting silence until a restart;
- the client certificate renews itself when the reflector pushes the new one, and the banner warns before it expires;
- disconnect, reconnect and PTT while connecting never block, and TCP connect and the TLS handshake have timeouts;
- the reason a connection dropped is kept, and a silent control channel or UDP audio path is noticed;
- a thread-safe log sink, a private control FIFO, no fsync every second, no GCM nonce reuse; beeps that play when made; an app that never started no longer reads stdin.
sudo pacman -U https://github.com/Guru-RF/SVXConnect-CLI/releases/download/v0.1.4/svxconnect-0.1.4-1-x86_64.pkg.tar.zstv0.1.1
What's new
svxconnect --init-configwrites a fully commented configuration and asks for your callsign, email and reflector. Without a terminal,--set key=valuefills in any key. An existing file is never overwritten unless you pass--force, which keeps it as.bak.mic_gainis a fixed input boost in dB, applied before the AGC, for microphones that are still too quiet at full capture level.- A shared run lock stops the terminal client and the SVXConnect desktop client from holding the reflector connection at the same time. A one-line status snapshot is written to
<state>/status. - The full callsign, including its SSID, is now kept for display, so
ON6URE-TPADandON6URE-PIshow up as different stations. - Starting without a certificate now quits and says to run
--enroll, instead of retrying forever. - Fixed: the idle-drop timer could underflow and cut a transmission off right after it started.
- Adds a manual page, Debian packaging and Arch Linux packaging.
Install
Arch Linux / Omarchy
sudo pacman -U https://github.com/Guru-RF/SVXConnect-CLI/releases/download/v0.1.1/svxconnect-0.1.1-1-x86_64.pkg.tar.zstThe PKGBUILDs (svxconnect, svxconnect-bin, svxconnect-git) are in packaging/arch/.
macOS
brew tap guru-rf/svxconnect https://github.com/Guru-RF/SVXConnect-CLI
brew install svxconnectGetting started
svxconnect --init-config
svxconnect --enroll
svxconnectmake test: 58 checks, 0 failed.
v0.1.0
First stable release of SVXConnect-CLI — a terminal (ncurses) SvxLink reflector voice client in C, for macOS and Linux.
Connects to a SvxLink v3 reflector over mutual TLS with AES-128-GCM Opus audio, monitors several talkgroups with priority-based automatic switching, transmits (toggle PTT or via a control FIFO), and enrols its client certificate with the reflector sysop. No map, no websocket, no DMR/D-STAR — a voice client.
Install (macOS):
brew tap guru-rf/svxconnect https://github.com/Guru-RF/SVXConnect-CLI
brew install svxconnect
Verified against the live be.svx.link reflector including a full transmit/receive round-trip through a parrot talkgroup. 40 unit tests; clean under clang, gcc, AddressSanitizer, ThreadSanitizer and a leak check.