How developerkayitha2095-ops/ptt-walkie works
PTT Walkie is a mobile-only, encrypted push-to-talk web app with a Node.js half-duplex relay. A user opens the client, joins a channel using a short code, and presses to talk; the client encodes and encrypts audio before sending it through the relay to other members. The client also supports QR-based channel entry, roster and connection recovery. The excerpts show the client’s audio, transport and scanner mechanisms and the relay’s room rules; unsampled UI and relay details are represented only where the README documents them.
Main entry points: app.js Client application · server.js Room and PTT control · index.html Web interface · codec.js Voice codec
Components 11
Mobile client
- Web interface
client/index.html - Client application
client/app.js - QR scanner
client/app.js
Voice and security
- Audio capture/playback
client/app.js - Voice codec
client/codec.js - Channel crypto
client/crypto.js
Relay service
- HTTP and WebSocket server
server/server.js - Room and PTT control
server/server.js - Audio forwarding
server/server.js - Health and client hosting
server/server.js
Other components
- Mobile user
Connections 13
- Mobile user → Web interface: opens client
README.md - Web interface → Client application: boots application
- Client application → QR scanner: opens scanner
client/app.js - Client application → Audio capture/playback: captures and plays
client/app.js - Client application → Voice codec: encodes frames
client/app.js - Client application → Channel crypto: encrypts frames
client/app.js - Client application → HTTP and WebSocket server: opens WebSocket
client/app.js - Client application → Health and client hosting: checks health
README.md - HTTP and WebSocket server → Room and PTT control: dispatches control
server/server.js - Room and PTT control → Audio forwarding: authorizes talker
README.md - Audio forwarding → Client application: forwards encrypted audio
README.md - Room and PTT control → Client application: sends room events
README.md - Health and client hosting → Web interface: serves client
server/server.js