Содержание

Подготовка инфраструктуры

Требования к инфраструктуре

Серверы

Схема работы доступна по ссылке.

Инсталляция Р7 Команда за NAT и интеграция с SIP

Для развертывания системы необходимо 5 серверов (или виртуальные машины) со следующими ролями:

  • R7Office — Р7-Офис Сервер (установка производится по отдельной инструкции размещённой на сайте АО «Р7» https://support.r7-office.ru/category/community_server/install-community_server/ );
  • R7Team-m – медиа-сервер для работы звонков и ВКС модуля Команды.
  • R7Team-e – сервер шлюз позволяющий работать модулю Команда за NAT для возможности подключатся пользователям из сети Интернет;
  • R7Team – сервер управления и чатов Р7-Офис модуль Команда;
  • Сервер SIP с ролью АТС

Минимальные требования к ресурсам приведены ниже по ролям.

Р7-Офис Сервер
  • Кол-во ядер процессора (CPU cores) – 4;
  • Частота процессора (CPU MHZ per core) – 2ГГц;
  • ОЗУ (RAM) – 8 ГБ;
  • Диск 1 (используется для хранения файлов и ОС) – рекомендуем использовать SSD не менее 50 ГБ;
  • (Опционально) Диск 2 (используется для хранения файлов на внешнем диске) – рекомендуем использовать HDD не менее 100 ГБ;
  • 1 внутренний IP адрес в локальной сети Заказчика (или сети ДМЗ Заказчика);
Сервер Р7-Офис модуль Команда с ролью Сервер управления:
  • Кол-во ядер процессора (CPU cores) – 4;
  • Частота процессора (CPU MHZ per core) – 2ГГц;
  • ОЗУ (RAM) – 12 ГБ;
  • Диск 1 (используется для хранения установочных файлов и ОС) – рекомендуем использовать SSD не менее 60 ГБ;
  • (Опционально) Диск 2 (используется для хранения файлов, отправляемых пользователями) – рекомендуем использовать HDD не менее 100 ГБ;
  • 1 внутренний IP адрес в локальной сети Заказчика (или сети ДМЗ Заказчика);
Сервер Р7-Офис модуль Команда с ролью Медиа-сервер:
  • Кол-во ядер процессора (CPU cores) – 4;
  • Частота процессора (CPU MHZ per core) – 2ГГц;
  • ОЗУ (RAM) – 4 ГБ;
  • Диск 1 (используется для хранения установочных файлов, ОС и установки ПО медиа-сервера) – рекомендуем использовать SSD не менее 60 ГБ;
  • 1 IP адрес
  • в случае использования виртуальных машин KVM нужно принудительно указать процессор как host;
  • должна быть одна партиция (не считая swap-партиции), то есть чтобы не было отдельной партиции для /home;
  • необходимо установить системный hostname в r7team-m.<domain>.
Сервер Р7-Офис модуль Команда с ролью Шлюз:
  • Кол-во ядер процессора (CPU cores) – 2;
  • Частота процессора (CPU MHZ per core) – 2ГГц;
  • ОЗУ (RAM) – 4 ГБ;
  • Диск 1 (используется для хранения установочных файлов, ОС и установки ПО) – рекомендуем использовать SSD не менее 50 ГБ;
  • 1 внутренний IP адрес в локальной сети Заказчика (или сети ДМЗ Заказчика);
  • 1 публичный IP адрес (настраивается на маршрутизаторе/межсетевом экране с функцией перенаправления портов на внутренний IP адрес в локальной сети или сети ДМЗ Заказчика).
Сервер SIP с ролью АТС:
  • Кол-во ядер процессора (CPU cores) – 2;
  • Частота процессора (CPU MHZ per core) – 2ГГц;
  • ОЗУ (RAM) – 4 ГБ;
  • Диск 1 (используется для хранения установочных файлов, ОС и установки ПО) – рекомендуем использовать SSD не менее 40 ГБ;
  • 1 внутренний IP адрес в локальной сети Заказчика (или сети ДМЗ Заказчика);
  • 1 публичный IP адрес (настраивается на маршрутизаторе/межсетевом экране с функцией перенаправления портов на внутренний IP адрес в локальной сети или сети ДМЗ Заказчика).
Общие требования
  • Для публикации серверов R7Team и R7Team-M в интернет требуется установка дополнительного сервера шлюза R7Team-e с 1 внутренним и 1 внешним IP адресом.
    Внешний IP адрес может быть установлен на маршрутизаторе (межсетевом экране) и настроена переадресация сетевых портов.
  • Для интеграции с R7Team-M с АТС Заказчика на АТС должен быть выделен пользователь для подключения или настраиваться режим trunk. Сервера должны иметь доступ друг к другу через локальную сеть.
  • Для работы решение ОБЯЗАТЕЛЬНО использование SSL сертификатов. Желательно использовать подписанные общеизвестным центром сертификации, например Let`s Encript. Если сертификаты подписаны собственным корневым центром сертификации организации, то требуется дополнительная настройка сред исполнения и браузеров, а так же установка корневых сертификатов в ОС на ПК на мобильные устройства.
  • Серверы должны определятся по доменным именам прописанным в сертификатах.
  • Для взаимодействия с серверами (для установки ПО и взаимодействия между серверами) необходим канал связи не менее 100 Мбит/с.

Таблица сетевого взаимодействия

Протокол / ПортИсточникПолучательПримечания
1.TCP: 443, 3478, 5349, 10000-30000

UDP: 3478, 5349, 10000 — 30000

Клиенты модуля Команда в сети интернетВнешний IP адрес Межсетевой экранПодключение к сервису внешних клиентов по протоколу WSS, API и хождения media трафика
2.TCP: 443, 3478, 5349, 10000-30000

UDP: 3478, 5349, 10000 — 30000

Межсетевой экранСервер ШлюзПодключение к сервису внешних клиентов по протоколу WSS, API и хождения media трафика
3.TCP: 443Сервер ШлюзКорпоративный сервер 2024Аутентификация, работа с хранилищем документов и онлайн редактирование документов
4.TCP: 443Сервер ШлюзУправляющий сервер Р7-КомандаПодключение к сервису внешних клиентов по протоколу WSS, API
5.TCP: 443, 5060, 5061, 10000-30000

UDP: 5060, 5061, 10000 — 30000

Сервер ШлюзМедиа сервер Р7-КомандаПодключение внешних клиентов к медиа серверу Р7-Офис модуль Команда
6.TCP:443Клиенты модуля Команда в локальной сети ЗаказчикаКорпоративный сервер 2024Аутентификация, работа с хранилищем документов и онлайн редактирование документов
7.TCP:443Клиенты модуля Команда в локальной сети ЗаказчикаУправляющий сервер Р7-Команда (Внутренний IP адрес)Подключение к сервису внутренних клиентов по протоколу WSS, API
8.TCP: 443, 10000-30000

UDP: 10000 — 30000

Клиенты модуля Команда в локальной сети ЗаказчикаМедиа сервер Р7-Команда (Внутренний IP адрес)Подключение внешних клиентов к медиа серверу Р7-Офис модуль Команда
9.TCP: 443Управляющий сервер Р7-КомандаМедиа сервер Р7-КомандаУправление медиа сервером
10.TCP: 443Медиа сервер Р7-КомандаСервер управления R7TeamСигнализация входящего звонка
11.TCP: 443, 5672Управляющий сервер Р7-КомандаКорпоративный сервер 2024Запрос авторизации и синхронизацию пользователей на сервере Р7-Офис Сервер
12.TCP: 5060, 10000-30000

UDP: 10000-30000

Медиа сервер Р7-КомандаАТС Заказчика (или Шлюз к АТС Заказчика)Подключение медиа сервера к АТС Заказчика
13.TCP: 5060, 10000-30000

UDP: 10000-30000

АТС Заказчика (или Шлюз к АТС Заказчика)Медиа сервер Р7-КомандаПодключение медиа сервера к АТС Заказчика
14.TCP 389, 636 или 443Корпоративный сервер 2024LDAP или сервер сквозной аутентификации ЗаказчикаПодключению к серверу авторизация через LDAP/LDAPS или сервису сквозной аутентификации по протоколу SAML
15.TCP: 443Управляющий сервер Р7-КомандаApple PNS (api.push.apple.com)Отправка push уведомлений через сервис push сервера Apple

2620:149:208:430b::b

2620:149:208:4306::b

2620:149:208:4302::d

2620:149:208:4307::8

2620:149:208:430c::b

2620:149:208:4308::9

2620:149:208:4307::a

2620:149:208:430f::b

17.188.178.6

17.188.143.8

17.188.178.232

17.188.179.9

17.188.178.133

17.188.143.74

17.188.178.166

17.188.178.72

16.TCP: 443, 5228, 5229. 5230Управляющий сервер Р7-КомандаGoogle FCM (fcm.googleapis.com)Отправка push уведомлений через сервис push сервера Google

2001:4860:4802:38::39

2001:4860:4802:36::39

2001:4860:4802:38::37

2001:4860:4802:36::37

216.239.36.55

216.239.36.57

216.239.38.57

216.239.38.55

Подготовка сервера с ролью Р7 Диск

Установка Корпоративного сервера 2024 производится по инструкции

Настройка Корпоративного Сервера 2024

Создайте единый сертификат для работы службы синхронизации в формате .pfx

Важно. Не задавайте пароль для сертификата .pfx. Оставьте поле пароля пустым. Файлы *.pem должны быть с шифрованием RSA. Сертификат типа pfx содержит в себе открытый ключ, закрытый ключ и цепочку сертификатов. Для его создания необходимо наличие закрытого, открытого ключей и цепочки сертификатов.

Пример команды для создания:

openssl pkcs12 -export -out /opt/r7-office/Api/certificate.pfx -inkey private-key.pem -in certificate.pem -certfile certificate-chain.pem

Где,

  • export — указывает на экспорт сертификата в формат PFX.
  • out certificate.pfx — задает имя файла, в который будет сохранен PFX сертификат.
  • inkey private-key.pem — указывает путь к файлу с закрытым ключом.
  • in certificate.pem — указывает путь к файлу с открытым ключом.
  • certfile certificate-chain.pem — указывает путь к файлу с цепочкой сертификатов.

Сертификат будет размещен в директории /opt/r7-office/Api/

Внесите изменения в файле конфигурации /opt/r7-office/Api/appsettings.json
"OAuth20": {
    "SigningCertificateFile": "certificate.pfx"
},
"DbType": "postgre"
}

Полный путь до pfx-сертификата не указывается, если он находится в текущей для конфигурации директории.

В секции SigningCertificateFile добавьте реальное имя сертификата, созданного на шаге создания, например, certificate.pfx

Права на созданный файл выставьте 755

chmod 755 /opt/r7-office/Api/certificate.pfx
Перезапустите зависимые службы командой:
supervisorctl restart cddisk:api cddisk:processing
Доступ к RabbitMQ

При включенной службе firewalld необходимо выполнить настройку:

sudo firewall-cmd --permanent --add-port=5672/tcp
sudo firewall-cmd --reload

Проверьте, что в Админ панели диска есть данные пользователя RabbitMQ.

Для этого откройте админ панель и авторизуйтесь под УЗ суперадмина. Перейдите в общие настройки и выберите «Включить» в Команде.

Инсталляция Р7 Команда за NAT и интеграция с SIP

Если пользователь RabbitMQ отображен, то следующий пункт создания пропускается.

Создание пользователя RabbitMQ

Если строки нет, то необходимо создать пользователя.

Выполните следующие команды для выгрузки пользователей через брокер очереди, которые необходимы для создания пользователя, установки тегов и прав:

rabbitmqctl add_user commands commands
rabbitmqctl set_user_tags commands administrator
rabbitmqctl set_permissions -p / commands ".*" ".*" ".*"

Установка и настройка серверов

Установка Медиа-сервера модуля Команда

Подготовка к установке

Важно. ОС для установки используется Debian 11 Bullseye английская версия (локализация) без графического интерфейса. Установка производится только из под суперпользователя (root).

При установке ПО в виртуальную машину необходимо проверить, что все команды физического процессора (CPU) передаются виртуальному процессору. Для этого проверьте что в виртуальной машине НЕ включены режимы совместимости со старыми процессорами (процессорами разных поколений).

Например: в гипервизоре Microsoft Hyper-V, это опция называется «Migrate to a physical computer with different processor verion» (данная настройка находится в настройка конкретной виртуальной машины в разделе «Processor» -> «Compatibility»).

Для установки кластера медиа-серверов воспользуйтесь инструкцией

Чтобы исключить влияние на процесс установки разрывов связи рекомендуется использовать tmux/screen (мультиплексор) при установке системы.

Файл /etc/hosts необходимо привести к виду:

127.0.0.1 localhost
ip_адрес домен

Например

Инсталляция Р7 Команда за NAT и интеграция с SIP

Скопировать установочный архив и ранее выписанный ssl сертификат и ключ на сервер

Архив с дистрибутивом размещаем в каталоге /opt, ssl сертификат и ключ в каталоге /etc/ssl

Переходим в каталог с архивом

cd /opt

Проверяем чексумму с чек суммой на сайте командой:

md5sum install_r7_team*

Распаковываем архив

mkdir -p install && tar -xzf install_r7_team*.tar.gz -C install

Переходим в каталог с разархивированным содержимым

cd install

Выполняем команду перед запуском скрипта установки:

apt remove libx11-6

И запускаем скрипт установки

chmod +x install.sh && ./install.sh

Процесс установки медиа сервера

Выбираем язык и переходим в установку медиа сервера

Инсталляция Р7 Команда за NAT и интеграция с SIP

Инсталляция Р7 Команда за NAT и интеграция с SIP

Инсталляция Р7 Команда за NAT и интеграция с SIP

Продолжаем установку

Инсталляция Р7 Команда за NAT и интеграция с SIP

Вводим имя медиа сервера

Инсталляция Р7 Команда за NAT и интеграция с SIP

Настроить https отвечаем Да

Инсталляция Р7 Команда за NAT и интеграция с SIP

И указываем путь к сертификату и ключу на сервере

Инсталляция Р7 Команда за NAT и интеграция с SIP

Инсталляция Р7 Команда за NAT и интеграция с SIP

Инсталляция Р7 Команда за NAT и интеграция с SIP

После этого запустится процесс установки, ожидаем завершения.

По завершению процесса инсталляции пользователю будет выдано информационное сообщение о результатах инсталляции.

Для доступа к функционалу видеоконференцсвязи необходим идентификатор приложения и его токен доступа.
По умолчанию он будет сохранен в файл /root/.team/config

Инсталляция Р7 Команда за NAT и интеграция с SIP

Выходим из скрипта установки

Инсталляция Р7 Команда за NAT и интеграция с SIP

Установка сервера управления модуля Команда

Подготовка к установке

ОС для установки используется Debian 11 Bullseye английская версия (локализация) без графического интерфейса.
Установку производить только из под суперпользователя (root)

Файл hosts приводим к виду

127.0.0.1 localhost
ip_адрес домен

Например,

Инсталляция Р7 Команда за NAT и интеграция с SIP

Скопировать установочный архив и ранее выписанный ssl сертификат и ключ на сервер

Архив с дистрибутивом размещаем в каталоге /opt, ssl сертификат и ключ в каталоге /etc/ssl

Переходим в каталог с архивом

cd /opt

Проверяем чексумму с чек суммой на сайте командой:

md5sum install_r7_team*

Распаковываем архив

mkdir -p install && tar -xzf install_r7_team*.tar.gz -C install

Переходим в каталог с разархивированным содержимым

cd install

Выполняем команду перед запуском скрипта установки:

apt remove libx11-6

И запускаем скрипт установки

chmod +x install.sh && ./install.sh

Процесс установки сервера управления

Переходим в меню установки сервера управления

Инсталляция Р7 Команда за NAT и интеграция с SIP

Инсталляция Р7 Команда за NAT и интеграция с SIP

Оставляем компоненты, если не используются внешние

Инсталляция Р7 Команда за NAT и интеграция с SIP

Вводим имя сервера с используемым доменом

Инсталляция Р7 Команда за NAT и интеграция с SIP

Выбираем порт для HTTP

Инсталляция Р7 Команда за NAT и интеграция с SIP

Настраиваем HTTPS

Инсталляция Р7 Команда за NAT и интеграция с SIP

Выбираем порт для него

Инсталляция Р7 Команда за NAT и интеграция с SIP

Указываем пути к ssl сертификату и ключу

Инсталляция Р7 Команда за NAT и интеграция с SIP

Инсталляция Р7 Команда за NAT и интеграция с SIP

Инсталляция Р7 Команда за NAT и интеграция с SIP

Задаем учетные данные администратора и название его организации

Инсталляция Р7 Команда за NAT и интеграция с SIP

Инсталляция Р7 Команда за NAT и интеграция с SIP

Инсталляция Р7 Команда за NAT и интеграция с SIP

Вводим путь для хранения файлов

Инсталляция Р7 Команда за NAT и интеграция с SIP

Настраиваем подключение к медиа серверу

Инсталляция Р7 Команда за NAT и интеграция с SIP

И указываем адрес для подключения

Инсталляция Р7 Команда за NAT и интеграция с SIP

где r7team-m.sip2.p7office.ru это адрес обращения к медиа серверу, который указывается на сервере шлюз в файле /etc/nginx/conf.d/r7teamm.conf по умолчанию

Повторяем адрес в следующем окне

Инсталляция Р7 Команда за NAT и интеграция с SIP

Значения application.id и applicationToken вводим из файла /root/.team/config на медиа сервере

Инсталляция Р7 Команда за NAT и интеграция с SIP

Инсталляция Р7 Команда за NAT и интеграция с SIP

Настройку SIP выполним позже

Инсталляция Р7 Команда за NAT и интеграция с SIP

Выбираем интеграцию с корпоративным сервером 2024

Инсталляция Р7 Команда за NAT и интеграция с SIP

Вводим адрес админ панели корпоративного сервера

Инсталляция Р7 Команда за NAT и интеграция с SIP

И адрес диска

Инсталляция Р7 Команда за NAT и интеграция с SIP

Client Id для Р7 Команда вводим из админ пароли корпоративного сервера

Инсталляция Р7 Команда за NAT и интеграция с SIP

Инсталляция Р7 Команда за NAT и интеграция с SIP

Инсталляция Р7 Команда за NAT и интеграция с SIP

В адрес и порт очереди вводим ip адрес диска

Инсталляция Р7 Команда за NAT и интеграция с SIP

Логин и пароль вводим из админ панели Диска

 

Инсталляция Р7 Команда за NAT и интеграция с SIP

Инсталляция Р7 Команда за NAT и интеграция с SIP

При необходимости включаем push уведомления для мобильных устройств

Инсталляция Р7 Команда за NAT и интеграция с SIP

В последнем окне проверяем введенные данные и нажимаем Продолжить (или Настроить заново для изменения)

Инсталляция Р7 Команда за NAT и интеграция с SIP

И ожидаем завершения установки

Инсталляция Р7 Команда за NAT и интеграция с SIP

После завершения установки переходим в админ панель сервера управления по адресу https://r7team.sip2.p7office.ru/admin/

Вводим учетные данные администратора и загружаем файл лицензии

Инсталляция Р7 Команда за NAT и интеграция с SIP

Далее переходим в админ панель Р7 Диска и, на вкладке Общие настройки, нажимаем Синхронизировать.

После синхронизации в админ панели сервера управления должно быть указано количество пользователей равное количеству пользователей Р7 Диска

Инсталляция Р7 Команда за NAT и интеграция с SIP

После этого переходим на страницу авторизации сервера управления команды

https://r7team.sip2.p7office.ru/login

И выбираем Войти через корп. сервер

Инсталляция Р7 Команда за NAT и интеграция с SIP

После ввода учетных данных пользователя Р7 Диск во всплывающем окне вы будете автоматически перенаправлены в Р7 Команда

Инсталляция Р7 Команда за NAT и интеграция с SIP

Инсталляция Р7 Команда за NAT и интеграция с SIP

Установка сервера с ролью Шлюз модуля Команда

Подготовка сервера с ролью Шлюз

Установим nginx выполнив команды (дальнейшие примеры для debian):

apt-get update -y && apt-get install nginx coturn -y

Настройка nginx прокси-сервера

Настройте обратный прокси-сервер nginx выполнив выполнив следующие действия.

Настройка проксирования админ панели диска

Создадим файл конфигураций /etc/nginx/conf.d/r7admin.conf выполнив команду

nano /etc/nginx/conf.d/r7admin.conf

и добавив туда следующий текст

server {
    listen 80;
    server_name admin.{your.domain.ru};
    server_tokens off;
  
    ## Redirects all traffic to the HTTPS host
    return 301 https://$server_name$request_uri;
}
server {
    listen  443 ssl http2;
    server_name admin.{your.domain.ru};
    ssl_certificate     /etc/ssl/{your.domain.ru}.crt;
    ssl_certificate_key /etc/ssl/{your.domain.ru}.key;
    ssl_session_timeout 24h;
#    ssl_session_cache shared:SSL:16m;
    ssl_session_tickets on;
    ssl_prefer_server_ciphers on;
    ssl_ciphers AES256+EECDH:AES256+EDH:!aNULL;
    add_header Strict-Transport-Security "max-age=31536000;";
  
    location / {
  
        proxy_pass         https://admin.{your.domain.ru};
  
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
                proxy_set_header X-Forwarded-Host $host;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                real_ip_header X-Forwarded-For;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_pass_header P3P;
                proxy_pass_header Set-Cookie;
  
    }
}

Где:

  • admin.{your.domain.ru} – имя модуля Р7-Админ Корпоративный сервера 2024
  • /etc/ssl/{your.domain.ru}.crt – путь на диске сервера шлюза к открытому ключу SSL сертификата на котором работает Корпоративный сервера 2024
  • /etc/ssl/{your.domain.ru}.key — путь на диске сервера шлюза к закрытому ключу ключу SSL сертификата на котором работает сервер Корпоративный сервера 2024
Настройка проксирования диска

Создайте файл конфигураций /etc/nginx/conf.d/r7disk.conf выполнив команду

nano /etc/nginx/conf.d/r7disk.conf

добавив туда следующий текст

server {
    listen 80;
    server_name cddisk.{your.domain.ru};
    server_tokens off;
  
    ## Redirects all traffic to the HTTPS host
    return 301 https://$server_name$request_uri;
}
server {
    listen  443 ssl http2;
    server_name cddisk.{your.domain.ru};
    ssl_certificate     /etc/ssl/{your.domain.ru}.crt;
    ssl_certificate_key /etc/ssl/{your.domain.ru}.key;
    ssl_session_timeout 24h;
#    ssl_session_cache shared:SSL:16m;
    ssl_session_tickets on;
    ssl_prefer_server_ciphers on;
    ssl_ciphers AES256+EECDH:AES256+EDH:!aNULL;
    add_header Strict-Transport-Security "max-age=31536000;";
  
    location / {
  
        proxy_pass         https://cddisk.{your.domain.ru};
  
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
                proxy_set_header X-Forwarded-Host $host;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                real_ip_header X-Forwarded-For;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_pass_header P3P;
                proxy_pass_header Set-Cookie;
  
    }
}

Где:

  • {your.domain.ru} – имя модуля Р7-диск Корпоративный сервера 2024
  • /etc/ssl/{your.domain.ru}.crt – путь на диске сервера шлюза к открытому ключу SSL сертификата на котором работает Корпоративный сервера 2024
  • /etc/ssl/{your.domain.ru}.key — путь на диске сервера шлюза к закрытому ключу ключу SSL сертификата на котором работает сервер Корпоративный сервера 2024
Настройка проксирования сервера документов

В случае если модуль Р7-Офис сервер документов установлен на отдельном имени создайте файл конфигураций /etc/nginx/conf.d/r7ds.conf выполнив команду

nano /etc/nginx/conf.d/r7ds.conf

добавив туда следующий текст

server {
        listen 80;
        server_name ds.{your.domain.ru};
        server_tokens off;
 
        ## Redirects all traffic to the HTTPS host
        return 301 https://$server_name$request_uri;
}
server {
        listen 443 ssl http2;
        server_name ds.{your.domain.ru};
        ssl_certificate /etc/ssl/{your.domain.ru}.crt;
        ssl_certificate_key /etc/ssl/{your.domain.ru}.key;
        ssl_session_timeout 24h;
        #    ssl_session_cache shared:SSL:16m;
        ssl_session_tickets on;
        ssl_prefer_server_ciphers on;
        ssl_ciphers AES256+EECDH:AES256+EDH:!aNULL;
        add_header Strict-Transport-Security "max-age=31536000;";
 
 
        location / {
                #if ($request_method = POST) {
                #        add_header Content-Type text/plain;
                #        return 403 $uri;
                #}
                proxy_pass https://ds.{your.domain.ru};
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
                proxy_set_header X-Forwarded-Host $host;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
}

Где:

  • {your.domain.ru} – имя модуля Р7-Офис «Сервер документов» Корпоративный сервера 2024
  • /etc/ssl/{your.domain.ru}.crt – путь на диске сервера шлюза к открытому ключу SSL сертификата на котором работает сервер документов
  • /etc/ssl/{your.domain.ru}.key — путь на диске сервера шлюза к закрытому ключу ключу SSL сертификата на котором работает сервер документов
Настройка проксирования модуля Проекты

В случае если модуль Р7-Проекты используется, создайте файл конфигураций /etc/nginx/conf.d/r7projects.conf выполнив команду

nano /etc/nginx/conf.d/r7projects.conf

добавив туда следующий текст

server {
        listen 80;
        server_name projects.{your.domain.ru};
        server_tokens off;
 
        ## Redirects all traffic to the HTTPS host
        return 301 https://$server_name$request_uri;
}
server {
        listen 443 ssl http2;
        server_name projects.{your.domain.ru};
        ssl_certificate /etc/ssl/{your.domain.ru}.crt;
        ssl_certificate_key /etc/ssl/{your.domain.ru}.key;
        ssl_session_timeout 24h;
        #    ssl_session_cache shared:SSL:16m;
        ssl_session_tickets on;
        ssl_prefer_server_ciphers on;
        ssl_ciphers AES256+EECDH:AES256+EDH:!aNULL;
        add_header Strict-Transport-Security "max-age=31536000;";
 
 
        location / {
                #if ($request_method = POST) {
                #        add_header Content-Type text/plain;
                #        return 403 $uri;
                #}
                proxy_pass https://r7projects.{your.domain.ru};
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
                proxy_set_header X-Forwarded-Host $host;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
}

Где:

  • {your.domain.ru} – имя модуля Р7-Проекты Корпоративный сервера 2024
  • /etc/ssl/{your.domain.ru}.crt – путь на диске сервера шлюза к открытому ключу SSL сертификата на котором работает Корпоративный сервера 2024
  • /etc/ssl/{your.domain.ru}.key — путь на диске сервера шлюза к закрытому ключу ключу SSL сертификата на котором работает сервер Корпоративный сервера 2024
Настройка проксирования модуля Почта

В случае если модуль Р7-Почта используется, создайте файл конфигураций /etc/nginx/conf.d/r7mail.conf выполнив команду

nano /etc/nginx/conf.d/r7mail.conf

добавив туда следующий текст

server {
        listen 80;
        server_name mail.{your.domain.ru};
        server_tokens off;
 
        ## Redirects all traffic to the HTTPS host
        return 301 https://$server_name$request_uri;
}
server {
        listen 443 ssl http2;
        server_name mail.{your.domain.ru};
        ssl_certificate /etc/ssl/{your.domain.ru}.crt;
        ssl_certificate_key /etc/ssl/{your.domain.ru}.key;
        ssl_session_timeout 24h;
        #    ssl_session_cache shared:SSL:16m;
        ssl_session_tickets on;
        ssl_prefer_server_ciphers on;
        ssl_ciphers AES256+EECDH:AES256+EDH:!aNULL;
        add_header Strict-Transport-Security "max-age=31536000;";
 
 
        location / {
                #if ($request_method = POST) {
                #        add_header Content-Type text/plain;
                #        return 403 $uri;
                #}
                proxy_pass https://mail.{your.domain.ru};
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
                proxy_set_header X-Forwarded-Host $host;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
}

Где:

  • {your.domain.ru} – имя модуля Р7-Проекты Корпоративный сервера 2024
  • /etc/ssl/{your.domain.ru}.crt – путь на диске сервера шлюза к открытому ключу SSL сертификата на котором работает Корпоративный сервера 2024
  • /etc/ssl/{your.domain.ru}.key — путь на диске сервера шлюза к закрытому ключу ключу SSL сертификата на котором работает сервер Корпоративный сервера 2024
Настройка проксирования модуля Календарь

В случае если модуль Р7-Календарь используется, создайте файл конфигураций /etc/nginx/conf.d/r7calendar.conf выполнив команду

nano /etc/nginx/conf.d/r7calendar.conf

добавив туда следующий текст

server {
        listen 80;
        server_name calendar.{your.domain.ru};
        server_tokens off;
 
        ## Redirects all traffic to the HTTPS host
        return 301 https://$server_name$request_uri;
}
server {
        listen 443 ssl http2;
        server_name calendar.{your.domain.ru};
        ssl_certificate /etc/ssl/{your.domain.ru}.crt;
        ssl_certificate_key /etc/ssl/{your.domain.ru}.key;
        ssl_session_timeout 24h;
        #    ssl_session_cache shared:SSL:16m;
        ssl_session_tickets on;
        ssl_prefer_server_ciphers on;
        ssl_ciphers AES256+EECDH:AES256+EDH:!aNULL;
        add_header Strict-Transport-Security "max-age=31536000;";
 
 
        location / {
                #if ($request_method = POST) {
                #        add_header Content-Type text/plain;
                #        return 403 $uri;
                #}
                proxy_pass https://calendar.{your.domain.ru};
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
                proxy_set_header X-Forwarded-Host $host;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
}

Где:

  • {your.domain.ru} – имя модуля Р7-Проекты Корпоративный сервера 2024
  • /etc/ssl/{your.domain.ru}.crt – путь на диске сервера шлюза к открытому ключу SSL сертификата на котором работает Корпоративный сервера 2024
  • /etc/ssl/{your.domain.ru}.key — путь на диске сервера шлюза к закрытому ключу ключу SSL сертификата на котором работает сервер Корпоративный сервера 2024
Настройка проксирования модуля Контакты

В случае если модуль Р7-Контакты используется, создайте файл конфигураций /etc/nginx/conf.d/r7contacts.conf выполнив команду

nano /etc/nginx/conf.d/r7contacts.conf

добавив туда следующий текст

server {
        listen 80;
        server_name contacts.{your.domain.ru};
        server_tokens off;
 
        ## Redirects all traffic to the HTTPS host
        return 301 https://$server_name$request_uri;
}
server {
        listen 443 ssl http2;
        server_name contacts.{your.domain.ru};
        ssl_certificate /etc/ssl/{your.domain.ru}.crt;
        ssl_certificate_key /etc/ssl/{your.domain.ru}.key;
        ssl_session_timeout 24h;
        #    ssl_session_cache shared:SSL:16m;
        ssl_session_tickets on;
        ssl_prefer_server_ciphers on;
        ssl_ciphers AES256+EECDH:AES256+EDH:!aNULL;
        add_header Strict-Transport-Security "max-age=31536000;";
 
 
        location / {
                #if ($request_method = POST) {
                #        add_header Content-Type text/plain;
                #        return 403 $uri;
                #}
                proxy_pass https://contacts.{your.domain.ru};
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
                proxy_set_header X-Forwarded-Host $host;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
}

Где:

  • {your.domain.ru} – имя модуля Р7-Проекты Корпоративный сервера 2024
  • /etc/ssl/{your.domain.ru}.crt – путь на диске сервера шлюза к открытому ключу SSL сертификата на котором работает Корпоративный сервера 2024
  • /etc/ssl/{your.domain.ru}.key — путь на диске сервера шлюза к закрытому ключу ключу SSL сертификата на котором работает сервер Корпоративный сервера 2024
Настройка проксирования модуля Графика

В случае если модуль Р7-Графика сервер используется, создайте файл конфигураций /etc/nginx/conf.d/r7draw.conf выполнив команду

nano /etc/nginx/conf.d/r7draw.conf

добавив туда следующий текст

server {
        listen 80;
        server_name draw.{your.domain.ru};
        server_tokens off;
 
        ## Redirects all traffic to the HTTPS host
        return 301 https://$server_name$request_uri;
}
server {
        listen 443 ssl http2;
        server_name draw.{your.domain.ru};
        ssl_certificate /etc/ssl/{your.domain.ru}.crt;
        ssl_certificate_key /etc/ssl/{your.domain.ru}.key;
        ssl_session_timeout 24h;
        #    ssl_session_cache shared:SSL:16m;
        ssl_session_tickets on;
        ssl_prefer_server_ciphers on;
        ssl_ciphers AES256+EECDH:AES256+EDH:!aNULL;
        add_header Strict-Transport-Security "max-age=31536000;";
 
 
        location / {
                #if ($request_method = POST) {
                #        add_header Content-Type text/plain;
                #        return 403 $uri;
                #}
                proxy_pass https://draw.{your.domain.ru};
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
                proxy_set_header X-Forwarded-Host $host;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
        }
}

Где:

  • {your.domain.ru} – имя модуля Р7-Проекты Корпоративный сервера 2024
  • /etc/ssl/{your.domain.ru}.crt – путь на диске сервера шлюза к открытому ключу SSL сертификата на котором работает Корпоративный сервера 2024
  • /etc/ssl/{your.domain.ru}.key — путь на диске сервера шлюза к закрытому ключу ключу SSL сертификата на котором работает сервер Корпоративный сервера 2024
Настройка проксирования сервера управления Р7 Команда

Создайте файл конфигураций /etc/nginx/conf.d/r7team.conf выполнив команду

nano /etc/nginx/conf.d/r7team.conf

добавив туда следующий текст

server {
        listen 80;
        server_name r7team.{your.domain.ru};
        server_tokens off;
  
        ## Redirects all traffic to the HTTPS host
        return 301 https://$server_name$request_uri;
}
server {
        listen 443 ssl http2;
        server_name r7team.{your.domain.ru};
        ssl_certificate /etc/ssl/{your.domain.ru}.crt;
        ssl_certificate_key /etc/ssl/{your.domain.ru}.key;
        ssl_session_timeout 24h;
        #    ssl_session_cache shared:SSL:16m;
        ssl_session_tickets on;
        ssl_prefer_server_ciphers on;
        ssl_ciphers AES256+EECDH:AES256+EDH:!aNULL;
        add_header Strict-Transport-Security "max-age=31536000;";
  
        #location ~ ^/api/v2/file/webdav/files(.*)$ {
        #        deny all;
        #        return 403;
        #}
        #location ~ ^/api/upload(.*)$ {
        #        deny all;
        #        return 403;
        #}
        location / {
                proxy_pass https://ip_mgmt;
  
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
                proxy_set_header X-Forwarded-Host $host;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                real_ip_header X-Forwarded-For;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_pass_header P3P;
  
        }
}

Где

  • r7team.{your.domain.ru}– имя сервера Р7-Команда с ролью сервер управления
  • ip_mgmt – внутренний IP сервера Р7-Команда с ролью сервер управления
  • /etc/ssl/{your.domain.ru}.crt – путь на диске сервера шлюза к открытому ключу SSL сертификата, на котором работает сервер Р7-Команда с ролью сервер управления
  • /etc/ssl/{your.domain.ru}.key — путь на диске сервера шлюза к закрытому ключу ключу SSL сертификата, на котором работает сервер Р7-Команда с ролью сервер управления
Настройка проксирования медиа сервера Р7 Команда

Создайте файл конфигураций /etc/nginx/conf.d/r7teamm.conf выполнив команду

nano /etc/nginx/conf.d/r7teamm.conf

добавив туда следующий текст

server {
        listen 80;
        server_name r7team-m.{your.domain.ru};
        server_tokens off;
  
        ## Redirects all traffic to the HTTPS host
        return 301 https://$server_name$request_uri;
}
server {
        listen 443 ssl http2;
        server_name r7team-m.{your.domain.ru};
        ssl_certificate /etc/ssl/{your.domain.ru}.crt;
        ssl_certificate_key /etc/ssl/{your.domain.ru}.key;
        ssl_session_timeout 24h;
        #    ssl_session_cache shared:SSL:16m;
        ssl_session_tickets on;
        ssl_prefer_server_ciphers on;
        ssl_ciphers AES256+EECDH:AES256+EDH:!aNULL;
        add_header Strict-Transport-Security "max-age=31536000;";
  
        #location ~ ^/api/v2/file/webdav/files/(.*)$ {
        #        deny all;
        #        return 403;
        #}
        location / {
                proxy_pass https://ip_media;
  
                proxy_http_version 1.1;
                proxy_set_header Upgrade $http_upgrade;
                proxy_set_header Connection "upgrade";
                proxy_set_header X-Forwarded-Host $host;
                proxy_set_header X-Forwarded-Proto $scheme;
                proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for;
                real_ip_header X-Forwarded-For;
                proxy_set_header X-Real-IP $remote_addr;
                proxy_pass_header P3P;
                proxy_pass_header Set-Cookie;
  
        }
}

Где

  • r7team-m.{your.domain.ru} – имя сервера Р7-Команда с ролью медиа-сервер
  • ip_media – внутренний IP сервера Р7-Команда с ролью медиа-сервер
  • /etc/ssl/{your.domain.ru}.crt – путь на диске сервера шлюза к открытому ключу SSL сертификата, на котором работает сервер Р7-Команда с ролью медиа-сервер
  • /etc/ssl/{your.domain.ru}.key — путь на диске сервера шлюза к закрытому ключу ключу SSL сертификата, на котором работает сервер Р7-Команда с ролью медиа-сервер

Проверяем корректность конфигурационных файлов nginx

nginx -t

Если ошибок нет, перезапускаем сервис nginx

systemctl restart nginx

Настройка ретрансляции медиа потоков coturn

Конфигурационные файлы coturn

Откройте файл /etc/default/coturn выполнив команду

nano /etc/default/coturn

измените параметр TURNSERVER_ENABLED=1 для автоматического запуска сервиса COTURN (раскомментировать)

Запустите сервис командой

systemctl enable --now coturn

Сделайте резервную копию файла конфигурации командой

mv /etc/turnserver.conf /etc/turnserver.conf.backup

Измените настройки в файле конфигураций /etc/turnserver.conf выполнив команду

nano /etc/turnserver.conf

Приводим к виду

realm=r7team-gw.sip2.p7office.ru
fingerprint
listening-ip=0.0.0.0
relay-ip=188.68.219.164
relay-ip=192.168.26.151
external-ip=188.68.219.164
min-port=5000
max-port=20000
log-file=/var/log/coturn/turnserver.log
verbose
Verbose
user=mediauser:12345678
lt-cred-mech

Где укажите следующие параметры:

  • realm – имя сервера Р7-Команда с ролью шлюз определяющееся из локальной сети и сети интернет
  • listening-ip – IP адреса откуда разрешены запросы для подключения. (по умолчанию 0.0.0.0 слушает все)
  • relay-ip – укажите внешний IP адрес сервера шлюза к которому будут подключатся клиенты для перенаправления медиа трафика
  • relay-ip – укажите внутренний IP адрес сервера шлюза
  • external-ip – внешний IP адрес сервера шлюза к которому будут подключатся клиенты
  • min-port – начальное значение диапазона портов при выделении порта сессии медиа трафика
  • max-port – конечное значение диапазона портов при выделении порта сессии медиа трафика
  • log-file – путь к файлу журнала событий сервиса coturn. По-умолчанию /var/log/coturn/turnserver.log
  • user – имя пользователя и пароль для подключения к сервису coturn

Перезапустите сервис coturn выполнив команду

systemctl restart coturn

В случае когда Р7-Команда публикуется в сеть интернет через сервер Шлюз необходимо произвести донастройку файла конфигураций на сервере медиа.

Создаем каталог

mkdir -p /root/.team/config.d

внутри каталога создаем файл

nano /root/.team/config.d/ss-production.properties

Добавляем в файл следующий текст

mind.turn.url=turn:r7team-gw.sip2.p7office.ru:3478
mind.turn.username=mediauser
mind.turn.password=12345678

Где,

  • mind.turn.url – имя и порт сервер Р7-Команда с ролью шлюз определяющееся из локальной сети и сети интернет указанное при установке в пункте 3.4.15.4
  • mind.turn.username – имя пользователя указанное при настройке сервиса coturn сервера Р7-Команда с ролью шлюз, записано в файле /etc/turnserver.conf сервера Шлюз
  • mind.turn.password– пароль пользователя указанный при настройке сервиса coturn сервера Р7-Команда с ролью шлюз

Перезапустите сервис coturn выполнив команду

systemctl restart coturn

Настройка SIP телефонии

В примере рассмотрим настройку с сервером телефонии Asterisk со следующими требованиями:

на отдельной виртуальной машине должно быть установлено следующее программное обеспечение:

  • IP-АТС Asterisk версии не ниже 16.
  • Панель управления FreePBX версии не ниже 15.

Настройка SIP-домена на стороне Asterisk

В консоли сервера Asterisk отредактируйте файл /etc/asterisk/pjsip_custom_post.conf , добавив него строки:

[global](+)
default_realm=<Внутренний IP сервера Asterisk>

Инсталляция Р7 Команда за NAT и интеграция с SIP

Перезапустите сервер Asterisk.

Настройка trunk с медиасервером

Переходим в раздел Подключения — транки
Инсталляция Р7 Команда за NAT и интеграция с SIP

Выбираем добавить sip trunk

Инсталляция Р7 Команда за NAT и интеграция с SIP

На вкладке Общие прописываем значения, как на скриншоте

Инсталляция Р7 Команда за NAT и интеграция с SIP

На вкладке PJSIP Settings отключаем регистрацию и аутентификацию, пропишем контекст и IP-адрес медиасервера в локальной сети

Инсталляция Р7 Команда за NAT и интеграция с SIP

На вкладке с расширенными настройками установите режим информации

Инсталляция Р7 Команда за NAT и интеграция с SIP

Остальные параметры транка оставьте без изменений. Для применения внесенных изменений нажмите Apply Config в верхнем правом углу

Настройка маршрута для вызова на медиа сервер

Выбираем исходящие маршруты

Инсталляция Р7 Команда за NAT и интеграция с SIP

Заполняем поля, как на скриншоте и указываем созданный ранее транк

Инсталляция Р7 Команда за NAT и интеграция с SIP

На второй вкладке указываем префикс и шаблон номера, соответствующий внутренней нумерации в Командах

Инсталляция Р7 Команда за NAT и интеграция с SIP

Остальные параметры исходящего маршрута оставьте без изменений.

Сохраните конфигурацию и примите изменения.

Для подключения внешней АТС воспользуйтесь инструкцией пункт 6.

Реконфигурация Р7 Команды для Настройки SIP телефонии

Переходим на сервере управления Р7 Команды и запускаем скрипт установки/конфигурации

cd /opt/install && ./install.sh

Выбираем Конфигурация сервера управления

Инсталляция Р7 Команда за NAT и интеграция с SIP

Оставляем все значения по умолчанию до появления запроса настройки SIP телефонии и выбираем Yes

Инсталляция Р7 Команда за NAT и интеграция с SIP

Режим интеграции ставим TRUNK

Инсталляция Р7 Команда за NAT и интеграция с SIP

Вводим SIP-адрес учетной записи в формате sip:9999@ip адрес медиа сервера

Инсталляция Р7 Команда за NAT и интеграция с SIP

Далее 9999 будет использоваться для звонков в Р7 команды

Инсталляция Р7 Команда за NAT и интеграция с SIP

Вводим локальный адрес сервера asterisk с портом

Инсталляция Р7 Команда за NAT и интеграция с SIP

Можно указать коды для пропуска нормализации номера или оставить поле пустым

При настройке АТС часто задают коды для звонка в город или иных целей.

В таком случае необходимо чтобы сервер управления не производил нормализацию номера, а передавал номер как есть

Инсталляция Р7 Команда за NAT и интеграция с SIP

Далее минимальная длина номер для нормализации

Инсталляция Р7 Команда за NAT и интеграция с SIP

Далее оставляем настройки для подключения к Р7 диску и завершаем конфигурацию.

После завершения необходимо настроить медиа сервер.

Настройка медиа сервера

В файл /etc/gate/gate.conf убираем локальную сеть из раздела blacklist

Инсталляция Р7 Команда за NAT и интеграция с SIP

В файле /etc/gate/gate.conf.d/applications.conf добавляем строку «telephone»: «0:0006» и вносим адрес webhook вида <адрес сервера управления команд>/api/v2/mind/sipcall

Инсталляция Р7 Команда за NAT и интеграция с SIP

В файл /etc/gate/gate.conf.d/webhook.conf также вносим webhook

Инсталляция Р7 Команда за NAT и интеграция с SIP

Создаем файл /etc/gate/gate.conf.d/sip.conf с содержимым:

{
    "sip": {
        "blacklist": [
            "127.0.0.0/8"
        ],
        "gateways": [{
            "id": "0",
            "server": "192.168.26.92",
            "username": "media",
            "password": "12345678",
            "expires": 3600
        }]
    }
  
}

Где

  • server — ip адрес в локальной сети сервера asterisk
  • username — логин для авторизации из файла /etc/turnserver.conf сервера coturn
  • password — его пароль

Сохраняем файл.

И перезапускаем медиа сервер после сохранения.

Тестовый звонок

Asterisk

Переходим в панель управления Asterisk на вкладку Applications/Extensions и создаем новый Extension

Инсталляция Р7 Команда за NAT и интеграция с SIP

Указываем имя, отображаемое имя и пароль

Инсталляция Р7 Команда за NAT и интеграция с SIP

Переходим в админ панель Р7 Диска.

Добавляем роль администратора выбранной УЗ для авторизации в Р7 Командах

Инсталляция Р7 Команда за NAT и интеграция с SIP

Далее авторизуемся под этой УЗ в админ панели Р7 Команд

https://r7team.sip2.p7office.ru/admin/

На вкладке Пользователи создаем нового пользователя и добавляем ему SIP номер

Инсталляция Р7 Команда за NAT и интеграция с SIP

Сохраняем пользователя и авторизуемся в Р7 Команда под этим пользователем.

И выполняем тестовый звонок с SIP устройства на номер 2007 в формате 992007

Инсталляция Р7 Команда за NAT и интеграция с SIP

Где

  • 99 — префикс номера указанный в настройках исходящего маршрута
  • 2007 — SIP номер пользователя, который задан в админ панели Р7 Команды.

Если все настроено корректно, то вызов пройдет к пользователю Р7 Команды.

 

Была ли полезна статья?
Позвольте нам стать лучше