Signal
Подключение PRX к Signal через демон signal-cli с API JSON-RPC и SSE для зашифрованного обмена сообщениями в ЛС и группах.
Предварительные требования
- Номер телефона, зарегистрированный в Signal
- Установленный и зарегистрированный signal-cli
- signal-cli, запущенный в режиме демона с включённым HTTP API
Быстрая настройка
1. Установка и регистрация signal-cli
bash
# Установите signal-cli (см. https://github.com/AsamK/signal-cli для последней версии)
# Зарегистрируйте ваш номер телефона
signal-cli -u +1234567890 register
signal-cli -u +1234567890 verify <verification-code>2. Запуск демона signal-cli
bash
signal-cli -u +1234567890 daemon --http localhost:86863. Конфигурация
toml
[channels_config.signal]
http_url = "http://127.0.0.1:8686"
account = "+1234567890"
allowed_from = ["+1987654321", "*"]4. Проверка
bash
prx channel doctor signalСправочник конфигурации
| Поле | Тип | По умолчанию | Описание |
|---|---|---|---|
http_url | String | обязательный | Базовый URL HTTP-демона signal-cli (например, "http://127.0.0.1:8686") |
account | String | обязательный | Номер телефона аккаунта signal-cli в формате E.164 (например, "+1234567890") |
group_id | String | null | Фильтр сообщений по группе. null = принимать все (ЛС и группы). "dm" = только ЛС. Конкретный ID группы = только эта группа |
allowed_from | [String] | [] | Разрешённые номера отправителей в формате E.164. "*" = разрешить все |
ignore_attachments | bool | false | Пропускать сообщения, содержащие только вложения (без текста) |
ignore_stories | bool | false | Пропускать входящие сообщения историй |
Возможности
- Сквозное шифрование — все сообщения шифруются через Signal Protocol
- Поддержка ЛС и групп — обработка личных сообщений и групповых разговоров
- Поток событий SSE — прослушивание через Server-Sent Events на
/api/v1/eventsдля доставки в реальном времени - Отправка через JSON-RPC — отправка ответов через JSON-RPC на
/api/v1/rpc - Гибкая фильтрация групп — приём всех сообщений, только ЛС или конкретной группы
- Обработка вложений — опциональная обработка или пропуск сообщений только с вложениями
Ограничения
- Требуется запуск signal-cli как отдельного процесса-демона
- signal-cli должен быть зарегистрирован и верифицирован с действительным номером телефона
- Один экземпляр signal-cli поддерживает один номер телефона
- Отправка групповых сообщений требует членства аккаунта signal-cli в группе
- signal-cli — это Java-приложение с собственными требованиями к ресурсам
Устранение неполадок
Не удаётся подключиться к signal-cli
- Убедитесь, что демон signal-cli работает:
curl http://127.0.0.1:8686/api/v1/about - Проверьте, что
http_urlсоответствует адресу и порту демона - Убедитесь, что правила файрвола не блокируют подключение
Сообщения из групп игнорируются
- Проверьте фильтр
group_id— если установлен"dm", групповые сообщения исключаются - Если задан конкретный ID группы, принимаются сообщения только из этой группы
- Установите
group_idвnull(или опустите) для приёма всех сообщений
Сообщения только с вложениями пропускаются
- Это ожидаемое поведение при
ignore_attachments = true - Установите
ignore_attachments = falseдля обработки сообщений только с вложениями