#1787 Adds CapMax talker alias continuation FLCO. Resolves issue with Con+ control channel SLCO message detection. (#1796)

#1787 Adds Capacity Max talker alias FLCO.  Fixes standard FLC Talker Alias using ISO7 format.  Updates channel details to list the tier 3 neighbors in the details.
#1787 Updates DMR capacity max event handling to better show events.  Adds support for voice channel update for both Open System and Advantage modes.  May cause issues with Cap+ or Con+ due to changes ... needs more testing.
#1787 DMR capacity max group voice update handling.

Co-authored-by: sheirerd <sheirerd@ainfosec.com>
This commit is contained in:
Denny Sheirer
2024-01-18 11:48:25 -05:00
committed by GitHub
parent 9d03c151af
commit e2a0325d07
27 changed files with 1598 additions and 829 deletions

View File

@@ -54,6 +54,7 @@ public enum Form
STATE,
SYSTEM,
TALKER_ALIAS,
TALKER_ALIAS_2,
TALKGROUP,
TELEPHONE_NUMBER,
TONE,

View File

@@ -0,0 +1,54 @@
/*
* *****************************************************************************
* Copyright (C) 2014-2023 Dennis Sheirer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>
* ****************************************************************************
*/
package io.github.dsheirer.identifier.alias;
import io.github.dsheirer.protocol.Protocol;
/**
* DMR Talker alias (alternate/additional) value provided by the network for the current talker (ie FROM).
*/
public class DmrTalkerAlias2Identifier extends TalkerAlias2Identifier
{
/**
* Constructs an instance.
* @param value of the talker alias
*/
public DmrTalkerAlias2Identifier(String value)
{
super(value);
}
@Override
public boolean isValid()
{
return getValue() != null && !getValue().isEmpty();
}
@Override
public Protocol getProtocol()
{
return Protocol.DMR;
}
public static DmrTalkerAlias2Identifier create(String value)
{
return new DmrTalkerAlias2Identifier(value);
}
}

View File

@@ -0,0 +1,46 @@
/*
* *****************************************************************************
* Copyright (C) 2014-2023 Dennis Sheirer
*
* This program is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program. If not, see <http://www.gnu.org/licenses/>
* ****************************************************************************
*/
package io.github.dsheirer.identifier.alias;
import io.github.dsheirer.identifier.Form;
import io.github.dsheirer.identifier.IdentifierClass;
import io.github.dsheirer.identifier.Role;
import io.github.dsheirer.identifier.string.StringIdentifier;
/**
* Talker alias (alternate/second) value provided by the network for the current talker (ie FROM).
*/
public abstract class TalkerAlias2Identifier extends StringIdentifier
{
/**
* Constructs an instance.
* @param value of the string/alias identifier
*/
public TalkerAlias2Identifier(String value)
{
super(value, IdentifierClass.USER, Form.TALKER_ALIAS_2, Role.FROM);
}
@Override
public boolean isValid()
{
return getValue() != null && !getValue().isEmpty();
}
}