Call accept stanza¶
Signalling - call-accept
SIG-03 - status: review - audio, video
The callee answers an offer with a
The <call> wrapper MUST carry to (the offering peer); it MAY omit id.
The <accept> child MUST carry call-id and call-creator, both echoed verbatim
from the offer.
<accept> children MUST appear in this order:
audio(rate)… → [te(priority=2)] → net(medium=2) → encopt(keygen=2)
→ [capability] → [rte] → [voip_settings]
Required children:
- One
<audio enc="opus" rate="…">per accepted rate, in preference order, no body.rate="8000"selects 8 kHz narrowband Opus;rate="16000"selects 16 kHz. <net medium="2">— selects the relay transport medium (offer advertisesmedium="3"; accept commits tomedium="2").<encopt keygen="2">— pins the v2 SRTP key derivation path (see srtp-master-key), matching the offer'sencopt.
Optional children:
<te priority="2">— relay transport-endpoint blob; MUST be placed immediately after the<audio>nodes.<capability ver="1">— body is the fixed 7-byte blob01 05 f7 09 e4 bb 13.<rte>— relay-token-extension blob, no attributes.<voip_settings uncompressed="1">— VoIP settings blob; MUST be the last child.
Requires: call-offer, call-preaccept, srtp-master-key
Breakdown: call-preaccept, flow-call-missed, flow-call-rejected, flow-incoming-1to1, flow-outgoing-1to1, video-call
Implemented by
| Flavor | Status | Source | Notes |
|---|---|---|---|
whatsapp-rust |
working | history - blame - commits 674e851 |
— |
zapo-caller |
working | — | — |
Annotation wacrg:SIG-03 — 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
- Byte layout and semantics of the
References - RFC 3711 — SRTP
Changelog¶
- 2026-06-21 — Initial spec entry.