From 872e086763d7245ce5abf45b258e91537ec442c1 Mon Sep 17 00:00:00 2001 From: Stan Grams Date: Sat, 14 Mar 2026 09:35:32 +0100 Subject: [PATCH] [feat](trx-reporting): add callsign field to AprsFiConfig Allow specifying the IGate callsign directly in [aprsfi] instead of relying on [general].callsign. The aprsfi-specific callsign takes precedence; [general].callsign is used as fallback. Co-Authored-By: Claude Sonnet 4.6 Signed-off-by: Stan Grams --- src/trx-reporting/src/lib.rs | 5 ++++- src/trx-server/src/main.rs | 10 ++++++++-- 2 files changed, 12 insertions(+), 3 deletions(-) diff --git a/src/trx-reporting/src/lib.rs b/src/trx-reporting/src/lib.rs index e7d419a..fbd44e2 100644 --- a/src/trx-reporting/src/lib.rs +++ b/src/trx-reporting/src/lib.rs @@ -45,8 +45,10 @@ pub struct AprsFiConfig { pub host: String, /// APRS-IS server port pub port: u16, - /// APRS-IS passcode. -1 = auto-compute from [general].callsign. + /// APRS-IS passcode. -1 = auto-compute from callsign. pub passcode: i32, + /// IGate callsign. Overrides [general].callsign when set. + pub callsign: Option, } impl Default for AprsFiConfig { @@ -56,6 +58,7 @@ impl Default for AprsFiConfig { host: "rotate.aprs.net".to_string(), port: 14580, passcode: -1, + callsign: None, } } } diff --git a/src/trx-server/src/main.rs b/src/trx-server/src/main.rs index a4efa0c..d132261 100644 --- a/src/trx-server/src/main.rs +++ b/src/trx-server/src/main.rs @@ -502,10 +502,16 @@ fn spawn_rig_audio_stack( } if rig_cfg.aprsfi.enabled { - let cs = callsign.clone().unwrap_or_default(); + let cs = rig_cfg + .aprsfi + .callsign + .clone() + .or_else(|| callsign.clone()) + .unwrap_or_default(); if cs.trim().is_empty() { warn!( - "[{}] APRS-IS IGate enabled but [general].callsign is empty; uplink disabled", + "[{}] APRS-IS IGate enabled but callsign is not set \ + (set [aprsfi].callsign or [general].callsign); uplink disabled", rig_cfg.id ); } else {