Настройка 1С:Сервера взаимодействия
Для обмена файлами в системе взаимодействия необходимо подключиться на сервере взаимодействия к хранилищу файлов.Хранилище должно поддерживать протокол S3 (V2 или V4).
Можно развернуть собственное хранилище:
Или подключиться к существующим:
- Amazon
- Amazon CDN
- Google Cloud
- Google Cloud CDN
- Croc Cloud
- Техносерв
Необходимо выбрать только один вариант использования хранилища файлов:
- Подготовка хранилища: Копировать в буфер обмена $ sudo mkdir -p /opt/minio
$ sudo chown user:user /opt/minio
$ sudo mkdir -p /var/minio
$ sudo chown user:user /var/minio
$ cd /opt/minio
$ wget https://dl.min.io/server/minio/release/linux-amd64/minio
$ sudo chmod +x minio - Открыть порт: Копировать в буфер обмена $ sudo firewall-cmd —zone=»public —add-port=9000/tcp» —permanent
$ sudo firewall-cmd —reload - Запуск сервера хранилища в качестве службы:
Пример взят с https://github.com/minio/minio-service/tree/master/linux-systemd
Для доступа к серверу хранилища, необходимо задать логин и пароль в переменных среды MINIO_ACCESS_KEY и MINIO_SECRET_KEY, соответственно. Чтобы значения этих переменных устанавливалиь при старте, занесем их инициализацию в /etc/default.
MINIO_VOLUMES=»»/var/minio/&»quot;
MINIO_ACCESS_KEY=»minio
MINIO_SECRET_KEY=»minio123
$ sudo vi /etc/systemd/system/minio.service
[Unit]
Description if [ -z \»$\» ]; then echo \»Variable MINIO_VOLUMES not set in /etc/default/minio\»; exit 1; fi»
ExecStart=/opt/minio/minio server $MINIO_OPTS $MINIO_VOLUMES
Restart=always
LimitNOFILE=65536
TimeoutStopSec=infinity
SendSIGKILL=no
Копировать в буфер обмена http://IP-адрес-сервера-хранилища:9000
Создайте новое хранилище, например cs-bucket
Логин: значение переменной MINIO_ACCESS_KEY,
Пароль: значение переменной MINIO_SECRET_KEY
Для добавления хранилища файлов в базу сервера взаимодействия:
- Создать файл:
Копировать в буфер обмена $ su postgres
$ vi /tmp/create_bucket.sql - Текст файла:
Копировать в буфер обмена INSERT INTO public.storage_server(id, type, base_url, container_url, container_name, region, access_key_id, secret_key, signature_version, is_deleted, upload_limit, download_limit, file_size_limit, created_at, updated_at, cdn_url, cdn_key_id, cdn_secret_key, state, cdn_enabled, path_style_access_enabled, bytes_to_keep, days_to_keep, pricing_url)
VALUES(
uuid_generate_v4(), ‘AMAZON’, ‘http://ИМЯ СЕРВЕРА ИЛИ IP:9000′,’http://ИМЯ СЕРВЕРА ИЛИ IP:9000/$’,
‘cs-bucket’,
»,
‘minio’,
‘minio123’,
‘V2’, false, 1073741824, 1073741824, 104857600, CURRENT_TIMESTAMP, CURRENT_TIMESTAMP, NULL, NULL, NULL, ‘ACTIVE’, false, true, 0, 0, NULL); - Выполнить запрос:
Копировать в буфер обмена $ psql -U postgres —dbname=cs_db —file=/tmp/create_bucket.sql
- В браузере открыть ссылку https://console.aws.amazon.com/s3
- Войти или создать аккаунт.
- Нажать кнопку Create bucket .
- Задать имя хранилища, например 1c-cs-bucket-2.
- Перейти по ссылке https://console.aws.amazon.com/iam/home
- В верхнем правом углу нажать на логин и в выпадающем меню выбрать My Security Credentials .
- Раскрыть пункт: Access keys (access key ID and secret access key) .
- Нажать Create New Access Key .
- Нажать Show Access Key .
- Скопировать себе Access Key ID и Secret Access Key. Эти данные понадобятся в запросе на добавление хранилища в базу данных.
Если вы планируете работать в web-клиенте, то необходимо настроить CORS:
Для добавления хранилища файлов в базу сервера взаимодействия:
Настройка 1С:Сервера взаимодействия и медиасервера
- Установить Java по инструкции:
https://bell-sw.com/pages/repositories/#yum - Скачать дистрибутивы (версии могут отличаться): Сервер взаимодействия:
https://releases.1c.ru/version_file?nick=CollaborationSystem&ver=10.0.47&path=CollaborationSystem\10_0_47\1c_cs_10.0.47_linux_x86_64.tar.gz PostgreSQL:
https://releases.1c.ru/version_file?nick=AddCompPostgre&ver=11.5-19.1C&path=AddCompPostgre\11_5_19_1C\postgresql_11.5_19.1C_x86_64_rpm.tar.bz2
https://releases.1c.ru/additional_file?nick=AddCompPostgre&path=AddCompPostgre\Extrafiles\centos_7.7.1908.x64.tar.gz - Распаковать архивы: Копировать в буфер обмена $ tar xvzf 1c_cs_10.0.47_linux_x86_64.tar.gz
$ tar xvjf postgresql_11.5_19.1C_x86_64_rpm.tar.bz2 - Установка сервера взаимодействия: Копировать в буфер обмена $ sudo ./1ce-installer-cli install
- Установка PostgreSQL: Копировать в буфер обмена $ sudo rpm -ihv libicu-50.2-3.el7.x86_64.rpm libxslt-1.1.28-5.el7.x86_64.rpm
$ sudo rpm -ihv postgresql11-1c-11.5-19.el7.x86_64.rpm postgresql11-1c-libs-11.5-19.el7.x86_64.rpm postgresql11-1c-contrib-11.5-19.el7.x86_64.rpm postgresql11-1c-server-11.5-19.el7.x86_64.rpm - Задать пароль “postgres” пользователю postgres: Копировать в буфер обмена $ sudo passwd postgres
- Запуск PostgreSQL: Копировать в буфер обмена $ su postgres
$ /usr/pgsql-11/bin/initdb -D /var/lib/pgsql/11/data
$ psql
postgres=# CREATE DATABASE cs_db;
postgres=# \c cs_db
postgres=# CREATE EXTENSION IF NOT EXISTS «uuid-ossp»;
postgres=# \q
Настройка обмена файлами в системе взаимодействия
Для обмена файлами в системе взаимодействия необходимо подключиться на сервере взаимодействия к хранилищу файлов. Хранилище должно поддерживать протокол S3 (V2 или V4).
Можно развернуть собственное хранилище:
Или подключиться к существующим:
- Amazon
- Amazon CDN
- Google Cloud
- Google Cloud CDN
- Croc Cloud
- Техносерв
Необходимо выбрать только один вариант использования хранилища файлов:
- Подготовка хранилища: Копировать в буфер обмена $ sudo mkdir -p /opt/minio
$ sudo chown user:user /opt/minio
$ sudo mkdir -p /var/minio
$ sudo chown user:user /var/minio
$ cd /opt/minio
$ wget https://dl.min.io/server/minio/release/linux-amd64/minio
$ sudo chmod +x minio - Открыть порт: Копировать в буфер обмена $ sudo firewall-cmd —zone=public —add-port=9000/tcp —permanent
$ sudo firewall-cmd —reload - Запуск сервера хранилища в качестве службы:
Пример взят с https://github.com/minio/minio-service/tree/master/linux-systemd
Для доступа к серверу хранилища, необходимо задать логин и пароль в переменных среды MINIO_ACCESS_KEY и MINIO_SECRET_KEY, соответственно. Чтобы значения этих переменных устанавливалиь при старте, занесем их инициализацию в /etc/default.
Копировать в буфер обмена $ sudo vi /etc/default/minio Копировать в буфер обмена MINIO_VOLUMES=»/var/minio/»
MINIO_ACCESS_KEY=minio
MINIO_SECRET_KEY=minio123
$ sudo vi /etc/systemd/system/minio.service
[Service]
WorkingDirectory=/usr/local/
User=user
Group=user
EnvironmentFile=/etc/default/minio
ExecStartPre=/bin/bash -c «if [ -z \»$\» ]; then echo \»Variable MINIO_VOLUMES not set in /etc/default/minio\»; exit 1; fi»
ExecStart=/opt/minio/minio server $MINIO_OPTS $MINIO_VOLUMES
Restart=always
LimitNOFILE=65536
TimeoutStopSec=infinity
SendSIGKILL=no
Создайте новое хранилище, например cs-bucket
Логин: значение переменной MINIO_ACCESS_KEY,
Пароль: значение переменной MINIO_SECRET_KEY
В данном примере будет использоваться хранилище Amazon
- В браузере открыть ссылку https://console.aws.amazon.com/s3
- Войти или создать аккаунт.
- Нажать кнопку Create bucket .
- Задать имя хранилища, например 1c-cs-bucket-2.
- Перейти по ссылке https://console.aws.amazon.com/iam/home
- В верхнем правом углу нажать на логин и в выпадающем меню выбрать My Security Credentials .
- Раскрыть пункт: Access keys (access key ID and secret access key) .
- Нажать Create New Access Key .
- Нажать Show Access Key .
- Скопировать себе Access Key ID и Secret Access Key. Эти данные понадобятся в запросе на добавление хранилища в базу данных.
Если вы планируете работать в web-клиенте, то необходимо настроить CORS:
- Откройте хранилище в браузере (или перейдите по ссылке https://console.aws.amazon.com/s3/buckets//?region=eu-west-1)
- Permissions / CORS Configuration
- Настройка с максимальным уровнем доступа:
* GET POST DELETE * - На сервере взаимодействия выполните команду Копировать в буфер обмена $ curl -Sf -X POST -H ‘Content-Type: application/json’ -d ‘< "type": "AMAZON", "baseUrl": "https://s3.amazonaws.com", "containerUrl": "https://$.s3.$.amazonaws.com", "containerName": "Имя хранилища", "region": "eu-west-1", "accessKeyId": "Access Key ID", "secretKey": "Secret Access Key", "signatureVersion": "V4", "uploadLimit": 1073741824, "downloadLimit": 1073741824, "fileSizeLimit": 104857600, "bytesToKeep": 104857600, "daysToKeep": 31, "pathStyleAccessEnabled": false >‘ -u admin:admin http://localhost:8087/admin/storage_server
Подключение информационной базы к серверу взаимодействия
Подключение медиасервера для проведения видеоконференций
- Установить git: Копировать в буфер обмена $ sudo yum install git
- Создать папку сбора дистрибутива Копировать в буфер обмена $ mkdir ~/distr
$ cd ~/distr - Установить пакеты из репозитория Копировать в буфер обмена $ sudo yum install epel-release
$ sudo yum install wget ninja-build meson jansson-devel openssl-devel libsrtp-devel sofia-sip-devel glib2-devel opus-devel libogg-devel libcurl-devel pkgconfig gengetopt libconfig-devel libtool autoconf automake cmake
$ sudo yum groupinstall ‘Development Tools’ - Установить пакет libnice Копировать в буфер обмена $ cd ~/distr
$ git clone https://gitlab.freedesktop.org/libnice/libnice.git
$ cd libnice
$ meson —prefix=/usr build && ninja -C build && sudo ninja -C build install - Установить пакет libmicrohttpd-0.9.59-2.el7.x86_64 Копировать в буфер обмена $ wget http://ftp.gnu.org/gnu/libmicrohttpd/libmicrohttpd-0.9.59.tar.gz
$ tar xvf libmicrohttpd-0.9.59.tar.gz
$ cd libmicrohttpd-0.9.59
$ ./configure —libdir=/usr/lib64
$ make
$ sudo make install
$ sudo ldconfig - Установить пакет libsrtp Копировать в буфер обмена $ cd ~/distr
$ wget https://github.com/cisco/libsrtp/archive/v2.2.0.tar.gz
$ tar xfv v2.2.0.tar.gz
$ cd libsrtp-2.2.0
$ ./configure —prefix=/usr —enable-openssl —libdir=/usr/lib64
$ make shared_library && sudo make install - Установить пакет libwebsockets Копировать в буфер обмена $ cd ~/distr
$ git clone https://libwebsockets.org/repo/libwebsockets
$ cd libwebsockets
$ mkdir build
$ cd build
$ cmake -DLWS_MAX_SMP=1 -DCMAKE_INSTALL_PREFIX:PATH=/usr -DCMAKE_C_FLAGS=»-fpic» -DLIB_SUFFIX=64 ..
$ make && sudo make install - Установить медиасервер janus от компании 1С Копировать в буфер обмена $ cd ~/distr
$ git clone https://github.com/1C-Company/janus-gateway
$ cd janus-gateway
$ sh autogen.sh
$ ./configure —disable-data-channels —disable-rabbitmq —disable-mqtt —prefix=/opt/janus —libdir=/usr/lib64
$ make
$ sudo make install - Создать файлы настроек Копировать в буфер обмена $ cd /opt/janus/etc/janus
$ sudo cp janus.eventhandler.gelfevh.jcfg.sample janus.eventhandler.gelfevh.jcfg
$ sudo cp janus.eventhandler.sampleevh.jcfg.sample janus.eventhandler.sampleevh.jcfg
$ sudo cp janus.eventhandler.wsevh.jcfg.sample janus.eventhandler.wsevh.jcfg
$ sudo cp janus.jcfg.sample janus.jcfg
$ sudo cp janus.plugin.audiobridge.jcfg.sample janus.plugin.audiobridge.jcfg
$ sudo cp janus.plugin.echotest.jcfg.sample janus.plugin.echotest.jcfg
$ sudo cp janus.plugin.nosip.jcfg.sample janus.plugin.nosip.jcfg
$ sudo cp janus.plugin.recordplay.jcfg.sample janus.plugin.recordplay.jcfg
$ sudo cp janus.plugin.streaming.jcfg.sample janus.plugin.streaming.jcfg
$ sudo cp janus.plugin.textroom.jcfg.sample janus.plugin.textroom.jcfg
$ sudo cp janus.plugin.videocall.jcfg.sample janus.plugin.videocall.jcfg
$ sudo cp janus.plugin.videoroom.jcfg.sample janus.plugin.videoroom.jcfg
$ sudo cp janus.plugin.voicemail.jcfg.sample janus.plugin.voicemail.jcfg
$ sudo cp janus.transport.http.jcfg.sample janus.transport.http.jcfg
$ sudo cp janus.transport.pfunix.jcfg.sample janus.transport.pfunix.jcfg - Настройки Janus Копировать в буфер обмена $ sudo mkdir /var/log/janus
$ sudo vi /opt/janus/etc/janus/janus.jcfg Копировать в буфер обмена admin_secret = пароль администратора
event_loops = количество ядер
no_media_timer = 2
min_nack_queue = 500
opaqueid_in_api = true
ignore_mdns = true # если не нужны подключения по локальной сети
log_to_stdout = false
log_lo_file = /var/log/janus/janus.log Копировать в буфер обмена $ sudo vi /opt/janus/etc/janus/janus.plugin.videoroom.jcfg Копировать в буфер обмена string_ids = true - Запуск janus в качестве службы Копировать в буфер обмена $ sudo vi /etc/systemd/system/janus.service
[Unit]
Description=Janus WebRTC Server
After=network.target
mediaserver — имя машины или IP-адрес сервера Janus.
$ sudo vi /var/cs/cs_instance/config/video.yml video: enabled: true conference-server-based-member-limit: 34 conference-server-based-threshold: 3 # Количество участников конференции, после которого используется медиасервер, вместо прямого соединения p2p max-bandwidth: 2000 max-reference-width: 1280 max-reference-height: 720 max-reference-fps: 30
Для проверки, что конференция идет через медиасервер, необходимо создать конференцию с числом участников >= значения параметра conference-server-based-threshold. После того, как все участники конференции ответят на звонок, выполнить команду:
$ sudo netstat -antp | grep -i janus