Call reject stanza¶
Signalling - call-reject
SIG-08 - status: review - audio, video
The <reject> action stanza declines an incoming call offer before the media phase, naming the call by call-id/call-creator with no child elements.
Wire layout:
<call to="{caller-jid}">
<reject call-id="{call-id}" call-creator="{call-creator-jid}"/>
</call>
Construction.
- The outer
<call>MUST carryto= the JID the offer was received from (the caller). The builder MUST NOT add anidattribute to<call>; the I/O layer's stanza id applies. <reject>MUST carry exactly two attributes:call-id— copied verbatim from the declined<offer>(see call-offer).call-creator—call-creatorJID copied verbatim from that<offer>.<reject>MUST be empty: no child elements, no content bytes.
Semantics.
- Send
<reject>only to decline an offer not yet accepted; distinct from<terminate>(see call-terminate), which ends a call past offer. <reject>MUST NOT be preceded by<preaccept>or<accept>for the same call from the same device; it is the terminal action for that offer.- No media keying, relay allocation, or transport negotiation occurs on the reject path.
Receiving.
- A
<reject>arrives in an inbound<call>stanza with the standard envelope attributes (from,id,t, optionallynotify,platform,version,e). A receiver MUST treatcall-idandcall-creatoras required; a<reject>missing either MUST be rejected as malformed. - The generic
<call>acknowledgement covers receipt; no<receipt>-style ack-of-offer is emitted (that is specific to<offer>).
Unlike <terminate>, <reject> carries no reason, duration, or
audio_duration attributes and no <destination> child.
Requires: call-offer
Breakdown: flow-call-rejected, flow-incoming-1to1
Implemented by
| Flavor | Status | Source | Notes |
|---|---|---|---|
whatsapp-rust |
working | history - blame - commits 674e851 |
— |
zapo-caller |
working | — | ported from zapo-caller signaling.ts |
Annotation wacrg:SIG-08 — 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
- Whether any client emits an optional
References - RFC 2119 — Key words for use in RFCs
Changelog¶
- 2026-06-21 — Initial spec entry.