Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Enables native Rdio Scanner streaming capabilities. #1476

Merged
merged 3 commits into from May 15, 2023

Conversation

tadscottsmith
Copy link
Collaborator

This enables native streaming to Rdio Scanner. This is my first contribution to to this project, so I am open to suggestions on anything you'd like to see changed. I'm also open to any edits that you would like to make. I followed the existing Broadcastify Calls work as closely as I could.

tadscottsmith and others added 2 commits March 1, 2023 12:35
* Initial commit - streaming is working.

* Initial commit - streaming is working.

* Additional code cleanup.

* Additional fixes.

* DSheirer#1471 Adds support for Hytera Proprietary Long Data Service SMS messages.  Resolves issue parsing Multi-Block CSBKs. (DSheirer#1472)

Co-authored-by: Dennis Sheirer <dsheirer@github.com>

* Additional information sent to the API.

* Add patches.

* Bug fix.

---------

Co-authored-by: Denny Sheirer <dennissheirer2002@yahoo.com>
Co-authored-by: Dennis Sheirer <dsheirer@github.com>
@natecarlson
Copy link

@DSheirer Any chance this could be merged?

@DSheirer DSheirer self-assigned this May 14, 2023
@DSheirer DSheirer added this to the Build 0.6.0 milestone May 14, 2023
@DSheirer
Copy link
Owner

@tadscottsmith Thank you for the PR!

@DSheirer DSheirer merged commit cbab7bb into DSheirer:master May 15, 2023
3 checks passed
@Clark985
Copy link

Clark985 commented May 22, 2023

@tadscottsmith this is slick, thanks for building this.

One minor suggestion: would there by a way to define a filename, so that different instances can be differentiated in the Rdio-scanner console?

In my use case, I have several remote SDRTrunk+Rdio instances feeding into a central Rdio-scanner instance. When troubleshooting duplicate traffic or unmatched talkgroups, it's useful to know which instance pushed that call. I currently do this in SDRTrunk by putting that info into the site name, which gets embedded into the filename that Rdio ingests.

Here's an example from my console. TG 1228 is my Rdio-scanner stream test.

2023/05/22 10:00:38 newcall: system=2 talkgroup=33203 file=20230522_100036MN_ARMER_McLeod_TRAFFIC__TO_33203_FROM_557978.mp3 success
2023/05/22 10:00:38 newcall: system=2 talkgroup=2700 file=20230522_100036MN_ARMER_CarverScott_TRAFFIC__TO_2700_FROM_110026.mp3 success
2023/05/22 10:00:40 newcall: system=2 talkgroup=33203 file=20230522_100038MN_ARMER_McLeod_TRAFFIC__TO_33203_FROM_557043.mp3 success
2023/05/22 10:00:40 newcall: system=2 talkgroup=2700 file=20230522_100038MN_ARMER_CarverScott_TRAFFIC__TO_2700.mp3 success
2023/05/22 10:00:43 newcall: system=2 talkgroup=25403 file=20230522_100041MN_ARMER_LakeLillianJV_TRAFFIC__TO_25403_FROM_603040.mp3 success
2023/05/22 10:00:44 newcall: system=2 talkgroup=25359 file=20230522_100042MN_ARMER_CarverScott_TRAFFIC__TO_25359_FROM_620298.mp3 success
2023/05/22 10:00:45 newcall: system=23 talkgroup=1228 file= success
2023/05/22 10:00:46 newcall: system=2 talkgroup=25403 file=20230522_100044MN_ARMER_LakeLillianJV_TRAFFIC__TO_25403_FROM_106308.mp3 success
2023/05/22 10:00:47 newcall: system=2 talkgroup=25359 file=20230522_100045MN_ARMER_CarverScott_TRAFFIC__TO_25359_FROM_620003.mp3 success
2023/05/22 10:00:50 newcall: system=2 talkgroup=25403 file=20230522_100048MN_ARMER_LakeLillianJV_TRAFFIC__TO_25403_FROM_106308.mp3 success
2023/05/22 10:00:51 newcall: system=2 talkgroup=29500 file=20230522_100049MN_ARMER_HectorJV_TRAFFIC__TO_29500_FROM_716901.mp3 success
2023/05/22 10:00:52 newcall: system=2 talkgroup=29500 file=20230522_100050MN_ARMER_OliviaTS_TRAFFIC__TO_29500_FROM_716901.mp3 duplicate call rejected

