From d3b6e002eea8486c7ef90f20999d331bb6e37ee3 Mon Sep 17 00:00:00 2001 From: Tim Sawyer Date: Wed, 4 Mar 2026 07:05:22 -0800 Subject: [PATCH] Update ModemV24.cpp prevent stray network/RF TDU/TDULC from tearing down V.24 at call start --- src/host/modem/ModemV24.cpp | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/src/host/modem/ModemV24.cpp b/src/host/modem/ModemV24.cpp index 695464ef..aa795124 100644 --- a/src/host/modem/ModemV24.cpp +++ b/src/host/modem/ModemV24.cpp @@ -2803,13 +2803,18 @@ void ModemV24::convertFromAirV24(uint8_t* data, uint32_t length, bool imm) break; case DUID::TDU: - endOfStreamV24(); // this may incorrectly sent STOP ICW's with the VOICE payload, but it's better than nothing for now + if (m_txCallInProgress) + endOfStreamV24(); + else if (m_debug) + ::LogDebugEx(LOG_MODEM, "ModemV24::convertFromAirV24()", "P25 TDU received with no active V.24 TX call; suppressing STOP ICW"); break; case DUID::TDULC: { if (m_txCallInProgress) endOfStreamV24(); + else if (m_debug) + ::LogDebugEx(LOG_MODEM, "ModemV24::convertFromAirV24()", "P25 TDULC received with no active V.24 TX call; suppressing STOP ICW"); lc::tdulc::LC_TDULC_RAW tdulc = lc::tdulc::LC_TDULC_RAW(); if (!tdulc.decode(data + 2U)) {