Clarify that sdpMid and sdpMLineIndex are not required in `m.call.candidates` (#1742)

* Convert m.call.candidates schema to YAML

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>

* Clarify that sdpMid and sdpMLineIndex are not required in `m.call.candidates`

MSC2746, merged in v1.17,
introduced the end-of-candidates candidate,
where only the `candidate` property is set to an empty string.

Besides, the [WebRTC specification](https://www.w3.org/TR/webrtc/)
says that only one of those fields is required in a normal candidate.

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>

* Add changelog

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>

* Link to the "End-of-candidates" section, and clarify what "empty" means

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>

---------

Signed-off-by: Kévin Commaille <zecakeh@tedomum.fr>
pull/1748/head
Kévin Commaille 9 months ago committed by GitHub
parent 9fdc7ac38f
commit 9068c336f4
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -0,0 +1 @@
Clarify that `sdpMid` and `sdpMLineIndex` are not required in `m.call.candidates`.

@ -1,45 +1,49 @@
{
"type": "object",
"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.",
"allOf": [{
"$ref": "core-event-schema/room_event.yaml"
}],
"properties": {
"content": {
"type": "object",
"allOf": [{
"$ref": "core-event-schema/call_event.yaml"
}],
"properties": {
"candidates": {
"type": "array",
"description": "Array of objects describing the candidates.",
"items": {
"type": "object",
"title": "Candidate",
"properties": {
"sdpMid": {
"type": "string",
"description": "The SDP media type this candidate is intended for."
},
"sdpMLineIndex": {
"type": "number",
"description": "The index of the SDP 'm' line this candidate is intended for."
},
"candidate": {
"type": "string",
"description": "The SDP 'a' line of the candidate."
}
},
"required": ["candidate", "sdpMLineIndex", "sdpMid"]
}
}
},
"required": ["candidates"]
},
"type": {
"type": "string",
"enum": ["m.call.candidates"]
}
}
}
type: object
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.
allOf:
- $ref: core-event-schema/room_event.yaml
properties:
content:
type: object
allOf:
- $ref: core-event-schema/call_event.yaml
properties:
candidates:
type: array
description: Array of objects describing the candidates.
items:
type: object
title: Candidate
properties:
sdpMid:
type: string
description: |-
The SDP media type this candidate is intended for.
At least one of `sdpMid` or `sdpMLineIndex` is required, unless
this an end-of-candidates candidate.
sdpMLineIndex:
type: number
description: |-
The index of the SDP 'm' line this candidate is intended for.
At least one of `sdpMid` or `sdpMLineIndex` is required, unless
this an end-of-candidates candidate.
candidate:
type: string
description: |-
The SDP 'a' line of the candidate.
If this is an [end-of-candidates](/client-server-api/#end-of-candidates)
candidate, this is the empty string.
required:
- candidate
required:
- candidates
type:
type: string
enum:
- m.call.candidates
Loading…
Cancel
Save