@tadscottsmith
Copy link
Collaborator Author

The audio recording/file name are actually done upstream from the broadcasting section of the app, and shared between all of the streaming platforms, so I'd defer to the author on that. If you can parse the ID3 tags, there's a lot of information in the "Comment" field.

I've also never used the rdio-scanner centralized feature, but perhaps you could request that he display more details in the logs, such as what downstream instance initially received the call?

@Clark985
Copy link

That's a good idea - Rdio-scanner is already matching the API key for the Rdio downstream / SDRTrunk Rdio streaming features. Should be trivial to log the API key name to the console/event viewer.

@tadscottsmith tadscottsmith deleted the native-rdio-scanner branch May 23, 2023 21:47
tadscottsmith added a commit to tadscottsmith/sdrtrunk that referenced this pull request Aug 7, 2023
* DSheirer#1529 Adds logging suppression to Broadcaster to limit total logged error messages. (DSheirer#1530)

Co-authored-by: Dennis Sheirer <dsheirer@github.com>

* DSheirer#1531 Updates version to 0.6.0 alpha 7 (DSheirer#1532)

Co-authored-by: Dennis Sheirer <dsheirer@github.com>

* Revert "DSheirer#1531 Updates version to 0.6.0 alpha 7 (DSheirer#1532)"

This reverts commit 11f37e8.

* DSheirer#35 Updates AM & NBFM decoders to use Adaptive Squelch, a power squelch that includes an adaptive noise floor monitor.  Implements vectorized magnitude operations for AM & FM decoders.  Adds talkgroup assignment and squelch controls to AM channel configuration editor.  Implements new AM gain control that attempts to normalize audio gain quickly at beginning of call/transmission and maintains that gain across lifecycle of the call and resets the gain for the next call. (DSheirer#1540)

Notes on usage:
- When using either AM or FM squelch control use either the Heterodyne channelizer or if using the Polyphase channelizer, avoid using trunk tracking decoders like DMR or P25 or set the squelch threshold high enough to avoid changes in noise floor from polyphase channelizer where it can vary between using the one channel or the two-channel combined channel sources.

Co-authored-by: Dennis Sheirer <dsheirer@github.com>

* DSheirer#1528 Restores consistent audio segment start tone insertion, broken in DSheirer#1506 (DSheirer#1543)

Co-authored-by: Dennis Sheirer <dsheirer@github.com>

* DSheirer#648 Resolves issue with audio panel sometimes displaying stale metadata that doesn't clear until the next audio segment is loaded. (DSheirer#1545)

Co-authored-by: Dennis Sheirer <dsheirer@github.com>

* DSheirer#1507 Resolves issue with Cap+ LSN parsing.  Updates Cap+ Site Status and adds RAS bit handling. (DSheirer#1536)

Co-authored-by: Matthew Foster <matthew.foster@noaa.gov>

