0

asterisk

FreePBX  в Docker

05.02.2023

Как настроить FreePBX с помощью Docker (сборка Docker-контейнера FreePBX). В этом посте мы расскажем о FreePBX , его функциях и основных преимуществах. После этого мы перейдем к этапу установки FreePBX с Docker .

Прежде всего, что такое  PBX или Private Branch Exchange? Телефонная аппаратная система, доступная в бизнесе, которая позволяет переключать вызовы между пользователями на местных телефонных линиях, позволяя им совместно использовать фиксированное количество внешних линий.

Итак, давайте начнем с нашей статьи Как настроить FreePBX с помощью Docker (сборка контейнера FreePBX Docker).

Также читайте

FreePBX и 3CX — в чем разница? (За и против)

Что такое FreePBX?

Во-первых, PBX — это аббревиатура от Private Branch Exchange. FreePBX — это, по сути, телефонная система , которую вы можете установить на свою виртуальную машину . Он играет важную роль в управлении звездочкой . Что такое звездочка? Проще говоря, коммуникационный сервер с открытым исходным кодом. Вместо того, чтобы использовать собственную телефонную систему и интерфейс и платить оптимальные 100 долларов в месяц, пользователи могут использовать FreePBX для управления своей АТС.

Более того, FreePBX работает как средство связи между клиентами и офисом. Что он делает, так это приветствует клиентов в теплой манере, чтобы они чувствовали себя комфортно, а затем направляет звонок в нужное отделение или отделение офиса в зависимости от запроса клиентов.

Asterisk позволяет нам преобразовать обычный компьютер в коммуникационный сервер, используя файлы . Это программная реализация телефонной частной телефонной станции (PBX), позволяющая подключенным телефонам звонить друг другу, а затем подключаться к другим телефонным службам, таким как коммутируемая телефонная сеть общего пользования ( PSTN ) и услуги передачи голоса по протоколу Интернет ( VoIP ).

Пользователи могут загрузить FreePBX бесплатно, но им необходимо иметь набор навыков и знаний для ее настройки и обслуживания. Вам потребуется ISTP (поставщик услуг интернет-телефонии) для совершения звонков через FreePBX.

Проще говоря, Asterisk — это многоканальная система, позволяющая общаться внутри офисов внутри филиалов через разные расширения. Наличие внутренних расширений приводит к совместному использованию исходящих линий для связи с пользователями или сотрудниками внутри или вне офисного помещения.

Также читайте

Как настроить сервер FreePBX на Azure/AWS/GCP (хостинг FreePBX)

Возможности FreePBX

Вот некоторые особенности FreePBX:

  • Пользователь может создать резервную копию или восстановить систему.
  • Вы можете создавать меню IVR (Interactive Digital Receptionist).
  • Просмотр подробных отчетов о звонках со статистикой звездочки.
  • Позволяет пользователям просматривать состояние магистрали и добавочный номер.
  • ARI (интерфейс записи Asterisk) позволяет пользователю просматривать записи разговоров.
  • Кроме того, пользователи могут загружать собственную музыку при удержании. (МЗ)
  • Точно так же FreePBX поставляется с множеством других функций, таких как: бизнес-функции, функции вызова и поддержка телефонии.
  • Бизнес-функции включают в себя такие функции, как конференц-мост , IVR, видеозвонки , преобразование текста в речь, объявления, группы звонков и т. д.
  • Функции звонков включают в себя: запись звонков, перевод звонков, ожидание вызова, черный список вызывающих абонентов, историю звонков, голосовую почту на электронную почту, трехстороннюю поддержку звонков.
  • Принимая во внимание, что функции поддержки телефонии: поддержка настольных компьютеров, поддержка специальных устройств, WebRTC , POTS/ISDN, SIP и PJSIP.
  • Что немаловажно, система FreePBX может подставить дополнительного сотрудника, если возникнет такая необходимость. Это одно из самых важных преимуществ использования FreePBX. Разработано с течением времени, чтобы иметь в виду потребности и события.

Также читайте

Как установить FreePBX на Ubuntu 20.04 (руководство по АТС с открытым исходным кодом)

Преимущества FreePBX

