diff --git a/src/bridge/HostBridge.Analog.cpp b/src/bridge/HostBridge.Analog.cpp index 24aefb09..9c9b67a7 100644 --- a/src/bridge/HostBridge.Analog.cpp +++ b/src/bridge/HostBridge.Analog.cpp @@ -74,6 +74,11 @@ void HostBridge::processAnalogNetwork(uint8_t* buffer, uint32_t length) LogDebug(LOG_NET, "Analog, seqNo = %u, srcId = %u, dstId = %u, len = %u", seqNo, srcId, dstId, length); } + // ignore network traffic entirely when local audio detect or + // traffic from UDP is running + if (m_audioDetect || m_trafficFromUDP) + return; + if (!individual) { if (srcId == 0) return; diff --git a/src/bridge/HostBridge.DMR.cpp b/src/bridge/HostBridge.DMR.cpp index 7b946f91..910bfeda 100644 --- a/src/bridge/HostBridge.DMR.cpp +++ b/src/bridge/HostBridge.DMR.cpp @@ -122,6 +122,11 @@ void HostBridge::processDMRNetwork(uint8_t* buffer, uint32_t length) ::memcpy(data.get(), buffer + 20U, DMR_FRAME_LENGTH_BYTES); } + // ignore network traffic entirely when local audio detect or + // traffic from UDP is running + if (m_audioDetect || m_trafficFromUDP) + return; + if (flco == FLCO::GROUP) { if (srcId == 0) { m_network->resetDMR(slotNo); diff --git a/src/bridge/HostBridge.P25.cpp b/src/bridge/HostBridge.P25.cpp index 1f21e952..93c5d083 100644 --- a/src/bridge/HostBridge.P25.cpp +++ b/src/bridge/HostBridge.P25.cpp @@ -124,13 +124,13 @@ void HostBridge::processP25Network(uint8_t* buffer, uint32_t length) lsd.setLSD1(lsd1); lsd.setLSD2(lsd2); + // ignore network traffic entirely when local audio detect or + // traffic from UDP is running + if (m_audioDetect || m_trafficFromUDP) + return; + if (control.getLCO() == LCO::GROUP) { if ((duid == DUID::TDU) || (duid == DUID::TDULC)) { - // ignore TDU/TDULC entirely when local audio detect or - // traffic from UDP is running - if (m_audioDetect || m_trafficFromUDP) - return; - // ignore TDU's that are grant demands if (grantDemand) { m_network->resetP25();