mirror of
https://github.com/matrix-org/matrix-spec
synced 2026-03-23 03:34:08 +01:00
Sort VoIP events semantically
Fixes: #937 Signed-off-by: Johannes Marbach <n0-0ne+github@mailbox.org>
This commit is contained in:
parent
e972e29429
commit
71f5291a8f
|
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
"type": "object",
|
||||
"description": "This event is sent by the callee when they wish to answer the call.",
|
||||
"x-weight": 40,
|
||||
"allOf": [{
|
||||
"$ref": "core-event-schema/room_event.yaml"
|
||||
}],
|
||||
|
|
|
|||
|
|
@ -3,6 +3,7 @@ description: |-
|
|||
This event is sent by callers after sending an invite and by the callee after
|
||||
answering. Its purpose is to give the other party additional ICE candidates to
|
||||
try using to communicate.
|
||||
x-weight: 20
|
||||
allOf:
|
||||
- $ref: core-event-schema/room_event.yaml
|
||||
properties:
|
||||
|
|
|
|||
|
|
@ -21,6 +21,7 @@ description: |
|
|||
the new call unless the user had specifically chosen to do so.
|
||||
* `unknown_error`: Some other failure occurred that meant the client was unable to continue the call
|
||||
rather than the user choosing to end it.
|
||||
x-weight: 70
|
||||
allOf:
|
||||
- "$ref": core-event-schema/room_event.yaml
|
||||
properties:
|
||||
|
|
|
|||
|
|
@ -1,6 +1,7 @@
|
|||
{
|
||||
"type": "object",
|
||||
"description": "This event is sent by the caller when they wish to establish a call.",
|
||||
"x-weight": 10,
|
||||
"allOf": [{
|
||||
"$ref": "core-event-schema/room_event.yaml"
|
||||
}],
|
||||
|
|
|
|||
|
|
@ -34,6 +34,7 @@ description: |
|
|||
attempt to validate the `type` field, but simply pass the object into the
|
||||
WebRTC API.
|
||||
x-addedInMatrixVersion: "1.7"
|
||||
x-weight: 60
|
||||
allOf:
|
||||
- "$ref": core-event-schema/room_event.yaml
|
||||
properties:
|
||||
|
|
|
|||
|
|
@ -14,6 +14,7 @@ description: |
|
|||
Note that, unlike `m.call.hangup`, this event has no `reason` field: the rejection of
|
||||
a call is always implicitly because the user chose not to answer it.
|
||||
x-addedInMatrixVersion: "1.7"
|
||||
x-weight: 30
|
||||
allOf:
|
||||
- "$ref": core-event-schema/room_event.yaml
|
||||
properties:
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
type: object
|
||||
x-addedInMatrixVersion: "1.11"
|
||||
x-weight: 60
|
||||
description: |-
|
||||
This event is sent by callers when they wish to update a stream's metadata
|
||||
but no negotiation is required.
|
||||
|
|
|
|||
|
|
@ -2,6 +2,7 @@
|
|||
"type": "object",
|
||||
"description": "This event is sent by the caller's client once it has decided which other client to talk to, by selecting one of multiple possible incoming `m.call.answer` events. Its `selected_party_id` field indicates the answer it's chosen. The `call_id` and `party_id` of the caller is also included. If the callee's client sees a `select_answer` for an answer with party ID other than the one it sent, it ends the call and informs the user the call was answered elsewhere. It does not send any events. Media can start flowing before this event is seen or even sent. Clients that implement previous versions of this specification will ignore this event and behave as they did before.",
|
||||
"x-addedInMatrixVersion": "1.7",
|
||||
"x-weight": 50,
|
||||
"allOf": [{
|
||||
"$ref": "core-event-schema/room_event.yaml"
|
||||
}],
|
||||
|
|
|
|||
|
|
@ -14,20 +14,24 @@
|
|||
|
||||
{{ $base_path := "event-schemas/schema" }}
|
||||
|
||||
{{ $events := index .Site.Data "event-schemas" "schema" }}
|
||||
{{ $group_name := .Params.group_name }}
|
||||
|
||||
{{ range $event_name, $event_data := $events }}
|
||||
|
||||
{{/* Filter events and prepare them for sorting */}}
|
||||
{{ $events := slice }}
|
||||
{{ range $event_name, $event_data := index .Site.Data "event-schemas" "schema" }}
|
||||
{{ $prefix := substr $event_name 0 (len $group_name) }}
|
||||
{{ if eq $prefix $group_name }}
|
||||
|
||||
{{ $path := delimit (slice $base_path $event_name) "/" }}
|
||||
{{ $event_data = partial "json-schema/resolve-refs" (dict "schema" $event_data "path" $path) }}
|
||||
{{ $event_data := partial "json-schema/resolve-allof" $event_data }}
|
||||
|
||||
{{ partial "events/render-event" (dict "event_name" $event_name "event_data" $event_data)}}
|
||||
|
||||
{{ $events = $events | append (dict "event_name" $event_name "event_data" $event_data) }}
|
||||
{{ end }}
|
||||
{{ end }}
|
||||
|
||||
{{/* Render the events sorted by x-weight or otherwise their event name */}}
|
||||
{{ range sort $events "event_data.x-weight" "event_name" }}
|
||||
|
||||
{{ $path := delimit (slice $base_path .event_name) "/" }}
|
||||
{{ $event_data := partial "json-schema/resolve-refs" (dict "schema" .event_data "path" $path) }}
|
||||
{{ $event_data := partial "json-schema/resolve-allof" $event_data }}
|
||||
|
||||
{{ partial "events/render-event" (dict "event_name" .event_name "event_data" $event_data)}}
|
||||
|
||||
{{ end }}
|
||||
|
|
|
|||
Loading…
Reference in a new issue