Содержание
Подготовка инфраструктуры
Требования к инфраструктуре
Серверы
Схема работы доступна по ссылке.
Для развертывания системы необходимо 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 | Корпоративный сервер 2024 | LDAP или сервер сквозной аутентификации Заказчика | Подключению к серверу авторизация через 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.
Для этого откройте админ панель и авторизуйтесь под УЗ суперадмина. Перейдите в общие настройки и выберите «Включить» в Команде.
Если пользователь 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_адрес домен
Например
Скопировать установочный архив и ранее выписанный 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
Процесс установки медиа сервера
Выбираем язык и переходим в установку медиа сервера
Продолжаем установку
Вводим имя медиа сервера
Настроить https отвечаем Да
И указываем путь к сертификату и ключу на сервере
После этого запустится процесс установки, ожидаем завершения.
По завершению процесса инсталляции пользователю будет выдано информационное сообщение о результатах инсталляции.
Для доступа к функционалу видеоконференцсвязи необходим идентификатор приложения и его токен доступа.
По умолчанию он будет сохранен в файл /root/.team/config
Выходим из скрипта установки
Установка сервера управления модуля Команда
Подготовка к установке
ОС для установки используется Debian 11 Bullseye английская версия (локализация) без графического интерфейса.
Установку производить только из под суперпользователя (root)
Файл hosts приводим к виду
127.0.0.1 localhost ip_адрес домен
Например,
Скопировать установочный архив и ранее выписанный 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
Процесс установки сервера управления
Переходим в меню установки сервера управления
Оставляем компоненты, если не используются внешние
Вводим имя сервера с используемым доменом
Выбираем порт для HTTP
Настраиваем HTTPS
Выбираем порт для него
Указываем пути к ssl сертификату и ключу
Задаем учетные данные администратора и название его организации
Вводим путь для хранения файлов
Настраиваем подключение к медиа серверу
И указываем адрес для подключения
где r7team-m.sip2.p7office.ru это адрес обращения к медиа серверу, который указывается на сервере шлюз в файле /etc/nginx/conf.d/r7teamm.conf по умолчанию
Повторяем адрес в следующем окне
Значения application.id и applicationToken вводим из файла /root/.team/config на медиа сервере
Настройку SIP выполним позже
Выбираем интеграцию с корпоративным сервером 2024
Вводим адрес админ панели корпоративного сервера
И адрес диска
Client Id для Р7 Команда вводим из админ пароли корпоративного сервера
В адрес и порт очереди вводим ip адрес диска
Логин и пароль вводим из админ панели Диска
При необходимости включаем push уведомления для мобильных устройств
В последнем окне проверяем введенные данные и нажимаем Продолжить (или Настроить заново для изменения)
И ожидаем завершения установки
После завершения установки переходим в админ панель сервера управления по адресу https://r7team.sip2.p7office.ru/admin/
Вводим учетные данные администратора и загружаем файл лицензии
Далее переходим в админ панель Р7 Диска и, на вкладке Общие настройки, нажимаем Синхронизировать.
После синхронизации в админ панели сервера управления должно быть указано количество пользователей равное количеству пользователей Р7 Диска
После этого переходим на страницу авторизации сервера управления команды
https://r7team.sip2.p7office.ru/login
И выбираем Войти через корп. сервер
После ввода учетных данных пользователя Р7 Диск во всплывающем окне вы будете автоматически перенаправлены в Р7 Команда
Установка сервера с ролью Шлюз модуля Команда
Подготовка сервера с ролью Шлюз
Установим 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>
Перезапустите сервер Asterisk.
Настройка trunk с медиасервером
Переходим в раздел Подключения — транки
Выбираем добавить sip trunk
На вкладке Общие прописываем значения, как на скриншоте
На вкладке PJSIP Settings отключаем регистрацию и аутентификацию, пропишем контекст и IP-адрес медиасервера в локальной сети
На вкладке с расширенными настройками установите режим информации
Остальные параметры транка оставьте без изменений. Для применения внесенных изменений нажмите Apply Config в верхнем правом углу
Настройка маршрута для вызова на медиа сервер
Выбираем исходящие маршруты
Заполняем поля, как на скриншоте и указываем созданный ранее транк
На второй вкладке указываем префикс и шаблон номера, соответствующий внутренней нумерации в Командах
Остальные параметры исходящего маршрута оставьте без изменений.
Сохраните конфигурацию и примите изменения.
Для подключения внешней АТС воспользуйтесь инструкцией пункт 6.
Реконфигурация Р7 Команды для Настройки SIP телефонии
Переходим на сервере управления Р7 Команды и запускаем скрипт установки/конфигурации
cd /opt/install && ./install.sh
Выбираем Конфигурация сервера управления
Оставляем все значения по умолчанию до появления запроса настройки SIP телефонии и выбираем Yes
Режим интеграции ставим TRUNK
Вводим SIP-адрес учетной записи в формате sip:9999@ip адрес медиа сервера
Далее 9999 будет использоваться для звонков в Р7 команды
Вводим локальный адрес сервера asterisk с портом
Можно указать коды для пропуска нормализации номера или оставить поле пустым
При настройке АТС часто задают коды для звонка в город или иных целей.
В таком случае необходимо чтобы сервер управления не производил нормализацию номера, а передавал номер как есть
Далее минимальная длина номер для нормализации
Далее оставляем настройки для подключения к Р7 диску и завершаем конфигурацию.
После завершения необходимо настроить медиа сервер.
Настройка медиа сервера
В файл /etc/gate/gate.conf убираем локальную сеть из раздела blacklist
В файле /etc/gate/gate.conf.d/applications.conf добавляем строку «telephone»: «0:0006» и вносим адрес webhook вида <адрес сервера управления команд>/api/v2/mind/sipcall
В файл /etc/gate/gate.conf.d/webhook.conf также вносим webhook
Создаем файл /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 Диска.
Добавляем роль администратора выбранной УЗ для авторизации в Р7 Командах
Далее авторизуемся под этой УЗ в админ панели Р7 Команд
https://r7team.sip2.p7office.ru/admin/
На вкладке Пользователи создаем нового пользователя и добавляем ему SIP номер
Сохраняем пользователя и авторизуемся в Р7 Команда под этим пользователем.
И выполняем тестовый звонок с SIP устройства на номер 2007 в формате 992007
Где
- 99 — префикс номера указанный в настройках исходящего маршрута
- 2007 — SIP номер пользователя, который задан в админ панели Р7 Команды.
Если все настроено корректно, то вызов пройдет к пользователю Р7 Команды.