Skip to content

Push-to-Talk (PTT) and comms

ARGUS’s comms are built around a floating PTT widget anchored to the bottom-right of the operation console. It sits above every tile so you can transmit from any view.

The widget anatomy

From top to bottom, pinned to the right edge of the console:

  1. Transcription bubble — a translucent floating card that shows the most recent finalised speech-to-text output. Appears only while the transcription service is running. Voice-command matches (see voice commands) also surface here with an icon badge.
  2. Commander badge — a small “COMMANDER” chip, shown only if the current signed-in user is the mission commander. Purely informational — indicates you’re entitled to manage channels and operate the master caution.
  3. PTT button — the large round button you press-and-hold to transmit. Its visual state reflects which phase comms is in:
    • Idle: mic icon, grey, label “PTT”.
    • Receiving (someone else is talking on one of your tuned channels): hearing icon, muted blue, label “RX”, a pulse ring around the button.
    • Transmitting (you’re holding): graphic_eq icon, red, label “TX”, a brighter pulse ring.
    • Blocked: the button grays out if your mic isn’t granted — click the network status chip for a path to browser-permission help.
  4. Channel chip — a small pill showing the current TX channel (e.g. “TAC 1”) or “ALL” when no specific TX channel is picked. Tap to open the channel panel.

Pressing to talk

PTT is pointer-only — press and hold the button with mouse, touch, or pen. Release to stop transmitting.

  • There is no spacebar shortcut in the current build. Holding spacebar in the shell does not transmit.
  • Release events include pointer-leave and pointer-cancel, so if you drag off the button or the browser steals the pointer (e.g. you switch windows), the transmission ends cleanly.
  • You can drag into the button region to start and release outside — the transmission begins on pointerdown and ends on pointerup/pointercancel regardless of where the pointer has moved to.

The channel panel

Click the channel chip — the panel opens as a popover above the widget.

Receive channels

Every channel your mission exposes appears in a list with a checkbox labelled Tune. Ticking a channel subscribes you to its audio; unticking mutes it for you only (everyone else still hears it). Ticking multiple channels at once means you’ll hear audio from any of them — the RX indicator lights up whenever anyone on a tuned channel is transmitting.

Transmit channel

Pick a single channel from the Transmit on dropdown. Your press-to-talks go out on that channel only. The default option ALL transmits simultaneously to every channel you have tuned — useful for commander broadcasts.

Audio gating behaviour

When you toggle Tune on a channel, ARGUS immediately re-evaluates audio gating across every connected peer so you start or stop hearing them within one render frame. This also applies when a peer joins/leaves mid-operation — tuning is always current.

Creating and managing channels (commander-only)

Commanders (and org admins) see a Manage button (tune icon) at the top of the channel panel. Click it to open the Channels dialog:

  • List of existing channels with name, ID, and a trash icon to delete.
  • New channel form — type a name, click Add. The channel appears for every participant immediately.
  • Rename — click the existing name inline to edit.

Channels are stored in a mission-scoped Firestore doc. Their list is reactive so non-commanders see new channels appear in their RX list without a refresh.

Who sees what: every channel created in the mission is visible to every participant. “Private” channels (visible only to certain teams) are not currently supported.

Audio routing

Audio device pickers (mic / speaker) are not currently exposed in the operation console — ARGUS uses your browser’s default input and output devices. Change them in your browser’s site permissions / OS sound panel. A follow-up ticket tracks adding in-app pickers for operators who use multiple headsets.

There is no audio-ducking (incoming PTT reducing drone-stream volume). If you need to hear radio over video, lower the drone-stream’s in-tile mute/volume manually.

What the mic-mute button does

There is no global mic kill-switch in the current build. If you need to go silent entirely, use your operating-system-level mute (most headsets have a hardware mute switch, and Windows/macOS have keyboard mute). A software kill-switch is on the roadmap.

Transcription + voice commands

While transcription is enabled for the operation, every PTT burst is transcribed by the cloud agent. The transcription bubble above the PTT button shows the last finalised utterance for quick review of what you just said. The voice-command detector reads the same stream and, when a recognised phrase matches, emits an inline event you’ll see as a coloured badge in the bubble.

Troubleshooting

  • No one hears me — check that you picked a TX channel (if it shows “ALL” you’re broadcasting to every tuned channel, but your teammates must also be tuned in). Also verify the browser has mic permission — the mic icon goes grey with a red bar if permission is denied.
  • I’m RX but no audio plays — system output device is wrong, or the browser tab is muted (look for the muted-speaker icon in your browser’s tab strip). Click into the console’s main area so the browser can auto-play audio.
  • Everything is robotic — packet loss. The network-status chip in the toolbar will flash amber; click it to see round-trip time.
  • My commander badge is missing — you’re not the commander of this operation. Have the current commander promote you in the mission-detail page.
  • Comms tile — a tile-level view of the comms log with full transcription history.
  • Voice commands — the 17 recognised phrases.
  • Chat — text-only channel parallel to voice.