Здесь показаны различия между двумя версиями данной страницы.
Предыдущая версия справа и слева Предыдущая версия Следующая версия | Предыдущая версия | ||
setup [2019/05/27 09:23] Портнов Алексей [Системные требования] |
setup [2024/02/09 07:29] (текущий) Портнов Алексей [Docker] |
||
---|---|---|---|
Строка 1: | Строка 1: | ||
- | ====== Установка Askozia PBX ====== | + | ====== Установка MikoPBX ====== |
[[index|Обратно к перечню инструкций]] | [[index|Обратно к перечню инструкций]] | ||
- | **AskoziaPBX** - полноценная операционная система и телефонный сервер. Поставляется в виде образа (файл *.iso, *.img), который необходимо установить на ваш компьютер, сервер или в облако\\ | + | **MikoPBX** - полноценная операционная система и телефонный сервер. Поставляется в виде образа (файл *.iso, *.img), который необходимо установить на ваш компьютер, сервер или в облако\\ |
- | <note tip>**Инструкции по обновлению доступны на по [[update|ссылке]]**...</note> | + | <note tip>**Инструкции по обновлению доступны по [[update|ссылке]]**...</note> |
- | На текущий момент существует несколько способов установки Askozia PBX: | + | На текущий момент существует несколько способов установки MikoPBX: |
- | - **Виртуалка** - Установка АТС на **виртуальную машину** | + | - **VM** - Установка АТС на **виртуальную машину** |
- **Cloud** - Установка АТС в облако (Yandex или Mail.ru) | - **Cloud** - Установка АТС в облако (Yandex или Mail.ru) | ||
- | - **Live USB** - установка Askozia PBX с **USB** на отдельно выделенный сервер. ПК должен поддерживать загрузку с USB. | + | - **Live USB** - установка MikoPBX с **USB** на отдельно выделенный сервер. ПК должен поддерживать загрузку с USB. |
- | - **Bootable USB** - **загрузочный USB диск**, с которого будет работать Askozia PBX. При загрузке с USB все изменения в конфигурации действуют до первой перезагрузки. ПК должен поддерживать загрузку с USB. | + | - **Bootable USB** - **загрузочный USB диск**, с которого будет работать MikoPBX. При загрузке с USB все изменения в конфигурации действуют до первой перезагрузки. ПК должен поддерживать загрузку с USB. |
- | - **Live CD** - установка Askozia PBX с **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> | ||
===== Виртуальные машины ===== | ===== Виртуальные машины ===== | ||
- | Ниже представлен перечень инструкций для установки Askozia на рекомендуемые виртуальные машины: | + | Ниже представлен перечень инструкций для установки MikoPBX на рекомендуемые виртуальные машины: |
* [[setup:virtualbox|VirtualBOX]] | * [[setup:virtualbox|VirtualBOX]] | ||
* [[setup:vmwareFusion|VMware Fusion]] | * [[setup:vmwareFusion|VMware Fusion]] | ||
Строка 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 (настройка-микротик.рф)]] | ||
===== Установка в облако ===== | ===== Установка в облако ===== | ||
- | Ниже представлен перечень инструкций для установки Askozia в облаке: | + | Ниже представлен перечень инструкций для установки MikoPBX в облаке: |
* [[faq:mcs|MailRu Cloud Solutions]] | * [[faq:mcs|MailRu Cloud Solutions]] | ||
* [[faq:yandex_cloud|Yandex Cloud]] | * [[faq:yandex_cloud|Yandex Cloud]] | ||
+ | * [[faq:azure|Microsoft Azure]] | ||
+ | * [[faq:google-cloud|Google Cloud]] | ||
+ | * [[https://asko.host/pbx | Облако asko.host]] | ||
+ | * [[faq:hetzner-cloud|Hetzner cloud]] | ||
+ | ===== Docker ===== | ||
+ | <note warning>"**Host система**" должна быть запущена на базе Linux 5+. Тестировалось на Debian 11 и Ubuntu-21.04. В планах добавить поддержку ARM.</note> | ||
+ | |||
+ | <code> | ||
+ | # Создание на хост системе каталогов для хранения данных MikoPBX | ||
+ | # Для хранения настроек: | ||
+ | mkdir -p /var/spool/mikopbx/cf | ||
+ | # Для хранения записей разговоров и бекапов: | ||
+ | mkdir -p /var/spool/mikopbx/storage | ||
+ | |||
+ | # Получаем контейнер: | ||
+ | docker pull ghcr.io/mikopbx/mikopbx-x86-64 | ||
+ | |||
+ | # Вариант запуска 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/storage:/storage \ | ||
+ | -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 | ||
+ | </code> | ||
+ | |||
+ | <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 порты: | ||
+ | * **SSH_PORT** - порт для SSH (**22**) | ||
+ | * **WEB_PORT** - порт для работы web интерфейса по протоколу HTTP (**80**) | ||
+ | * **WEB_HTTPS_PORT** - порт для работы web интерфейса по протоколу HTTPS (**443**) | ||
+ | * **SIP_PORT** - порт для подключения SIP клиента (**5060**) | ||
+ | * **RTP_FROM** - начало диапазона RTP портов, передача голоса (**10000**) | ||
+ | * **RTP_TO** - конец диапазона RTP портов, передача голоса (**10200**) | ||
+ | * **IAX_PORT** - порт для подключения IAX клиентов (**4569**) | ||
+ | * **AMI_PORT** - порт AMI (**5038**) | ||
+ | * **AJAM_PORT** - порт AJAM используется для подключения панели телефонии для 1С (**8088**) | ||
+ | * **AJAM_PORT_TLS** - порт AJAM используется для подключения панели телефонии для 1С (**8089**) | ||
+ | * **BEANSTALK_PORT** - порт для сервера очередей **Beanstalkd** (**4229**) | ||
+ | * **REDIS_PORT** - порт для сервера **Redis** (**6379**) | ||
+ | * **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> | ||
+ | |||
+ | Пример **docker-compose.yml**: | ||
+ | <code> | ||
+ | version: "3.9" | ||
+ | services: | ||
+ | mikopbx: | ||
+ | container_name: "mikopbx" | ||
+ | hostname: "mikopbx" | ||
+ | image: "ghcr.io/mikopbx/mikopbx-x86-64" | ||
+ | network_mode: "host" | ||
+ | command: '-d' | ||
+ | tty: true | ||
+ | cap_add: | ||
+ | - NET_ADMIN | ||
+ | volumes: | ||
+ | - /var/spool/mikopbx/cf:/cf | ||
+ | - /var/spool/mikopbx/storage:/storage | ||
+ | # environment: | ||
+ | ## Изменение стандартного порта SSH на 23 | ||
+ | # - SSH_PORT=23 | ||
+ | ## Изменение стандартного порта HTTP на 81 | ||
+ | # - WEB_PORT=81 | ||
+ | # DAHDI не обязательное условие. Он необходим для работы MeetMe в панели телефонии. | ||
+ | # devices: | ||
+ | # - "/dev/dahdi/transcode:/dev/dahdi/transcode" | ||
+ | # - "/dev/dahdi/channel:/dev/dahdi/channel" | ||
+ | # - "/dev/dahdi/ctl:/dev/dahdi/ctl" | ||
+ | # - "/dev/dahdi/pseudo:/dev/dahdi/pseudo" | ||
+ | # - "/dev/dahdi/timer:/dev/dahdi/timer" | ||
+ | </code> | ||
+ | |||
+ | <note important>**Обязательно** укажите параметр "**hostname**", иначе его значение будет назначено автоматически, что приведен к проблеме с лицензированием. </note> | ||
+ | |||
+ | Команда для подключения к консоли АТС: | ||
+ | <code> | ||
+ | docker exec -it mikopbx sh | ||
+ | </code> | ||
+ | |||
+ | Команда для подключения к консольному меню АТС: | ||
+ | <code> | ||
+ | docker exec -it mikopbx /etc/rc/console_menu | ||
+ | </code> | ||
===== Live USB / Bootable USB ===== | ===== Live USB / Bootable USB ===== | ||
Строка 50: | Строка 162: | ||
Большинство современных ПК поддерживают загрузку с USB устройства. \\ | Большинство современных ПК поддерживают загрузку с USB устройства. \\ | ||
- | **AskoziaPBX** может быть запущена с USB устройства. Такой способ установки может потребоваться при отсутствии CDROM. | + | **MikoPBX** может быть запущена с USB устройства. Такой способ установки может потребоваться при отсутствии CDROM. |
<note important> | <note important> | ||
- | **Обратите внимание!** Минимальная емкость USB диска - **512MB** | + | **Обратите внимание!** Минимальная емкость USB диска - **600MB** |
</note> | </note> | ||
Строка 65: | Строка 177: | ||
Для создания загрузочного USB диска рекомендуем использовать приложение [[http://www.osforensics.com/tools/write-usb-images.html|imageUSB]]. Скачать можно по [[http://www.osforensics.com/tools/write-usb-images.html|ссылке]]. | Для создания загрузочного USB диска рекомендуем использовать приложение [[http://www.osforensics.com/tools/write-usb-images.html|imageUSB]]. Скачать можно по [[http://www.osforensics.com/tools/write-usb-images.html|ссылке]]. | ||
- | <note important>Альтернатива - используйте **usb-image-tool**</note> | + | <note important>Альтернатива - используйте **[[https://www.balena.io/etcher/ | balenaEtcher]]**</note> |
- Загрузите и установите приложение. | - Загрузите и установите приложение. | ||
Строка 88: | Строка 200: | ||
- Форматируем диск. Потребуется ввести пароль администратора <code>sudo diskutil eraseDisk FAT32 NONAME MBRFormat /dev/disk3;</code> | - Форматируем диск. Потребуется ввести пароль администратора <code>sudo diskutil eraseDisk FAT32 NONAME MBRFormat /dev/disk3;</code> | ||
- Отключим устройство следующей командой <code>sudo diskutil unmountDisk /dev/disk3;</code> | - Отключим устройство следующей командой <code>sudo diskutil unmountDisk /dev/disk3;</code> | ||
- | - Запишем образ на usb носитель <code>sudo dd if=1.0.64-9.0-svn-mikopbx-x86-64-cross-linux.img of=/dev/disk3 bs=1m;</code> | + | - Запишем образ на usb носитель <Code>sudo dd if=1.0.64-9.0-svn-mikopbx-x86-64-cross-linux.img of=/dev/disk3 bs=1m;</Code> |
===== Live CD ===== | ===== Live CD ===== | ||
**Установка с помощью Live CD** - самый простой способ установки на настольный ПК.\\ \\ | **Установка с помощью Live CD** - самый простой способ установки на настольный ПК.\\ \\ | ||
1. Для начала необходимо скачать образ Live CD. \\ \\ | 1. Для начала необходимо скачать образ Live CD. \\ \\ | ||
- | 2. Запишите образ "**X.X.ХХ-9.0-svn-mikopbx-x86-64-cross-linux.iso**" на компакт-диск\\ \\ | + | 2. Запишите образ "**XXXX.X.XXX-mikopbx-generic-x86-64-linux**" на компакт-диск\\ \\ |
3. Вставьте Live CD в компьютер\\ \\ | 3. Вставьте Live CD в компьютер\\ \\ | ||
4. **ПК должен поддерживать загрузку с CD**. Должен быть настроен порядок загрузки с CD привода.\\ \\ | 4. **ПК должен поддерживать загрузку с CD**. Должен быть настроен порядок загрузки с CD привода.\\ \\ | ||
5. Перезагрузите ПК\\ \\ | 5. Перезагрузите ПК\\ \\ | ||
- | 6. Если загрузка прошла успешно, появится консольное меню. На данном этапе Askozia загружается с диска (Live CD), на который записан iso образ. На это нам указывает строчка: "**АТС запущена с Live CD в режиме восстановления**".\\ | + | 6. Если загрузка прошла успешно, появится консольное меню. На данном этапе MikoPBX загружается с диска (Live CD), на который записан iso образ. На это нам указывает строчка: "**АТС запущена с Live CD в режиме восстановления**".\\ |
- | {{ :setup:2018-08-06_17110613.png |}}\\ \\ | + | {{ ::install-livecd-6.png |}} |
- | 7. Производим установку Askozia. | + | 7. Производим установку MikoPBX. |
- | * Введите с клавиатуры цифру **8** и нажмите «**Enter**» для начала установки. Askozia отобразит информацию о всех **доступных** дисках. В текущем примере - диск «**sda**». | + | * Введите с клавиатуры цифру **8** и нажмите «**Enter**» для начала установки. MikoPBX отобразит информацию о всех **доступных** дисках. В текущем примере - диск «**sda**». |
* Введите с клавиатуры имя диска, в текущем случае **sda**. | * Введите с клавиатуры имя диска, в текущем случае **sda**. | ||
* Система запросит подтверждение. Подтверждаем - **y**. | * Система запросит подтверждение. Подтверждаем - **y**. | ||
- | <note warning>Имена дисков могут отличаться для вашей системы. Будьте внимательны с выбором, все данные на диске, куда устанавливается Askozia, будут потеряны.</note> | + | <note warning>Имена дисков могут отличаться для вашей системы. Будьте внимательны с выбором, все данные на диске, куда устанавливается MikoPBX, будут потеряны.</note> |
{{ :setup:2018-11-16_163316.png |}}\\ | {{ :setup:2018-11-16_163316.png |}}\\ | ||
- | Диск, на который будет установлена Askozia, называется **системным** (**SYSTEM**). В качестве системного диска можно выбрать диск, размер которого будет превышать **500 Мб**. \\ \\ | + | Диск, на который будет установлена MikoPBX, называется **системным** (**SYSTEM**). В качестве системного диска можно выбрать диск, размер которого будет превышать **600 Мб**. \\ \\ |
- | 8. После завершения установки система перезагрузится. Askozia автоматически извлечет диск **X.X.X-X.X-svn-mikopbx-x86-64-cross-linux.iso**» из привода, теперь **Askozia** будет запускаться с диска **sda**, на который мы и установили систему.\\ \\ | + | 8. После завершения установки система перезагрузится. MikoPBX автоматически извлечет диск "**XXXX.X.XXX-mikopbx-generic-x86-64-linux*" из привода, теперь **MikoPBX** будет запускаться с диска **sda**, на который мы и установили систему.\\ \\ |
9. После перезапуска увидим, что строчка "**АТС запущена с Live CD в режиме восстановления**" отсутствует.\\ | 9. После перезапуска увидим, что строчка "**АТС запущена с Live CD в режиме восстановления**" отсутствует.\\ | ||
- | {{ :setup:2018-08-06_17111110.png |}}\\ \\ | + | {{ ::install-livecd-9-2.png |}} |
- | 10. Далее система предложит подключить диск для хранения записей разговоров в Askozia. | + | 10. Далее система предложит подключить диск для хранения записей разговоров в MikoPBX. |
* Введите наименование диска для подключения (например, sdb) и нажмите Enter. | * Введите наименование диска для подключения (например, sdb) и нажмите Enter. | ||
{{ :setup:2018-11-16_163519.png |}} | {{ :setup:2018-11-16_163519.png |}} | ||
- | **Важно!** В качестве диска для хранения записей разговоров может выступать **системный диск**, на который установлена сама Askozia (в нашем примере диск sda) только в том случае, если его **размер** будет превышать **600 МБ**. В противном случае системный диск подключить для хранения записей разговоров не получится. \\ \\ | + | **Важно!** В качестве диска для хранения записей разговоров может выступать **системный диск**, на который установлена сама MikoPBX (в нашем примере диск sda) только в том случае, если его **размер** будет превышать **600 МБ**. В противном случае системный диск подключить для хранения записей разговоров не получится. \\ \\ |
При повторной попытке подключения диска для хранения записей разговоров будет выведено уведомление о том, что диск уже смонтирован.\\ | При повторной попытке подключения диска для хранения записей разговоров будет выведено уведомление о том, что диск уже смонтирован.\\ | ||
- | {{ :setup:2018-11-16_163600.png |}} | + | {{ ::install-livecd-11-storage-1.png |}} |
- | + | {{ ::install-livecd-11-storage-2.png |}} | |
- | + | ||
- | + | ||
[[index|Обратно к перечню инструкций]] | [[index|Обратно к перечню инструкций]] |