Содержание
Термины и определения
Таблица 1. Термины и определения
ТЕРМИН | ОПРЕДЕЛЕНИЕ |
БД | База данных |
ВМ | Виртуальная Машина, программное обеспечение, эмулирующее аппаратную систему. |
ИС | Информационная система |
ИТ | Информационные технологии |
ИТ-решение, решение, информационная система, система | Новая либо существующая информационная система, создаваемая либо модифицируемая в рамках проекта |
Мобильное приложение | Программное обеспечение, предназначенное для работы на смартфонах, планшетах и других мобильных устройствах. |
ОС | Операционная система |
ПК | Персональный компьютер |
ПО | Программное обеспечение |
ТЗ | Техническое задание |
API | Программный интерфейс приложения, интерфейс прикладного программирования — набор готовых классов, процедур, функций, структур и констант, предоставляемых приложением (библиотекой, сервисом) или операционной системой для использования во внешних программных продуктах. Используется программистами при написании всевозможных приложений. |
DNS | Domain Name System |
GUI | Разновидность пользовательского интерфейса, в котором элементы интерфейса (меню, кнопки, значки, списки и т. п.), представленные пользователю на дисплее, исполнены в виде графических изображений. Также называется графической оболочкой управления |
LDAP | Lightweight Directory Access Protocol — «легкорасширяемый протокол доступа к каталогам» |
DMZ или ДМЗ | (Demilitarized Zone — демилитаризованная зона) — сегмент сети, содержащий общедоступные сервисы и отделяющий их от частных. В качестве общедоступного может выступать, например, веб-сервис: обеспечивающий его сервер, который физически размещён в локальной сети (Интранет), должен отвечать на любые запросы из внешней сети (Интернет), при этом другие локальные ресурсы (например, файловые серверы, рабочие станции) необходимо изолировать от внешнего доступа. |
1. Общие положения о модуле Команда серверного ПО Р7- Офис
1.1. Загрузка дистрибутива
Необходимо скачать дистрибутив Р7-Офис модуль Команда и разместить его на сервере. Ссылку на дистрибутив необходимо получить у вашего партнёра или у вашего менеджера в компании АО «Р7».
1.2. Состав дистрибутива
В состав дистрибутива входят: дистрибутив модуля Команда ПО Р7-Офис, ПО медиа- сервера и скрипт для автоматизированного развертывания, обновления и обслуживания ПО.
1.3. Поддерживаемые операционные системы
Проверена совместимость со следующими операционными системами:
- Debian 11 Bullseye английская версия (локализация) без графического интерфейса.
2. Подготовка инфраструктуры для развертывания серверного ПО Р7-Офис модуль Команда
2.1. Описание:
Для развертывания системы необходимо 4 сервера (или виртуальные машины) со следующими ролями:
- – R7Office — Р7-Офис Сервер (установка производится по отдельной инструкции размещённой на сайте АО «Р7» https://support.r7-office.ru/category/community_server/install-community_server/ );
- – R7Team-m – медиа-сервер для работы звонков и ВКС модуля Команды.
- – R7Team – сервер управления и чатов Р7-Офис модуль Команда;
Для работы решения для серверов R7Team и R7Team-M требуется 2 внутренних и 2 внешних IP адреса (по 1 на каждый сервер).
Если требуется интеграция с R7Team-M с АТС Заказчика на АТС должен быть выделен пользователь для подключения или настраиваться режим trunk. Сервера должны иметь доступ друг к другу через локальную сеть.
Для работы решение ОБЯЗАТЕЛЬНО использование SSL сертификатов. Желательно использовать подписанные общеизвестным центром сертификации, например Let`s Encript.
Если сертификаты подписаны собственным корневым центром сертификации организации, то требуется дополнительная настройка сред исполнения и браузеров, а так же установка корневых сертификатов в ОС на ПК на мобильные устройства.
Серверы должны определятся по доменным именам прописанным в сертификатах. Для взаимодействия с серверами (для установки ПО и взаимодействия между серверами) необходим канал связи не менее 100 Мбит/с. Технические требования и инструкция по установке Р7-Офис Сервер отражены в отдельных документах.
2.2. Добавление DNS записей
Для корректной работы ПО Р7-Офис модуль Команда необходимо произвести добавления Host(А) в DNS зону Заказчика.
Добавление Host(А) записей обязательно для корректной работы ПО Р7-Офис модуль Команда.
Полный перечень необходимых А записей для подключения к серверу и их назначение указаны в следующей таблице.
Таблица 2. Перечень Hots(A) записей
Тип | Полное имя | Описание | Публичный IP адрес | Внутренний IP адрес |
A | r7team.<domain> | Запись используется для входа в web-клиент и подключения клиентов | требуется | требуется |
A | r7team-m.<domain> | Запись используется для осуществление звонков и проведения ВКС | требуется | не требуется |
2.3. Архитектура и таблица сетевого взаимодействия
Подходит в качестве стандартной архитектуры для эксплуатации до 1000 пользователей.
Общая архитектура решения приведена на следующей диаграмме.
Для работы звонков в модуле Команда ПО Р7-Офис (работы медиа-сервера) требуется отдельные выделенный публичный и внутренний IP адреса. При наличия публикации модуля Команда ПО Р7-Офис в сеть интернет пользователи из локальной сети организации подключаются к публичному IP адресу шлюза (привязанному к порту сервера или межсетевого экрана) установленному в организации.
Прошу обратить внимание на схему и таблицу портов.
Таблица 3. Таблица сетевого взаимодействия.
№ | Протокол / Порт | Источник | Получатель | Примечания |
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 | Сервер Шлюз | Корпоративный сервер 2019 | Аутентификация, работа с хранилищем документов и онлайн редактирование документов |
4. | TCP: 443 | Сервер Шлюз | Управляющий сервер Р7-Команда | Подключение к сервису внешних клиентов по протоколу WSS, API |
5. | TCP: 443, 5060, 5061, 10000-30000 UDP: 5060, 5061, 10000 — 30000 |
Сервер Шлюз |
Медиа сервер Р7- Команда | Подключение внешних клиентов к медиа серверу Р7-Офис модуль Команда |
6. | TCP:443 | Клиенты модуля Команда в локальной сети Заказчика | Корпоративный сервер 2019 | Аутентификация, работа с хранилищем документов и онлайн редактирование документов |
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, 3306 | Управляющий сервер Р7-Команда | Корпоративный сервер 2024 | Запрос авторизации и синхронизацию пользователей на сервере Р7-Офис Сервер |
12. | TCP: 5060, 10000-30000 | Медиа сервер Р7- Команда | АТС Заказчика (или Шлюз к АТС | Подключение медиа сервера к АТС Заказчика |
2.4. Системные требования
Минимальные требования к ресурсам приведены ниже по ролям.
Р7-Офис Сервер
Расчёт производится отдельно согласно системных требований предъявляемых к порталу.
Сервер Р7-Офис модуль Команда с ролью Сервер управления:
- Кол-во ядер процессора (CPU cores) – 4;
- Частота процессора (CPU MHZ per core) – 2ГГц;
- ОЗУ (RAM) – 8 ГБ;
- Диск 1 (используется для хранения установочных файлов и ОС) – рекомендуем использовать SSD не менее 60 ГБ;
- (Опционально) Диск 2 (используется для хранения файлов, отправляемых пользователями) – рекомендуем использовать HDD не менее 100 ГБ;
- 1 внутренний IP адрес в локальной сети Заказчика (или сети ДМЗ Заказчика);
Сервер Р7-Офис модуль Команда с ролью Медиа-сервер:
- Кол-во ядер процессора (CPU cores) – 4;
- Частота процессора (CPU MHZ per core) – 2ГГц;
- ОЗУ (RAM) – 8 ГБ;
- Диск 1 (используется для хранения установочных файлов, ОС и установки ПО медиа-сервера) – рекомендуем использовать SSD не менее 60 ГБ;
- 1 IP адрес
- в случае использования виртуальных машин KVM нужно принудительно указать процессор как host;
- нужна одна партиция (не считая swap-партиции), то есть чтобы не было отдельной партиции для /home;
- нужно поставить системный hostname в r7team-m.<domain>.
Рекомендованные характеристики серверов рассчитываются под каждую конкретную установку специалистами АО «Р7» или его Партнёра.
3. Установка модуля Команда серверного ПО Р7-Офис
3.1. Подготовка SSL сертификатов для работы модуля команда
Для работы решение ОБЯЗАТЕЛЬНО использование SSL сертификатов. Желательно использовать подписанные общеизвестным центром сертификации, например Let`s Encript.
Если вы используете самоподписанные сертификаты или сертификаты, которые могут быть не доверенными в ОС Linux, библиотеках Node.JS и Java и других компонентах, необходимо сделать их доверенными установив коревые сертификаты используемого вами сертификата. В качестве основного сертификата рекомендуется использовать fullchain сертификат. Так же частно нужно устанавливать корневой сертификат с цепочкой сертификатов.
Если в используемом вами сертификате есть цепочка серверов сертификатов до
корневого центра сертификатов, то необходимо:
3.1.1. Использовать в качестве устанавливаемого 1 единый файл (бандл) всех сертификатов fullchain (устанавливаемого, корневого и с цепочкой сертификатов промежуточных серверов)
Для этого необходимо (на примере цепочки сертификатов от DigiCert):
Откройте текстовый редактор (например, wordpad) и вставьте все тело каждого сертификата в один текстовый файл в следующем порядке:
Основной сертификат — your_domain_name.crt
Промежуточный сертификат — DigiCertCA.crt
Корневой сертификат — TrustedRoot.crt
Не забудьте включить начальный и конечный теги в каждый сертификат. Результат должен
выглядеть так:
-----BEGIN CERTIFICATE----- (Your Primary SSL certificate: your_domain_name.crt) -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- (Your Intermediate certificate: DigiCertCA.crt) -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- (Your Root certificate: TrustedRoot.crt) -----END CERTIFICATE-----
Сохраните объединенный файл как your_name.pem. Теперь файл .pem (или crt) готов к
использованию.
3.1.2. Использовать в качестве устанавливаемого 1 единый файл (бандл) всех сертификатов chain (корневого с цепочкой сертификатов промежуточных серверов).
Для этого необходимо (на примере цепочки сертификатов от DigiCert):
Откройте текстовый редактор (например, wordpad) и вставьте все тело каждого сертификата в один текстовый файл в следующем порядке:
Промежуточный сертификат — DigiCertCA.crt
Корневой сертификат — TrustedRoot.crt
Не забудьте включить начальный и конечный теги в каждый сертификат. Результат должен
выглядеть так:
-----BEGIN CERTIFICATE----- (Your Intermediate certificate: DigiCertCA.crt) -----END CERTIFICATE----- -----BEGIN CERTIFICATE----- (Your Root certificate: TrustedRoot.crt) -----END CERTIFICATE-----
Сохраните объединенный файл как your_domain_name.pem. Теперь файл .pem (или crt) готов
к использованию.
3.2. Донастройка ПО Р7-Офис Сервер для интеграции модуля Команда:
3.2.1. Произведите изменения на Р7-Офис Сервер для возможности простого перехода и сквозной авторизации в Р7-Команда
3.2.1.1. Проверьте что на Сервере Р7-Офис установлены SSL сертификаты.
Рекомендуется установить сертификаты и включить доступ по протоколу HTTPS к сервер Р7-Офис согласно инструкциям:
Let’s Encrypt
для ОС Microsoft Windows: https://support.r7-office.ru/community_server/install-community_server/community_server_windowscommunity_server_https_windows/
для ОС Linux: https://support.r7-office.ru/community_server/install-community_server/community_server_linux/community_server_https/
Сертификаты выпущенные на собственных серверах:
для ОС Microsoft Windows: https://support.r7-office.ru/community_server/install-community_server/community_server_windows/community_server_https_windows_own_certificate/
для ОС Linux: https://support.r7-office.ru/community_server/install-community_server/community_server_linux/community_server_https_own_certificate/
3.2.1.2. Скопируйте файл ASC.Web.Talk.dll
Для установки на Windows:
из директории:
C:\Program Files (x86)\R7-OFFICE\CommunityServer\Services\TeamLabSvc
в директорию:
C:\Program Files (x86)\R7-OFFICE\CommunityServer\WebStudio\bin
Для установки на Linux:
из директории:
/var/www/r7-office/Services/TeamLabSvc
в директорию:
/var/www/r7-office/WebStudio/bin
Если после обновления dll возникнут проблемы вы можете скачать и заново заменить DLL.
Скачать DLL можно по ссылке https://nct.r7-office.ru/sh/X8F
3.2.1.3. В файле web.appsettings.config, который расположен в директории:
Для установки на Windows:
C:\Program Files (x86)\R7-OFFICE\CommunityServer\WebStudio\
Для установки на Linux:
/var/www/r7-office/WebStudio/
установить или добавьте если нет значения параметров:
<add key="web.talk" value="true" /> <add key="web.third-party-chat" value="team" /> <add key="web.third-party-chat-url" value="https://team.r7-office.ru" />
где адрес team.r7-office.ru заменить на URL где установлен сервер управления Р7-Команда
3.2.1.4. Сохраните значение ключа core.machinekey в файле web.appsettings.config
<add key="core.machinekey" value="<ключ>" />
3.2.1.5. Перезапустите web-cервер:
Для установки на Windows:
откройте IIS Manager -> Application Pools -> Р7-Офис, и выполните действие Recycle
Для установки на Linux, выполните команду:
systemctl restart monoserve
3.2.2. Настройте БД MySQL Р7-Офис Сервер для работы с ней модуля Р7-Команда.
3.2.2.1. Посмотрите и cохраните параметры подключения к БД MySQL, которые потребуются в ходе установки модуля Команда.
Название БД: r7-office
Пользователь для подключения к БД: root
Пароль к базе данных можно найти в файле web.connections.config
, который расположен в
директории:
Для установки на Windows:
C:\Program Files (x86)\R7-OFFICE\CommunityServer\WebStudio\
Для установки на Linux:
/var/www/r7-office/WebStudio/
3.2.2.2. Создайте отдельного пользователя для подключения к БД Р7-Офис из Р7-Команда
и разрешите подключатся к БД MySQL с сервера управления модуля Р7-Команда
Для этого на сервере Р7-Офис необходимо подключиться к БД, набрав в командной строке
команду:
mysql -h 127.0.0.1 -uroot -p
После подключения необходимо выполнить следующие команды:
Для ОС Linux:
CREATE USER 'dbuser'@'%' IDENTIFIED BY 'P@$$w0rd'; GRANT ALL PRIVILEGES ON *.* TO 'dbuser'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES;
Для ОС Windows:
CREATE USER 'dbuser'@'IP_АДРЕС_СЕРЕВЕРА УПРАВЛЕНИЯ_Р7_КОМАНДА' IDENTIFIED BY 'P@$$w0rd'; GRANT ALL PRIVILEGES ON *.* TO 'dbuser'@'%' WITH GRANT OPTION; FLUSH PRIVILEGES;
Примечание: вместо пользователя dbuser и пароля P@$$w0rd можно указать любые значения.
Дополнительно в случае если MySQL сервера Р7-Офис установлен на ОС Linux нужно
разрешить подключение к БД с других хостов.
Для этого необходимо в файле конфигурации my.cnf добавить адрес сервера Р7-Команда в
переменной «bind-address = 127.0.0.1, А.А.А.А» или добавить «bind-address = 0.0.0.0», если
открывать доступ к БД со всех IP адресов. Где А.А.А.А адрес Сервера управления Р7-Команда.
Файл конфигурации my.cnf в разных ОС может быть расположен по разным сетевым путям
в ОС CentOS файл расположен по пути «/etc/my.cnf»
- в ОС Ubuntu/Debian файл расположен по пути «/etc/mysql/mysql.conf.d/mysqld.cnf»
- В ОС Windows файл my.cnf отсутствует, в момент создания пользователя необходимо выполнять команду добавления пользователя с указанием сервера управления модуля Р7-Команда «CREATE USER ‘dbuser’@‘IP_АДРЕС_СЕРЕВЕРА УПРАВЛЕНИЯ_Р7_КОМАНДА’ IDENTIFIED BY ‘P@$$w0rd’;»
Сохранить параметры подключения (url, логин и пароль пользователя) для подключения
к mysql они понадобится при установке сервер управления Р7-Команда (R7Team)
А затем перезапустить сервис MySQL.
- для ОС CentOS
sudo systemctl restart mysqld
- для ОС Ubuntu/Debian
systemctl restart mysql
Так же на ОС Linux может быть включён Firewall запрещающий обращаться на порт MySQL 3306. Что бы открыть порт со всех ip адресов выполните команды:
- для iptables
sudo iptables -A INPUT -p tcp --destination-port 3306 -j ACCEPT
- для UFW
sudo ufw allow 3306/tcp
- для FirewallD
sudo firewall-cmd --permanent --zone=public --add-port=3306/tcp
и затем
sudo firewall-cmd --reload
3.3. Установка роли Медиа-сервер модуля Команда:
Внимание! ОС для установки Debian 11 Bullseye английская версия (локализация) без графического интерфейса.
Для получения значений user и pass полей доступа к репозиторию обратитесь к вашему партнёру или клиентскому менеджеру в АО «Р7».
При установке ПО в виртуальную машину необходимо проверить что все команды физического процессора (CPU) передаются виртуальному процессору. Для этого проверьте что в виртуальной машине НЕ включены режимы совместимости со старыми (процессорами разных поколений) процессорами. Например: в гипервизоре Microsoft Hyper-V, это опция называется «Migrate to a physical computer with different processor verion» (данная настройка находится в настройка конкретной виртуальной машины в разделе «Processor» -> «Compatibility»).
Внимание! Установку производить только из под суперпользователя (root)
Установка медиа-сервера производится в следующей последовательности:
3.3.1. проверить что установка производится на поддерживаемые ОС;
3.3.2. проверить что серверу присвоен один статичный публичный IPv4 адрес с присвоенным доменным именем из конфигурации выше.
3.3.3. проверить что в локальном межсетевом экране встроенном в ОС и на межсетевом экране сети открыт доступ к серверу по портам, согласно таблице сетевого взаимодействия.;
3.3.4. проверить что в локальном межсетевом экране встроенном в ОС и на межсетевом экране сети открыт доступ к серверу в интернет;
Рекомендация – что бы исключить влияние на процесс установки разрывов связи использовать tmux/screen (мультиплексор) при установке системы.
3.3.5. проверить что размечен один раздел диска (не считая swap раздела диска), то есть нет отдельного раздела диска для /home
3.3.6. Проверить что /etc/hostname должно быть указанно имя сервера, например:
3.3.7. Проверить и привести в соответствие файл /etc/hosts.
Необходимо привести к виду:
127.0.0.1 localhost
внешний_адрес домен
Например:
3.3.8. отключить поддержку IPv6 для hostname сервера
в файле /etc/hosts в строке «::1 localhost ip6-localhost ip6-loopback …» не должно быть hostname
3.3.9. проверить что hostname сервера разрешаться в его настоящий внешний IP-адрес
в файле /etc/hosts в строке «127.0.0.1 localhost …» не должно быть hostname и должна быть строка «public_server_ip hostname»
Например:
3.3.10. Для применения настроек нужно перезагрузить ОС командой «reboot»;
3.3.11. Проверить после перезагрузки применилось ли имя, для этого в командной строке вводим hostname. Должны получить имя указанное в /etc/hostname файле
3.3.12. Скопировать установочный архив и ранее выписанный ssl сертификат на сервер в каталог /etc/ssl;
3.3.13. Загрузить архив с дистрибутивом в каталог /opt
3.3.14. Устанавить unzip командой
apt-get install unzip
3.3.15. Переидти в каталог /opt командой
cd /opt
3.3.16. Проверить чексумму проверяем с чек суммой на сайте командой
md5sum install_r7_team.tar.gz
3.3.17. Распаковать архив командой
mkdir -p install && tar -xvzf install_r7_team.tar.gz -C instal
Внимание! Запрещено распаковывать архив и запускать установку из каталога /root. Используйте для этого каталог например /opt
3.3.18. Перейти в каталог с разархивированным содержимым
cd install
3.3.19. Выполнить команду перед запуском скрипта установки:
apt remove libx11-6
3.3.20. Запустить скрипт Запустить скрипт install.sh выполнив команду
./install.sh
3.3.21. Отобразится меню установки Медиа-сервера
Выберете язык установки. В описании далее будет использоваться установка на русском языке.
3.3.22. Выбрете пункт «Р7-Команда медиасервер».
3.3.23. Выберете «Установить Р7 Команда медиасервер»
3.3.24. Перед установкой пользователю будет выдан запрос на подтверждение запуска процесса установки.
3.3.25. В случае если сервер устанавливается во внутренней сети организации может быть выдано предупреждение что рекомендуется установка ПО на сервер с публичным сетевым адресом на сетевом интерфейсе.
3.3.26. В случае если имя сервера в файлах hosts и hostname не совпадают выдано предупреждение.
3.3.27. Пользователю необходимо ввести доменное имя сервера (без наименования
протокола).
3.3.28. Для настройки поддержки HTTPS выберете «Yes»
Официально поддерживаются установки только с включённым режимом HTTPS
3.3.29. Для настройки поддержки HTTPS требуется ввести путь к ssl сертификату
3.3.30. Ввести путь к закрытому ключу ssl сертификата
3.3.31. После этого запустится процесс установки:
3.3.32. В процессе установки может появиться запрос:
Т.к. в процессе установки меда сервера проходит процесс обновления ОС, возможны изменения конфигурационных файлов при обновлении пакетов. Здесь выбираем пункт – оставлять локальную версию.
3.3.33. По завершению процесса инсталляции пользователю будет выдано информационное сообщение о результатах инсталляции.
Для доступа к функционалу видеоконференцсвязи необходим идентификатор приложения и его токен доступа. По умолчанию он будет сохранен в файл /root/media.config
3.3.34. Сохраняем его.
3.3.35. Выходим из меню установки
3.3.36. После установки могут быть выданы сообщения, которые являются нормальной для работы системы:
3.4. Установка роли Сервер Управления модуля Команда
Внимание! ОС для установки Debian 11 Bullseye английская версия (локализация) без графического интерфейса.
Внимание!!! Установку производить только из под суперпользователя (root)
3.4.1. проверьте что установка производится на поддерживаемые ОС;
3.4.2. проверить что серверу присвоен один статичный публичный IPv4 адрес с присвоенным доменным именем из конфигурации выше
3.4.3. проверить что в локальном межсетевом экране встроенном в ОС и на межсетевом экране сети открыт доступ к серверу по портам согласно таблице сетевого взаимодействия;
3.4.4. проверить что в локальном межсетевом экране встроенном в ОС и на межсетевом экране сети открыт доступ к серверу в интернет;
3.4.5. Проверить что /etc/hostname должно быть указанно имя сервера, например:
3.4.6. Проверить и привести в соответствие файл /etc/hosts.
Необходимо привести к виду:
127.0.0.1 localhost
внешний_адрес домен
Например:
3.4.7. отключить поддержку IPv6 для hostname сервер
в файле /etc/hosts в строке «::1 localhost ip6-localhost ip6-loopback …» не должно быть hostname
3.4.8. проверить что hostname сервера разрешаться в его настоящий внешний IP-адрес
в файле /etc/hosts в строке «127.0.0.1 localhost …» не должно быть hostname и должна быть строка «public_server_ip hostname»
Например:
3.4.9. Для применения настроек нужно перезагрузить ОС командой «reboot»;
3.4.10. Проверить после перезагрузки применилось ли имя, для этого в командной строке вводим hostname. Должны получить имя указанное в /etc/hostname файле
3.4.11. Скопировать установочный архив и ранее выписанный ssl сертификат на сервер в каталог /etc/ssl, например:
3.4.12. Загрузить архив с дистрибутивом в каталог /opt
3.4.13. Устанавить unzip командой
apt-get install unzip
3.4.14. Переидти в каталог /opt командой
cd /op
3.4.15. Проверить чексумму проверяем с чек суммой на сайте командой
md5sum install_r7_team.tar.gz
3.4.16. Распаковать архив командой
mkdir -p install && tar -xvzf install_r7_team.tar.gz -C install
Внимание! Запрещено распаковывать архив и запускать установку из каталога /root.
Используйте для этого каталог, например /opt.
3.4.17. Перейти в каталог с разархивированным содержимым
cd install
3.4.18. Выполнить команду перед запуском скрипта установки:
apt remove libx11-6
3.4.19. Запустить скрипт Запустить скрипт install.sh выполнив команду
./install.sh
3.4.20. возможно, ОС запросит установку пакета whiptail
в этом случае проводим его установку «apt-get install -y whiptai»
3.4.21. Выполните заного скрипт выполнив команду ./install.sh
3.4.22. Отобразится меню установки сервера.
Выберете язык установки. В описании далее будет использоваться установка на русском языке.
3.4.23. Выбрать пункт «Р7 Команда сервер управления».
3.4.24. Выберете «Установить Р7 Команда сервер управления».
3.4.25. Перед установкой будет выдано предупреждение о необходимости прочтения данной инструкции по установки
3.4.26. При установке зависимостей могут отображаться диалоговые окна связанные с данными зависимостями.
3.4.27. При установке пользователю будет предложено установить отдельные компоненты R7-Team.
В случае установки на одну чистую машину оставить без изменений. Если на машину уже установлен один из предложенных компонентов, необходимо снять звездочку рядом с соответствующим названием компонента, после чего произойдет переход к настройке доступа.
3.4.28. Пользователю необходимо ввести доменное имя сервера (без наименования протокола).
3.4.29. Далее необходимо ввести HTTP-порт сервера.
3.4.30. В процессе установки пользователю будет предложена возможность настроить поддержку без протокола HTTPS.
Для этого необходимо подтвердить действие в открывшемся диалоге.
Официально поддерживаются установки только с включённым режимом HTTPS
3.4.31. После чего необходимо ввести HTTPS-порт сервера (Данное окно отображается, если на шаге 9 была выбрана настройка протокола HTTPS).
3.4.32. Для настройки поддержки HTTPS также требуется ввести путь к ssl сертификату (Данное окно отображается, если на шаге 9 не была выбрана настройка протокола HTTPS).
3.4.33. Ввести путь к закрытому ключу ssl сертификата (Данное окно отображается, если на шаге 14 не была выбрана настройка протокола HTTPS).
3.4.34. Ввести логин суперпользователя R7-Team.
3.4.35. Ввести наименование организации R7-Team.
3.4.36. Придумайте и введите пароль суперпользователя модуля ПО Р7-Офис.
3.4.37. Ввести путь к каталогу для сохранения прикрепленных файлов.
3.4.38. Подтвердите настройку подключения сервера управления к медиасерверу
3.4.39. Ввести url-адрес медиа сервера в формате: «protocol://host:port».
3.4.40. Введите внешний (определяемые из сети интернет) адрес медиасервера.
Если медиасервер будет опубликован через сервер шлюз или обратный проксисервер, имя медиасервера может перенаправляться (настроено или указывать как cname) на адрес шлюза или обратного прокси-сервера.
3.4.41. Ввести идентификатор приложения для медиа сервера.
По умолчанию не обходимые данные указаны в файле /root/media.config
на Медиа-сервере модуля Команда.
3.4.42. Ввести токен медиа сервера.
По умолчанию необходимые данные указаны в файле /root/media.config
на Медиа-сервере модуля Команда.
3.4.43. Укажите No если Вы не используете SIP-to-PSTN шлюз, но если при настройке медиа-сервера производилось подключение к SIP-to-PSTN шлюзу, то см п. 3.5.17.
3.4.44. При необходимости синхронизировать данные пользователей из базы Р7-офиса, выбрать «Настроить интеграцию с Р7 Офис 2019»
3.4.45. Выберете протокол подключения к корпоративному серверу. Выберете «HTTPS»
3.4.46. Ввести базовый url-адрес Р7-офиса (Данное окно отображается при синхронизации данных с базой Р7-офиса).
3.4.47. Ввести машинный ключ в формате BASE64 (Данное окно отображается при синхронизации данных с базой Р7-офиса).
КЛЮЧ УКАЗАННЫЙ В КОНФИГЕ НУЖНО ПЕРЕВЕСТИ В РУЧНУЮ В ФОРМАТ BASE64 (например через сервис https://www.utilities-online.info/base64).
Ключ который используется по-умолчанию (если не был изменён при установки Р7-Офис Сервер) на портале Р7-Офис «Vskoproizvolny Salt par Chivreski» переводится в следующие символы в base64: VnNrb3Byb2l6dm9sbnkgU2FsdCBwYXIgQ2hpdnJlc2tp
3.4.48. При необходимости работы с мультитеннантным режимом управления необходимо включить его поддержку.
Выберите «Нет»
По умолчанию работа осуществляется в одно-портальном режиме. При необходимости мультитеннантный режим может быть включен при переконфигурировании системы.
ВНИМАНИЕ! Отключение мультитеннантного режима впоследствии невозможно.
Перед выбором данного пункта убедитесь в необходимости работы с несколькими порталами, а также в режиме работы ПО Р7-Офис.
3.4.49. Ввести адрес mysql сервера Р7-офиса в формате: «host: port» (Данное окно отображается при синхронизации данных с базой Р7-офиса).
3.4.50. Ввести логин пользователя сервера MySQL сохранённый заранее (Данное окно отображается при синхронизации данных с базой Р7-офиса).
По инструкции выше пользователь «dbuser».
3.4.51. Ввести пароль пользователя сервера MySQL сохранённый заранее (Данное окно отображается при синхронизации данных с базой Р7-офиса).
По инструкции выше пароль пользователя «P@$$w0rd»
3.4.52. Откроется окно проверки подключения.
Пункт не является обязательным и его можно пропустить нажав «Нет» (Данное окно отображается при синхронизации данных с базой Р7-офиса).
3.4.53. Откроется окно использования push уведомений для мобильных приложений.
Если вы устанавливаете сервер для использования в закрытом контуре без доступа из сети интернет выберете «Нет».
Если мобильные приложения планируются у использованию выберете «Да»
3.4.54. После указания всех параметров отоборазится окно с всеми параметрами, необходимо нажать «Продолжить» и после подтверждения начнется процесс установки сервера Р7 Команда с ролью сервер управления.
3.4.55. После завершения установки произойдет старт всех сервисов R7-Team.
Время до окончания старта всех сервисов будет отображаться в диалоговом окне.
3.4.56. В случае успешной установки и запуска приложения Р7-Команда будет выдано следующее информационное сообщение.
3.4.57. В некоторых случаях для корректной работы Р7-Команда требуется добавить корневые сертификаты в доверенные.
Для установки сертификатов соответствующих описанию в разделе 3.1 необходимо выполнить следующие действия:
3.4.57.1. Если вы используете сертификаты выпущенные центром сертификатов Let’s Encrypt, требуется
3.4.57.1.1. Добавить на сервере управления Р7-Команда корневые сертификаты с цепочкой в доверенные сертификаты Node.JS, для этого необходимо положить корневой сертификат с цепочкой в папку /opt/team/cacerts (если папки нет, то создать) с именем trusted.pem
3.4.57.1.2. Добавить сертификаты в доверенные для виртуальной JAVA-машины на сервер управления Р7-команда
- скачать актуальный корневой сертификат по адресу https://letsencrypt.org/certs/isrgrootx1.pem («wget https://letsencrypt.org/certs/isrgrootx1.pem»)
- на сервере управления Р7-Команда перейти в папку с cacerts :
/usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/jre/lib/security
, для этого выполните командуcd /usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/jre/lib/security
- находясь в этой папке необходимо выполнить команду
keytool -import -alias isrgrootx1 -keystore cacerts -trustcacerts -file isrgrootx1.pem
, где вместо isrgrootx1.pem может быть путь до скаченного корневого сертификата на вашем сервере.
В результате выполнения команды будет осуществлен запрос пароля. Пароль по умолчанию для хранилища ключей «changeit» (без кавычек).
3.4.57.1.3. Добавить сертификаты в доверенные для виртуальной JAVAмашины на Медиа-сервер
sudo keytool -keystore /etc/ssl/certs/java/cacerts -import -trustcacerts -alias "Corp CA" - file /root/tmp_files/trusted.pem
где /root/tmp_files/trusted.pem — путь к вашему корневому сертификату, его необходимо скорректировать в зависимости от местоположения сертификата на вашем сервере.
Пароль по умолчанию для хранилища ключей «changeit» (без кавычек).
3.4.57.2. Если вы используете сертификаты выпущенные собственным центром сертификатов (самоподписанные):
3.4.57.2.1. Добавить на сервере управления Р7-Команда корневые сертификаты с цепочкой в доверенные сертификаты Node.JS
Для этого необходимо положить корневой сертификат в папку /opt/team/cacerts
(если папки нет, то создать) с именем trusted.pem
3.4.57.2.2. Добавить сертификаты в доверенные для виртуальной JAVAмашины на сервер управления Р7-команда:
- перейти в папку с cacerts на сервере управления Р7-Команда
/usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/jre/lib/security
, для этого выполните команду
cd /usr/lib/jvm/adoptopenjdk-8-hotspot-amd64/jre/lib/security
- оттуда импортировать сертификаты с использованием команды
sudo keytool -import -alias media-gnph.ru -keystore cacerts - file/root/tmp_files/trusted.pem
, где /root/tmp_files/trusted.pem
— путь к вашему корневому сертификату, его необходимо скорректировать в зависимости от местоположения сертификата на вашем сервере.
В результате выполнения команды будет осуществлен запрос пароля.
Пароль по умолчанию для хранилища ключей «changeit» (без кавычек).
3.4.57.2.3. Добавить сертификаты в доверенные для виртуальной JAVAмашины на Медиа-сервер
sudo keytool -keystore /etc/ssl/certs/java/cacerts -import -trustcacerts -alias "Corp CA" - file /root/tmp_files/trusted.pem
где /root/tmp_files/trusted.pem
— путь к вашему корневому сертификату, его необходимо скорректировать в зависимости от местоположения сертификата на вашем сервере.
Пароль по умолчанию для хранилища ключей «changeit» (без кавычек).
3.4.58. В случае когда Р7-Команда публикуется в сеть интернет через сервер Шлюз
необходимо произвести донастройку файла конфигураций создав файл /root/.team/config.d/ss-production.properties
выполнив команду
nano/root/.team/config.d/ss-production.properties
и добавив туда следующий текст
mind.turn.url=turn:rp-nginx.r7-demo.ru:3478 mind.turn.username=mediauser mind.turn.password=12345678
Где укажите следующие параметры:
- mind.turn.url – имя и порт сервер Р7-Команда с ролью шлюз определяющееся из локальной сети и сети интернет указанное при установке в пункте 3.4.15.4
- mind.turn.username – имя пользователя указанное при настройке сервиса coturn сервера Р7-Команда с ролью шлюз в пункте 3.4.15.4
- mind.turn.password – пароль пользователя указанный при настройке сервиса coturn сервера Р7-Команда с ролью шлюз в пункте 3.4.15.4
3.4.59. После успешной установки и запуска приложения Р7-Команда установите файл Коллий (ключ от Р7-Офис Сервер) и проверьте работу синхронизации учётных записей с сервера Р7-Офис Сервер.
Для этого:
- Зайдите по адресу https://ИМЯ_СЕРВЕРА/admin.
- Введите имя пользователя (login): superadmin
- Введите пароль пользователя superadmin, который был задан в 20 пункте при установки указанный в данной инструкции.
- Откройте окно «Лицензия», в правом окне нажмите «Загрузить файл лицензии» и установите файл лицензии от Р7-Офис Сервер.
- Откройте окно «Организация» и проверьте кол-во пользователей, которое синхронизировано с сервера Р7-Офис Сервер. Оно должно совпадать с кол-во пользователей заведено в организации Р7-Офис Север.
Видим, что прогрузился один пользователь администратор – он и был заведён в Р7-Офис, и стоит атрибут Сторонний.
Проверим вход этим пользователем.
Переходим по ссылке https://r7team.r7-office.ru/
Указываем логин и пароль пользователя, в компании прописываем localhost.
localhost – из поля Орагнизация (см. предыдущий скриншот).
3.5. Подключение медиа-сервера к SIP-to-PSTN шлюзам (опционально)
3.5.11 Создать у провайдера телефонии (в SIP-to-PSTN шлюзе) учетную запись для подключения SIP-устройства и привязать к этой учетной записи один или несколько номеров из телефонной сети общего пользования (PSTN). Для примера мы будем использовать один номер — +7-495-123-45-67. Привязка предполагает, что все звонки на этот(эти) номер(а) будет переадресовываться на SIP-устройство зарегистрированное под этой учетной записью.
3.5.12 Создать файл
/etc/gate/gate.conf.d/sip.conf
с помощью команды
nano/etc/gate/gate.conf.d/sip.conf
с одним шлюзом, используя данные из учетной записи, созданной на шаге 1 со следующим содержанием:
{ "sip": { "blacklist": [ "127.0.0.0/8" ], "gateways": [{ "id": "0", "server": "<SIP_SERVER>", "username": "<USERNAME>", "password": "<PASSWORD>", "expires": 3600 }] } }
<SIP_SERVER> — адрес sip сервера без указания протокола (например, sip1.sipserver.com),
<USERNAME> — имя sip пользователя (например, для учетной записи user1@sip1.sipserver.com
имя пользователя будет user1, без@sip1.sipserver.com
),
<PASSWORD> — пароль sip пользователя
3.5.13 Создать файл
/etc/opensips/opensips.cfg.d/on_outgoing_sip_message.cfg
с помощью команды
nano /etc/opensips opensips.cfg.d/on_outgoing_sip_message.cfg
используя данные из учетной записи, созданной на шаге 1 со следующим содержанием изменив адрес 8.8.8.8:5060 на адрес sip сервера без указания протокола:
if ($var(client_address) == "8.8.8.8:5060") { if ($rb(application/sdp) != null) { replace_body_all("m=video (.*) RTP/AVP 106 105 104 103 102 101 100 99 98 97 96 34 31\r\n", ""); replace_body_all("a=content:main\r\n", ""); replace_body_all("a=label:1\r\n", ""); replace_body_all("a=rtcp:(.*) IN IP4 (.*)\r\n", ""); 35 replace_body_all("a=sendrecv\r\n", ""); replace_body_all("a=rtpmap:106 VP8/90000\r\n", ""); replace_body_all("a=fmtp:106 max-fr=30;max-fs=32400;\r\n", ""); replace_body_all("a=rtpmap:105 H264/90000\r\n", ""); replace_body_all("a=fmtp:105 packetization-mode=0;profile-levelid=428032\r\n", ""); replace_body_all("a=rtpmap:104 H264/90000\r\n", ""); replace_body_all("a=fmtp:104 packetization-mode=1;profile-levelid=428032\r\n", ""); replace_body_all("a=rtpmap:103 H264/90000\r\n", ""); replace_body_all("a=fmtp:103 packetization-mode=0;profile-level-id=640032\r\n", ""); replace_body_all("a=rtpmap:102 H264/90000\r\n", ""); replace_body_all("a=fmtp:102 packetization-mode=1;profile-levelid=640032\r\n", ""); replace_body_all("a=rtpmap:101 H264/90000\r\n", ""); replace_body_all("a=fmtp:101 packetization-mode=0;profile-levelid=42801E\r\n", ""); replace_body_all("a=rtpmap:100 H264/90000\r\n", ""); replace_body_all("a=fmtp:100 packetization-mode=1;profile-levelid=42801E\r\n", ""); replace_body_all("a=rtpmap:99 H264/90000\r\n", ""); replace_body_all("a=fmtp:99 packetization-mode=0;profile-level-id=64001E\r\n", ""); replace_body_all("a=rtpmap:98 H264/90000\r\n", ""); replace_body_all("a=fmtp:98 packetization-mode=1;profile-levelid=64001E\r\n", ""); replace_body_all("a=rtpmap:97 H263-2000/90000\r\n", ""); replace_body_all("a=fmtp:97 SQCIF=1;QCIF=1;CIF=1;CIF4=1;CIF16=1;CUSTOM=320,240,1;CUSTOM=640,480,1;CUSTOM= 800,600,1;CUSTOM=1280,720,1;CUSTOM=1920,1080,1\r\n", ""); replace_body_all("a=rtpmap:96 H263-1998/90000\r\n", ""); replace_body_all("a=fmtp:96 SQCIF=1;QCIF=1;CIF=1;CIF4=1;CIF16=1;CUSTOM=320,240,1;CUSTOM=640,480,1;CUSTOM= 800,600,1;CUSTOM=1280,720,1;CUSTOM=1920,1080,1\r\n", ""); replace_body_all("a=rtpmap:34 H263/90000\r\n", ""); replace_body_all("a=fmtp:34 SQCIF=1;QCIF=1;CIF=1;CIF4=1;CIF16=1\r\n", ""); replace_body_all("a=rtpmap:31 H261/90000\r\n", ""); replace_body_all("a=fmtp:31 QCIF=1;CIF=1\r\n", ""); replace_body_all("a=setup:actpass\r\n", ""); replace_body_all("a=floorctrl:c-s\r\n", ""); replace_body_all("m=application (.*) UDP/BFCP \*\r\n", ""); replace_body_all("a=connection:new\r\n", ""); } }
3.5.14 Добавьте следующие разрешающие правила межсетевого экрана:
iptables -I INPUT 1 -s 8.8.8.8 -p udp --dport 5060 -j ACCEPT iptables -I INPUT 2 -s 8.8.8.8 -p udp --match multiport --dports 10000:11000 -j ACCEPT iptables-save
В приведенных выше строках замените 8.8.8.8 на IP-адрес адрес sip сервера без указания протокола.
3.5.15 В файле
/etc/gate/gate.conf.d/applications.conf
для редактирования выполните команду
nano /etc/gate/gate.conf.d/applications.conf
для приложения Р7-Команда нужно задать поля «webhook» и «telephone» :
{ "applications": [{ "id": "2b4817ef-3703-4bbd-aa95-7435b4286a98", "purpose": "My first application for Media Server R7-Team", "token_hash": "20365bd3418531967999c3d8691bd910a2820605655c10572c3b55a4aa5ac2d9cb4a3303 9c5f60755bad18df20126e060426152fb2bba41641b0d4d9fd4d8607", "max_conference_duration": 360, "max_conference_capacity": 25, "telephone": "0:+74951234567", "webhook": "WEB_HOOK_URI" }] }
Поле «webhook» должно содержать HTTP(S) URL, который медиа-сервер будет уведомлять обо всех входящих SIP-звонках, адресованных приложению, в том числе о звонках от SIP-toPSTN шлюза, если звонок пришел на номер указанный в поле «telephone». Например, для сервера Р7-Команда расположенного по адресу https://r7team.test.com webhook будет
https://r7team.test.com/api/v2/mind/sipcall
Поле «telephone» должно содержать ID одного из SIP-to-PSTN шлюзов, заданных в файле /etc/gate/gate.conf.d/sip.conf
(в примере это 0), и один из номеров телефона привязанных к этому шлюзу в формате E.164 (в примере, это +74951234567). ID шлюза и номер телефона должны быть разделены двоеточием.
3.5.16
sudo systemctl restart opensips.service
Если все сделано верно, то после перезапуска OpenSIPs в файле /var/log/opensips/opensips.log
появятся такие строчки:
020-11-13 16:09:10.041 [5503] Blacklisted networks: 2020-11-13 16:09:10.041 [5503] 127.0.0.0/8 2020-11-13 16:09:10.041 [5503] Gateways for `tel` URIs: 2020-11-13 16:09:10.041 [5503] 0: <USERNAME>@<SIP_SERVER> 37 2020-11-13 16:09:10.042 [5503] Applications: 2020-11-13 16:09:10.042 [5503] 2b4817ef-3703-4bbd-aa95-7435b4286a98 (0:+74951234567) 2020-11-13 16:09:10.042 [5503] Service is ready
А после того, как пройдет регистрация медиа-сервера на SIP-to-PSTN шлюзе, добавятся такие строчки:
2020-11-13 16:09:20.899 [5533] [<SIP_SERVER>:5060 <- *] [e223ea16de7e226704814268809] [00001]: REGISTER sip:<SIP_SERVER> 2020-11-13 16:09:20.910 [5530] [<SIP_SERVER>:5060 -> *] [e223ea16de7e226704814268809] [00001]: 401 Unauthorized 2020-11-13 16:09:20.916 [5530] [<SIP_SERVER>:5060 <- *] [e223ea16de7e226704814268809] [00002]: REGISTER 2020-11-13 16:09:20.928 [5530] [<SIP_SERVER>:5060 -> *] [e223ea16de7e226704814268809] [00002]: 200 OK
Теперь все входящие звонки на номер +74951234567 будет переадресовывать приложению с ID 2b4817ef-3703-4bbd-aa95-7435b4286a98, а также это приложение теперь может звонить на номера PSTN.
3.5.17 Настройки на Сервере управления:
3.5.18 Если при настройке медиа-сервера производилось подключение к SIP-to-PSTN шлюзу, то выбрать «Yes».
3.5.19 Выберете режим интеграции «TRUNK».
В инструкции по-умолчанию описан режим «TRUNK» как наиболее популярный. Для получения инструкции в режиме посетите сайт технической поддержки АО «Р7» https://support.r7-office.ru
3.5.20 Введите номер телефона или SIP-адрес учётной записи
3.5.21 И ввести номер телефона для звонков по добавочному номеру
3.5.22 Введите адрес АТС (IP адрес или DNS имя) и порт
3.5.23 Введите кода (первое число номера) для нормализации номеров
3.5.24 Введите минимальную длину номер требующего номрализации
4. Обновление модуля Команда серверного ПО Р7-Офис:
Внимание! Обновление производить только из под суперпользователя
Внимание! Обновление рекомендуется выполнять только с повышением версии.
Внимание! Рекомендуется перед обновлением сделать дамп содержимого баз данных Postgresql и MongoDb
1. Удалить предыдущий установочный архив и папку с распакованными файлами (если ранее не были удалены)
2. Скопировать установочный архив на сервера
3. Распаковать архив командой
unzip -d install install_r7_team_{version}.zip
Внимание! Запрещено распаковывать архив и запускать установку из каталога /root.
4. Перейти в папку install
5. Выставить права на запуск для расположенных в папке скриптов (install.sh, start_all.sh, stop_all.sh, uninstall.sh)
6. Запустить скрипт выполнив команду
/install.sh
и выбрать пункт «3) Upgrade R7-Team».
7. Следовать руководству мастера установки, основываясь на описании шагов в разделе «Установка R7-Team».
5. Удаление модуля Команда серверного ПО Р7-Офис:
Внимание! Зависимости устанавливаемые вместе с модулем Команда ПО Р7-Офис не удаляются
1. Перейти в папку /opt/team
2. Запустить скрипт выполнив команду
/install.sh
и выбрать пункт «2) Uninstall R7-Team»
3. Для запуска процесса удаления необходимо дать подтверждение в открывшемся диалоговом окне
4. По завершению процесса удаления пользователю будет выдано информационное сообщение.
5. При необходимости удалить содержимое баз данных Postgresql и MongoDb, а так же сохраненные медиафайлы в папке /var/team/storage
.
6. Информация о поддержке
Вы можете связаться со службой поддержки ПО Р7-Офис с помощью обращения:
- по электронной почте, адрес: support@r7-office.ru .
- через портал: https://support.r7-office.ru