mirror of
https://github.com/misadeks/tetra-bluestation.git
synced 2026-09-01 16:48:32 +00:00
Previously the MS only handled the uplink DTMF direction (TnccDtmf request -> U-INFO). A DTMF type-3 element received in a downlink D-INFO (cl. 14.8.19, Table 14.58) was parsed but silently dropped: TnccDtmfIndication was defined but never constructed, and rx_d_info ignored pdu.dtmf. This wires the inbound path to the TN. - dtmf.rs (tetra-pdus): add DTMF_TYPE_NOT_SUPPORTED (0b010) and DTMF_TYPE_NOT_SUBSCRIBED (0b011) type constants (Table 14.58). - pdu.rs (cc_ms): tncc_dtmf_indication_from_ie() maps a decoded DTMF element to a TNCC-DTMF indication (Table 11.3): tone-start -> delimiter=Dtmf + digits, tone-end -> delimiter=ToneEnd, not-supported/not-subscribed -> dtmf_result; reserved/unrecognised types return None (dropped). Plus dtmf_nibble_to_digit. - rx_d_info (cc_ms/routes/rd.rs): after the notify indication, if pdu.dtmf is present, emit TelemetryEvent::TnccDtmfIndication for the call. Made rx_d_info pub(in ...cc_ms) so it is unit-testable like rx_d_setup. - events.rs / codec.rs: new TnccDtmfIndication telemetry variant; added to the bitcode/JSON round-trip and JSON schema-freeze golden tests. - Interface schema bumped bluestation-ms-interface-5 -> -6 (new outbound telemetry event); net_control golden + version-guard tests updated. - Test: rx_d_info_dtmf_surfaces_tncc_dtmf_indication covers tone-start digits, tone-end, not-supported result, and no-DTMF (no indication). - docs: MS_MODE.md documents the downlink DTMF -> TnccDtmfIndication direction and the schema bump. Co-authored-by: Copilot App <223556219+Copilot@users.noreply.github.com>