transmit C_WACKD after voice call requests;

pull/24/head
Bryan Biedenkapp 3 years ago
parent 4b74684ffe
commit 6416f3404a

@ -246,6 +246,11 @@ namespace dmr
const uint8_t TS_DENY_RSN_TGT_BUSY = 0x2EU; const uint8_t TS_DENY_RSN_TGT_BUSY = 0x2EU;
const uint8_t TS_DENY_RSN_TGT_GROUP_NOT_VALID = 0x2FU; const uint8_t TS_DENY_RSN_TGT_GROUP_NOT_VALID = 0x2FU;
const uint8_t TS_QUEUED_RSN_NO_RESOURCE = 0xA0U;
const uint8_t TS_QUEUED_RSN_SYS_BUSY = 0xA1U;
const uint8_t TS_WAIT_RSN = 0xE0U;
const uint8_t MS_DENY_RSN_UNSUPPORTED_SVC = 0x00U; const uint8_t MS_DENY_RSN_UNSUPPORTED_SVC = 0x00U;
// Random Access Service Kind // Random Access Service Kind

@ -216,6 +216,8 @@ bool ControlSignaling::process(uint8_t* data, uint32_t len)
// verify the source RID is registered // verify the source RID is registered
VERIFY_SRCID_REG("DT_CSBK, CSBKO_RAND (Random Access), SVC_KIND_IND_VOICE_CALL (Individual Voice Call)", SVC_KIND_IND_VOICE_CALL, srcId); VERIFY_SRCID_REG("DT_CSBK, CSBKO_RAND (Random Access), SVC_KIND_IND_VOICE_CALL (Individual Voice Call)", SVC_KIND_IND_VOICE_CALL, srcId);
writeRF_CSBK_ACK_RSP(srcId, TS_WAIT_RSN, 1U);
if (m_slot->m_authoritative) { if (m_slot->m_authoritative) {
writeRF_CSBK_Grant(srcId, dstId, isp->getServiceOptions(), false); writeRF_CSBK_Grant(srcId, dstId, isp->getServiceOptions(), false);
} else { } else {
@ -232,6 +234,8 @@ bool ControlSignaling::process(uint8_t* data, uint32_t len)
// validate the talkgroup ID // validate the talkgroup ID
VALID_TGID("DT_CSBK, CSBKO_RAND (Random Access), SVC_KIND_GRP_VOICE_CALL (Group Voice Call)", SVC_KIND_GRP_VOICE_CALL, srcId, dstId); VALID_TGID("DT_CSBK, CSBKO_RAND (Random Access), SVC_KIND_GRP_VOICE_CALL (Group Voice Call)", SVC_KIND_GRP_VOICE_CALL, srcId, dstId);
writeRF_CSBK_ACK_RSP(srcId, TS_WAIT_RSN, 1U);
if (m_slot->m_authoritative) { if (m_slot->m_authoritative) {
writeRF_CSBK_Grant(srcId, dstId, isp->getServiceOptions(), true); writeRF_CSBK_Grant(srcId, dstId, isp->getServiceOptions(), true);
} else { } else {
@ -252,6 +256,8 @@ bool ControlSignaling::process(uint8_t* data, uint32_t len)
// verify the source RID is registered // verify the source RID is registered
VERIFY_SRCID_REG("DT_CSBK, CSBKO_RAND (Random Access), SVC_KIND_IND_VOICE_CALL (Individual Voice Call)", SVC_KIND_IND_VOICE_CALL, srcId); VERIFY_SRCID_REG("DT_CSBK, CSBKO_RAND (Random Access), SVC_KIND_IND_VOICE_CALL (Individual Voice Call)", SVC_KIND_IND_VOICE_CALL, srcId);
writeRF_CSBK_ACK_RSP(srcId, TS_WAIT_RSN, 0U);
writeRF_CSBK_Data_Grant(srcId, dstId, isp->getServiceOptions(), false); writeRF_CSBK_Data_Grant(srcId, dstId, isp->getServiceOptions(), false);
break; break;
case SVC_KIND_GRP_DATA_CALL: case SVC_KIND_GRP_DATA_CALL:
@ -265,6 +271,8 @@ bool ControlSignaling::process(uint8_t* data, uint32_t len)
// validate the talkgroup ID // validate the talkgroup ID
VALID_TGID("DT_CSBK, CSBKO_RAND (Random Access), SVC_KIND_GRP_VOICE_CALL (Group Voice Call)", SVC_KIND_GRP_VOICE_CALL, srcId, dstId); VALID_TGID("DT_CSBK, CSBKO_RAND (Random Access), SVC_KIND_GRP_VOICE_CALL (Group Voice Call)", SVC_KIND_GRP_VOICE_CALL, srcId, dstId);
writeRF_CSBK_ACK_RSP(srcId, TS_WAIT_RSN, 0U);
writeRF_CSBK_Data_Grant(srcId, dstId, isp->getServiceOptions(), true); writeRF_CSBK_Data_Grant(srcId, dstId, isp->getServiceOptions(), true);
break; break;
case SVC_KIND_REG_SVC: case SVC_KIND_REG_SVC:

Loading…
Cancel
Save

Powered by TurnKey Linux.