What this proves
Two or more browsers on the same channel exchange live microphone audio
through a NURL server. The page captures the mic, ships 20 ms PCM
frames over a WebSocket to /pptws/<channel>, and the
NURL relay fans each frame
out to every other member of that channel (the same group-multicast
shape as the native overlay's relay). Inbound frames play back through Web
Audio. The meter shows your mic; the badge shows how many are connected.
How the voice path works
β’ The relay is a NURL program β the playground's own HTTP server
gained a WebSocket upgrade hook, and the channel registry +
fan-out + presence are ~150 lines of NURL (nurlapi/pptws.nu).
β’ A channel is a group; a frame from one member is forwarded to all
others, never echoed back to the sender.
β’ The browser can't reach the native pubkey overlay (raw UDP/TCP), so this
is the relayed leg. The native app (pttvoice/) adds the
direct peer-to-peer path and Opus.
public channel.
+ Create channel mints a random id and drops you on it; anyone who
opens /pptchat/<id> joins the same one β the URL is the
invite. In the mobile app that id becomes a generated secret shared
by QR code or link, so only invited devices can join and decrypt.
https://
or http://localhost. PCM is uncompressed here (Opus is in the
native build); fine for a LAN/demo.