mirror of
https://github.com/openlibrecommunity/olcrtc.git
synced 2026-05-26 15:13:40 +00:00
feat(jitsi): add Jitsi auth provider and engine
This commit is contained in:
@@ -12,12 +12,12 @@
|
||||
|
||||
## Матрица совместимости
|
||||
|
||||
| Transport | telemost | jazz | wbstream |
|
||||
|-----------|:--------:|:----:|:--------:|
|
||||
| datachannel | - | ~ | ~ |
|
||||
| vp8channel | + | - | + |
|
||||
| seichannel | - | - | + |
|
||||
| videochannel | + | - | + |
|
||||
| Transport | telemost | jazz | wbstream | jitsi |
|
||||
|-----------|:--------:|:----:|:--------:|:-----:|
|
||||
| datachannel | - | ~ | ~ | + |
|
||||
| vp8channel | + | - | + | ~ |
|
||||
| seichannel | - | - | + | ~ |
|
||||
| videochannel | + | - | + | ~ |
|
||||
|
||||
**Легенда:**
|
||||
- `+` - работает (pass в E2E тестах)
|
||||
@@ -30,7 +30,9 @@
|
||||
|
||||
**WBStream:** все транспорты кроме datachannel работают. DataChannel в обычном guest flow без выдавания модератора не работает — WB Stream выдаёт токены с `canPublishData=false`, и DC не маршрутизирует данные.
|
||||
|
||||
**Рекомендуемая комбинация: `wbstream + vp8channel`** — работает стабильно, не требует специальных прав.
|
||||
**Jitsi:** datachannel стабильно проходит — реализован поверх colibri-ws bridge channel и шлёт байты через `EndpointMessage{raw}` broadcast. Подходит для self-hosted и публичных Jitsi Meet инстансов без аутентификации (`https://meet.cryptopro.ru/...`, `https://meet.jit.si/...` и т.п.). Видео-транспорты (vp8channel, seichannel, videochannel) экспонируют sendable VideoTrack через pion PeerConnection после Jingle session-accept, но Jicofo требует дополнительных протокольных шагов (LastN, ReceiverVideoConstraints, source-add) для маршрутизации видео — поэтому они помечены `~` (best effort).
|
||||
|
||||
**Рекомендуемая комбинация: `wbstream + vp8channel`** — работает стабильно, не требует специальных прав. **`jitsi + datachannel`** — рекомендация для self-hosted Jitsi инстансов.
|
||||
|
||||
Скорость по убыванию: `datachannel` > `vp8channel` > `seichannel` > `videochannel`
|
||||
|
||||
@@ -41,7 +43,7 @@
|
||||
| YAML поле | Что вводить |
|
||||
|-----------|-------------|
|
||||
| `mode` | `srv` на сервере, `cnc` на клиенте, `gen` для генерации Room ID |
|
||||
| `auth.provider` | `telemost`, `jazz` или `wbstream` |
|
||||
| `auth.provider` | `telemost`, `jazz`, `wbstream` или `jitsi` |
|
||||
| `net.transport` | `datachannel`, `vp8channel`, `seichannel` или `videochannel` |
|
||||
| `room.id` | Room ID |
|
||||
| `crypto.key` | Ключ шифрования hex 64 символа. Генерация: `openssl rand -hex 32` |
|
||||
|
||||
28
docs/uri.md
28
docs/uri.md
@@ -33,7 +33,7 @@ olcrtc://<Auth>?<Transport><key=value&key=value>@<RoomID>#<EncryptionKey>$<MIMO>
|
||||
|
||||
| Поле | Значение |
|
||||
|------|----------|
|
||||
| `<Auth>` | Имя auth-провайдера, например `telemost`, `jazz`, `wbstream` |
|
||||
| `<Auth>` | Имя auth-провайдера, например `telemost`, `jazz`, `wbstream`, `jitsi` |
|
||||
| `<Transport>` | Имя транспорта, например `datachannel`, `vp8channel`, `seichannel`, `videochannel` |
|
||||
| payload | Параметры транспорта в `<key=value&...>`. Ключи совпадают с YAML полями. Блок опускается если используются defaults |
|
||||
| `<RoomID>` | Идентификатор комнаты или auth-specific room URL/ID |
|
||||
@@ -220,6 +220,32 @@ data: data
|
||||
|
||||
---
|
||||
|
||||
### jitsi + datachannel
|
||||
|
||||
```text
|
||||
olcrtc://jitsi?datachannel@https://meet.cryptopro.ru/myroom#d823fa01cb3e0609b67322f7cf984c4ee2e4ce2e294936fc24ef38c9e59f4799$RU / olc free sub
|
||||
```
|
||||
|
||||
`<RoomID>` для jitsi — полный URL комнаты в формате `https://host/room` (или `host/room`). Поддерживается любой self-hosted Jitsi Meet инстанс без аутентификации; для публичных серверов вроде `meet.jit.si` тот же формат.
|
||||
|
||||
### Эквивалент YAML
|
||||
|
||||
```yaml
|
||||
mode: cnc
|
||||
link: direct
|
||||
auth:
|
||||
provider: jitsi
|
||||
room:
|
||||
id: "https://meet.cryptopro.ru/myroom"
|
||||
crypto:
|
||||
key: "d823fa01cb3e0609b67322f7cf984c4ee2e4ce2e294936fc24ef38c9e59f4799"
|
||||
net:
|
||||
transport: datachannel
|
||||
data: data
|
||||
```
|
||||
|
||||
---
|
||||
|
||||
## Короткие алиасы
|
||||
|
||||
Как хотите но лично я был бы против.
|
||||
|
||||
Reference in New Issue
Block a user