Yeah, it's like the lightbulb went on here.
Playback.py is dead simple as far as a parrot application goes. It's also not particularly well-designed or executed (no slight on Cort or Steve for writing it that way, I think it was put in the repo as a proof-of-concept, not a complete parrot/echo app.)
Playback.py relies entirely on seeing a voice terminator packet come in as the trigger to play out the audio. There really should be some kind of timer that expires after a few hundred milliseconds of not receiving any more voice packets from the stream, but no such timer exists in the app as written (which is what I mean by the app being proof-of-concept rather than a robust app for end-user enjoyment).
No voice terminator packet, no echo. It took the subscriber radio on the second transmission to knock playback.py loose and allow it to play out the stored audio.
Another checklist item, I suppose. If we're going to have a playback.py app in the repo, it should be robust enough to deal with a badly-behaving subscriber, or a network where the voice terminator packets get lost or never arrive.
Randy Hall AA6RH (not K7AGE, quit asking) 😁