SHA256
Перевести звонки на SendSignal с client key
This commit is contained in:
@@ -297,6 +297,7 @@
|
||||
Первый целевой сценарий:
|
||||
|
||||
- `remote AddBlock via homeserver session`
|
||||
- межсессионная доставка звонковых `call_*` сигналов между устройствами пользователя
|
||||
|
||||
То есть телефон без локального `blockchain.key` может:
|
||||
|
||||
@@ -336,6 +337,12 @@
|
||||
- запрос должен быть подписан и `session key`, и `client key`;
|
||||
- в будущем для отдельных wallet-сценариев `clientSignatureB64` может быть пустой.
|
||||
|
||||
Для звонковых сигналов `signalType = call_*` правило строже:
|
||||
|
||||
- `clientSignatureB64` обязателен;
|
||||
- сервер отклоняет такой `SendSignal`, если `client key` подпись не передана;
|
||||
- это правило действует и для `single_session`, и для `all_sessions`.
|
||||
|
||||
### Запрос в одну сессию
|
||||
|
||||
```json
|
||||
@@ -366,11 +373,20 @@
|
||||
"ok": true,
|
||||
"payload": {
|
||||
"deliveredCount": 1,
|
||||
"deliveredSessionIds": ["sess-hs-001"]
|
||||
"deliveredSessionIds": ["sess-hs-001"],
|
||||
"deliveredWsSessions": 1,
|
||||
"deliveredFcmSessions": 0,
|
||||
"deliveredWebPushSessions": 0
|
||||
}
|
||||
}
|
||||
```
|
||||
|
||||
Для `call_invite` с `targetMode = "all_sessions"` сервер может дополнительно отправить offline web-push в те сессии адресата, которые сейчас не подключены по WebSocket. В таком случае:
|
||||
|
||||
- `deliveredWsSessions` — сколько сессий получили `IncomingSignal` по WebSocket;
|
||||
- `deliveredWebPushSessions` — сколько offline-сессий получили web-push;
|
||||
- `deliveredFcmSessions` пока дублирует тот же счётчик push-доставки и зарезервирован под отдельные push-каналы.
|
||||
|
||||
### Событие на принимающей стороне
|
||||
|
||||
```json
|
||||
@@ -428,6 +444,7 @@
|
||||
- `404 / USER_NOT_FOUND` — логин адресата не найден.
|
||||
- `400 / BAD_DATA` — сервер не смог обработать `data`.
|
||||
- `400 / BAD_SESSION_SIGNATURE` — некорректная подпись `session key`.
|
||||
- `400 / CLIENT_SIGNATURE_REQUIRED` — для `call_*` сигнала не передана обязательная подпись `client key`.
|
||||
- `400 / BAD_CLIENT_SIGNATURE` — некорректная подпись `client key`.
|
||||
- `404 / SESSION_NOT_FOUND` — при `single_session` целевая сессия не найдена или не онлайн.
|
||||
- `404 / NO_TARGET_SESSIONS` — при `all_sessions` у пользователя сейчас нет активных онлайн-сессий.
|
||||
|
||||
Reference in New Issue
Block a user