social.colibri.beta.voice.defs

Repository @colibri.social did:plc:mprdjqjluoswa7awzggaggj3 namespace authority
Details · defs
Kinddefs
Authorityvoice.beta.colibri.social
Indexed

#ack

object

Answers a heartbeat.

Properties

#callElsewhere

object

The call in the requested channel runs on another node. Clients join it there.

Properties

channel

requiredstring · space-ref

The voice channel.

nodeId

requiredstring

The node hosting the call.

signalingUrl

requiredstring · uri

Base URL for voice signaling on that node.

#closeProducer

object

Closes a producer this connection owns.

Properties

producerId

requiredstring

The producer to close.

#codecUnsupported

object

A viewer in the voice channel can't decode the video codec of this client's screen share. The client can produce the screen share again with a more widely supported codec. Sent at most once per producer, only to the client that owns it.

Properties

producerId

requiredstring

The screen share producer a viewer couldn't consume.

#connectTransport

object

Completes DTLS negotiation for a transport this connection created.

Properties

dtlsParameters

requiredunknown

The opaque mediasoup DTLS parameters blob.

transportId

requiredstring

The transport to connect.

#consume

object

Starts consuming another peer's producer on a receive transport this connection created.

Properties

producerId

requiredstring

The producer to consume.

rtpCapabilities

requiredunknown

This connection's opaque mediasoup RTP capabilities blob.

transportId

requiredstring

The receive transport to consume on.

#consumerOptions

object

Parameters for consuming one producer.

Properties

id

requiredstring

The consumer's identifier.

kind

requiredstring

The media kind.

  • knownValues: audio | video

producerId

requiredstring

The producer being consumed.

rtpParameters

requiredunknown

The opaque mediasoup RTP parameters blob.

#createTransport

object

Requests a new WebRTC transport for the joined channel.

Properties

direction

requiredstring

Whether this transport will send or receive media.

  • knownValues: send | recv

#disconnected

object

The server removed this client from the voice channel. Sent only to the client it applies to.

Properties

reason

string

Why it happened. 'nodeClosed' means the node hosting the call shut down before the call could move. 'migrated' means the call moved to another node and this connection is no longer needed.

  • knownValues: moderator | superseded | channelGone | forbidden | nodeClosed | migrated

#error

object

Something the client sent could not be acted on.

Properties

error

requiredstring

Error name.

  • knownValues: InvalidFrame | NotJoined | ChannelNotFound | NotVoiceChannel | Forbidden | NotFound

message

string

Human-readable detail.

#getRtpCapabilities

object

Requests the router's RTP capabilities for the joined channel.

Properties

#heartbeat

object

Keeps the connection alive. The server answers with an ack.

Properties

#join

object

Joins a voice channel. A connection must join before sending any other frame, and joining a second channel leaves the first.

Properties

channel

requiredstring · space-ref

The voice channel to join.

#joined

object

Confirms this connection has joined a voice channel.

Properties

channel

requiredstring · space-ref

The voice channel now joined.

nodeId

string

The node hosting the call.

region

string

The region of the node hosting the call.

#leave

object

Leaves the voice channel this connection is joined to.

Properties

#migrateTo

object

The call moves to another node. Clients join the same channel there, switch their media over, and then leave this node.

Properties

channel

requiredstring · space-ref

The voice channel.

nodeId

requiredstring

The node the call moves to.

now

boolean

True when a participant asked to move right away.

signalingUrl

requiredstring · uri

Base URL for voice signaling on that node.

#migrationCandidate

object

A voice node a call can move to.

Properties

nodeId

requiredstring

Stable node identifier.

probeUrl

requiredstring · uri

A cheap URL to measure the round trip to that node.

region

requiredstring

Region name.

signalingUrl

requiredstring · uri

Base URL for voice signaling on that node.

#migrationProposal

object

This node is going offline and the call has to move. Clients measure the round trip to every candidate and answer with rttReport.

Properties

candidates

requiredarray

Voice nodes the call can move to.

itemsref

deadline

requiredstring · datetime

When the call moves without further notice.

#moderationChanged

object

A peer's mute or deafen state changed, whether they did it themselves or a moderator did it to them.

Properties

deafened

requiredboolean

Whether incoming audio is silenced, for any reason.

did

requiredstring · did

Whose state changed.

muted

requiredboolean

Whether the microphone is muted, for any reason.

Whether a moderator deafened them. When this is true the peer cannot undeafen themselves.

Whether a moderator muted them. When this is true the peer cannot unmute themselves.

#moveNow

object

Asks the node to move the call to the chosen node right away, without waiting for the deadline.