FreePBX имеет множество преимуществ, некоторые из них перечислены ниже:

Обширная языковая поддержка

Это преимущество FreePBX позволяет пользователям выбирать свой местный язык в индивидуальном порядке. Кроме того, это позволяет пользователям поддерживать свою телефонную систему в рабочем состоянии независимо от местонахождения пользователей по всему миру.

Полностью оборудованный WebGUI

Такие функции, как WebGUI, представляют несколько калиброванных функций, таких как разработка расширений, IVR, восстановление и резервное копирование, разрешения пользователей, временные условия и брандмауэр.

Огромный список уникальных функций

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

Бюджетный

Стоимость FreePBX имеет преимущество перед дорогими и другими сложными в использовании решениями. Таким образом, надежные FreePBX могут окупить затраты в кратчайшие сроки.

Нет ограничений на лицензирование

Конкретных ограничений на количество пользователей, создаваемых IVR, очередей и т. д. нет.

Гибкий

Гибкость FreePBX работает почти со всеми коммерчески доступными виртуальными машинами и оборудованием. Кроме того, он также работает с более чем 200 конечными точками из-за его широкого использования по всему миру. Может быть сопряжен с любым IP-телефоном или решением для конференц -связи , которое у вас уже есть.

Надежный и безопасный

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

Система автоматического реагирования

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

Прогресс в технологиях

Со временем можно увидеть огромный прогресс в технологии с помощью различных обновлений. Это позволяет пользователям лучше персонализировать систему в соответствии со своими потребностями.

Теперь пришло время для основной части статьи о том, как настроить FreePBX с помощью Docker.

Также читайте

FreePBX и FreeSWITCH — в чем разница? (За и против)

Как настроить FreePBX с помощью Docker

Предпосылки

  • Сервер под управлением операционной системы Ubuntu или Debian .
  • Пользователь root или пользователь с привилегиями sudo.

Добавить репозиторий Docker

По умолчанию последняя версия Docker не включена в репозиторий Ubuntu по умолчанию. Поэтому вам нужно будет добавить официальный репозиторий Docker CE в APT.

Сначала установите все необходимые зависимости с помощью следующей команды:

apt install apt-transport-https ca-certificates curl software-properties-common -y

Копировать

После установки всех зависимостей загрузите и добавьте ключ GPG Docker CE с помощью следующей команды:

curl -fsSL https://download.docker.com/linux/ubuntu/gpg | apt-key add -

Копировать

Затем добавьте репозиторий Docker CE с помощью следующей команды:

add-apt-repository "deb [arch=amd64] https://download.docker.com/linux/ubuntu focal stable"

Копировать

Здесь, пожалуйста, проверьте добавленный репозиторий с помощью следующей команды:

apt-cache policy docker-ce

Копировать

Вы получите следующий вывод:

docker-ce:
Installed: (none)
Candidate: 5:20.10.17~3-0~ubuntu-focal
Version table:
   5:20.10.17~3-0~ubuntu-focal 500
      500 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
   5:20.10.16~3-0~ubuntu-focal 500
      500 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
   5:20.10.15~3-0~ubuntu-focal 500
      500 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
   5:20.10.14~3-0~ubuntu-focal 500
      500 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
   5:20.10.13~3-0~ubuntu-focal 500
      500 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages
   5:20.10.12~3-0~ubuntu-focal 500
      500 https://download.docker.com/linux/ubuntu focal/stable amd64 Packages

Копировать

Также читайте

Ansible против Docker — в чем разница между инструментами DevOps

Установите Docker и Docker Compose

Теперь установите пакет Docker , выполнив следующую команду:

apt install docker-ce -y

Копировать

После установки Docker проверьте статус работы Docker с помощью следующей команды:

systemctl status docker

Копировать

Вы получите следующий вывод:

● docker.service - Docker Application Container Engine
     Loaded: loaded (/lib/systemd/system/docker.service; enabled; vendor preset: enabled)
     Active: active (running) since Sun 2022-09-04 16:04:27 UTC; 13s ago
