Calls recorded during a local override upload under the C2-assigned system_id #22

Open
opened 2026-10-04 01:22:06 -04:00 by logan · 1 comment
Owner

Found by drb-audio-review 2026-10-04 (branch feat/local-ui-usable). Predates that branch; the branch makes it more reachable (local listening from the dashboard + OP25 now resumes an override after reboot).

main.on_call_end uploads with system_id=node_cfg.assigned_system_id (drb-edge-node/app/main.py ~L108) even when override_system_id is set (scanner System key, dashboard Listen locally, /api/config/override). A configured node listening to a different system locally therefore uploads that audio tagged as its C2-assigned system, and correlation pins it to the wrong system.

Options: (a) send the override's system_id when it is a real C2 system (cached), and skip upload for ad-hoc local configs (local-p25/local-analog/manual-override) which C2 has no system doc for; (b) let C2 decide from the checkin's override state. Needs a C2 call on what to do with uploads for systems it doesn't know. Run drb-audio-review on the fix.

Found by drb-audio-review 2026-10-04 (branch feat/local-ui-usable). Predates that branch; the branch makes it more reachable (local listening from the dashboard + OP25 now resumes an override after reboot). `main.on_call_end` uploads with `system_id=node_cfg.assigned_system_id` (drb-edge-node/app/main.py ~L108) even when `override_system_id` is set (scanner System key, dashboard Listen locally, /api/config/override). A configured node listening to a different system locally therefore uploads that audio tagged as its C2-assigned system, and correlation pins it to the wrong system. Options: (a) send the override's system_id when it is a real C2 system (cached), and skip upload for ad-hoc local configs (`local-p25`/`local-analog`/`manual-override`) which C2 has no system doc for; (b) let C2 decide from the checkin's override state. Needs a C2 call on what to do with uploads for systems it doesn't know. Run drb-audio-review on the fix.
logan added the area/mqttarea/recording-audio
kind
behavior-bug
priority
p2
type
bug
labels 2026-10-05 02:05:11 -04:00
Author
Owner

Not fixed on branch fix/44-upload-spool: a node-only fix can't be complete. C2's mqtt_handler._on_call_start sets the call doc's system_id from the node doc's assigned_system_id, not from anything the node sends. So even if /upload carried the override's system_id, the call doc (which correlation reads) would still say the assigned system. The fix needs a C2 decision first: either C2 reads override_system_id from the checkin/call_start, or uploads for ad-hoc local configs (local-p25/local-analog/local-p25conv) are skipped. Then the node change is small: main.on_call_end picks the override id when it is a cached C2 system.

Not fixed on branch fix/44-upload-spool: a node-only fix can't be complete. C2's mqtt_handler._on_call_start sets the call doc's system_id from the node doc's assigned_system_id, not from anything the node sends. So even if /upload carried the override's system_id, the call doc (which correlation reads) would still say the assigned system. The fix needs a C2 decision first: either C2 reads override_system_id from the checkin/call_start, or uploads for ad-hoc local configs (local-p25/local-analog/local-p25conv) are skipped. Then the node change is small: main.on_call_end picks the override id when it is a cached C2 system.
Sign in to join this conversation.
1 Participants
Notifications
Due Date
No due date set.
Dependencies

No dependencies set.

Reference: logan/node-26#22