* Adds native Rdio Scanner streaming. (#1) (DSheirer#1476)

DSheirer#1476 Adds rdio-scanner call upload API streaming support
---------

Co-authored-by: Dennis Sheirer <dsheirer@github.com>

* DSheirer#1556 DMR Capacity Plus parsing enhancements. (DSheirer#1557)

Co-authored-by: Dennis Sheirer <dsheirer@github.com>

* added Rsp1TunerConfiguration to JsonSubTypes of RspTunerConfiguration (DSheirer#1555)

Following reports that RSP1 tuner configurations are reset to default on startup. Unable to test

* DSheirer#1548 Reduces default decoder AF gain by 40% to resolve issue with distorted audio from local strong aircraft transmissions. (DSheirer#1559)

Co-authored-by: Dennis Sheirer <dsheirer@github.com>

* DSheirer#1547 Updates playlist alias editor to make add/delete operations more efficient. (DSheirer#1560)

Co-authored-by: Dennis Sheirer <dsheirer@github.com>

* DSheirer#1558 Resolves issue where heterodyne channelizer allows tuning a set of channels that exceed the tuner's bandwidth. (DSheirer#1561)

Co-authored-by: Dennis Sheirer <dsheirer@github.com>

* DSheirer#1565 updates LTR, LTRNet and Passport decoders with new slope decoder.  Resolves issue with LTR Standard decoder state that was combining individual calls to the same talkgroup and causing excessively long calls. (DSheirer#1567)

Co-authored-by: Dennis Sheirer <dsheirer@github.com>

* DSheirer#1568 Updates NBFM decoder configuration so user can enable/disable high-pass filter option in the audio module to effect audio playback and audio recording of the demodulated audio.  Disabling the filter allows recording of DC and sub-audible signalling that may be present in the demodulated audio (e.g. LTR or squelching signalling). (DSheirer#1569)

Co-authored-by: sheirerd <sheirerd@ainfosec.com>

* DSheirer#1573 Adds Digital Coded Squelch (DCS) auxiliary decoder support. (DSheirer#1574)

Co-authored-by: Dennis Sheirer <dsheirer@github.com>

* DSheirer#1575 Updates traffic channel names to be 'T-' concatenated with the parent control channel name from the channel configuration. (DSheirer#1578)

Co-authored-by: Dennis Sheirer <dsheirer@github.com>

* DSheirer#1579 Resolves issue with array index out of bounds error generated in P25 Phase 1 decoders where the Dibit circular buffer attempts to write a (DSheirer#1580)

dibit past the length of the array.  Issue likely occurs when a partial/incomplete put operation adds a dibit and increments the buffer pointer but the thread is interrupted prior to wrapping the buffer pointer.  When the next runnable iteration executes, the pointer is pointing past the end of the buffer.  Updates the code to check the pointer both before and after the put operation.

Co-authored-by: Dennis Sheirer <dsheirer@github.com>

* DSheirer#1581 Updates Rdio Scanner configuration editor to automatically append the 'api/call-upload' path to the end of the protocol and host value provided by the user.  Sets the host default value to 'http://localhost' but allows the user to overwrite. (DSheirer#1582)

Co-authored-by: Dennis Sheirer <dsheirer@github.com>

* DSheirer#1563 Updates RSP tuner to produce sample buffers with optimal power-of-2 length to enable downstream vectorized operations. (DSheirer#1583)

Co-authored-by: Dennis Sheirer <dsheirer@github.com>

* DSheirer#1584 Updates DMR & P25 decoders to stop processing residual samples from the current buffer after a traffic channel shutdown has been signalled. (DSheirer#1585)

Co-authored-by: Dennis Sheirer <dsheirer@github.com>

* DSheirer#1590 Resolves issue with RSP tuners generating too many native buffers causing excessive memory consumption (DSheirer#1591)

Co-authored-by: Dennis Sheirer <dsheirer@github.com>

* DSheirer#1588 Use JDK20 and Gradle 8.2.  Updates SDRPlay API for compatibility with JDK20 Project Panama Foreign Memory/Function changes. (DSheirer#1589)

Co-authored-by: Dennis Sheirer <dsheirer@github.com>

* DSheirer#1586 Resolves issue in P25 message framer where after transmitting the current message the mDataUnitId is set to null and this causes an NPE when subsequent code is executed prior to shutdown of the channel. (DSheirer#1593)

Co-authored-by: Dennis Sheirer <dsheirer@github.com>

* Adds event type as a filtering option in the Events tab

* DSheirer#1368 Restructures Message and Event filter framework.

* DSheirer#1603 Resolves issue with de-duplicating events to allow call duration values to display correctly and minimize the quantity of duplicate events.

* DSheirer#1604 Resolves issue with event panel UI layout creating excess space between history management panel and events table.

* DSheirer#1605 Resolves issue where certain Linux users were unable to display the tuner editor panel due to an issue with the frequency control editor's usage of custom cursor.

* DSheirer#1612 Enhance aliasing to support DCS tones

---------

Co-authored-by: Denny Sheirer <dennissheirer2002@yahoo.com>
Co-authored-by: Dennis Sheirer <dsheirer@github.com>
Co-authored-by: wedgef5 <wedgef5@users.noreply.github.com>
Co-authored-by: Matthew Foster <matthew.foster@noaa.gov>
Co-authored-by: Nokoa <Nokoa@users.noreply.github.com>
Co-authored-by: sheirerd <sheirerd@ainfosec.com>
Co-authored-by: Christopher Varner <rdhddood@gmail.com>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants