From 5a70ace0afd7f252a11e6acf99ee859511f23e98 Mon Sep 17 00:00:00 2001 From: Bryan Biedenkapp Date: Mon, 29 Dec 2025 11:06:27 -0500 Subject: [PATCH] BUGFIX: for R05A04s 1s delayed TDU, make sure we have valid IDs before allowing a delayed TDU; --- src/host/p25/packet/Voice.cpp | 12 ++++++++---- 1 file changed, 8 insertions(+), 4 deletions(-) diff --git a/src/host/p25/packet/Voice.cpp b/src/host/p25/packet/Voice.cpp index 416c79ab..4ccc62e4 100644 --- a/src/host/p25/packet/Voice.cpp +++ b/src/host/p25/packet/Voice.cpp @@ -1083,10 +1083,14 @@ bool Voice::process(uint8_t* data, uint32_t len) if (m_p25->m_immediateCallTerm) m_p25->writeRF_TDU(false); else { - m_p25->m_rfCallTermDstId = m_rfLC.getDstId(); - m_p25->m_rfCallTermSrcId = m_rfLC.getSrcId(); - m_p25->m_rfVoiceCallTermTimeout.start(); - m_p25->writeRF_TDU(true); + if (m_rfLC.getDstId() != 0U && m_rfLC.getSrcId() != 0U) { + m_p25->m_rfCallTermDstId = m_rfLC.getDstId(); + m_p25->m_rfCallTermSrcId = m_rfLC.getSrcId(); + m_p25->m_rfVoiceCallTermTimeout.start(); + m_p25->writeRF_TDU(true); + } else { + m_p25->writeRF_TDU(false); + } } m_lastDUID = duid;