snapshot of https://github.com/jitsi/jicofo.git @ 9ab59aa3d348e282da89da2c9f11ecbecd3f7b79 (2026-09-15)
This commit is contained in:
61
doc/conference-request.md
Normal file
61
doc/conference-request.md
Normal file
@@ -0,0 +1,61 @@
|
||||
#
|
||||
Conference-request refers to an initial exchange between a client and jicofo, which happens before the client joins
|
||||
the conference MUC. Its purposes are to:
|
||||
1. Notify jicofo that it should join a certain MUC.
|
||||
2. Have the client block until jicofo has created/joined the MUC (in case the client is not allowed to create a MUC).
|
||||
3. Allow the first client in a conference to specify certain conference-wide options to jicofo.
|
||||
4. Allow jicofo to redirect the client to a visitor node.
|
||||
5. Allow external authentication with an XMPP domain or [Shibboleth](./shibboleth.md)
|
||||
|
||||
# Format
|
||||
The request and response share a similar format.
|
||||
|
||||
## HTTP format
|
||||
For HTTP, the conference request is encoded as JSON and POSTed to /conference-request/v1. Note that authentication is
|
||||
not supported over HTTP due to the lack of an associated JID.
|
||||
|
||||
The reason HTTP support was added is to prevent unnecessary connections to prosody when visitor redirection is used
|
||||
(i.e. a visitor sends an HTTP request, then logs into the XMPP server specified in the response)
|
||||
|
||||
### Example request
|
||||
```js
|
||||
{
|
||||
"room": "conferenceName@example.com", // The JID of the conference
|
||||
"properties": {
|
||||
"rtcstatsEnabled": true
|
||||
}
|
||||
}
|
||||
```
|
||||
### Example response
|
||||
```js
|
||||
{
|
||||
"ready": true, // Jicofo has joined the room and the client can proceed.
|
||||
"focusJid": "jicofo@v1.example.com", // Indicates jicofo's JID, which can be trusted by the client
|
||||
"vnode": "v1", // Redirect to a visitor node with id "v1"
|
||||
"properties": {
|
||||
"sipGatewayEnabled": true // Signal jigasi support
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
## XMPP format
|
||||
For XMPP, the conference request is encoded in a
|
||||
[ConferenceIq](https://github.com/jitsi/jitsi-xmpp-extensions/blob/master/src/main/java/org/jitsi/xmpp/extensions/jitsimeet/ConferenceIq.java).
|
||||
|
||||
### Example request
|
||||
```xml
|
||||
<iq to='client@example.com' from='jicofo@example.com' type='set'>
|
||||
<conference xmlns='http://jitsi.org/protocol/focus' room='conferenceName@example.com'>
|
||||
<property name='rtcstatsEnabled' value='true'/>
|
||||
</conference>
|
||||
</iq>
|
||||
```
|
||||
|
||||
### Example response
|
||||
```xml
|
||||
<iq to='jicofo@example.com' from='client@example.com' type='set'>
|
||||
<conference xmlns='http://jitsi.org/protocol/focus' ready='true' focusJid='jicofo@v1.example.com' vnode='v1'>
|
||||
<property name='sipGatewayEnabled' value='true'/>"
|
||||
</conference>
|
||||
</iq>
|
||||
```
|
||||
BIN
doc/diagram.key
Executable file
BIN
doc/diagram.key
Executable file
Binary file not shown.
BIN
doc/diagram.png
Normal file
BIN
doc/diagram.png
Normal file
Binary file not shown.
|
After Width: | Height: | Size: 188 KiB |
29
doc/health-checks.md
Normal file
29
doc/health-checks.md
Normal file
@@ -0,0 +1,29 @@
|
||||
The REST API allows querying Jicofo whether it deems itself in a healthy state (i.e. the application is operational and the functionality it provides should perform as expected) at the time of the query or not. Videobridge will run an internal test in response to the request to determine its current health status.
|
||||
|
||||
The default port for the REST API is `8888` to have Videobridge and Jicofo running on the same machine with their defaults without them clashing.
|
||||
|
||||
<table>
|
||||
<tr>
|
||||
<th>HTTP Method</th>
|
||||
<th>Resource</th>
|
||||
<th>Response</th>
|
||||
</tr>
|
||||
<tr>
|
||||
<td><code>GET</code></td>
|
||||
<td><code>/about/health</code></td>
|
||||
<td>
|
||||
<ul>
|
||||
<li><code>200 OK</code> if Jicofo ran its internal test to determine its current health status and the test completed successfully. The response is with <code>Content-Type: application/json</code> but no JSON value is provided i.e. <code>Content-Length: 0</code>.</li>
|
||||
<li><code>503 Service Unavailable</code> if Jicofo is currently unable to run its health check. The reasons for the failure include (but are not limited to):
|
||||
<ul>
|
||||
<li>The REST API server has been brought up but the core conference-related functionality of Jicofo is still initializing. Videbridge could be considered healthy if the client chooses to interpret the HTTP status in such a fashion since the application may pass though the described transitional state under normal operation.</li>
|
||||
<li>The core conference-related functionality of Jicofo has commenced a shutdown procedure but the REST API server has not shut down yet. Videbridge could be considered healthy if the client chooses to interpret the HTTP status in such a fashion since the application may pass though the described transitional state under normal operation.</li>
|
||||
<li>The core conference-related functionality of Jicofo is in an unhealthy state and the REST API server is operating as expected.</li>
|
||||
</ul>
|
||||
</li>
|
||||
<li><code>500 Internal Server Error</code> or any other <code>5xx</code> status code if Jicofo ran its health check and determined that it is in an unhealthy state.</li>
|
||||
<li>No response (within a client-defined time frame) if Jicofo has entered a deadlock, an infinite loop, or a similar condition which prevents the completion of the health check. The server is to be considered in an unhealthy state by the client.</li>
|
||||
</ul>
|
||||
</td>
|
||||
</tr>
|
||||
</table>
|
||||
1
doc/reservation.md
Normal file
1
doc/reservation.md
Normal file
@@ -0,0 +1 @@
|
||||
This document has been moved [here](https://jitsi.github.io/handbook/docs/devops-guide/reservation).
|
||||
5
doc/shibboleth.md
Normal file
5
doc/shibboleth.md
Normal file
@@ -0,0 +1,5 @@
|
||||
# Shibboleth authentication
|
||||
|
||||
Shibboleth authentication is no longer supported.
|
||||
|
||||
If you'd still like to use it you can use this project: https://github.com/Renater/Jitsi-SAML2JWT
|
||||
Reference in New Issue
Block a user