From 5dbcd5a8ad6f7aa04975539b89a5ab1f164aebcc Mon Sep 17 00:00:00 2001 From: tadscottsmith <78445808+tadscottsmith@users.noreply.github.com> Date: Sat, 22 Mar 2025 05:26:15 -0500 Subject: [PATCH] OpenMHz Broadcast Enhancements (#2207) --- .../audio/broadcast/openmhz/FormField.java | 3 +- .../broadcast/openmhz/OpenMHzBroadcaster.java | 28 +++++++++++++++++-- 2 files changed, 28 insertions(+), 3 deletions(-) diff --git a/src/main/java/io/github/dsheirer/audio/broadcast/openmhz/FormField.java b/src/main/java/io/github/dsheirer/audio/broadcast/openmhz/FormField.java index c84c0f38..99468551 100644 --- a/src/main/java/io/github/dsheirer/audio/broadcast/openmhz/FormField.java +++ b/src/main/java/io/github/dsheirer/audio/broadcast/openmhz/FormField.java @@ -34,7 +34,8 @@ API_KEY("api_key"), SOURCE_LIST("source_list"), FREQ_LIST("freq_list"), - PATCHES("patches"); + PATCH_LIST("patch_list"), + TALKER_ALIAS("talker_alias"); private String mHeader; diff --git a/src/main/java/io/github/dsheirer/audio/broadcast/openmhz/OpenMHzBroadcaster.java b/src/main/java/io/github/dsheirer/audio/broadcast/openmhz/OpenMHzBroadcaster.java index f8c49a69..8337a6aa 100644 --- a/src/main/java/io/github/dsheirer/audio/broadcast/openmhz/OpenMHzBroadcaster.java +++ b/src/main/java/io/github/dsheirer/audio/broadcast/openmhz/OpenMHzBroadcaster.java @@ -40,6 +40,7 @@ import io.github.dsheirer.identifier.patch.PatchGroup; import io.github.dsheirer.identifier.patch.PatchGroupIdentifier; import io.github.dsheirer.identifier.radio.RadioIdentifier; + import io.github.dsheirer.identifier.alias.TalkerAliasIdentifier; import io.github.dsheirer.identifier.talkgroup.TalkgroupIdentifier; import io.github.dsheirer.util.ThreadPool; import org.slf4j.Logger; @@ -249,6 +250,7 @@ long timestampSeconds = (int)(audioRecording.getStartTime() / 1E3); String talkgroup = getTo(audioRecording); String radioId = getFrom(audioRecording); + String talkerAlias = getTalkerAlias(audioRecording); Long frequency = getFrequency(audioRecording); String patches = getPatches(audioRecording); String talkgroupLabel = getTalkgroupLabel(audioRecording); @@ -282,8 +284,8 @@ .addPart(FormField.TALKGROUP_NUM, talkgroup) .addPart(FormField.EMERGENCY, 0) .addPart(FormField.API_KEY, getBroadcastConfiguration().getApiKey()) - // For future use if OpenMHz supports patch information - //.addPart(FormField.PATCHES, patches) + .addPart(FormField.PATCH_LIST, patches) + .addPart(FormField.TALKER_ALIAS, talkerAlias) .addPart(FormField.SOURCE_LIST, "[{ \"pos\": 0.00, \"src\": " + radioId + "}]"); HttpRequest fileRequest = HttpRequest.newBuilder() @@ -547,6 +549,28 @@ return "[]"; } + /** + * Creates a formatted string with talkerAlias identifier + */ + private static String getTalkerAlias(AudioRecording audioRecording) + { + for(Identifier identifier: audioRecording.getIdentifierCollection().getIdentifiers(Role.FROM)) + { + if(identifier instanceof TalkerAliasIdentifier) + { + TalkerAliasIdentifier talkerID = (TalkerAliasIdentifier)identifier; + + if(talkerID.isValid()) + { + return talkerID.getValue(); + } + } + } + + return ""; + } + + /** * Tests both the connection and configuration against the OpenMHz Call API service * @param configuration containing API key and system id