Simple Menu
Styled Menu
Next Menu

Trunking Recorder Version History

Released - 2/23/24

-Added ability to search for calls on the web interface using a date and time range.
-Added support for uploading calls to Rdio Scanner.
-Added support for storing Call Transcriptions (created by Azure Speech-to-text) into the database and displaying them on the web interface. You are able to choose which talkgroups will be sent to Azure and transcribed automatically. Any call which generates a Call Notification email will continue to be transcribed automatically as was done before.
-Added support for Azure custom endpoints when transcribing calls, these are used if you have created a custom speech model.
-Added support for Azure Speech Recognition Language, this is helpful if the calls are in a language other than English (United States).
-Added support to detect duplicate call uploads from multiple call upload machines.
-Enhanced Call Audio export on web interface to export all calls from current search range instead of just the current page of calls (Up to the search limit which defaults around 60,000 calls).
-Added a setting to display Date and Time on the "Now Playing" call information section on the Trunking Recorder web interface (Order of data cannot be changed, format will use local browser locale default).
-Updated SQLite database search queries to help speedup searches when database contains a large number of calls (10-20 million).
-Updated the row selection logic on the web interface. When you deselect a row, it will stop call audio playback. If you then select the row again it will play the call starting at the beginning.
-Added support for Fully Qualified Radio IDs and Labels for SDRTrunk systems interconnected via ISSI.
-Added option to upload "All Calls for all Systems" to Call Uploads.
-Added support for changes SDRTrunk made in recent beta releases with Patch calls that caused incorrect displaying of the Talkgroups contained in the call.
-Fixed issue where some SDRTrunk calls would fail to get imported due to spaces in their filenames.
-Fixed issue where Call Transcribe process was occasionally deleting WAV files before call was transcribed causing failure.
-Added Public URL validation to make sure the URL starts with "http" or "https".
-Added additional logging to Call Audio export process.
-Fixed All dates button on mobile devices so it will show below the date search box instead of having to scroll the screen to the right.
-Fixed issue when using per conversation mode where some calls on web interface would not get played back automatically.
-Fixed Call Upload issues caused by long file paths when using custom filename option.
-Updated the Recordings, Upload, Call Imports now use same process to generate Call filenames.
-Fixed issue where call uploads using custom filename option wasn't using Call Start Time as date/time.
-Added additional debug logging information.
-Added Trunking Recorder version info to log when support zip is created.
-Fixed handling ProScan calls with "unknown" talkgroup labels (“TGID:xxxx”), Trunking Recorder will import the label as blank and the calls will show up when using the "Unknown" talkgroups search option.
-Updated Call Upload logic for all the methods (Broadcastify, Trunking Recorder, Rdio) where calls that fail to upload due to a network timeout (destination server is offline or the internet is out) will now automatically retry to upload the call up to 10 times before moving on (The amount of time between each retry will get longer), in previous versions it would only try one before moving on.
-Call Uploads for the Trunking Recorder method will now keep retrying to upload until it finally succeeds, this ensure your Trunking Recorder Server will get all calls once the upload issues is resolved and no calls will be skipped.
-Added support for Call Upload API to use external call audio server URL (This is useful if you already have external calls stored on a web server and would also like to have them stored in Trunking Recorder but use the external URL).
-Added support for Call Upload API to provide the Call Transcribe Text. (Updated API documentation is at
-Updated third-party libraries (Azure, Certes, log4net, Microsoft Cognitive Services Speech, Microsoft SqlClient, Naudio, Newtonsoft Json, RestSharp, SQLite, ATL).
-Updated third-party scripts (datatables, jquery, jquery-ui, js.cookie, mediaelement, moment, jszip).
-Added third-party daterangepicker.js library.
-Added web interface call date and time range search selections as URL parameter so search can be bookmarked.
-Added option to clear each streaming call backlog queue on the web admin interface.
-Added "Night" theme option to the web admin interface (Will use the same settings as the main Trunking Recorder web interface).
-Fixed Call Audio export failure if too many Talkgroups were selected causing the filename to become too long.
-If ProScan doesn't provide a SiteID the System Name will be used for Trunked calls and the Frequency will be used for Conventional calls.
-Added option to upload all calls from a Site to a Trunking Recorder remote server. (Note: This will not work for Broadcastify Calls since it requires a specific Site).
-Enhanced web interface reconnect logic to help reduce the frequency of login prompts to make it easier to close the tab on mobile devices.
-Fixed issue when importing SDRTrunk calls in WAV format when Call Transcribe was enabled.
-Added warning when recording can't start because of Windows 10 microphone privacy settings.
-Fixed issue when importing call recordings will long filenames.

Released - 3/18/23

-Added Call Import support for ProScan call recordings.
-Added "Receiver" search option to web interface.
-Improved Call Import process handling of locked recorded calls when trying to import. It will retry importing all locked calls automatically the next time a new call is processed.
-Fixed issue when using SQL Server where Favorite group searches would sometimes not show the correct number of rows on the results page.
-Fixed issue with Call Uploading if the Server URL contained a trailing slash.
-Fixed multiple issues where sometimes WAV files were not getting cleaned up when using Call Transcriptions and Unitrunker.
-Fixed issue where call playback would stop randomly if "Auto Play New Calls" was not enabled and the call list was updated at same time call paying ended.

Released - 1/21/23

-Updated third-party libraries
-Added Duplicate Call checking to SDRTrunk imports if Trunking Recorder Call uploads are enabled.
-Fixed issues that could cause calls to get skipped on the web interface during a call list update.
-Changed the date selection box on web interface to not show the current date by default. This should make it clearer that it's not searching just today's calls by default.
-Added search box to Favorites, Call Uploading, Streaming, and Call Notification configuration menus (Will search Target Label, Target ID, and Target Tag).
-Added Target Tag column to Favorites, Call Uploading, Streaming, and Call Notification configuration menus.
-Added option to specify an alternate database folder for the SQLite database files (Allows for database file to be stored locally and audio files to be on a network share).
-Added option to turn off purging of unused Systems, Sites, Talkgroups, and Users.
-Added option to blindly trust the MS SQL Database server certificate (useful for self-signed certificates).
-Increased call purge timeout to 90 seconds when using MS SQL Database server.
-Added "unknown" talkgroup and radio user search options. (Displays groups and users with blank or "Unknown" values)
-Added Target and Source Tags to Custom MetaData.
-Fixed issue when using MS SQL database where email notification addresses wouldn't save correctly.
-Fixed issue when using MS SQL database that prevented searching for Talkgroups.
-Added support for automatic Night Mode when browser prefers a dark theme.
-Call Upload API now supports older versions of ISO 8601 date format.
-Fixed web interface search issue when using MS SQL database server and the SystemID contains a hyphen.
-Fixed web interface user authentication denied issue when using a HTTPS server with HTTP disabled.
-Fixed web interface search issue that caused some calls to not get listed when selecting a date that occurred with daylight savings time starting or ending. (Note: Call searching is done based on the server's time zone and not the local web browser)

Released - 1/31/22

-Requires .Net Framework 4.8.
-Built with Visual Studio 2022.
-Added feature that will cause web browser to save the number of rows displayed on the web interface when you choose a different amount. The default is still 100 rows.
-Added "Don't import calls shorter than X ms" option for SDRTrunk calls. The same millisecond setting is also used for ignoring short calls when recording from Unitrunker.
NOTE: If a SDRTrunk call is shorter than the specified number of milliseconds it will not be imported into Trunking Recorder. WARNING: The audio file will be deleted from the SDRTrunk recordings directory.
-Added a setting to allow the Trunking Recorder web interface theme to be set to "Night" mode by default for new devices. (Will not override a user's previously selected theme choice on their device)
-Added a Don't record calls shorter than a specified number of milliseconds setting. (Can be used to eliminate short junk calls which are typically less than 1 second, by default it will record all calls)
-Added a setting to display "Now Playing" call information on the Trunking Recorder web interface. You can choose to display the Target, Source, and/or Tag information at the top of the web interface when playing back a call. (Default is turned off)
-Added a setting to allow the Duplicate Call Detection Call length max difference milliseconds to be set. (Default is 300ms)
-Added a setting to allow the Duplicate Call Detection Call start time max difference milliseconds to be set. (Default is 2000ms)
-Systems can now be uploaded to Broadcastify Calls and Trunking Recorder server at the same time.
-Fixed issue with disabled configuration options when only HTTPS server enabled.
-Fixed call recording issue that started with Unitrunker where if a field isn't set in Unitrunker (a blank label) it will no longer send the field over in the API call.
-Fixed issues with Call Uploading duplicate call detection where calls still being recorded on server were not included in duplicate check allowing for a duplicate call to be saved.
-Fixed issue that caused lots of short calls to be recorded when using the Trunking Recorder Automatic mode and a Unitrunker VFO changed from one VAC to a new VAC after recording was already started.
-Fixed issue that caused some zero length calls when using the "Conversation" record format.

Released - 5/17/21

-Added support for automatically recording Unitrunker Voice Receivers without having to setup them up in Trunking Recorder (requires Unitrunker v2.1.0.32 or newer).
-Added "Night" theme to web interface.
-Added Call Speech-to-text feature to add transcription of call to Call notification emails.
NOTE:Requires a Azure Cognitive Services subscription (Free or Paid). For more information Click Here
-Added ability to upload call to Trunking Recorder from additional Trunking Recorder machines.
-Added support for using Microsoft SQL Server to host the Trunking Recorder database. For more information Click Here
-Added System Label column to web interface.
-Fixed issue with web interface where "Pause Updates" would get restarted after clicking the call audio file downloading icon.
-Fixed issue with web interface where "Pause Updates" didn't work if "All Dates" was selected.
-Fixed issue with web interface where it didn't always handle null TargetID and TargetLabel values correctly.
-Fixed search issue when SystemID contained a hyphen "-".
-Changed web interface capitalization for "P25 Phase" in voice type column to be more consistent.
-Fixed an issue where column show/hide on web interface only worked once per column.
-Disabled the "Loading" message displayed sometimes when doing searches on web interface.
-Added formatting of SystemID to include hyphen between WACN and SysID on web interface for P25 systems when using Unitrunker.
-Added default MetaData format when a new Stream is created.
-Fixed issue where Calls would have a length of zero when importing SDRTrunk calls. (SDRTrunk was not done writing the call file)
-Fixed issue where Call Patch info was not getting purged correctly.
-Fixed issue where search results count was higher than number of calls displayed sometimes when patched calls were included.
-Added purging of old sites to call purging process.
-Added startup check that will detect Unitrunker v2 and will clear out Unitrunker v1 receiver log to prevent extra receivers from being displayed in Trunking Recorder.
-Fixed issue that caused recorded Calls to be added to all enabled Call Upload queues (The extra calls where not getting uploaded, just caused incorrect number of calls in the queues).
-Fixed issue that caused web server resource load issue if only the HTTPS server was enabled.
-Improved Web Server debug logging.
-Allow Call Notification Talkgroup columns to be sorted.
-Added automatic recorded call MP3 file to WAV format conversion when required for Call Speech-to-text.
-Call notification email links now collapse search options when viewing the call on web interface.
-SDRTrunk call import Call Length value now includes tenths of a second for more accuracy.
-Added SQLite Cache memory size option to increase performance (Default 100MB, can be changed on the Advanced tab of the Configuration menu).
-Added website max number of rows returned when searching for Talkgroups, Radio Users, Sites, Systems to increase performance (Default 50,000, can be changed on Website-Display tab of the Configuration menu).
-Added sorting option when selecting Call Notification Talkgroups in the Call Notification menu (Click the column heading to sort).
-Enhanced File Long Path support for Windows 10.
-Fixed issue where Trunking Recorder would stop recording and display error if an issue with the Sound Card device was detected. It will now continue to record and display the error.
-Enhanced Configuration error highlighting to make it easier to see invalid settings.
-Fixed Trunking Recorder Icon on IOS devices so it no longer has black background.
-Updated third-party libraries.
-Reduced memory usage when sending call notification emails.
-Fixed crash when database file is unexpectedly read only.
-Cleanup extra log messages.
-Improved web interface search performance when searching for Radio Users.
-Fixed issue where clearing web interface search option caused call table to be reloaded twice.
-Web interface now allows entering the page number to jump directly to a specific results page instead of having to click the next button.
-Moved most of web interface browser options to browser local storage instead of using cookies.
-Added option to Shrink Database on File menu to reduce disk space and potentially improve performance.
-Added button to Configuration screen to view Trunking Recorder log file.

Released - 5/5/20

-Updated to 64-bit release (requires Windows 64-bit).
-Updated to .Net 4.7.2 (installer will prompt if it’s not installed).
-Added support for importing SDRTrunk call wave or mp3 recording files (requires SDRTrunk 0.4.0 final or newer). NOTE: Patch call target labels will not import until SDRTrunk 0.5.0 is released
-Added support for uploading calls to Broadcastify.
-Added support for importing and displaying Target and Source "Tag" values from Unitrunker v2.1.0.19 or newer.
-Added support for HTTPS server (TLS 1.2) using GUI.
-Added support for requesting certificate from Let's Encrypt CA using ACME protocol.
-Added automatic ACME certificate renewal.
-Added ability to temporary lockout talkgroup from a call stream using Web admin page.
-Added temporary lockout minute configuration to call stream.
-Added call update pause button to web interface.
-Added support for synchronizing the Trunking Recorder internal clock using a NTP server (Syncs every 10-360 minutes depending on how stable the machine clock is).
-Added support for displaying Frequency on Web Interface.
-Updated Web admin layout
-Trunking Recorder will now install in "Program Files" instead of "Program Files (x86)".
-Updated Webserver configuration screen layout.
-Detect if Unitrunker v1 is running and disable warnings if using Unitrunker v2.
-Moved Trunking Recorder settings to "settings.config" file instead of the previous version specific file.
-Updated third-party libraries.
-Disabled automatic new call loading when using the “All Dates” search feature on the web interface to improve performance.
-Added security headers to web server response.
-Added call search request and detail to web admin request log.
-Added popup message if Call Streaming can't be started because of a sound card issue.
-Updated license info for third-party modules.
-Changed Web interface minimum refresh time from 10 seconds to 5 seconds.
-Added popup message if SDRTrunk folder doesn't exists when starting recordings.
-Added popup error message if not able to start Unitrunker v2 UDP server.
-Fixed issue where Web interface wasn't updating automatically for “patch” calls when no search settings were selected.
-Fixed issue where selecting first favorite group wouldn't work on web interface.
-Fixed issue where Remote.DLL was getting installed in folder on root of C drive if Unitrunker v1 wasn't installed.

Released - 1/26/20

- Added option to create more than 2 Call Audio Streams.
- Moved Call Audio Streaming configurations to database.
- Added Custom MetaData format settings for each Call Audio Stream.
- Added sorting option when selecting Favorite or Streaming Talkgroups in the Configure menu (Click the column heading to sort).
- Removed the ability of Voice receivers to show their MetaData in the Trunking Recorder application title bar, the first Call Audio Stream will still show MetaData in title bar. All Call Audio Streams can write MetaData info to a text file for use with streaming application.
- Added "OR" or "AND" call searching option to webserver configurations for how calls are searched when multiple different search options are selected at same time. Default will remain "OR".
- Added option to Call Notifications to allow setting the minimum call length needed for a notification to be sent. Existing notifications will be set to require a call minimum length of 1 second.
- Added "Site" search option to web interface.
- Added capturing the "Site Label" information when using Unitrunker V2.
- Added "Site Label" to custom metadata and filename configurations.
- Fixed incorrect recorded call length when using MP3 format and a bit rate other than 16.
- Added process to detect remote desktop and console session disconnects so recordings can be restarted. (Remote desktop causes sound cards to get reset)
- Added option to webserver configuration that allows displaying the "site label" column on the web interface. (Hidden by default)
- Fixed caching of email templates when sending a call notification to reduce memory usage.
- Fixed issue where a duplicate call would not get recorded if a custom filename option was used and the length of filename generated was longer than 260 characters.
- Fixed issue where webserver would crash sometimes if it received connections from multiple different ports.
- Fixed issue where Call Audio Stream audio could play back on the wrong output when a soundcard was added or removed once streaming was already started.
- Added check to make sure Call Audio Streaming audio doesn't get stuck playing back a call.
- Updated WebSocket call broadcast data format to use the call list data format.
- Added delayed loading of Groups and Systems search options to improve web interface loading performance.
- Fixed issue that prevented recorded calls from being played on web interface if the filename contained special characters.
- Fixed issue that prevented handling of invalid SystemID values.
- Fixed issue that prevented the first favorite group on the web interface from working when selected.
- Updated LAME MP3 library to


- Call recorded email notifications, Trunking Recorder will send an email when a specific talkgroup is recorded. It can attach the call audio file or supply a link to the Trunking Recorder web interface.
- Inactive call email notifications, Trunking Recorder can send an email if no calls are recorded after a specified number of minutes. Useful if Unitrunker stops monitoring for some reason.
- Second audio stream, Trunking Recorder now allows for two independent audio streams. Can use this to have a private stream with all Talkgroups and public one with only a few. Could also be used to have police on one and fire/ems on the second.
- Call Audio Stream MetaData can be written to text file for use with third-party audio streaming application (RadioFeed)
- Streaming audio can be delayed for a specified number of minutes. Useful for public feeds where you don’t want people to be able to use the audio in real-time.
- Various improvements to decrease web interface loading time.
- Added "call type" search option.
- Requires .Net 4.6.1 and only supports Windows 7 and newer.
- Added feature to handle calls where Unitrunker v2 “parks” and then “continues” the call in rapid succession (Would cause multiple calls with a missing SourceID).
- Detect duplicate calls on multiple VFOs. Call on original VFO will no longer be recorded, call will now recorded on new VFO.
- Trunking Recorder will now purge the "Talkgroups" and "radio users" search list when there are no longer any matching recorded calls in the system.
- Web interface date and time formatting now uses server region settings.
- Added webadmin screen to web interface, allows admin to see who is currently connected, last files downloaded, and calls in the streaming queues. Enable on "Webserver" tab on the Configure menu.
- Added option to set which columns are displayed by default on web interface.
- Added option to allow recording purge run time to be changed.
- Added IPv6 support to web interface.
- Updated various libraries used.


-Added Patch call support for Unitrunker v2 (will display all talkgroups that are patched for each recorded call).
-Added ability to not display blank metadata when using a custom metadata format.
-Added number of calls in stream queue option to custom metadata.
-Removed search limit from Talkgroup, Radio, and System selection boxes on website.
-Added option to skip recording duplicate calls when monitoring multiple sites.
-Optimized and reduced website search time.
-Fixed Trunking Recorder not responding on startup when updating database.
-Added built-in MP3 recording (no longer need to download LAME).
-Fixed Flash of Unstyled Content (FOUC) on website page load.
-Fixed Search option displayed status not getting saved.
-Added export audio option, will allow current search results to be combined and exported into one new mp3 or wav file.
-Added data export options (PDF, Excel, and CSV).
-Added call download link icon for each row.
-Fixed issue with long path filenames caused by long talkgroup targetlabel or sourcelabel values.
-Removed data flash export option.
-Fixed exception being generated when blank XML data was being sent.
-Increased the max number of calls on a page to 500, default is still 100.
-Fixed bug causing conversation mode recordings to skip parts when played back in web interface.
-Fixed bug where previous call got replayed when new calls were loaded.
-Fixed bug where calls in progress of recording would end up logged as 0 length if stop recording button pressed.


-Added support for Unitrunker v2 UDP Remote API
-Changed favorite groups max width from 10 to 50 characters
-Added database optimization process, currently runs once a week Sunday morning
-Changed website order to use CallID instead of Start Time since it could miss calls when playing back
-Increased performance when building main HTML page
-Removed Flash buttons from webpage
-Added option to password protect website
-Added auto retry if MetaData file is still locked by Unitrunker
-Fixed handling of Individual calls so they don't get treated as group calls
-Added Clear Streaming queue option to File menu
-Fixed i-calls issues when searching by favorite group or talkgroup
-Added search option toggle
-Replaced checkboxes with toggle buttons
-Added System search option
-Added caching to speedup page loading
-Fixed issue when systemid or siteid were blank
-Fixed issue where backslashes couldn't be used in custom filename for folders
-If EDACS Fleet format is selected list of Talkgroups now uses that format on webpage
-Added queue count priority skip feature when streaming
-Updated various libraries to improve performance


-Fixed web automatic playback issue when using Conversation Format.
-Fixed issue when SystemID is 0
-Added SSL server support, must provide your own certificate in PKCS12 (PFX) format.


-Reduced CPU usage during call recording.
-Custom MetaData support for Window titlebar.
-Call Audio Streaming support, allows recorded calls from multiple voice receivers to be played back to sound card for use with streaming programs (Edcast, Radiofeed, etc...).


-Support recording from multiple voice receivers at same time.
- Create custom Favorite Groups that automatically search a predefined list of talkgroups.
- Ability to bookmark Favorite groups, Talkgroup, and Radio user searches.
-Option to enable automatic playback of newly recorded calls.
-Updated Remote.dll to support multiple voice receivers and output GroupCall, SiteID, System type, and VCO number.
- Added smartsort option to group like calls together on a page instead of just by time.
- Webpage selection options are now saved using cookies
- Multiple talkgroup can be search for at same time.
- Currently playing talkgroup information displayed on browser/tab title.
- Decimal, Hexadecimal, and Fleet display formats on web server.
- Automatic detection of Unitrunker working directory.
- Search by radio user.
- Added detection to see if Unitrunker is started.
-Added check to make sure Unitrunker data folder exists, fixed crash if path contained double quote.
-Added systemlabel, SystemType, voice, and call type to custom metadata.
-Changed Remote.dll install to re-prompt if user clicks OK and didn't close Unitrunker.
-Fixed issue with frequency rounding.
-Fixed issue causing Recording Purge to fail if using default Audio directory.


- Option to automatic purge old calls. (This feature is disabled by default)
- Greatly improved the performance of the built-in website when dealing with large number of calls.
- Better mobile device support.
- Bug fixes (Thanks Will and Dylan for the reports). Fixed an issue with Internet Explorer and certain characters that prevented the recordings from playing. Fixed a startup crash when the web server was turned off.


-Fixed issue with large System ID values, now treated as Unsigned 64-bit integer.
-Added handling for unknown service type.


-Fixed issue with UNC paths with SQLite.
-Added time and date to duplicate custom filenames to ensure they are unique


-Added a built-in web server that allows you to listen to and see all recorded calls using your web browser.
- Ability to filter the calls by specific talkgroups or dates.
-Recorded calls logged to a SQLite database
-Updated the Unilogger "Remote.dll" to output some extra fields. The log file will now also include LCN, voice service type (Analog, Provide, P25, etc...), System ID, and System Label.


-Added Custom Audio Filename support.
-Added UniLogger Remote.dll install and code.
-Added better error handling.


-Added SubTitle and multiple recording formats.


-Initial release.

Website templates by