TriggeredBy: ● docker.socket
       Docs: https://docs.docker.com
   Main PID: 3264 (dockerd)
      Tasks: 7
     Memory: 29.8M
     CGroup: /system.slice/docker.service
             └─3264 /usr/bin/dockerd -H fd:// --containerd=/run/containerd/containerd.sock

Sep 04 16:04:27 ubuntu2004 dockerd[3264]: time="2022-09-04T16:04:27.555173170Z" level=warning msg="Your kernel does not support CPU realtime >
Sep 04 16:04:27 ubuntu2004 dockerd[3264]: time="2022-09-04T16:04:27.555196177Z" level=warning msg="Your kernel does not support cgroup blkio >
Sep 04 16:04:27 ubuntu2004 dockerd[3264]: time="2022-09-04T16:04:27.555270124Z" level=warning msg="Your kernel does not support cgroup blkio >
Sep 04 16:04:27 ubuntu2004 dockerd[3264]: time="2022-09-04T16:04:27.555772301Z" level=info msg="Loading containers: start."
Sep 04 16:04:27 ubuntu2004 dockerd[3264]: time="2022-09-04T16:04:27.719676988Z" level=info msg="Default bridge (docker0) is assigned with an >
Sep 04 16:04:27 ubuntu2004 dockerd[3264]: time="2022-09-04T16:04:27.804973724Z" level=info msg="Loading containers: done."
Sep 04 16:04:27 ubuntu2004 dockerd[3264]: time="2022-09-04T16:04:27.834543443Z" level=info msg="Docker daemon" commit=a89b842 graphdriver(s)=>
Sep 04 16:04:27 ubuntu2004 dockerd[3264]: time="2022-09-04T16:04:27.834895532Z" level=info msg="Daemon has completed initialization"
Sep 04 16:04:27 ubuntu2004 systemd[1]: Started Docker Application Container Engine.
Sep 04 16:04:27 ubuntu2004 dockerd[3264]: time="2022-09-04T16:04:27.878373838Z" level=info msg="API listen on /run/docker.sock"

Копировать

Следующим шагом является проверка информации о версии Docker с помощью следующей команды:

docker --version

Копировать

Вы должны получить следующий результат:

Docker version 20.10.17, build 100c701

Копировать

Теперь установите пакет Docker Compose с помощью следующей команды:

apt install docker-compose -y

Копировать

После завершения установки проверьте версию Docker Compose с помощью следующей команды:

docker-compose --version

Копировать

Вы должны получить следующий результат:

docker-compose version 1.25.0, build unknown

Копировать

Также читайте

Как настроить Docker Compose на Ubuntu в Azure/AWS/GCP

Создайте файл Docker Compose для FreePBX

Во-первых, создайте каталог для хранения файла Docker Compose:

mkdir app

Копировать

Далее перейдите в созданный каталог и создайте файл Docker Compose для FreePBX :

cd app
nano docker-compose.yaml

Копировать

Добавьте следующий код:

version: '2'

