Продукты Р7
Корпоративный сервер 2024
Корпоративный сервер 2024
Сервер документов
Сервер документов
Редакторы
Редакторы
Корпоративный сервер 2019
Корпоративный сервер 2019
Графика
Графика
Команда
Команда
Мобильные редакторы
Мобильные редакторы
Облачный офис
Облачный офис
Почта
Почта
Органайзер
Органайзер
Дополнительно
Часто задаваемые вопросы
Разработчикам
Интеграции
Новые возможности

Кластер media (gate, media-db, media) для Р7 Команда

Обновлено: 26.12.25

0. Требования

Установка только на Debian 11

Потребуется минимум 3 сервера

  1. Сервер Gate + публичный ip адрес
  2. Сервер СУБД
  3. Сервер Media + публичный ip адрес (возможно увеличить количество серверов)

0.1. Схема

1. Установка Gate

1.1. Настройте firewalld

Открыть входящие соединения из внешней сети на порты

  • 80 http;
  • 443 https;
  • UDP порт 5060 и на публичный и на приватный.

Например:

sudo firewall-cmd --permanent --zone=public --add-service=http # порт 80
sudo firewall-cmd --permanent --zone=public --add-service=https # порт 443
sudo firewall-cmd --permanent --zone=public --add-port=5060/udp # порт 5060
sudo firewall-cmd --permanent --zone=privat --add-port=5060/udp # порт 5060
sudo firewall-cmd --reload

1.2. Добавьте репозиторий

Выполните команду

sudo echo "deb [trusted=yes] https://downloads.r7-office.ru/repository/r7team_media main main" | sudo tee /etc/apt/sources.list.d/r7-team.list

1.3. Добавьте авторизацию

Создайте файл /etc/apt/auth.conf.d/r7.conf и добавьте следующее

machine downloads.r7-office.ru
login team_media_cluster
password Ucevw7vhrrva!87evv2ed

1.4. Обновите все пакеты

sudo apt update && sudo apt full-upgrade

1.5. Установите пакет gate

sudo apt install gate

1.6. Добавьте запись в /etc/hosts

В качестве системного hostname должен быть установлен FQDN, который будет использоваться клиентами для взаимодействия с Медиа Сервером, а также в файле /etc/hosts необходимо задать соответствие между GATE_PUBLIC_IP и этим FQDN

127.0.0.1 localhost
<GATE_PUBLIC_IP> <FQDN>

Например:

127.0.0.1 localhost
185.91.55.99 pris-gate.devr7.ru

1.7. Настройте SSL/TLS

