Сервер записи вызовов
Go to file
2026-02-21 19:27:57 +00:00
dependencies Exclude large dependencies from git repository 2026-02-17 12:19:10 +00:00
docker-compose Initial commit: F7cloud Talk Recording Server 2026-02-17 12:18:51 +00:00
docs Initial commit: F7cloud Talk Recording Server 2026-02-17 12:18:51 +00:00
LICENSES Initial commit: F7cloud Talk Recording Server 2026-02-17 12:18:51 +00:00
packaging Initial commit: F7cloud Talk Recording Server 2026-02-17 12:18:51 +00:00
src/f7cloud/talk/recording Initial commit: F7cloud Talk Recording Server 2026-02-17 12:18:51 +00:00
tests Initial commit: F7cloud Talk Recording Server 2026-02-17 12:18:51 +00:00
.gitignore Exclude large dependencies from git repository 2026-02-17 12:19:10 +00:00
AUTHORS.md Initial commit: F7cloud Talk Recording Server 2026-02-17 12:18:51 +00:00
CHANGELOG.md Initial commit: F7cloud Talk Recording Server 2026-02-17 12:18:51 +00:00
DEPLOY.md Add deployment script and auto-download dependencies 2026-02-18 11:43:00 +00:00
deploy.sh Add deployment script and auto-download dependencies 2026-02-18 11:43:00 +00:00
f7recording.sh Изменение скрипта установки 2026-02-21 19:27:57 +00:00
INSTALL_EXAMPLE.md Initial commit: F7cloud Talk Recording Server 2026-02-17 12:18:51 +00:00
INSTALL.md Initial commit: F7cloud Talk Recording Server 2026-02-17 12:18:51 +00:00
install.sh Модернизация install.sh согласно правильному файлу модернизации 2026-02-20 09:53:53 +00:00
LICENSE.txt Initial commit: F7cloud Talk Recording Server 2026-02-17 12:18:51 +00:00
PROJECT_STRUCTURE.md Initial commit: F7cloud Talk Recording Server 2026-02-17 12:18:51 +00:00
pyproject.toml Initial commit: F7cloud Talk Recording Server 2026-02-17 12:18:51 +00:00
README.md Add deployment script and auto-download dependencies 2026-02-18 11:43:00 +00:00
REUSE.toml Initial commit: F7cloud Talk Recording Server 2026-02-17 12:18:51 +00:00
server.conf.in Initial commit: F7cloud Talk Recording Server 2026-02-17 12:18:51 +00:00
start-container.sh Initial commit: F7cloud Talk Recording Server 2026-02-17 12:18:51 +00:00

F7cloud Talk Recording Server

Сервер записи для F7cloud Talk, который позволяет записывать видеозвонки.

Описание

F7cloud Talk Recording Server предоставляет HTTP API для записи видеозвонков в F7cloud Talk. Сервер работает как клиент Talk и записывает звонки через браузер.

Структура проекта

f7cloud-talk-recording/
├── src/                          # Исходный код
│   └── f7cloud/
│       └── talk/
│           └── recording/
│               ├── __init__.py              # Инициализация модуля
│               ├── __main__.py              # Точка входа CLI
│               ├── Server.py                # HTTP сервер (Flask)
│               ├── Service.py               # Сервис записи
│               ├── Config.py                # Управление конфигурацией
│               ├── Participant.py           # Управление участником в браузере
│               ├── BackendNotifier.py       # Уведомления бэкенда
│               ├── RecorderArgumentsBuilder.py  # Построитель аргументов для ffmpeg
│               └── Benchmark.py            # Бенчмарк для тестирования
│
├── dependencies/                 # Внешние зависимости
│   ├── firefox-esr/             # Firefox ESR (браузер для записи)
│   └── geckodriver               # Geckodriver (Selenium WebDriver для Firefox)
│
├── tests/                        # Тесты
│   ├── ServerTest.py            # Тесты сервера
│   └── ConfigTest.py            # Тесты конфигурации
│
├── server.conf.in                # Шаблон конфигурационного файла
├── pyproject.toml                # Конфигурация Python проекта
├── install.sh                    # Скрипт автоматической установки
├── INSTALL.md                    # Подробная инструкция по установке
└── README.md                     # Этот файл

Быстрый старт

Автоматическое развертывание на новом сервере

Самый простой способ - использовать скрипт автоматического развертывания:

curl -fsSL https://git.f7cloud.ru/root/F7_recording/raw/branch/main/deploy.sh | bash

Скрипт выполнит все необходимые шаги, включая интерактивный ввод секретов.

Установка из клонированного репозитория

git clone https://git.f7cloud.ru/root/F7_recording.git
cd F7_recording
sudo ./install.sh --hpb-url https://hpb.example.com --hpb-secret your-secret-here

Конфигурация

Отредактируйте /etc/f7cloud-talk-recording/server.conf:

[http]
listen = 127.0.0.1:8000

[backend]
backends = my-backend
secret = your-shared-secret-here

[my-backend]
url = https://your-f7cloud-instance.com
secret = your-shared-secret-here

[recording]
browser = firefox
driverPath = /usr/local/bin/geckodriver
browserPath = /usr/local/bin/firefox-esr

Запуск

sudo systemctl start f7cloud-talk-recording
sudo systemctl enable f7cloud-talk-recording

Зависимости

Системные зависимости

  • Python 3.8+
  • PulseAudio
  • Xvfb (виртуальный дисплей)
  • FFmpeg
  • Firefox ESR (включен в dependencies/)
  • Geckodriver (включен в dependencies/)

Python зависимости

  • flask
  • prometheus-client
  • psutil
  • pulsectl
  • pyvirtualdisplay>=2.0
  • requests
  • requests-toolbelt
  • selenium>=4.11.0
  • websocket-client

Все зависимости указаны в pyproject.toml и будут установлены автоматически при установке.

Основные компоненты

Server.py

HTTP сервер на Flask, который обрабатывает запросы на начало/конец записи.

Service.py

Управляет процессом записи:

  • Создает виртуальный дисплей (Xvfb)
  • Создает аудио sink (PulseAudio)
  • Запускает браузер в kiosk режиме
  • Запускает FFmpeg для записи
  • Загружает запись на сервер

Participant.py

Управляет участником в браузере через Selenium WebDriver:

  • Открывает страницу записи
  • Подключается к signaling серверу
  • Управляет медиа потоками

Config.py

Управляет конфигурацией из файла server.conf.

API

Сервер предоставляет HTTP API для управления записями. Подробности см. в документации API.

Развертывание

Для развертывания на новом сервере:

  1. Скопируйте весь репозиторий на сервер
  2. Запустите sudo ./install.sh
  3. Настройте /etc/f7cloud-talk-recording/server.conf
  4. Запустите сервис: sudo systemctl start f7cloud-talk-recording

Подробные инструкции см. в INSTALL.md.

Разработка

Установка для разработки

python3 -m venv venv
source venv/bin/activate
pip install -e ".[dev]"

Запуск тестов

pytest tests/

Линтинг

pylint src/

Лицензия

AGPL-3.0-or-later

Поддержка

Для получения помощи см. INSTALL.md или создайте issue в репозитории.