Алгоритм развертывания Media Proxy

Установите на свой компьютер Docker Desktop, Docker Compose и Docker Engine

Docker разработан в виде модульной архитектуры, поэтому если вы установили Docker Desktop для Windows или Mac, то у вас уже есть Docker Compose и Docker Engine.

Если вы используете компьютер Linux, необходимо отдельно установить Docker Engine и Docker Compose. Далее рассмотрим установку под Linux Ubuntu 21.10.


Docker Engine — это инструменты для построения контейнеров, реестр контейнеров, инструменты оркестрации, среда выполнения и др.

Руководствуясь этой инструкцией, вы установите Docker v.20.10.12 на свой компьютер под управлением Linux.

Системные требования:

  • OC Linux
  • Наличие выделенного либо виртуального сервера с предварительно установленной Ubuntu 20.10.
  • Система 64 битной архитектуры.

Все команды выполняются из терминала. Вызов терминала – комбинация клавиш Ctr-Alt-Т или приложение Terminal.

ШАГ 1. Удалите старые версии Docker (если они были установлены ранее). Для этого в командной строке введите:

$ sudo apt-get remove docker docker-engine docker.io containerd runc
        

ШАГ 2. Обновите apt-индекс (базу) пакетов. Для этого в командной строке введите:

$ sudo apt-get update
        

Обновление apt-индекса

ШАГ 3. Установите пакеты, чтобы разрешить использование репозитория через HTTPS:

$ sudo apt-get install
        ca-certificates
        curl
        gnupg
        lsb-release
        

Установка пакетов для HTTPS

Для подтверждения введите Д (или Y).

ШАГ 4. Пропишите ключ GPG официального репозитория Docker:

$ curl -fsSL https://download.docker.com/linux/ubuntu/gpg
         | sudo gpg
        --dearmor -o /usr/share/keyrings/docker-archive-keyring.gpg
        

и настройте стабильный Docker-репозиторий:

$ echo
        "deb [arch=$(dpkg --print-architecture)
        signed-by=/usr/share/keyrings/docker-archive-keyring.gpg]
        https://download.docker.com/linux/ubuntu
        
        $(lsb_release -cs) stable" | sudo tee
        /etc/apt/sources.list.d/docker.list > /dev/null
        

Настройка Docker-репозитория

ШАГ 5. Повторно обновите apt-индекс пакетов, чтобы при выполнении команды установки система знала, что этот пакет доступен. (см. ШАГ 2).

$ sudo apt-get update
        

ШАГ 6. Далее приступайте непосредственно к установке Docker. В командной строке введите:

$ sudo apt-get install docker-ce docker-ce-cli containerd.io
        

Установка Docker

Введите Д (или Y) и дождитесь завершения установки.

Установка Docker на ваш компьютер завершена.

ШАГ 7. Убедитесь, что Docker Engine установлен корректно, запустив hello-world образ.

$ sudo docker run hello-world
        

После выполнения команды начнется загрузка образа и его установка.

Загрузка hello-world

Такое приветственное сообщение означает, что Docker установлен успешно:

Сообщение об успешной установке Docker

Дополнительную информацию можно получить по ссылке: https://docs.docker.com/get-docker/



Docker Compose — инструмент для описания и запуска мультиконтейнерных приложений.

Руководствуясь этой инструкцией, вы установите Docker Compose 2.2.3 на свой компьютер.

Системные требования:

  • OC Linux
  • Наличие выделенного либо виртуального сервера с предварительно установленной Ubuntu 20.10.
  • Система 64 битной архитектуры.

ШАГ 1. Создайте в домашней папке директорию DOCKER_CONFIG для плагинов и скачайте Docker Compose 2.2.3 в эту папку. Для этого в командной строке введите:

$ DOCKER_CONFIG=${DOCKER_CONFIG:-$HOME/.docker}
        $ mkdir -p $DOCKER_CONFIG/cli-plugins
        $ curl -SL https://github.com/docker/compose/releases/download/v2.2.3/docker-compose-linux-x86_64
         -o $DOCKER_CONFIG/cli-plugins/docker-compose
        

ШАГ 2. Примените к папке права на выполнение командой:

$ chmod +x $DOCKER_CONFIG/cli-plugins/docker-compose
        

Назначение прав на docker-compose

ШАГ 3. Проверьте версию установленного Docker Compose.

$ docker compose version
        

Проверка версии Docker Compose

Установка Docker Compose на ваш компьютер завершена.

Дополнительную информацию можно получить по ссылке: https://docs.docker.com/compose/cli-command/#install-on-linux



Docker Desktop используется для управления локальными контейнерами.

Docker Desktop дает возможность установить ограничения ресурсов Docker, настроить ядро и командную строку, осуществлять основные операции с контейнерами, просматривать логи, базовую статистику и др.

Системные требования:

  • OC Linux
  • Наличие выделенного либо виртуального сервера с предварительно установленной Ubuntu 20.10.
  • Система 64 битной архитектуры.

ШАГ 1. Загрузите актуальный DEB-пакет Docker Desktop для Ubuntu по официальной инструкции Docker. Затем в каталоге с загруженным файлом выполните:

$ sudo apt-get update
        $ sudo apt install ./docker-desktop-amd64.deb
        

ШАГ 2. Запустите рабочий стол Docker.

Чтобы запустить Docker Desktop для Linux, откройте приложение Docker Desktop в меню Приложения.

Запуск Docker Desktop

Дополнительную информацию можно получить по ссылке: https://docs.docker.com/desktop/setup/install/linux/


Авторизуйтесь в Docker Registry MANGO OFFICE

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

Для терминала Linux

