4.3 KiB
Краткий URI-формат для клиентов
Этот документ описывает соглашение для разработчиков клиентских приложений, которым нужен компактный способ передавать параметры подключения olcrtc.
Текущий olcrtc не парсит такой URI автоматически. Если клиентское приложение хочет использовать эту запись, оно должно само разобрать строку и передать полученные поля в свои вызовы olcrtc.
Формат
olcrtc://<Carrier>?<Transport>@<RoomID>#<EncryptionKey>%<ClientID>$<MIMO>
Все поля после olcrtc:// считаются частью клиентского соглашения.
Поля
| Поле | Значение |
|---|---|
<Carrier> |
Имя carrier, например telemost, jazz, wbstream |
<Transport> |
Имя транспорта, например datachannel, vp8channel, seichannel, videochannel |
<RoomID> |
Идентификатор комнаты или carrier-specific room URL/ID |
<EncryptionKey> |
Ключ шифрования в hex, обычно 64 символа (32 байта) |
<ClientID> |
Идентификатор клиента. Должен совпадать с ожидаемым значением на сервере |
<MIMO> |
Свободный комментарий для UI/метаданных, например RU / olc free sub / IPv6 |
Соответствие параметрам olcrtc
URI-поля сопоставляются с обычными параметрами так:
| URI поле | Параметр / значение |
|---|---|
<Carrier> |
-carrier |
<Transport> |
-transport |
<RoomID> |
-id |
<EncryptionKey> |
-key |
<ClientID> |
-client-id |
<MIMO> |
В olcrtc не передаётся. Это только клиентский комментарий |
-link direct и -data data в этом формате не кодируются, потому что для текущих сценариев они фиксированные.
Разделители
Строка использует фиксированные разделители:
| Разделитель | После него идёт |
|---|---|
:// |
начало полезной нагрузки после схемы olcrtc |
? |
<Transport> |
@ |
<RoomID> |
# |
<EncryptionKey> |
% |
<ClientID> |
$ |
<MIMO> |
Рекомендуется не использовать эти символы внутри самих полей. Если клиенту это нужно, он должен ввести собственное escaping/percent-encoding правило и применять его симметрично при кодировании и декодировании.
Примеры
Полный пример
olcrtc://wbstream?seichannel@room-01#d823fa01cb3e0609b67322f7cf984c4ee2e4ce2e294936fc24ef38c9e59f4799%android-01$RU / olc free sub / IPv6
Разбор:
| Поле | Значение |
|---|---|
Carrier |
wbstream |
Transport |
seichannel |
RoomID |
room-01 |
EncryptionKey |
d823fa01cb3e0609b67322f7cf984c4ee2e4ce2e294936fc24ef38c9e59f4799 |
ClientID |
android-01 |
MIMO |
RU / olc free sub / IPv6 |
Эквивалент CLI
./olcrtc -mode cnc \
-carrier wbstream \
-transport seichannel \
-id room-01 \
-client-id android-01 \
-key d823fa01cb3e0609b67322f7cf984c4ee2e4ce2e294936fc24ef38c9e59f4799 \
-link direct \
-data data
Короткие алиасы
Как хотите но лично я был бы против.
