added late call start on VHDR if no start ICW was received

4.01b_maint
W3AXL 2 years ago
parent 9a214b683a
commit ac64946b3f

@ -682,6 +682,20 @@ void SerialService::processP25ToNet()
if (!ret) { if (!ret) {
LogError(LOG_SERIAL, "V24 traffic failed to decode RS (36,20,17) FEC [STREAM ID %u]", m_rxVoiceCallData->streamId); LogError(LOG_SERIAL, "V24 traffic failed to decode RS (36,20,17) FEC [STREAM ID %u]", m_rxVoiceCallData->streamId);
} else { } else {
// Start the call, if it's not been started already
if (!m_lclCallInProgress)
{
// Flag we have a local call (i.e. from V24) in progress
m_lclCallInProgress = true;
// Reset the call data
m_rxVoiceCallData->resetCallData();
m_rxLastLDU1->setSrcId(0U);
m_rxLastLDU1->setDstId(0U);
// Generate a new random stream ID
m_rxVoiceCallData->newStreamId();
// Log
LogInfoEx(LOG_SERIAL, "V24 LATE CALL START (VHDR) [STREAM ID %u]", m_rxVoiceCallData->streamId);
}
// Copy Message Indicator // Copy Message Indicator
::memcpy(m_rxVoiceCallData->mi, vhdr, MI_LENGTH_BYTES); ::memcpy(m_rxVoiceCallData->mi, vhdr, MI_LENGTH_BYTES);
// Get additional info // Get additional info
@ -691,10 +705,10 @@ void SerialService::processP25ToNet()
m_rxVoiceCallData->dstId = __GET_UINT16B(vhdr, 13U); m_rxVoiceCallData->dstId = __GET_UINT16B(vhdr, 13U);
// Update our last LDU dst ID // Update our last LDU dst ID
m_rxLastLDU1->setDstId(m_rxVoiceCallData->dstId); m_rxLastLDU1->setDstId(m_rxVoiceCallData->dstId);
} // Log if we decoded succesfully
// Log if we decoded succesfully if (m_debug) {
if (m_debug) { LogDebug(LOG_SERIAL, "P25, HDU algId = $%02X, kId = $%04X, dstId = $%04X", m_rxVoiceCallData->algoId, m_rxVoiceCallData->kId, m_rxVoiceCallData->dstId);
LogDebug(LOG_SERIAL, "P25, HDU algId = $%02X, kId = $%04X, dstId = $%04X", m_rxVoiceCallData->algoId, m_rxVoiceCallData->kId, m_rxVoiceCallData->dstId); }
} }
} }
catch (...) { catch (...) {

Loading…
Cancel
Save

Powered by TurnKey Linux.