Using a RPi5 I installed DVSwitch on the same instance as ASL3 and linked it to ASL3 using chan_usrp. The following message is repeated for each transmission received from DVSwitch in the asterisk log:
WARNING[265959] chan_usrp.c: Channel usrp/127.0.0.1:34001:32001: Receive queue exceeds the threshold of 320
I tried to determine the origin of this message in the source code but have been unsuccessful.
I also notice that received audio from DVSwitch is mangled at the very beginning of a received transmission but soon becomes normal. Possibly a result of the same issue.
Is there a known resolution to this issue? Can it be resolved in configuration, or a change to the source code?
Have you looked at your dvswitch logs for answers ?
On the surface, it does not look like a asl3 or usrp error but the input stream in error.
USRP is not satisfied with it. Hence the message spew from the channel driver.
M: 2024-12-21 13:59:47.928 YSF, GPS Position from K0EHT-RON on radio=0x34 is lat=39.208000 long=-94.679665
M: 2024-12-21 14:00:11.734 YSF, received network end of transmission, 24.7 seconds, 0% packet loss, BER: 0.0%
M: 2024-12-21 14:00:17.009 YSF, received network data from KE8EFQ to ALL at KU0S/GW
I: 2024-12-21 14:00:17.009 YSF, Lookup call KE8EFQ returned id 0 -> 1234567
M: 2024-12-21 14:00:18.499 YSF, GPS Position from KE8EFQ on radio=FTM-100D is lat=41.188000 long=-81.976997
M: 2024-12-21 14:00:25.305 YSF, received network end of transmission, 8.4 seconds, 0% packet loss, BER: 0.0%
M: 2024-12-21 14:00:31.876 YSF, received network data from K0EHT-RON to ALL at KU0S/GW
I: 2024-12-21 14:00:31.876 YSF, Lookup call K0EHT returned id 3129461 -> 3129461
M: 2024-12-21 14:00:32.665 YSF, GPS Position from K0EHT-RON on radio=0x34 is lat=39.208000 long=-94.679665
M: 2024-12-21 14:00:36.566 YSF, received network end of transmission, 4.8 seconds, 0% packet loss, BER: 0.0%
M: 2024-12-21 14:03:14.379 YSF, received network data from W1KN to ALL at BM3104
I: 2024-12-21 14:03:14.379 YSF, Lookup call W1KN returned id 3154382 -> 3154382
M: 2024-12-21 14:03:14.849 YSF, received network end of transmission, 0.9 seconds, 0% packet loss, BER: 0.0%
M: 2024-12-21 14:03:21.339 YSF, received network data from W1KN to ALL at BM3104
I: 2024-12-21 14:03:21.340 YSF, Lookup call W1KN returned id 3154382 -> 3154382
M: 2024-12-21 14:03:24.460 YSF, received network end of transmission, 3.7 seconds, 0% packet loss, BER: 0.0%
Assuming the usrp channel driver is working correctly,
It is not getting data correctly and is the one telling you that fact. The error.
It gets it’s data from analog_bridge.
By structure, That is all I can say about it. You will need to ask
[2024-12-23 09:05:50.336] WARNING[1142] chan_usrp.c: Channel usrp/127.0.0.1:34001:32001: Receive queue exceeds the threshold of 320
In our case, it appears on inbound DMR voice calls longer than a few seconds, but does not appear to cause any issues with audio on the analog output side of things.
It really sounds like the analog driver is not keeping up with the stream (queue is being over run by the Analog_Bridge), but it must be “really close” to 320, otherwise I would think we would notice audio problems…
I guess I stated it “wrong” - USRP is the software not keeping up with the stream… Nothing has changed with DVSwitch or the Analog_Bridge, but ASL has. Why would we suspect it is a problem with Analog_Bridge?
I suppose at this point it’s more of a log filler than a problem.
I’m curious about something.
In your DVSwitch setup, are you using Analog_Reflector between Analog_Bridge and ASL?
If not, have you tried disabling metadata export from Analog_Bridge to see if anything changes?
in /opt/Analog_Bridge/Analog_Bridge.ini, find the line; exportMetadata = true ; Export metadata to USRP partner (transcode setups require this)
Change true to false, then
systemctl restart analog_bridge
If you are sending directly from Analog_Bridge to ASL, you don’t need this. However, if you are sending to Analog_Reflector, then sending Analog_Reflector to ASL, you should leave it enabled to maintain metadata.
This metadata sends a chunk at the start of a transmission, which comes out as a sort of popping sound if it isn’t intercepted by Analog_Reflector, or disabled entirely.
I wonder if this changes the behavior of ASL’s USRP driver when fed by DVSwitch Server or not.
Thanks for pointing out exportMetadata. As OP in this thread, I mentioned there was a glitch heard at the start of received transmissions. With exportMetadata=false, the glitch is gone, but the asterisk log warning messages remain.
The warning is NEW to the driver code as of October 26, 2024:
I’d say the warning is misleading for sure → It says it has exceed the threshold then give us the USRP_VOICE_FRAME_SIZE instead of QUEUE_OVERLOAD_THRESHOLD
Since this is a “new” error, it may have been occurring forever as well, we just didn’t know it.