Инструменты пользователя

Инструменты сайта


setup

Различия

Здесь показаны различия между двумя версиями данной страницы.

Ссылка на это сравнение

Предыдущая версия справа и слева Предыдущая версия
Следующая версия
Предыдущая версия
setup [2021/08/17 13:37]
Портнов Алексей [Docker]
setup [2024/02/09 07:29] (текущий)
Портнов Алексей [Docker]
Строка 13: Строка 13:
   - **Bootable USB** - **загрузочный USB диск**, с которого будет работать MikoPBX. При загрузке с USB все изменения в конфигурации действуют до первой перезагрузки. ПК должен поддерживать загрузку с USB.   - **Bootable USB** - **загрузочный USB диск**, с которого будет работать MikoPBX. При загрузке с USB все изменения в конфигурации действуют до первой перезагрузки. ПК должен поддерживать загрузку с USB.
   - **Live CD**      - установка MikoPBX с **CD-диска** на отдельно выделенный сервер. ПК должен поддерживать загрузку с CD.   - **Live CD**      - установка MikoPBX с **CD-диска** на отдельно выделенный сервер. ПК должен поддерживать загрузку с CD.
 +  - **Docker** - требования **linux 5**+ и установленный **docker**
 +
 +===== Требование к сетевому каналу =====
 +
 +Пример расчета необходимой пропускной способности канала для различных кодеков на 30 одновременных звонков. ​
 +АТС поддерживает наиболее популярные кодеки:​
 +  * **G.711** - 4.67 Mbps
 +  * **GSM** - 1.68 Mbps
 +  * **G.722** - 4.67 Mbps
 +  * **G.729** - 1.38 Mbps (**кодек будет доступен в версиях 2022.2.1+**)
 +
 +<note important>​Расчет ориентировочный,​ при использовании одного кодека на всех устройствах,​ подключенных к АТС. Подробнее [[https://​www.asteriskguru.com/​tools/​bandwidth_calculator.php | тут]]. </​note>​
 +
 ===== Минимальные системные требования ===== ===== Минимальные системные требования =====
  
 <note important>​Мы рекомендуем для развертывания АТС использовать **два** жестких диска. </​note>​ <note important>​Мы рекомендуем для развертывания АТС использовать **два** жестких диска. </​note>​
  
-  * Жесткий диск объемом 800 Mb для основной системы +  * Жесткий диск объемом ​**800 Mb** для основной системы 
-  * Жесткий диск объемом 50+ Gb для записей разговоров +  * Жесткий диск объемом ​**50+ Gb** для записей разговоров 
-  * 1 процессор x86-64 +  ​* **1 (2 ядра)** ​процессор ​**x86-64** 
-  * 1Gb оперативной памяти+  * **2Gb** ​оперативной памяти
   * Сетевой адаптер   * Сетевой адаптер
  
 +<note tip>​ПК,​ с такими параметрами,​ в наших тестах,​ держит **38 одновременных входящих звонков** при условиях:​
 +  * К очереди подключено 10 агентов (все online)
 +  * Каждую секунду поступает новый звонок
 +  * Клиенту во время ожидания воспроизводится музыка (MOH)
 +  * На АТС не установлено доп. модулей
 +</​note>​
  
 <note important>​Ориентировочно,​ **1 час** разговора занимает **14Мб** места на диске. </​note>​ <note important>​Ориентировочно,​ **1 час** разговора занимает **14Мб** места на диске. </​note>​
Строка 33: Строка 52:
   * [[setup:​vmware_workstation|VMware Workstation Pro]]   * [[setup:​vmware_workstation|VMware Workstation Pro]]
   * [[setup:​hyperv|Hyper-V]]   * [[setup:​hyperv|Hyper-V]]
 +  * [[https://​настройка-микротик.рф/​ip-телефония-с-нуля/​|MikoPBX на Proxmox (настройка-микротик.рф)]]
  
 ===== Установка в облако ===== ===== Установка в облако =====
Строка 41: Строка 61:
   * [[faq:​azure|Microsoft Azure]]   * [[faq:​azure|Microsoft Azure]]
   * [[faq:​google-cloud|Google Cloud]]   * [[faq:​google-cloud|Google Cloud]]
-  * [[https://askopbx.host | Облако ​askopbx.host]] ​+  * [[https://asko.host/pbx | Облако ​asko.host]]  
 +  * [[faq:​hetzner-cloud|Hetzner cloud]]
  
 ===== Docker ===== ===== Docker =====
  
-<note warning>"​**Host система**"​ должна быть запущена на базе Linux 5+. Тестировалось на Debian 11.</​note>​+<note warning>"​**Host система**"​ должна быть запущена на базе Linux 5+. Тестировалось на Debian 11 и Ubuntu-21.04. В планах добавить поддержку ARM.</​note>​
  
 <​code>​ <​code>​
Строка 57: Строка 78:
 docker pull ghcr.io/​mikopbx/​mikopbx-x86-64 docker pull ghcr.io/​mikopbx/​mikopbx-x86-64
  
-Запускаем ​MikoPBX +Вариант запуска ​MikoPBX 
-docker run --cap-add=NET_ADMIN --net=host --name mikopbx \+# НЕ привилегированный режим. Пользователь и группа "​www-data"​ дожены существовать в системе:​ 
 +docker run --cap-add=NET_ADMIN --net=host --name ​mikopbx --hostname ​mikopbx \
            -v /​var/​spool/​mikopbx/​cf:/​cf \            -v /​var/​spool/​mikopbx/​cf:/​cf \
            -v /​var/​spool/​mikopbx/​storage:/​storage \            -v /​var/​spool/​mikopbx/​storage:/​storage \
-           -e SSH_PORT=23 \+           -e SSH_PORT=23 ​
 +           -e ID_WWW_USER="​$(id -u www-data)"​ \ 
 +           -e ID_WWW_GROUP="​$(id -g www-data)" ​\
            -it -d --restart always ghcr.io/​mikopbx/​mikopbx-x86-64            -it -d --restart always ghcr.io/​mikopbx/​mikopbx-x86-64
 </​code>​ </​code>​
  
-<note important>​Флаг **NET_ADMIN** необходим для возможности работы **fail2ban** и **iptables** внутри контейнера.</​note>​+<note important>​Флаг **NET_ADMIN** необходим для возможности работы **fail2ban** и **iptables** внутри контейнера
 + 
 +**Обязательно** укажите параметр "​**hostname**",​ иначе его значение будет назначено автоматически,​ что приведен к проблеме с лицензированием. </​note>​ 
 +<note warning>​Если необходимо использовать "​[[module-backup|Модуль резервного копирования]]",​ то контейнер следует запускать с флагом **--privileged**. Резервное копирование можно выполнять архивированием каталогов **cf** и **storage** вручную (когда контейнер остановлен).</​note>​ 
 <note tip>​Флаг **--net=host** указывает на то, что NAT не будет использоваться для нового контейнера. Все порты, что должен занять контейнер будет заняты и на хост машине. Подробнее в [[https://​docs.docker.com/​network/​host/​|документации...]] Если на хост машине,​ какой то из портов занят, то при загрузке MikoPBX могут возникнуть ошибки. \\ \\ Ниже описаны переменные окружение,​ которые позволят скорректировать используемые MikoPBX порты: <note tip>​Флаг **--net=host** указывает на то, что NAT не будет использоваться для нового контейнера. Все порты, что должен занять контейнер будет заняты и на хост машине. Подробнее в [[https://​docs.docker.com/​network/​host/​|документации...]] Если на хост машине,​ какой то из портов занят, то при загрузке MikoPBX могут возникнуть ошибки. \\ \\ Ниже описаны переменные окружение,​ которые позволят скорректировать используемые MikoPBX порты:
   * **SSH_PORT** - порт для SSH (**22**)   * **SSH_PORT** - порт для SSH (**22**)
Строка 80: Строка 108:
   * **REDIS_PORT** - порт для сервера **Redis** (**6379**)   * **REDIS_PORT** - порт для сервера **Redis** (**6379**)
   * **GNATS_PORT** ​ - порт для сервера **gnatsd** (**4223**)   * **GNATS_PORT** ​ - порт для сервера **gnatsd** (**4223**)
 +  * **ID_WWW_USER** - идентификатор пользователя www (можно задать выражением **"​$(id -u www-data)"​**,​ где www-data имя **НЕ root** пользователя)
 +  * **ID_WWW_GROUP** - идентификатор группы www (можно задать выражением **"​$(id -g www-data)"​**,​ где www-data имя **НЕ root** пользователя)
 </​note>​ </​note>​
- 
  
 Пример **docker-compose.yml**:​ Пример **docker-compose.yml**:​
Строка 89: Строка 118:
   mikopbx:   mikopbx:
     container_name:​ "​mikopbx"​     container_name:​ "​mikopbx"​
 +    hostname: "​mikopbx"​
     image: "​ghcr.io/​mikopbx/​mikopbx-x86-64"​     image: "​ghcr.io/​mikopbx/​mikopbx-x86-64"​
     network_mode:​ "​host"​     network_mode:​ "​host"​
     command: '​-d'​     command: '​-d'​
 +    tty: true
     cap_add:     cap_add:
       - NET_ADMIN       - NET_ADMIN
Строка 111: Строка 142:
 </​code>​ </​code>​
  
-<note important>​Внутри контейнера совместимых с ядром хост системы DAHDI модулей нет. По этой причине ​если необходим функционал MeetMe ​ конференций, то DAHDI потребуется собрать на хост системе вручную.</​note>​+<note important>​**Обязательно** укажите ​параметр "​**hostname**", ​иначе его значение будет назначено автоматически, что приведен к проблеме с лицензированием. </​note>​
  
 Команда для подключения к консоли АТС: ​ Команда для подключения к консоли АТС: ​
setup.1629207430.txt.gz · Последние изменения: 2021/08/17 13:37 — Портнов Алексей