The default stays v2. A reflector that refuses that version and names the other gets one session of it, then the station announces the configured protocol again.
Co-authored-by: Cursor <cursoragent@cursor.com>
A certificate already on disk still has to be renewable, and a reflector that never finishes TLS must not hold the session past the login timers.
Co-authored-by: Cursor <cursoragent@cursor.com>
A reflector that has moved to 3.0 will not accept a station that always announces 2.0, and a 2.x reflector still needs one explicit plaintext session.
Co-authored-by: Cursor <cursoragent@cursor.com>
A non-flag word no longer stops parsing, and a missing home directory refuses to create or rewrite a config instead of writing an empty log path.
Co-authored-by: Cursor <cursoragent@cursor.com>
Build DJ1JAY’s fork with an optional Satellite/Trunk stub, allow -c/--config, open capture and playback as separate devices, and add a lab start helper.
Co-authored-by: Cursor <cursoragent@cursor.com>
Funknetz needs a protocol 2.0 reflector without production credentials; the compose stack and smoke test prove the station can log in and select a talk group.
Co-authored-by: Cursor <cursoragent@cursor.com>
A log path that cannot be written leaves the station on the reflector, and the reflector learns which program joined.
Co-authored-by: Cursor <cursoragent@cursor.com>
macOS refuses capture without a usage string, and queued remote audio was still handed to the speaker after push-to-talk began.
Co-authored-by: Cursor <cursoragent@cursor.com>