I have reworked op25's trunking code to better handle "terminator" messages
DUID 3 & DUID 15 as well as revising the TGID hold logic, both implicit and
user-commanded.
The following describes the new behavior:
Receive voice grant for FREQ/SLOT/TGID
Tune to FREQ/SLOT/TGID
Receive & decode incoming LDU1/LDU2 voice packets and save timestamp
Receive & discard incoming DUID3/TDMA_DUID3 messages
Receive and handle incoming DUID15/TDMA_DUID15 messages that release the channel
If voice channel idle remains idle within the 1.0 second auto-hold period, release the
channel.
Return to control channel when voice channel released (either automatically or by timer
expiry)
At any time a voice call is in progress, the user can hit "h" on the terminal
to hold the active TGID indefinitely. The trunking logic from then on will only track and
play traffic for that specific TGID. Pressing "h" again will release the manual
hold and restore normal operation.
The new code has been committed to my github repo, along with a minor log level change to
the p25p1_fdma::rx_sym() timeout message. Perform a "git pull" and make/sudo
make install to update to the latest version.
NOTE on log levels:
Level 0 (-v 0) suppressed most operational trunking messages except errors.
Level 1 (-v 1) produces only "voice update" messages so you have a record of
tgids in use.
Level 2 (-v 2) produces more detailed information on trunking activity including
timeouts, releases and terminator messages.
Level 10 produces very detailed info and is likely to have significant cpu impact on
slower systems.