Expand description
shared application model for the Odoo Discuss SFU contract
this crate defines the Odoo Discuss call concepts that multiple o-sfu
crates must interpret identically
they are more specific than RFC vocabulary but less specific than any one
runtime subsystem
the model crate depends only on serialization support sockets, async work, media transports, router topology, metrics registries, server configuration and JSON envelope parsing stay in the runtime, core, router, telemetry and protocol crates
§Compatibility
several types preserve the old SFU and Odoo browser contract they should remain small data types with explicit serde shapes and local normalization helpers runtime callers should normalize compatibility input at ingress before storing it in room state, diagnostics indexes or subscription maps
Structs§
- Available
Features - room capabilities advertised to a newly connected browser client
- Download
States - receiver intent for which streams to download from one peer
- Peer
Snapshot - full peer entry sent when a client needs the current room membership view
- Recording
Options - recording modes requested by a user
- Recording
State - current room recording state as shown to call participants
- Recording
State Update - recording state update emitted to clients and observers
- User
Info - presence and call UI state associated with one room participant
- User
Permissions - user-level permissions supplied by the Odoo authentication path
Enums§
- Stop
Code - business reason attached to a recording stop update
- Stream
Type - stream category exposed to Odoo clients
- UserId
- user identity as accepted by the Odoo-facing call contract
- Video
Layout Intent - receiver-side layout role for a video stream
- WebSocket
Close Code - websocket close code vocabulary shared by server and browser protocol code
Type Aliases§
- Json
Payload - opaque compatibility payload carried through legacy broadcast paths