Mute signalling¶
Signalling - call-mute
SIG-13 - status: draft - audio, video
A participant signals an in-call mute state change by sending a <call> stanza wrapping a <mute_v2> action.
On a local microphone mute state change, a participant MUST send:
<call to="{peer}">
<mute_v2 call-id="{call-id}"
call-creator="{call-creator}"
mute-state="{state}"/>
</call>
toon<call>MUST be the peer JID. Noidattribute is set on this action.call-idMUST equal the offer'scall-id(see call-offer).call-creatorMUST equal the call'scall-creatorJID and MUST be byte-identical to the value on every other action of the same call.mute-stateMUST carry the new mute state as a string attribute value.- The tag MUST be
mute_v2(sent verbatim on the wire).<mute_v2>MUST have no child elements; all state is in attributes. - A fresh
<mute_v2>MUST be sent on each transition; it expresses the new absolute state, not a toggle. - This is informational signalling only: the sender MUST NOT renegotiate transport, codecs, or keys (see call-transport). Muting is realised on the media stream independently (e.g. ceasing audio or sending silence).
Requires: call-offer, call-transport
Implemented by
| Flavor | Status | Source | Notes |
|---|---|---|---|
whatsapp-rust |
working | history - blame - commits 674e851 |
build_mute_v2 in wacore/src/voip/stanza.rs constructs the outbound stanza; no inbound parser yet (mute_v2 is not in the |
zapo-caller |
planned | — | — |
Annotation wacrg:SIG-13 — a flavor marks its implementation site in source with this comment; a script clones the source, finds it, and attaches the commit blame/permalink.
Contributors
| Contributor | Role |
|---|---|
| wrote initial spec |
protocol history / diff - blame
Open questions
- The set of valid mute-state values is not pinned by the source; the builder accepts an arbitrary string. The on-wire encoding (e.g. "muted"/"unmuted" vs a numeric flag) is unconfirmed.
- Whether video mute is signalled by the same mute_v2 action (e.g. an additional video-state attribute) or by a separate action is unknown.
- Whether the receiver acknowledges
References - WhatsApp call signalling — mute_v2 builder
Changelog¶
- 2026-06-21 — Initial spec entry.