|
|
|
|
@ -179,6 +179,12 @@ bool TagP25Data::processFrame(const uint8_t* data, uint32_t len, uint32_t peerId
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
if (std::find_if(m_status.begin(), m_status.end(), [&](StatusMapPair x) { return x.second.dstId == dstId; }) != m_status.end()) {
|
|
|
|
|
if (grantDemand) {
|
|
|
|
|
LogWarning(LOG_NET, "P25, Call Collision, peer = %u, srcId = %u, dstId = %u, streamId = %u, rxPeer = %u, rxSrcId = %u, rxDstId = %u, rxStreamId = %u, external = %u",
|
|
|
|
|
peerId, srcId, dstId, streamId, status.peerId, status.srcId, status.dstId, status.streamId, external);
|
|
|
|
|
return false;
|
|
|
|
|
}
|
|
|
|
|
else {
|
|
|
|
|
m_status.erase(dstId);
|
|
|
|
|
|
|
|
|
|
// is this a parrot talkgroup? if so, clear any remaining frames from the buffer
|
|
|
|
|
@ -212,6 +218,7 @@ bool TagP25Data::processFrame(const uint8_t* data, uint32_t len, uint32_t peerId
|
|
|
|
|
m_network->m_callInProgress = false;
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
// is this a new call stream?
|
|
|
|
|
if ((duid != DUID::TDU) && (duid != DUID::TDULC)) {
|
|
|
|
|
|