services:
  freepbx-app:
    container_name: freepbx-app
    image: tiredofit/freepbx
    ports:
     #### If you aren't using a reverse proxy
      - 80:80
     #### If you want SSL Support and not using a reverse proxy
     #- 443:443
      - 5060:5060/udp
      - 5160:5160/udp
      - 18000-18100:18000-18100/udp
     #### Flash Operator Panel
      - 4445:4445
    volumes:
      - ./certs:/certs
      - ./data:/data
      - ./logs:/var/log
      - ./data/www:/var/www/html
     ### Only Enable this option below if you set DB_EMBEDDED=TRUE
     #- ./db:/var/lib/mysql
     ### You can drop custom files overtop of the image if you have made modifications to modules/css/whatever - Use with care
     #- ./assets/custom:/assets/custom

    environment:
      - VIRTUAL_HOST=hostname.example.com
      - VIRTUAL_NETWORK=nginx-proxy
     ### If you want to connect to the SSL Enabled Container
     #- VIRTUAL_PORT=443
     #- VIRTUAL_PROTO=https
      - VIRTUAL_PORT=80

      - ZABBIX_HOSTNAME=freepbx-app

      - RTP_START=18000
      - RTP_FINISH=18100

     ## Use for External MySQL Server
      - DB_EMBEDDED=FALSE

     ### These are only necessary if DB_EMBEDDED=FALSE
      - DB_HOST=freepbx-db
      - DB_PORT=3306
      - DB_NAME=asterisk
      - DB_USER=asterisk
      - DB_PASS=asteriskpass

     ### If you are using TLS Support for Apache to listen on 443 in the container drop them in /certs and set these:
     #- TLS_CERT=cert.pem
     #- TLS_KEY=key.pem

    restart: always
    networks:
      - proxy-tier

    ### These final lines are for Fail2ban. If you don't want, comment and also add ENABLE_FAIL2BAN=FALSE to your environment
    cap_add:
      - NET_ADMIN
    privileged: true

  freepbx-db:
    container_name: freepbx-db
    image: tiredofit/mariadb
    restart: always
    volumes:
      - ./db:/var/lib/mysql
    environment:
      - MYSQL_ROOT_PASSWORD=password
      - MYSQL_DATABASE=asterisk
      - MYSQL_USER=asterisk
      - MYSQL_PASSWORD=asteriskpass
    networks:
      - proxy-tier

  freepbx-db-backup:
    container_name: freepbx-db-backup
    image: tiredofit/db-backup
    links:
     - freepbx-db
    volumes:
      - ./dbbackup:/backup
    environment:
      - ZABBIX_HOSTNAME=freepbx-db-backup
      - DB_HOST=freepbx-db
      - DB_TYPE=mariadb
      - DB_NAME=asterisk
      - DB_USER=asterisk
      - DB_PASS=asteriskpass
      - DB_DUMP_FREQ=1440
      - DB_DUMP_BEGIN=0000
      - DB_CLEANUP_TIME=8640
      - COMPRESSION=BZ
      - MD5=TRUE
    networks:
      - proxy-tier
    restart: always

networks:
  proxy-tier:
    external:
      name: nginx-proxy

Копировать

Сохраните и закройте файл, затем создайте сеть Docker для прокси -сервера Nginx :

docker network create nginx-proxy

Копировать

Также читайте

Как настроить Docker Compose на Windows Server в Azure/AWS/GCP

Запустите контейнер FreePBX

На этом этапе файл Docker Compose готов для запуска контейнера FreePBX. Вы можете запустить следующую команду для запуска контейнера FreePBX:

docker-compose up -d

Копировать

Эта команда загрузит все необходимые образы и создаст контейнер из каждого образа :

Pulling freepbx-db (tiredofit/mariadb:)...
latest: Pulling from tiredofit/mariadb
59bf1c3509f3: Pull complete
e887546d6053: Pull complete
3dace326c0ec: Pull complete
ea97c706ca03: Pull complete
f908583427a3: Pull complete
Digest: sha256:9a2b1332bc6b0775765d8ae43e94646d4f5b97d2c5af4d246ab82042241f1517
Status: Downloaded newer image for tiredofit/mariadb:latest
Pulling freepbx-db-backup (tiredofit/db-backup:)...
latest: Pulling from tiredofit/db-backup
213ec9aee27d: Pull complete
0a34d2f2b45d: Pull complete
4dd70801aef3: Pull complete
f471a1502016: Pull complete
bdd9d308f2cc: Pull complete
Digest: sha256:0a49053ee9164087696bf646a453de194debb652bb654e4452c75efa4b1c6661
Status: Downloaded newer image for tiredofit/db-backup:latest
Creating freepbx-db  ... done
Creating freepbx-app       ... done
Creating freepbx-db-backup ... done

Копировать

Вы можете проверить все загруженные изображения , используя следующую команду:

docker images

Копировать

Вы должны получить следующий результат:

REPOSITORY            TAG       IMAGE ID       CREATED         SIZE
tiredofit/db-backup   latest    fbb26eb96e30   2 weeks ago     521MB
tiredofit/mariadb     latest    158d51d45d6f   6 months ago    420MB
tiredofit/freepbx     latest    e98ede842e6d   17 months ago   2.05GB

Копировать

Затем проверьте все запущенные контейнеры с помощью следующей команды:

docker ps

Копировать

Вы должны увидеть следующий вывод:

CONTAINER ID   IMAGE                 COMMAND   CREATED          STATUS          PORTS                                       NAMES
bb06e45b3ddd   tiredofit/db-backup   "/init"   37 seconds ago   Up 37 seconds   2020/tcp, 10050/tcp      freepbx-db-backup
e7d8d9dbd2d1   tiredofit/freepbx     "/init"   39 seconds ago   Up 33 seconds   80/tcp, 443/tcp, 4569/tcp, 0.0.0.0:5060->5060/udp, :::5060->5060/udp, 5061/tcp, 5161/tcp, 8001/tcp, 8003/tcp, 8008-8009/tcp, 8025/tcp, 0.0.0.0:5160->5160/udp, :::5160->5160/udp, 10050/tcp, 0.0.0.0:4445->4445/tcp, :::4445->4445/tcp, 0.0.0.0:18000-18100->18000-18100/udp, :::18000-18100->18000-18100/udp, 18101-20000/udp   freepbx-app
c60189d931bf   tiredofit/mariadb     "/init"   39 seconds ago   Up 37 seconds   2020/tcp, 3306/tcp, 10050 tcp freepbx-db

Копировать

Также читайте

Как установить Asterisk на Ubuntu 20.04 (VoIP-сервер с открытым исходным кодом)

Доступ к панели управления FreePBX

1. Теперь откройте веб-браузер и получите доступ к контейнеру FreePBX, используя URL-адрес http://your-server-ip/admin/config.php . Вы должны увидеть экран установки пароля администратора:

2. Определите имя пользователя и пароль администратора и нажмите кнопку « Настройка системы» . Вы должны увидеть следующий экран:

3. Нажмите Администрирование FreePBX . Вы должны увидеть экран входа в FreePBX:

4. Введите имя пользователя и пароль администратора и нажмите кнопку « Продолжить » . Вы должны увидеть страницу выбора языка FreePBX:

5. Нажмите кнопку « Отправить » . Вы должны увидеть панель инструментов FreePBX на следующем экране:

Спасибо, что прочитали Как настроить FreePBX с помощью Docker. Мы будем заключать. 

Также читайте

Планирование VOIP — 10 лучших практик

Свежие комментарии

Подписка

Лучшие статьи


Fatal error: Uncaught Error: Call to a member function have_posts() on null in /home/host1867038/the-devops.ru/htdocs/www/wp-content/themes/fox/inc/blog.php:391 Stack trace: #0 /home/host1867038/the-devops.ru/htdocs/www/wp-content/themes/fox/widgets/latest-posts/widget.php(257): fox56_blog_grid(NULL, Array) #1 /home/host1867038/the-devops.ru/htdocs/www/wp-content/themes/fox/widgets/latest-posts/register.php(33): include('/home/host18670...') #2 /home/host1867038/the-devops.ru/htdocs/www/wp-includes/class-wp-widget.php(394): Wi_Widget_Latest_Posts->widget(Array, Array) #3 /home/host1867038/the-devops.ru/htdocs/www/wp-includes/widgets.php(837): WP_Widget->display_callback(Array, Array) #4 /home/host1867038/the-devops.ru/htdocs/www/wp-content/themes/fox/inc/single.php(417): dynamic_sidebar('sidebar') #5 /home/host1867038/the-devops.ru/htdocs/www/wp-content/themes/fox/inc/single.php(136): fox56_single_sidebar() #6 /home/host1867038/the-devops.ru/htdocs/www/wp-content/themes/fox/inc/single.php(7): fox56_single_inner() #7 /home/host1867038/the-devops.ru/htdocs/www/wp-content/themes/fox/single.php(23): fox56_single() #8 /home/host1867038/the-devops.ru/htdocs/www/wp-includes/template-loader.php(106): include('/home/host18670...') #9 /home/host1867038/the-devops.ru/htdocs/www/wp-blog-header.php(19): require_once('/home/host18670...') #10 /home/host1867038/the-devops.ru/htdocs/www/index.php(17): require('/home/host18670...') #11 {main} thrown in /home/host1867038/the-devops.ru/htdocs/www/wp-content/themes/fox/inc/blog.php on line 391