1.7.1. Сгенерируйте lets`s сертификат (возможно использовать wild сертификат)

certbot certonly --standalone -d pris-gate.devr7.ru

1.7.2. Сгенерируйте dhparam.pem

openssl dhparam -out /etc/ssl/dhparam.pem 2048

1.7.3. Создайте файл конфигурации nginx

Файл /etc/nginx/snippets/gate.ssl

server_name <FQDN>;
 
listen 443 ssl;
 
if ($scheme = http) {
 
    return 301 https://$server_name$request_uri;
 
}
 
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
 
ssl_prefer_server_ciphers on;
 
ssl_ciphers "EECDH+AESGCM:EDH+AESGCM:AES256+EECDH:AES256+EDH";
 
ssl_ecdh_curve secp384r1;
 
ssl_session_cache shared:SSL:10m;
 
ssl_session_tickets off;
 
ssl_stapling on;
 
ssl_stapling_verify on;
 
resolver 8.8.8.8 8.8.4.4 valid=300s;
 
resolver_timeout 5s;
 
add_header Strict-Transport-Security "max-age=63072000"; # The `includeSubDomains` isn't specified to not force subdomains (which might be out of our control) use SSL
 
add_header X-Frame-Options DENY;
 
add_header X-Content-Type-Options nosniff;
 
ssl_dhparam /etc/ssl/dhparam.pem;
 
ssl_certificate <CERTIFICATE_PATH>;
 
ssl_certificate_key <CERTIFICATE_KEY_PATH>;

Где,

  • <FQDN> — А запись в dns, например, pris-gate.devr7.ru;
  • <CERTIFICATE_PATH> — путь до сертификата с полной цепочкой (домена, ca и промежуточных центров);
  • <CERTIFICATE_KEY_PATH> — путь до ключа сертификата.

1.8. Задайте список applications

1.8.1. Сгенерируйте токен и хэш токена

На выходе получим два значения. Токен понадобится в дальнейшем для интеграции с сервером управления. Хэш токена необходимо прописать в конфигурации сервера gate (П.1.8.2). Оба нужно сохранить.

pwgen -s 100 1 | tee /dev/stderr | tr -d '\n' | sha512sum

Пример вывода команды,

  • 1 — application token для указания в настройках сервера управления;
  • 2 — token_hash, это application token в SHA512, который нужно прописать в applications.conf (токен весь нужно скопировать, на примере ниже он занимает две строки).

1.8.2. Создайте файл /etc/gate/gate.conf.d/applications.conf

Переопределить в нем секцию applications

{
 
    "applications": [{
 
        "id": "2b4817ef-3703-4bbd-aa95-7435b4286a98",
 
        "purpose": "My first application for R7-Team",
 
        "token_hash": "20365bd3418531967999c3d8691bd910a2820605655c10572c3b55a4aa5ac2d9cb4a33039c5f60755bad18df20126e060426152fb2bba41641b0d4d9fd4d8607",
 
        "max_conference_duration": 1440,
 
        "max_conference_capacity": 100,
 
        "webhook": ""
 
    }]
 
}

Где,

    • id — нужно использовать UUID version 4 (записанный строчными буквами) (Сгенерировать можно на сайте https://www.uuidgenerator.net/version4 ↗ );
    • token_hash — значение 2, которое сгенерировали выше. Это SHA512 от application token.
    • max_conference_duration — длительность конференции в минутах.
    • max_conference_capacity — максимальное возможное количество участников в звонке.

1.9. Задайте список media-серверов

Для этого необходимо создать файл /etc/gate/gate.conf.d/media.conf, в котором перечислить ВНУТРЕННИЕ IP-адреса всех media-серверов

{
 
    "media": {
 
        "nodes": [
 
            "<MEDIA_1_PRIVATE_IP>",
 
            "<MEDIA_2_PRIVATE_IP>"
 
        ]
 
    }
 
}

1.10. Примените изменения в конфигурации gate

Для этого необходимо перезапустить Nginx и OpenSIPs:

sudo systemctl restart nginx.service opensips.service

2. Установка Media-db

2.1. Настройте firewalld

Необходимо открыть на приватный интерфейс порт 3306/tcp для доступа к БД

Например:

sudo firewall-cmd --permanent --zone=home --add-service=mysql # порт 3306
sudo firewall-cmd --reload

2.2. Добавьте репозиторий

Выполните команду

sudo echo "deb [trusted=yes] https://downloads.r7-office.ru/repository/r7team_media main main" | sudo tee /etc/apt/sources.list.d/r7-team.list

2.3. Добавьте авторизацию

Создайте файл /etc/apt/auth.conf.d/r7.conf и добавьте следующее

machine downloads.r7-office.ru
login team_media_cluster
password Ucevw7vhrrva!87evv2ed

2.4. Обновите все пакеты

sudo apt update && sudo apt full-upgrade

2.5. Установите пакет media-db

sudo apt install media-db

2.6. Настройте MariaDB

Необходимо, чтобы она была доступна для media-серверов.

Для этого нужно создать файл /etc/mysql/mariadb.conf.d/55-mind.cnf с таким содержимым

[mysqld]
 
bind-address = <DB_PRIVATE_IP>

Где,

  • <DB_PRIVATE_IP> — приватный адрес сервера, который доступен для media-серверов.

2.7. Перезапустите MariaDB

sudo systemctl restart mysqld.service

2.8. Задайте пароль для доступа к базе данных для media-серверов:

# пользователь для подключений по localhost
sudo mysql -e "SET PASSWORD FOR 'media'@'localhost' = PASSWORD('<DB_PASSWORD>');"
# пользователь для внешних подключений
sudo mysql -e "SET PASSWORD FOR 'media'@'%' = PASSWORD('<DB_PASSWORD>');"

Где,

  • <DB_PASSWORD> — пароль для пользователя media.

3. Установка Media

3.1. Настройте firewalld

Откройте порты

  • 10000-30000 TCP;
  • 10000-30000 UDP;
  • 9000/tcp (на приватный интерфейс);
  • 7060/tcp (на приватный интерфейс).

Например:

sudo firewall-cmd --permanent --zone=public --add-port=10000-30000/tcp
sudo firewall-cmd --permanent --zone=public --add-port=10000-30000/udp
sudo firewall-cmd --permanent --zone=internal --add-port=9000/tcp # порт 9000
sudo firewall-cmd --permanent --zone=internal --add-port=7060/udp # порт 7060
sudo firewall-cmd --reload

3.2. Добавьте репозиторий

Выполните команду

sudo echo "deb [trusted=yes] https://downloads.r7-office.ru/repository/r7team_media main main" | sudo tee /etc/apt/sources.list.d/r7-team.list

3.3. Добавьте авторизацию

Создайте файл /etc/apt/auth.conf.d/r7.conf и добавьте следующее

machine downloads.r7-office.ru
login team_media_cluster
password Ucevw7vhrrva!87evv2ed

3.4. Обновите все пакеты

sudo apt update && sudo apt full-upgrade

3.5. Установите media

sudo apt install media

3.6. Добавьте запись в /etc/hosts

В файле /etc/hosts необходимо задать соответствие между MEDIA_PUBLIC_IP и системным hostname:

127.0.0.1 localhost
<MEDIA_PUBLIC_IP> <HOSTNAME>

Где,

  • <MEDIA_PUBLIC_IP> — белый ip адрес сервера;
  • <HOSTNAME> — А запись в dns, например, pris-media.devr7.ru.

Например:

127.0.0.1 localhost
185.91.55.100 pris-media.devr7.ru

3.7. Укажите адрес gate-сервера

Для этого необходимо создать файл /etc/media/media.properties.d/sip.properties и привести к виду

com.mind.media.voip.sipOutboundProxies=sip:<GATE_PRIVATE_IP>:5060

Где,

  • <GATE_PRIVATE_IP> — публичный ip адрес сервера, который настраивали в пункте 1.

3.8. Укажите URL и пароль для подключения к базе данных на db-сервере

Создайте файл /etc/media/media.properties.d/db.properties (c доступом на чтение только для root и пользователей, входящих в группу media).

Переопределите в нем значение параметров com.mind.media.jdbc.url и com.mind.media.jdbc.password, как показано ниже

com.mind.media.jdbc.url=jdbc:mysql://<DB_PRIVATE_IP>:3306/media
 
com.mind.media.jdbc.password=<DB_PASSWORD>

Где,

  • <DB_PASSWORD> — пароль, который задали в пункте 2.7;
  • <DB_PRIVATE_IP> — внутренний адрес сервера из пункта 2.

3.9. Примените изменения в конфигурации media

Перезапустите сервис media

sudo systemctl restart media

4. Интеграция с Сервером Управления

Инструкция по установке Медиа и Сервера управления: https://support.r7-office.ru/team/team_install/team_install/ ↗

Выполните все действия с пункта 6 до пункта 6.23, далее перейдите в пункт 4.1 данной инструкции.

4.1. Укажите адрес Gate сервера (из пункта 1.7)

4.2. Укажите ID (генерировали в пункте 1.8.2)

4.3. Укажите application token (генерировали в пункте 1.8.1)

4.4. Перейдите снова к инструкции по установке Сервера Управления

Продолжить следует с пункта 6.26

Ссылка на инструкцию: https://support.r7-office.ru/team/team_install/team_install/ ↗