Properties

#moved

object

A moderator moved this client to another voice channel. The server has already removed it from the previous one. Sent only to the client it applies to.

Properties

channel

requiredstring · space-ref

The voice channel to join.

#peerJoined

object

Another peer joined the voice channel this connection is in.

Properties

did

requiredstring · did

Who joined.

#peerLeft

object

A peer left the voice channel this connection is in.

Properties

did

requiredstring · did

Who left.

#produce

object

Starts producing media on a send transport this connection created.

Properties

kind

requiredstring

The media kind.

  • knownValues: audio | video

rtpParameters

requiredunknown

The opaque mediasoup RTP parameters blob.

source

requiredstring

What this producer captures.

  • knownValues: microphone | camera | screen

transportId

requiredstring

The send transport to produce on.

#producerInfo

object

A media producer available to consume.

Properties

did

requiredstring · did

Who is producing this media.

kind

requiredstring

The media kind.

  • knownValues: audio | video

paused

boolean

Whether the producer is currently paused.

producerId

requiredstring

The producer's identifier.

source

string

What the producer captures.

  • knownValues: microphone | camera | screen

#producerRemoved

object

A peer's producer closed.

Properties

did

requiredstring · did

Whose producer this was.

producerId

requiredstring

The producer that closed.

#resumeConsumer

object

Resumes a consumer this connection created, which is created paused by default.

Properties

consumerId

requiredstring

The consumer to resume.

#rtpCapabilities

object

The RTP capabilities a WebRTC endpoint supports.

Properties

payload

unknown

The opaque mediasoup capability blob.

#rttReport

object

Round trips this client measured to the candidates of a migrationProposal.

Properties

results

requiredarray

One result per candidate.

itemsref
Reference

#rttResult

object

One measured round trip.

Properties

nodeId

requiredstring

The candidate measured.

rttMs

integer

Round trip in milliseconds. Absent when the node could not be reached.

  • minimum: 0

#setConsumerPreference

object

Sets the highest simulcast or SVC layers a consumer this connection created should receive, and whether it should receive media at all. The server picks layers within the transport's bandwidth estimate and keeps a consumer paused while deafen silences it.

Properties

consumerId

requiredstring

The consumer to update.

paused

requiredboolean

Whether the viewer wants this consumer paused, for example while its tile is off screen.

spatialLayer

requiredinteger

The highest spatial layer to receive, where 0 is the lowest resolution.

  • minimum: 0

The highest temporal layer to receive. When absent, the server uses the highest one available.

  • minimum: 0

#setSelfState

object

Updates this connection's own mute or deafen state. An absent field leaves the current value unchanged.

Properties

deafened

boolean

Whether incoming audio is silenced.

muted

boolean

Whether the microphone is muted.

#setSpeaking

object

Reports whether this connection's user is speaking, as detected on their device. Once a connection sends this, the server stops detecting speech from its audio level. The server reports false while the user is muted.

Properties

speaking

requiredboolean

Whether the user is currently speaking.

#speakingUpdate

object

A change in whether someone is currently speaking.

Properties

did

requiredstring · did

Who this update is about.

level

integer

An audio level in dBFS.

speaking

requiredboolean

Whether they are currently speaking.

#transportOptions

object

Parameters for creating one side of a WebRTC transport.

Properties

direction

string

Which side of the call this transport carries.

  • knownValues: send | recv

dtlsParameters

requiredunknown

The opaque mediasoup DTLS parameters blob.

iceCandidates

requiredarray

The mediasoup ICE candidates, one opaque blob per candidate. This is an array, not a single object, because that is what a WebRTC transport hands back.

itemsunknown

One opaque mediasoup ICE candidate.

iceParameters

requiredunknown

The opaque mediasoup ICE parameters blob.

STUN and TURN servers the client should use while gathering candidates. Absent when the server has none configured.

itemsunknown

One opaque RTCIceServer entry.

id

requiredstring

The transport's identifier.

Similar lexicons

semantic match

Lexicons whose schemas describe something close to this one. Check them before publishing a new one that overlaps.

  • social.colibri.voice.signal

    subscription not from the namespace authority

    Opens a WebSocket to the community hub AppView's embedded voice SFU (mediasoup) for a single voice channel. Bidirectional signaling: the client sends transport/produce/consume requests and the server replies and pushes producer and active-speaker events. Media itself flows over WebRTC (SRTP), not this socket. Requires service auth (aud = the community hub AppView's did:web, lxm = social.colibri.voice.signal), carried via the Sec-WebSocket-Protocol subprotocol as with subscribeEvents.