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 {