sudo docker login -u '<уникальный ключ авторизации>' -p 'media-proxy' registry-vbpx.mango-office.ru
        

Для Windows Powershell

'media-proxy' | docker login -u '<уникальный ключ авторизации>' --password-stdin registry-vbpx.mango-office.ru
        

Где «уникальный ключ авторизации» - комбинация символов, скопировать которую можно на вкладке Внешний Media Proxy Личном кабинете ВАТС.

Перед авторизацией необходимо проверить сетевую доступность командой:

PS: tnc registry-vbpx.mango-office.ru -p 443
        

Скачайте и заполните docker-environment.txt:

Чтобы скачать docker-enviroment.txt, в Личном кабинете пользователя ВАТС последовательно перейдите на Общие настройки → Настройка SIP → Внешний Media Proxy. На открывшейся вкладке нажмите на кнопку Скачать шаблон для переменных окружения.

Заполните docker-environment.txt по инструкции и сохраните заполненный файл в каталог, как показано на скриншоте.

Сохранение docker-environment.txt

Если вы скопировали файл на внешний носитель (например флешку), то для сохранения его в каталог на сервер в командной строке приложения Терминал введите:

$ sudo cd /путь/к/каталогу/на/флешке
        $ sudo cp docker_environment.txt /opt/mediaproxy/
        

где /opt/mediaproxy/ - каталог на сервере, куда сохраняется файл.

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

(в приведенном ниже скриншоте это record и alt_record)

Каталоги для записей

Чтобы создать каталог, откройте приложение Терминал. Для приведенного выше скриншота в командной строке вводится:

$ sudo mkdir -p /opt/mediaproxy/mp1/tmp/record/
        $ sudo mkdir -p /opt/mediaproxy/mp1/tmp/alt_record/
        

Важно

Имена каталогов пропишите в docker-environment.txt в переменные BASE_PATH_RECORDS_1 и ALTER_PATH_RECORDS_1.

Предоставьте для этих каталогов полные права

Для корректной работы сервисов, директории для записей разговоров должны иметь полные права доступа (чтение/запись/выполнение) (rwx-rwx-rwx).

Далее в командной строке введите:

$ sudo chmod -R 777 название_папки_для_которой_предоставляются_права
        

Например, для приведенного выше скриншота в командной строке вводится:

$ sudo cd /opt/mediaproxy/mp1/tmp
        $ sudo chmod -R 777 record
        $ sudo chmod -R 777 alt_record
        

Скачайте и сохраните в каталог файл docker-compose.yml

Файл предоставляется пользователю вместе с пользовательской документацией. Предназначен для предварительной настройки и запуска клиентского Media Proxy. Docker-compose позволяет управлять группами контейнеров, создавать их, настраивать, а также удалять одной командой.

Чтобы скачать docker-compose.yml в Личном кабинете пользователя ВАТС последовательно перейдите на Общие настройки → Настройка SIP → Внешний Media Proxy. На открывшейся вкладке нажмите на кнопку Скачать скрипт запуска Media Proxy.

Сохраните файл в каталог, как показано на скриншоте.

Если вы скопировали файл на внешний носитель (например флешку), то для сохранения его в каталог на сервер в командной строке введите:

$ sudo cd /путь/к/каталогу/на/флешке
        $ sudo cp docker-compose.yml /opt/mediaproxy/
        

где /opt/mediaproxy/ - каталог на сервере, куда сохраняется файл.

Важно

Если есть необходимость редактирования файла docker-compose.yml, при редактировании не изменяйте отступы, установленные в файле. Для единственного экземпляра media proxy правки не требуются. Если единовременных разговоров становится более 50, нужно добавлять дополнительный экземпляры media proxy, т.е. править скрипт и переменные окружения по примеру для двух медиапрокси.

Сохранение docker-compose.yml

Запустите Docker_compose

Чтобы запустить docker_compose (для приведенного выше скриншота) в командной строке вводится:

$ cd /opt/mediaproxy
        $ sudo docker-compose --env-file=docker_environment.txt up -d
        

После запуска Docker-compose в свою очередь самостоятельно скачивает images из репозитория Mango и запускает четыре контейнера:

  • Mediaproxy - отвечает за отправку медиа трафика, получение медиа трафика, проигрывание медиа контента, детектирование dtmf, запись разговоров и т.д.
  • Openresty - отвечает за доступ к записям разговора (используется сервисом распознавания речи и категоризации).
  • Autoheal - отслеживает и перезапускает неработоспособные контейнеры (контейнеры, находящиеся в состоянии unhealthy).
  • Watchtower - обновляет работающую версию контейнерного приложения.

Совершайте звонки

Чтобы проверить корректность работы функционала в Личном кабинете пользователя ВАТС последовательно перейдите на Общие настройки → Настройка SIP → Учетные записи и домены SIP. На открывшейся вкладке выберите учетную запись пользователя, для который активна настройка SIP2SIP в сети клиента. Залогиньтесь под этой учетной записью в вашей внутренней рабочей сети в Контакт-центре MANGO OFFICE или MANGO Talker и совершите тестовый звонок на внешний номер телефона (например, на любой городской номер).

Проверка SIP2SIP в сети клиента

Если произошло соединение и есть слышимость – функционал настроен корректно, а голосовой трафик звонков проходит через MediaProxy внутри сети вашей организации.

Важно

Для удаленных сотрудников используйте VPN. Для мобильных сотрудников или sip-учеток из интернета функционал работать не будет. Для шифрования голосового трафика мобильных сотрудников используйте дополнительные услуги, подключаемые на вкладке ЛК → Общие настройки → Настройка SIP → Безопасность → Шифрование звонков.