Versions Compared

Key

  • This line was added.
  • This line was removed.
  • Formatting was changed.
Comment: Webitel 3.2.0

...

Code Block
# apt-get install curl
# curl -sSL https://get.docker.com/ | sh
# docker --version
Docker version 1.810.12, build d12ea79c3959b1

Варианты установки на других дистрибутивах: https://docs.docker.com/engine/installation/

На Ubuntu Вы можете получить сообщение:

...

Code Block
$ sudo apt-get update
$ sudo apt-get upgrade
$ sudo apt-get install python-pip
$ sudo pip install -U docker-compose
$ docker-compose --version
docker-compose version: 1.4.0

Основные команды docker-compose:

Команда

Описание

up

Создать либо пересоздать контейнеры. Для запуска контейнера в фоновом режиме, необходимо добавить ключ -d

stop

Остановить контейнеры

start

Запустить созданные раньше контейнеры

rm

Удалить контейнеры

pull

Скачать последнюю версию образов

ps

Вывести список контейнеров и их состояние

logs

Отобразить вывод логов из контейнеров

6.2, build 4d72027

Варианты установки на других дистрибутивах: https://docs.docker.com/compose/install/

Подготовка к запуску webitel

Для запуска Webitel Вам необходимо скачать подготовленные для docker-compose файлы, внести свои правки и запустить. Будим производить в /opt/webitel.

Tip

Текущая стабильная версия Webitel 3.2.0

Получение файлов:

Code Block
$sudo sudogpasswd apt-get install git
$ a ${USER} docker
cd /opt
$sudo sudo git clone httpmkdir /opt/webitel
curl -L https://stashgithub.com/webitel.com/scmorchestration/wp/compose.git webitel

В склонированном репозитории находится файл docker-compose.yml, который описывает параметры для создания контейнеров, а так же три *.env файла с переменными для контейнеров.

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

Поскольку установка производиться на одном сервере, во всех переменных с IP адресами, необходимо указывать IPv4 адрес Вашего сервера.

common.env

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

  • SSL - включить поддержку SSL. Cтавим false.
  • TOKEN_KEY - ключ для создания токенов
  • CONSOLE_PASSWORD - пароль пользователя root. По умолчанию, используется слово ROOT_PASSWORD.
  • LOGLEVEL - уровень вывода логов. Возможные варианты: trace, debug, warn, error, info. По умолчанию, warn.
  • LOGSTASH_ENABLE и LOGSTASH_HOST - Для использования logstash сервера сбора логов.
  • FS_HOST - IP, на котором запущен FreeSWITCH.
  • CONSOLE_HOST - IP, на котором запущен Webitel Console.
  • MONGODB_HOST - IP, на котором запущена база MongoDB.
  • CDR_HTTP - Протокол подключения к серверу статистики. По умолчанию, http.
  • CDR_SERVER - IP либо имя хоста, а так же порт подключения к серверу статистики.

cdr.env

В файле находятся переменные для контейнера сервера статистики и медиафайлов:

  • STORAGE_TRANSPORT - Какой транспорт использовать для хранения файлов: s3 либо file. По умолчанию, file.
  • STORAGE_ROOT - Для файлового хранилища - путь к файлам, для S3 хранилища - название корзины. По умолчанию, recordings.
  • S3KEYID, S3KEYSECRET и S3_REGION - Параметры подключения к Amazon S3 хранилищу.
  • ACL_UPLOAD - С каких IP разрешить загрузку записей разговоров на сервер. Можно указать только IP адрес, FreeSWITCH. По умолчанию, разрешено с любых IP - 0.0.0.0/0.

freeswitch.env

В файле находятся переменные для контейнера с FreeSWITCH:

  • CDR_SERVER - IP либо имя хоста, а так же порт подключения к серверу статистики и записей разговоров.
  • ACR_SERVER - IP либо имя хоста, а так же порт подключения к серверу маршрутизации.
  • CONF_SERVER - IP либо имя хоста, а так же порт подключения к серверу Webitel Console для получения XML конфигурации.

Запуск Webitel

Имея готовый файл с описанием контейнеров, мы можем скачать образы Docker на сервер и создать контейнеры.

Скачиваем нужные нам образы:

Code Block
$ cd /opt/webitel
$ sudo docker-compose pull

Создаем контейнеры:

archive/v3.2.0.tar.gz | sudo tar xz
mv orchestration-3.2.0 orchestration
sudo chown -R ${USER}:docker /opt/webitel /opt/orchestration
cd /opt/orchestration

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

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

Прежде, чем приступить к запуску, нам нужно изменить 2 значения в файле bin/setenv.sh:

  • WEBITEL_HOST - DNS имя сервера с Webitel. В новых версиях используется nginx, как proxy и http сервер. Вам необходимо указать полное FQDN имя, а не просто IP адрес.
  • WEBITEL_PASS - пароль для пользователя root.


Tip

Бесплатный StartSSL сертификат для wss

Запуск Webitel

Имея готовый файл с описанием контейнеров, мы можем скачать образы c Docker Hub на сервер и создать контейнеры.

Сервер сбора логов

Начиная с версии 3.2.0, все логи контейнеров webitel (как и ключевые поля статистики для Аналитика и отчетность) сохраняются в базе elasticsearch. Прежде чем стартовать webitel, мы запускаем elasticsearch и fluentd.

Code Block
./bin/bootstrap.sh elf up -d

Скрипт bin/bootstrap.sh разработан, что бы упростить работу с контейнерами.

Основные команды:

Команда

Описание

elf

Управление elasticsearch и fluentd.

dev

Запуск в режиме разработчика, когда открыты все порты всех контейнеров.

fs

Запустить fs_cli для подключения к консоли FreeSWITCH

-

не указывая ничего, запускаем webitel

Аргументы:

Аргумент

Описание

up

Создать либо пересоздать контейнеры. Для запуска контейнера в фоновом режиме, необходимо добавить ключ -d

stop

Остановить контейнеры

start

Запустить созданные раньше контейнеры

rm

Удалить контейнеры

pull

Скачать последнюю версию образов

ps

Вывести список контейнеров и их состояние

Запускаем webitel:

Code Block
./bin/bootstrap.sh pull
./bin/bootstrap.sh
Code Block
$ sudo docker-compose up -d

Проверяем, что все запустилось и работает:

Code Block
$ sudo docker-compose./bin/bootstrap.sh ps

Наше приложение готово к работе.

...